[Bioperl-l] More on PDB and chains...

Jurgen Pletinckx jurgen.pletinckx at algonomics.com
Fri Sep 15 06:16:44 EDT 2006

| Is anyone else on this list using StructureIO::pdb at all?

*waves hand* 

Well, occasionally, in any case.

Kris, the author of the Structure modules, was a colleague. When
he left, I tried taking over the maintenance of the modules. Un-
fortunately, it is way, way down on my priority list. So low, in
fact, that I never committed anything whatsoever to repo, and only 
answered to the occasional query.

Regarding architecture - the original design called for stuff like

# my $struc = $stream->next_structure();
# my $chain = $struc->next_chain();
# my $res = $chain->next_residue();

but the implementation ran into severe reference management trouble.
Which is why there is now a single object keeping track of all data,
with everything of note handled via callback to that object. Yeah,
unconventional. That being said, I _think_ you can add streams of
residues, chains, ... without rewriting. But I never had the tuits.

Regarding multiple models: the following works:
my $io = Bio::Structure::IO->new(-file => "/PDB/a4/pdb1a4t.ent");
my $struc = $io->next_structure; 
my @models = $struc->get_models; 
print scalar(@models),"\n"; 
my @chains = $struc->get_chains($models[0]); 
print scalar(@chains), "\n"; 
my @residues=$struc->get_residues($chains[0]); 
print scalar(@residues), "\n";'

---> 20
---> 2
---> 15

So Model (and there is a Bio::Structure::Model.pm) is an optional 
layer between Structure and Chain. Fun!

Finally - regarding non-chain HETATMs - I actually like the behaviour
there, and think it is consistent. If an AA chain is labeled A, then
the HETATMs which are also labeled A are understood to be part of that
chain. By extrapolation, unlabeled HETATMs are part of the unlabeled 
chain. <snark> If that's not what the author intended, he surely would
have labeled the AA chain, right? </snark>. Ahem. There is an awful
lot of room for interpretation there, and I argued for (and against)
most of the design decisions. 


Jurgen Pletinckx
AlgoNomics NV  

Jurgen Pletinckx
AlgoNomics NV  

| -----Original Message-----
| From: bioperl-l-bounces at lists.open-bio.org 
| [mailto:bioperl-l-bounces at lists.open-bio.org] On Behalf Of Bernd Web
| Sent: 15 September 2006 10:57
| To: Brian Osborne
| Cc: Chris Fields; Bernd Web; bioperl-l
| Subject: [Bioperl-l] More on PDB and chains...
| Hi Brian,
| Just to give some PDB accession with multiple models:
| 1A4T
| 1A6B
| 1A6S
| 2CPS
| Structure parser the PDB and looks for a chain. HETATMs in
| records do not have a "chain" so end up in the "default" chain.
| parsing thus should also take the TER into account. Then the
| HETATMS can be recognized since the follow the TER in the 1 chain
| record. I'll check this.
| Is anyone else on this list using StructureIO::pdb at all?
| Bernd
| On 9/14/06, Brian Osborne <osborne1 at optonline.net> wrote:
| > Chris and Bernd,
| >
| > I believe there's more to it than 
| structure->chain->residue->atom, it is
| > currently more like entry->structure AKA 
| model->chain->residue->atom. In
| > this way one can accommodate macromolecular structures or 
| complexes composed
| > of more than 1 protein, each protein capable of having more 
| than one chain.
| >
| > From Entry.pm:
| >
| > This object stores a whole Bio::Structure entry. It can 
| consist of one
| > or more models (L<Bio::Structure::Model>), which in turn 
| consist of one
| > or more chains (L<Bio::Structure::Chain>). A chain is 
| composed of residues
| > (L<Bio::Structure::Residue>) and a residue consists of atoms
| > (L<Bio::Structure::Atom>).
| >
| > My understanding is that multiple models in a single PDB 
| file are separated
| > by ENDMDL - Bernd, do you know of a multi-model PDB entry?
| >
| > However, Entry is handling all kinds of different functions 
| e.g. getting and
| > setting residues. I agree that this is unconventional.
| >
| > Brian O.
| _______________________________________________
| Bioperl-l mailing list
| Bioperl-l at lists.open-bio.org
| http://lists.open-bio.org/mailman/listinfo/bioperl-l

More information about the Bioperl-l mailing list