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

Bernd Web bernd.web at gmail.com
Fri Sep 15 07:53:15 EDT 2006


Hi Jurgen,

Thanks for your info.
Re the chain labelling: I fully agree with you, in case the chains are
labelled. HETATMS in the chain should remain in the chain. That's why
we talked about non-chain hetero atoms.
If the chain is not labelled which is the case if  only one (default)
chain exists (e.g. 102L) all non-chain HETATMS also end up in the
default chain. This is not nice: it becomes tedious to check if a
HETATM is part of the chain or not. In case of such records (102L) it
could be good not to store non-chain in the default chain and obey the
TER chain termination label.


Regards,
Bernd

On 9/15/06, Jurgen Pletinckx <jurgen.pletinckx at algonomics.com> wrote:
>
> | 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.
>
> Cheers,
>
> --
> 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
> multichain
> | records do not have a "chain" so end up in the "default" chain.
> Chain
> | parsing thus should also take the TER into account. Then the
> non-chain
> | 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
> |
>
> _______________________________________________
> 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