class Bio::PDB::Residue
Bio::PDB::Residue is a class to store a residue. The object would contain some atoms (Bio::PDB::Record::ATOM objects).
Attributes
atoms in this residue. (Array)
the chain to which this residue belongs
iCode
residue id (String or nil). The id is a composite of resSeq and iCode.
resName (residue name)
resSeq
residue id (String or nil). The id is a composite of resSeq and iCode.
Public Class Methods
Creates residue id from an ATOM (or HETATM) object.
# File lib/bio/db/pdb/residue.rb, line 34 def self.get_residue_id_from_atom(atom) "#{atom.resSeq}#{atom.iCode.strip}".strip end
Creates a new Residue object.
# File lib/bio/db/pdb/residue.rb, line 39 def initialize(resName = nil, resSeq = nil, iCode = nil, chain = nil) @resName = resName @resSeq = resSeq @iCode = iCode @chain = chain @atoms = [] update_residue_id end
Public Instance Methods
Sorts based on resSeq and iCode if need be
# File lib/bio/db/pdb/residue.rb, line 119 def <=>(other) if @resSeq != other.resSeq return @resSeq <=> other.resSeq else return @iCode <=> other.iCode end end
Keyed access to atoms based on atom name e.g. [“CA”]
# File lib/bio/db/pdb/residue.rb, line 69 def [](key) @atoms.find{ |atom| key == atom.name } end
Adds an atom to this residue
# File lib/bio/db/pdb/residue.rb, line 105 def addAtom(atom) raise "Expecting ATOM or HETATM" unless atom.is_a? Bio::PDB::Record::ATOM @atoms.push(atom) self end
Iterator over the atoms
# File lib/bio/db/pdb/residue.rb, line 112 def each @atoms.each{ |atom| yield atom } end
Always returns false.
If the residue is HETATM, returns true. Otherwise, returns false.
# File lib/bio/db/pdb/residue.rb, line 142 def hetatm false end
iCode=()
# File lib/bio/db/pdb/residue.rb, line 98 def iCode=(iCode) @iCode = iCode update_residue_id @iCode end
returns a string containing human-readable representation of this object.
# File lib/bio/db/pdb/residue.rb, line 134 def inspect "#<#{self.class.to_s} resName=#{resName.inspect} id=#{residue_id.inspect} chain.id=#{(chain ? chain.id : nil).inspect} resSeq=#{resSeq.inspect} iCode=#{iCode.inspect} atoms.size=#{atoms.size}>" end
resSeq=()
# File lib/bio/db/pdb/residue.rb, line 88 def resSeq=(resSeq) @resSeq = resSeq.to_i update_residue_id @resSeq end
Stringifies each atom
# File lib/bio/db/pdb/residue.rb, line 128 def to_s @atoms.join('') end