我一直在使用模块使用 Bio::DB::Fasta 来访问 fasta 文件(此处的文档:https ://metacpan.org/pod/Bio::DB::Fasta#OBJECT-METHODS )。我发现这比使用 Samtools 从 fasta 文件中提取位置要快得多。但是,我想知道是否有人知道如果查询包含超出 fasta 最大长度的位置会发生什么。
今天,在一次查询中,我尝试访问 fasta 中的位置,该位置超出了 fasta 中的最大位置。但是,在这种情况下,该方法没有给出错误。我的 fasta 文件包含 0/1 个碱基,返回的输出是“1”。我想知道这是否是一个错误,或者实际上它提供了有效的输出但位置错误。我尝试查看文档,但找不到有关错误代码的任何信息。
我的代码如下:
use strict;
use warnings;
use Bio::DB::Fasta;
my $maskFile = "1KG_maskfile.fa";
my $db = Bio::DB::Fasta->new($maskFile);
my $chrom = "chr1";
my $start = 300240548;
my $end = 300240548;
my $query = "$chrom:$start-$end";
my $seq = $db->seq($query, $start, $end); # also tried $seq = $db->seq($query);
print $seq, "\n";
注意:在 1KG_maskfile.fa 中,最大位置为 249224750(基于字符数,不包括标题)。