У меня есть 1-й файл (Delta_spike_sorted.fasta) в формате:
>lcl|KJ584357.1
AAAAA
>lcl|JQ065046.1
GGGGG
и 2-й файл (Delta_final.fasta) в формате:
>KJ584357.1 Porcine coronavirus HKU15 strain KY4813, complete genome
TTTTTT
>JQ065046.1 Magpie-robin coronavirus HKU18 strain HKU18-chu3, complete genome
CCCCCC
I ' m пытается написать сценарий для замены> lcl ... 1-го файла эквивалентным заголовком 2-го файла, сопоставив их идентификаторы (те, которые находятся рядом с lcl). Окончательный результат должен быть примерно таким:
>Porcine coronavirus HKU15 strain KY4813
AAAAA
>Magpie-robin coronavirus HKU18 strain HKU18-chu3
GGGGG
Теперь, когда я снова это вижу, возможно, использование хэшей будет наиболее подходящим вариантом (извините за множество ошибок, это мой первый пост здесь, также я по программированию новичок)
#!/usr/bin/perl -w
open (FIN, "< coronavirus_complete/complete_final/Delta_final.fasta") or die "unable to open FIN \n";
open (FH, "< coronavirus_cds/Spikes/Spikes_complete/sorted/Delta_spike_sorted.fasta") or die "unable
to open FH \n";
while ($line=<FH>){
if ($line =~ /^>/){
chomp($line);
$acc=substr($line,5,9);
#print "$acc\n";
}
while ($string=<FIN>){
if ($string =~ /^>/){
chomp ($string);
$gen=substr($string,12);
#print "$gen\n";
}
if ($acc =~ /\Q$string/){
$line =~ s/$line/$gen/g;
print "$acc\n";
}
}