Извлечь последовательность экзонов из базы данных 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
Спасибо за вашу помощь