[Bioperl-l] Using Bio::SeqUtils->cat()

Trina McMahon tmcmahon at cae.wisc.edu
Mon Jun 6 12:21:16 UTC 2011


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/

-------------------------------------------------------------------------------------

















More information about the Bioperl-l mailing list