[Bioperl-l] Navigating a genbank file

Jason Stajich jason.stajich at gmail.com
Fri Feb 24 06:49:38 UTC 2012


You just need a $last_CDS variable.
Here's code that does this for genes retrieved from Bio::DB::SeqFeature but the concept is the same.

https://github.com/hyphaltip/genome-scripts/blob/master/seqfeature/get_intergenic_seq.pl

On Feb 23, 2012, at 4:43 PM, Adlai Burman wrote:

> I am struggling with Bioperl to do something which I know is simple (I stumbled on it before, but it was just by dumb luck and I forgot how it is done). Basically what I am trying to do is, given a target gene symbol extract the intergenic region between that CDS and the next one 3'. One ugly way I could do this would be:
> (1) Make an array of all of the CDSs in each gb file
> (2) Make a second run through the file using either the symbol prior or post the target symbol (depending on the strand of the target symbol).
> 
> This is, of course, cumbersome and unnecessary but I can't figure out how it should be done.
> Here is a skeletal version of what I understand about getting feature info with bioperl.
> Can anyone help me figure out how to access the CDS features on either side?
> Please?
> Thank you,
> 
> Adlai
> 
> #!/usr/bin/perl                                                                                                     
> use strict;
> use warnings;
> use IO::String;
> use Bio::Perl;
> use Bio::SeqIO;
> use IO::String;
> 
> 
> my $target_sym = shift;
> my $file = "../Dropbox/local_gb/*";
> 
> my $seqio = Bio::SeqIO-> new(
>                             -file     => $file,
>                             -format => 'GenBank',
>    );
> 
> my $seq = $seqio->next_seq;
> for my $feats ($seq->get_SeqFeatures){
> if ($feats->primary_tag eq "CDS"){
>  my $start = $feats->location->start;
> my $end = $feats->location->end;
> my $strand = $feats->strand;
> if ($feats->has_tag('gene')) {
>     for my $val ($feats->get_tag_values('gene')){
> if ($val eq $target_sym){
> print $start."\n";
> print "$val\n";
>  }
> 
> }
> }
> }
> }
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/bioperl-l

Jason Stajich
jason.stajich at gmail.com
jason at bioperl.org





More information about the Bioperl-l mailing list