我尝试解析GenBank文件,以便获取入藏号,定义,文件大小和DNA序列
有没有办法修改我的代码并使其更短,只需像在书中那样一次声明所有变量,并用一两个代码块解析文件?
答案 0 :(得分:1)
如果您有权访问Bio Perl,则可能会找到以下解决方案。
#!/usr/bin/perl
use strict;
use warnings;
use Bio::SeqIO;
my $in = Bio::SeqIO->new( -file => "input.txt",
-format => 'GenBank');
while ( my $seq = $in->next_seq ) {
my $acc = $seq->accession;
my $length = $seq->length;
my $definition = $seq->desc;
my $type = $seq->molecule;
my $organism = $seq->species->binomial;
if ($type eq 'mRNA' &&
$organism =~ /homo sapiens/i &&
$acc =~ /[A-Za-z]{2}_[0-9]{6,}/ )
{
print "$acc | $definition | $length\n";
print $seq->seq, "\n";
print "\n";
}
}
我能够从我拥有的样本GenBank文件(input.txt)中捕获5个变量。它应该简化你的代码。