У меня есть последовательность ДНК, например, ATCGATCG. У меня также есть база данных последовательностей ДНК, отформатированная следующим образом:
>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;
Есть ли способ вернуть имя последовательности с наибольшим процентом совпадения, а также процентное совпадение между записью и последовательностью в базе данных?
String::Approx
поможет вам здесь. - person Zaid   schedule 16.08.2016this post
. Лучше найдите модуль, напримерText::Fuzzy
должен сделать это. - person zdim   schedule 16.08.2016