[Bioperl-l] Using Bio::SeqUtils->cat()
Roy Chaudhuri
roy.chaudhuri at gmail.com
Mon Jun 6 12:36:53 UTC 2011
Hi Trina,
That's probably how cat should work, but in fact the first sequence in
the list is modified by concatenating on the other sequences. The
function just returns 1 if it worked. So you need code like:
Bio::SeqUtils->cat(@seqs);
my $mergedseqs=$seqs[0];
You can blame the idiot who wrote that code for the slightly awkward
interface (sorry). I think the module documentation is correct, but let
us know if you think it should be clarified.
Cheers,
Roy.
On 06/06/2011 13:21, Trina McMahon wrote:
> Hello everyone,
>
> I am a complete (bio)perl neophyte and am struggling with what should
> be some very basic code.
>
> I am trying to write a simple script to merge a bunch of gbk
> sequences into one big sequence, while preserving the feature
> coordinates. I was so proud of myself because I found this function
> in Bio::SeqUtils called cat(). But I can't figure out how the hell
> to make it work!!!
>
> I'm attaching the script that I wrote below. Can you help me figure
> out what is wrong? I did some troubleshooting and I am pretty sure
> it is the Bio::SeqUtils->cat() function that is the problem. It
> seems like it should return a seq object but if you look at the
> original code in the documentation online I am not sure.
>
> thanks!! trina
>
> #!/usr/local/ActivePerl-5.10/bin/perl # #
>
> use strict; use warnings; use Bio::SeqIO; use Bio::SeqUtils; use
> Getopt::Long;
>
> # get command-line arguments, or die with a usage statement
>
> my $USAGE=<<USAGE;
>
> * catgb *
>
> concatenates multiple genbank records and adjusts feature coordinates
> in the final merged sequence
>
> catgb -i listofseqs.gbk -o mergedseqs.gbk
>
>
> USAGE
>
> my ($help,$infile,$outfile);
>
> GetOptions ( 'h|help' => \$help, 'i|infile=s' =>
> \$infile, 'o|outfile=s' => \$outfile, );
>
> ########################################################################
>
> if ($help) { die $USAGE; } if (!$infile) { die "$USAGE\nNo
> input file! (-infile)\n"; } if (!$outfile) { die "$USAGE\nNo
> output file! (-outfile)\n"; }
>
> my @seqs;
>
>
> my $seqin = Bio::SeqIO->new(-file => $infile, -format=>"genbank");
> my $seqout = Bio::SeqIO->new(-file=> ">$outfile", -format =>
> "genbank");
>
>
> # create an array to hold the sequences from infile while (my $seq =
> $seqin->next_seq) { push (@seqs, $seq);
>
> }
>
> # concatenate the sequenes held in the array @seqs my $mergedseqs =
> Bio::SeqUtils->cat(@seqs);
>
> # write the new merged sequence into the specified file
>
> $seqout->writeseq($mergedseqs);
>
> exit;
> -------------------------------------------------------------------------------------
>
>
Katherine (Trina) McMahon, Associate Professor
> Goddess of Funkosity Departments of Civil and Environmental
> Engineering and Bacteriology Environmental Chemistry and Technology
> Program Limnology and Marine Science Program Microbiology Doctoral
> Training Program
>
> **On sabbatical leave starting August 20, 2010**
>
> Mailing Address: 3204 Engineering Hall, 1415 Engineering Drive
> University of Wisconsin - Madison, Madison, WI 53706-1691
>
> Alternate Office: 5552 Microbial Sciences Building
>
> Phone: 608/890-2836 Fax: 608/262-9865 Email:
> tmcmahon at engr.wisc.edu McMahon Lab:
> http://www.engr.wisc.edu/cee/faculty/mcmahon_katherine.html North
> Temperate Lakes Microbial Observatory:
> http://microbes.limnology.wisc.edu/
>
> -------------------------------------------------------------------------------------
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> _______________________________________________ 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