[Bioperl-l] a problem when using the Bio::DB::Fasta

Guifeng Wei guifengwei at gmail.com
Mon Aug 23 22:44:57 EDT 2010


Hi,

i came across a problem when i use the Bio::DB::Fasta modules of
BioPerl. The aim i want to arrive at is to extract the subsequences
accoording to the *.bed files which are the C.elegans genomic sequnece
annotation.

when i tried to run the scripts i wrote, the error message was coming, as
follows:

Can't call method "seq" on an undefined value at bed_to_fasta.pl line 28,
<IN> line 1.

so, ask for favor to slove this problem.
Here is my perl scripts.

#!/usr/bin/perl -w
# Purpose: extract sequences from genomic sequences
use strict;
use Bio::DB::Fasta;
open(IN,$ARGV[0]) || die "sorry, the program cannot open the .bed file, plea
check it. \n";
my $db = Bio::DB::Fasta->new( '/home/wgf/elegans190.dna/' );
# The dir ...../elegans190.dna/ includes 6
files:chrI,chrII,chrIII,chrIV,chrV,chrX,
#each stands for the sequences from the coressponding chromosome.

while(<IN>){
        chomp $_;
        my @bed=split(/\s+/, $_ );

        my $chr_id=$bed[0];
        my $start=$bed[1];
        my $end=$bed[2];
        my $seq_name=$bed[3];
        my $strand=$bed[5];

        my $segment =  $db->seq( $chr_id, $start=>$end );

        print ">",$seq_name,"_",$chr_id,":",$start=>$end;
        print "$segment\n";

}

close(IN);



More information about the Bioperl-l mailing list