Извлечь последовательность экзонов из базы данных mysql с помощью Bio::DB::SeqFeature::Store

Я загрузил геномную последовательность fastta и ее файл GFF3 в локальную базу данных mysql, используя "bp_seqfeature_load.pl". Теперь я хочу извлечь последовательность из позиции 100-2000 в цепочке "-" хромосомы 1 и напечатать последовательность экзонов между 100-2000 в формате fasta. Следующий код извлекает последовательность из 100-2000 с "+" цепью. Не могли бы вы исправить мою программу. Я буду использовать эту программу для нескольких запросов (позиция геномики), а не только один (100-2000).

 #!/usr/bin/perl
 use Getopt::Long;
 use File::Spec;
 use Bio::DB::SeqFeature::Store;
 use Bio::SeqIO;
 #use Carp::Always;

 my $DSN;
 my $ADAPTOR;
 my $VERBOSE  = 1;
 my $USER     = '';
 my $PASS     = '';
 my @gff3opt;
 my @information;
 GetOptions(
       'dsn=s'       => \$DSN,
       'adaptor=s'   => \$ADAPTOR,
       'user=s'      => \$USER,
       'password=s'  => \$PASS,
       'gff3opt=i{,}'    => \@gff3opt,
      ) || die <<END;

   Options:
           -d --dsn        The database name ($DSN)
           -a --adaptor    The storage adaptor to use ($ADAPTOR)
           -u --user       User to connect to database as
           -p --password   Password to use to connect to database
           -g --gff3opt    flag options to gff3_string (i.e.: pass -gffopt 1 to recurse)

 END

 $ADAPTOR     ||= 'DBI::mysql';
 $DSN         ||= $ADAPTOR eq 'DBI::mysql' ? "mysql_read_default_file=$ENV{HOME}/.my.cnf" : '';

 my $store = Bio::DB::SeqFeature::Store->new(
                                        -dsn     => $DSN,
                                        -adaptor => $ADAPTOR,
                                        -user    => $USER,
                                        -pass    => $PASS,
                                       )
   or die "Couldn't create connection to the database";

 # on signals, give objects a chance to call their DESTROY methods
 $SIG{TERM} = $SIG{INT} = sub {   undef $store; die "Aborted..."; };


 @information = $store->fetch_sequence(-seqid=>'I',-start=>100,-end=>2000);
 for my $f (@information){

     print "$f\n";
 }

Следующая команда была использована для запуска скрипта:

./program.pl -d имя_базы_данных -u пароль пользователя -p

Спасибо за вашу помощь

0 ответов

Другие вопросы по тегам