[Bioperl-l] extract and write a pdb chain

Brian Osborne bosborne11 at verizon.net
Fri Dec 11 15:37:45 EST 2009


Joan,

It looks to me like the first argument to the add_chain() method has  
to be a Model object, the second is the Chain itself. See Structure/ 
Entry.pm, for example. However if you're seeing some documentation  
that says something else then tell us where, it needs to be corrected.

In Bio::Structure an Entry consists of one or Models, each of which  
has one or more Chains. This allows you to build macromolecular  
complexes (an Entry), which could have more than one defined proteins  
or protein complexes (Models).

Brian O.

On Dec 11, 2009, at 11:44 AM, Joan Segura Mora wrote:

> Hello,
>
> I am trying to do a very easy think but I don't get it. I want to  
> write
> in a file a chain of a pdb. I have try a lot of thinks but what I  
> think
> that it should work is the next script:
>
> use Bio::Structure::IO;
> use strict;
>
> my $structio = Bio::Structure::IO->new(-file => "101m.pdb",'-format'  
> =>
> 'pdb');
> my $struc = $structio->next_structure;
>
> my $new_entry = Bio::Structure::Entry->new( -id  => 'structure_id');
>
> for my $chain ($struc->get_chains) {
> 	if($chain->id eq "A"){
> 		$new_entry->chain($chain);
> 		last;
> 	}
> }
>
> my $out = Bio::Structure::IO->new(-file => ">out.pdb",'-format' =>
> 'pdb');#
> $out->write_structure($new_entry);
>
> it doesn't. I get the next error:
>
> ------------- EXCEPTION: Bio::Root::Exception -------------
> MSG: add_chain: first argument needs to be a Model object ()
>
> STACK: Error::throw
> STACK:
> Bio::Root::Root::throw /usr/local/share/perl/5.8.8/Bio/Root/Root.pm: 
> 368
> STACK:
> Bio::Structure::Entry::add_chain /usr/local/share/perl/5.8.8/Bio/ 
> Structure/Entry.pm:335
> STACK:
> Bio::Structure::Entry::get_chains /usr/local/share/perl/5.8.8/Bio/ 
> Structure/Entry.pm:391
> STACK:
> Bio::Structure::Entry::chain /usr/local/share/perl/5.8.8/Bio/ 
> Structure/Entry.pm:304
> STACK: read_pdb.pl:10
> -----------------------------------------------------------
>
> As far I understand the documentation, the method chain of the object
> Bio::Structure::Entry requires an as input an object of type Chain.
>
> Any solution will be very welcome.
>
> best regards,
> Joan
>
> _______________________________________________
> 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