| Class | Bio::PDB::Model |
| In: |
lib/bio/db/pdb/model.rb
|
| Parent: | Object |
Bio::PDB::Model is a class to store a model.
The object would contain some chains (Bio::PDB::Chain objects).
| serial | -> | model_serial |
| for backward compatibility | ||
| 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) |
Operator aimed to sort models based on serial number
# File lib/bio/db/pdb/model.rb, line 112
112: def <=>(other)
113: return @serial <=> other.model_serial
114: end
Keyed access to chains
# File lib/bio/db/pdb/model.rb, line 117
117: def [](key)
118: #chain = @chains.find{ |chain| key == chain.id }
119: @chains_hash[key]
120: end
Adds a chain to this model
# File lib/bio/db/pdb/model.rb, line 64
64: def addChain(chain)
65: raise "Expecting a Bio::PDB::Chain" unless chain.is_a? Bio::PDB::Chain
66: @chains.push(chain)
67: if @chains_hash[chain.chain_id] then
68: $stderr.puts "Warning: chain_id #{chain.chain_id.inspect} is already used" if $VERBOSE
69: else
70: @chains_hash[chain.chain_id] = chain
71: end
72: self
73: end
(OBSOLETE) Adds a solvent molecule to this model
# File lib/bio/db/pdb/model.rb, line 94
94: def addSolvent(solvent)
95: raise "Expecting a Bio::PDB::Residue" unless solvent.is_a? Bio::PDB::Residue
96: @solvents.addResidue(solvent)
97: end
returns a string containing human-readable representation of this object.
# File lib/bio/db/pdb/model.rb, line 140
140: def inspect
141: "#<#{self.class.to_s} serial=#{serial.inspect} chains.size=#{chains.size}>"
142: end
rehash chains hash
# File lib/bio/db/pdb/model.rb, line 76
76: def rehash
77: begin
78: chains_bak = @chains
79: chains_hash_bak = @chains_hash
80: @chains = []
81: @chains_hash = {}
82: chains_bak.each do |chain|
83: self.addChain(chain)
84: end
85: rescue RuntimeError
86: @chains = chains_bak
87: @chains_hash = chains_hash_bak
88: raise
89: end
90: self
91: end
(OBSOLETE) not recommended to use this method
# File lib/bio/db/pdb/model.rb, line 100
100: def removeSolvent
101: @solvents = nil
102: end
stringifies to chains
# File lib/bio/db/pdb/model.rb, line 123
123: def to_s
124: string = ""
125: if model_serial
126: string = "MODEL #{model_serial}\n" #Should use proper formatting
127: end
128: @chains.each{ |chain| string << chain.to_s }
129: #if solvent
130: # string << @solvent.to_s
131: #end
132: if model_serial
133: string << "ENDMDL\n"
134: end
135: return string
136: end