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

Bio::PDB::Model is a class to store a model.

The object would contain some chains (Bio::PDB::Chain objects).

Methods

<=>   []   addChain   addSolvent   each   each_chain   inspect   new   rehash   removeSolvent   to_s  

Included Modules

Utils AtomFinder ResidueFinder ChainFinder HetatmFinder HeterogenFinder Enumerable Comparable

External Aliases

serial -> model_serial
  for backward compatibility

Attributes

chains  [R]  chains in this model
serial  [RW]  serial number of this model. (Integer or nil)
solvents  [R]  (OBSOLETE) solvents (water, HOH) in this model
structure  [R]  (reserved for future extension)

Public Class methods

Creates a new Model object

[Source]

# File lib/bio/db/pdb/model.rb, line 39
      def initialize(serial = nil, structure = nil)
        
        @serial = serial
        @structure = structure
        @chains = []
        @chains_hash = {}
        @solvents = Chain.new('', self)
      end

Public Instance methods

Operator aimed to sort models based on serial number

[Source]

# File lib/bio/db/pdb/model.rb, line 112
      def <=>(other)
        return @serial <=> other.model_serial
      end

Keyed access to chains

[Source]

# File lib/bio/db/pdb/model.rb, line 117
      def [](key)
        #chain = @chains.find{ |chain| key == chain.id }
        @chains_hash[key]
      end

Adds a chain to this model

[Source]

# File lib/bio/db/pdb/model.rb, line 64
      def addChain(chain)
        raise "Expecting a Bio::PDB::Chain" unless chain.is_a? Bio::PDB::Chain
        @chains.push(chain)
        if @chains_hash[chain.chain_id] then
          $stderr.puts "Warning: chain_id #{chain.chain_id.inspect} is already used" if $VERBOSE
        else
          @chains_hash[chain.chain_id] = chain
        end
        self
      end

(OBSOLETE) Adds a solvent molecule to this model

[Source]

# File lib/bio/db/pdb/model.rb, line 94
      def addSolvent(solvent)
        raise "Expecting a Bio::PDB::Residue" unless solvent.is_a? Bio::PDB::Residue
        @solvents.addResidue(solvent)
      end

Iterates over each chain

[Source]

# File lib/bio/db/pdb/model.rb, line 105
      def each(&x) #:yields: chain
        @chains.each(&x)
      end
each_chain()

Alias for each

returns a string containing human-readable representation of this object.

[Source]

# File lib/bio/db/pdb/model.rb, line 140
      def inspect
        "#<#{self.class.to_s} serial=#{serial.inspect} chains.size=#{chains.size}>"
      end

rehash chains hash

[Source]

# File lib/bio/db/pdb/model.rb, line 76
      def rehash
        begin
          chains_bak = @chains
          chains_hash_bak = @chains_hash
          @chains = []
          @chains_hash = {}
          chains_bak.each do |chain|
            self.addChain(chain)
          end
        rescue RuntimeError
          @chains = chains_bak
          @chains_hash = chains_hash_bak
          raise
        end
        self
      end

(OBSOLETE) not recommended to use this method

[Source]

# File lib/bio/db/pdb/model.rb, line 100
      def removeSolvent
        @solvents = nil
      end

stringifies to chains

[Source]

# File lib/bio/db/pdb/model.rb, line 123
      def to_s
        string = ""
        if model_serial
          string = "MODEL     #{model_serial}\n" #Should use proper formatting
        end
        @chains.each{ |chain| string << chain.to_s }
        #if solvent
        #  string << @solvent.to_s
        #end
        if model_serial
          string << "ENDMDL\n"
        end
        return string
      end

[Validate]