我有一个DNA序列,例如ATCGATCG。我也有格式化的DNA序列的数据库,如下所示:Perl:返回字符串的最高百分比匹配
>Name of sequence1
SEQUENCEONEEXAMPLEGATCGATC
>Name of sequence2
SEQUENCETWOEXAMPLEGATCGATC
(所以奇数行包含名称和偶数行包含一个序列) 目前,我寻找我的序列之间的完美匹配在如下数据库序列(假设所有的变量声明):
my $name;
my $seq;
my $returnval = "The sequence does not match any in database";
open (my $database, "<", $db1) or die "Can't find db1";
until (eof $database){
chomp ($name = <$database>);
chomp ($seq = <$database>);
if (
index($seq, $entry) != -1
|| index($entry, $seq) != -1
) {
$returnval = "The sequence matches: ". $name;
last;
}
}
close $database;
有什么办法,我返回比例最高的匹配序列的名称以及匹配百分比有入口和之间数据库中的序列?
数据库有多大? – Zaid
不确定['String :: Approx'](https://metacpan.org/pod/String::Approx)是否可以帮助你。 – Zaid
你可以分解你的字符串并按char排列,尽管它很挑剔。例如,就像['这篇文章'](http://stackoverflow.com/questions/9106978/perl-partial-match)中所做的一样。更好的是,找到一个模块 - 例如['Text :: Fuzzy'](http://search.cpan.org/~bkb/Text-Fuzzy-0.24/lib/Text/Fuzzy.pod)应该这样做。 – zdim