| // +----------------------------------------------------------------------+ // // $Id$ // require_once "Science/Chemistry.php"; require_once "Science/Chemistry/Atom_PDB.php"; require_once "Science/Chemistry/Molecule.php"; /** * Represents a PDB residue * * @author Jesus M. Castagnetto * @version 1.0 * @access public * @package Science_Chemistry */ class Science_Chemistry_Residue_PDB extends Science_Chemistry_Molecule { /** * PDB Residue sequence number * * @var integer * @access private */ var $seq_num; /** * PDB Residue chain * * @var string * @access private */ var $chain; /** * PDB Residue ID * $id = "$name:$seq_num:$chain" * * @var string * @access private */ var $id; /** * PDB ID for the protein that contains * this residue * * @var string * @access private */ var $pdb; /** * If the PDB residue object has been initialized * * @var boolean * @access public */ var $VALID = false; /** * Reference to the protein * to which this residue belongs * * @var object Science_Chemistry_Macromolecule_PDB * @access public */ var $macromol; /** * Constructor for the class * * @param string $pdb PDB if of the protein/nucleic acid/etc. * @param array $atomrec_arr Array of PDB atom record lines * @param object Science_Chemistry_Macromolecule_PDB $macromol reference to the containing macromolecule * @return object Science_Chemistry_Residue_PDB * @access public */ function Science_Chemistry_Residue_PDB($pdb, $atomrec_arr, $macromol="") { for ($i=0; $i < count($atomrec_arr); $i++) { $this->atoms[] = new Science_Chemistry_Atom_PDB($atomrec_arr[$i], $this); } if (!empty($this->atoms)) { $this->VALID = true; $this->macromol =& $macromol; $this->pdb =& $pdb; $this->num_atoms = count($this->atoms); $line =& $atomrec_arr[0]; $this->name = trim(substr($line,17,3)); $this->chain = trim(substr($line,21,1)); $this->seq_num = (int) trim(substr($line,22,4)); $this->id = $this->name.":".$this->seq_num.":".$this->chain; } else { return null; } } /** * Calculates geometrical parameters for the residue * Backbone bond distances, angles and torsions * Sidechain Chi angles * TODO * * @return boolean * @access public */ /* function calcGeomParams() { // TODO return true; } */ /** * Returns geometrical parameter for the residue * One of: bonds, angles, torsions, or chis * TODO * * @return array * @access public */ /* function getGeomParams($param) { // TODO return array(); } */ } // end of Science_Chemistry_Residue_PDB class // vim: expandtab: ts=4: sw=4 ?>