[Bioperl-l] Bio::Structure::IO and single chain output

Jon Manning jrm at compbio.dundee.ac.uk
Fri Jul 22 04:39:40 EDT 2005

Hi all,

I've been using Bio::Structure::IO to read PDB files. I'm currently 
trying to calculate solvent accessibilities on a per-chain basis, so 
want to spit out Bio::Structure::Chain objects to PDB-format files so I 
can feed them alone to NAccess. I've tried passing them directly to the 
IO object, this looked like it might work:

$out = Bio::Structure::IO->new(-file => ">test.pdb",
                                  '-format' => 'pdb');


(where $chain is a Bio::Structure::Chain)

But I get this sort of error:

------------- EXCEPTION  -------------
MSG:  Bio::Structure::Chain=HASH(0x8dc7368) is not a StructureI 
compliant module.
STACK Bio::Structure::IO::pdb::write_structure 
STACK toplevel ./structureIOtest.pl:26

So I then thought to create a Bio::Structure::Entry object, add the 
chain, and feed that to IO, like:

my $entry = Bio::Structure::Entry->new(-id  => 'structure_id');
$out = Bio::Structure::IO->new(-file => ">test.pdb",
                                  '-format' => 'pdb');


But I've clearly misunderstood the entry initialisation somewhere, 
because I get this sort of error:

Use of uninitialized value in concatenation (.) or string at 
/usr/lib/perl5/site_perl/5.8.5/Bio/Structure/Entry.pm line 331, <GEN0> 
line 12836.

------------- EXCEPTION  -------------
MSG: add_chain: first argument needs to be a Model object ()

STACK Bio::Structure::Entry::add_chain 
STACK Bio::Structure::Entry::get_chains 
STACK Bio::Structure::Entry::chain 
STACK toplevel ./structureIOtest.pl:25


I'd really appreciate some pointers on how to go about doing this.



More information about the Bioperl-l mailing list