[Bioperl-l] Bioperl-l Digest, Vol 71, Issue 15

Govind Chandra govind.chandra at bbsrc.ac.uk
Fri Mar 27 15:26:02 UTC 2009


Hi,

The code below


====== code begins =======
#use strict;
use Bio::SeqIO;

$infile='NC_000913.gbk';
my $seqio=Bio::SeqIO->new(-file => $infile);
my $seqobj=$seqio->next_seq();
my @features=$seqobj->all_SeqFeatures();
my $count=0;
foreach my $feature (@features) {
  unless($feature->primary_tag() eq 'CDS') {next;}
  print($feature->start(),"   ", $feature->end(), "   ",$feature->strand(),"\n");
  $ac=$feature->annotation();
  $temp1=$ac->get_Annotations("locus_tag");
  @temp2=$ac->get_Annotations();
  print("$temp1   $temp2[0] @temp2\n");
  if($count++ > 5) {last;}
}

print(ref($ac),"\n");
exit;

======= code ends ========

produces the output

========== output begins ========

190   255   1
0    
337   2799   1
0    
2801   3733   1
0    
3734   5020   1
0    
5234   5530   1
0    
5683   6459   -1
0    
6529   7959   -1
0    
Bio::Annotation::Collection

=========== output ends ==========

$ac is-a Bio::Annotation::Collection but does not actually contain any
annotation from the feature. Is this how it should be? I cannot figure
out what is wrong with the script. Earlier I used to use has_tag(),
get_tag_values() etc. but the documentation says these are deprecated.

Perl is 5.8.8. BioPerl version is 1.6 (installed today). Output of uname
-a is

Linux n61347 2.6.18-92.1.6.el5 #1 SMP Fri Jun 20 02:36:06 EDT 2008
x86_64 x86_64 x86_64 GNU/Linux

Thanks in advance for any help.

Govind






More information about the Bioperl-l mailing list