[Bioperl-l] extracting CDS location from Genbank

Chris Fields cjfields at uiuc.edu
Tue Dec 4 11:20:34 EST 2007


The 'my $file = shift;' is a perl idiom.  The built-in 'shift' used  
implicitly in this way uses @ARGV (from command line); the file would  
the be passed as the first arg when running the script:

get_features.pl myfile.gb

This should work for any OS.  Personally, I use something like the  
following to indicate how the script is used in case a file is never  
entered:

my $USAGE = <<END_USE;
USAGE: get_features.pl <file>
Perl script to grab features from a GenBank file and print to a table
END_USE

my $file = shift || die $USAGE;

chris

On Dec 4, 2007, at 9:41 AM, Captainrave wrote:

>
> #!/bin/perl
>
> use strict;
> use Bio::SeqIO;
> my $file = shift; # get the file name, somehow
> my $seqio_object = Bio::SeqIO->new(-file => $file);
> my $seq_object = $seqio_object->next_seq;
>
> for my $feat_object ($seq_object->get_SeqFeatures) {
>   print "primary tag: ", $feat_object->primary_tag, "\n";
>   for my $tag ($feat_object->get_all_tags) {
>      print "  tag: ", $tag, "\n";
>      for my $value ($feat_object->get_tag_values($tag)) {
>
>         print "    value: ", $value, "\n";
>      }
>   }
> }
>
> exit;
>
> The file is on the same folder.  But how do I tell it to use this  
> file?
>
>
>
> michael watson (IAH-C) wrote:
>>
>> Post the script that produces that error, and your file's location
>>
>> -----Original Message-----
>> From: bioperl-l-bounces at lists.open-bio.org
>> [mailto:bioperl-l-bounces at lists.open-bio.org] On Behalf Of  
>> Captainrave
>> Sent: 04 December 2007 15:07
>> To: Bioperl-l at lists.open-bio.org
>> Subject: Re: [Bioperl-l] extracting CDS location from Genbank
>>
>>
>> Yes but actually implementing it is another story.
>>
>> I get an error:
>>
>> ------------- EXCEPTION: Bio::Root::Exception -------------
>> MSG: file argument provided, but with an undefined value
>> STACK: Error::throw
>> STACK: Bio::Root::Root::throw C:/Perl/site/lib/Bio/Root/Root.pm:359
>> STACK: Bio::SeqIO::new C:/Perl/site/lib/Bio/SeqIO.pm:359
>> STACK: test3.pl:7
>> -----------------------------------------------------------
>>
>> Basically because I dont understand the code well enough.  For  
>> example,
>> how
>> do I tell it which input file to read? I know this might sound  
>> stupid,
>> but I
>> dont understand the Biowiki very well!
>>
>> -- 
>> View this message in context:
>> http://www.nabble.com/extracting-CDS-location-from-Genbank-tf4942483.htm
>> l#a14152264
>> Sent from the Perl - Bioperl-L mailing list archive at Nabble.com.
>>
>> _______________________________________________
>> Bioperl-l mailing list
>> Bioperl-l at lists.open-bio.org
>> http://lists.open-bio.org/mailman/listinfo/bioperl-l
>>
>> _______________________________________________
>> Bioperl-l mailing list
>> Bioperl-l at lists.open-bio.org
>> http://lists.open-bio.org/mailman/listinfo/bioperl-l
>>
>>
>
> -- 
> View this message in context: http://www.nabble.com/extracting-CDS-location-from-Genbank-tf4942483.html#a14152907
> Sent from the Perl - Bioperl-L mailing list archive at Nabble.com.
>
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/bioperl-l

Christopher Fields
Postdoctoral Researcher
Lab of Dr. Robert Switzer
Dept of Biochemistry
University of Illinois Urbana-Champaign





More information about the Bioperl-l mailing list