[Bioperl-l] RE: problems converting bsml to another file type

Kevin Clancy kclancy at informaxinc.com
Mon Apr 14 15:16:00 EDT 2003


Charles,
Correcting create_sequence to create did indeed solve the problem.
Many thanks.
kevin


-----Original Message-----
From: Charles Tilford [mailto:charles.tilford at bms.com] 
Sent: Monday, April 14, 2003 7:09 AM
To: Clancy, Kevin
Cc: bioperl-l at bioperl.org
Subject: Re: problems converting bsml to another file type


Hi Kevin,

I'm unfamilar with Seqfactory, that got added to the module a few months
after I submitted the module. If you check the CVS tree:

http://cvs.bioperl.org/cgi-bin/viewcvs/viewcvs.cgi/bioperl-live/Bio/SeqI
O/bsml.pm?cvsroot=bioperl

...it looks like there is a bug fix for your problem in revision 1.19.

-Charles

"Clancy, Kevin" wrote:
> 
> Dear All
> I am working with BioPerl-1.2.1, with ActiveState Perl 5.6.1, build 
> 635 on Windows 2000. I am running the code snippet, which is included 
> in the Bio::SeqIO::bsml pod, that tests the conversion of  a file of a

> particular type to bsml and back again. I am simply using data files 
> from the BioPerl t/data directory.
> 
> When I run the snippet, the conversion to bsml is fine - the expected 
> out.bsml file is created and looks like it is compliant with the 
> standard. However, the script is unable to reverse the process, and 
> produces the following error message: Can't locate object method 
> "create_sequence" via package "Bio::Seq::Seqfactory" (perhaps you 
> forgot to load "Bio::Seq::SeqFactory"?) at 
> D:/Perl/site/lib/Bio|SeqIO\bsml.pm line 181, <GEN0> line 78.
> 
> Looking at the line in bsml.pm, it is part of subroutine next_seq() 
> and has the following code at that line: my $bioSeq = 
> $self->sequence_factory->create(-verbose =>$self->verbose());
> 
> Running perl -w bptutorial.pl 100 Bio::SeqIO::bsml, there is no sign 
> of a create_sequence method in bsml.pm or any of its dependent 
> modules.
> 
> I am including the code snippet for reference below. Any help would be

> appreciated.
> 
> Sincerely
> Kevin Clancy
> 
> Kevin Clancy, PhD
> Senior Bioinformatics Scientist
> InforMax: Invitrogen Life Science Software
> phone: 720 746 3707
> email: kclancy at informaxinc.com
> 433 Park Point Drive, Suite 275
> Golden, CO 80401
> 
> #!/usr/bin/perl
> use strict;
> use Bio::SeqIO;
>  # Tests preservation of details during round-trip conversion:  # 
> $readformat -> BSML -> $readformat
> 
>  my $tempspot = "./bsmltemp";                     # temp folder to
hold generated files
>  my $readfile = "test.genbank";                     # The name of the
file you want to test
>  my $readformat = "genbank";                      # The format of the
file being tested system "mkdir $tempspot"
>                                                                     # 
> unless (-d $tempspot);
> 
>  # Make Seq object from the $readfile
>  my $biostream = Bio::SeqIO->new( -file => "$readfile" );
>  my $seq = $biostream->next_seq();              # Write BSML from
SeqObject
>  my $bsmlout = Bio::SeqIO->new( -format => 'bsml',
>                                                       -file => 
> ">$tempspot/out.bsml");  warn "\nBSML written to 
> $tempspot/out.bsml\n";  $bsmlout->write_seq($seq);
> 
>  # Need to kill object for following code to work... Why is this so?
>  $bsmlout = "";                                                # Make
Seq object from BSML
>  my $bsmlin = Bio::SeqIO->new( -file => "$tempspot/out.bsml",
>                                                    -format => 'bsml');
>  my $seq2 = $bsmlin->next_seq();                   # Write format back
from Seq Object
>  my $genout = Bio::SeqIO->new( -format => $readformat,
>                                                      -file => 
> ">$tempspot/out.$readformat");  $genout->write_seq($seq2);  warn 
> "$readformat  written to $tempspot/out.$readformat\n";

-- 
Charles Tilford, Bioinformatics-Applied Genomics
Bristol-Myers Squibb PRI, Hopewell 3A039
P.O. Box 5400, Princeton, NJ 08543-5400, (609) 818-3213
charles.tilford at bms.com



More information about the Bioperl-l mailing list