Class Bio::PDB::Residue
In: lib/bio/db/pdb/residue.rb  (CVS)
Parent: Object

Bio::PDB::Residue is a class to store a residue. The object would contain some atoms (Bio::PDB::Record::ATOM objects).

Methods

<=>   []   addAtom   each   each_atom   get_residue_id_from_atom   hetatm   iCode=   inspect   new   resSeq=   to_s  

Included Modules

Utils AtomFinder Enumerable Comparable

External Aliases

residue_id -> id
  Now, Residue#id is an alias of residue_id.

Attributes

atoms  [R]  atoms in this residue. (Array)
chain  [RW]  the chain to which this residue belongs
iCode  [R]  iCode
resName  [RW]  resName (residue name)
resSeq  [R]  resSeq
residue_id  [R]  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.

[Source]

# 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.

[Source]

# 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

[Source]

# 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"]

[Source]

# File lib/bio/db/pdb/residue.rb, line 69
      def [](key)
        atom = @atoms.find{ |atom| key == atom.name }
      end

Adds an atom to this residue

[Source]

# 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

[Source]

# File lib/bio/db/pdb/residue.rb, line 112
      def each
        @atoms.each{ |atom| yield atom }
      end
each_atom()

Alias for each

Always returns false.

If the residue is HETATM, returns true. Otherwise, returns false.

[Source]

# File lib/bio/db/pdb/residue.rb, line 142
      def hetatm
        false
      end

iCode=()

[Source]

# 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.

[Source]

# 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=()

[Source]

# File lib/bio/db/pdb/residue.rb, line 88
      def resSeq=(resSeq)
        @resSeq = resSeq.to_i
        update_residue_id
        @resSeq
      end

Stringifies each atom

[Source]

# File lib/bio/db/pdb/residue.rb, line 128
      def to_s
        @atoms.join('')
      end

[Validate]