[Bioperl-l] Re: problems converting bsml to another file type
Charles Tilford
charles.tilford at bms.com
Mon Apr 14 10:09:02 EDT 2003
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/SeqIO/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