Я пытаюсь сравнить каждый элемент столбца 1 из одного списка ( screens.txt ) с любым элементом столбца 1 из другого списка ( new_list.txt ), и если совпав, выведите всю строку списка ( screens.txt ) в отдельном текстовом файле ( matched.txt ). Мне удалось выбрать правильные столбцы, но на выходе я получаю строки из списка ( new_list.txt ) вместо списка ( screens.txt ), и был найден только один удар так что, похоже, есть проблема с al oop.
new_list.txt format => first_column-> double_tab-> the_rest
Я очень новичок в perl программировании. Любая помощь будет очень признательна!
Вот то, что я go до сих пор:
#!usr/bin/perl
use warnings;
$list = "new_list.txt";
$screens = "screens.txt";
$result = "matched.txt";
open (FA, "<$list") or die "Can't read source file $list: $!\n";
open (RES, ">$result") or die "Can't write on file $result: $!\n";
$n = 0;
$column = 10;
while ($line = <FA>) {
@description = split (' ', $line);
@ID = split ('\\t', $description[0]);
#print just first column from the list
# print "$ID[0]\n";
}
close (FA);
open (FA, "$screens") or die "Can't read source file $screens: $!\n";
while ($file = <FA>) {
@table = split (' ', $file);
@accession_no = split ('\ ', $table[0]);
# print the first column from the list
# print "$accession_no[0]\n";
}
open (FA, "<$list") or die "Can't read source file $list: $!\n";
while ($line = <FA>) {
print "$line\n";
@description = split (' ', $line);
@ID = split ('\\t', $description[0]);
if ($accession_no eq $ID[0]) {
$n = $n+1;
for ($i = 0; $i < $column; $i++) {
print RES "$file";
}
print "\n";
}
}
close (FA);
close (RES);
print "Hits found: $n\n";
Вот пример next_list.txt: Q9UKA8 RCAN3_HUMAN 0
Q9UKA8-2 RCAN3_HUMAN 0
Q9UKA8-3 RCAN3_HUMAN 0
Q9UKA8-4 RCAN3_HUMAN 0
Q9UKA8-5 RCAN3_HUMAN 0
QGFZGG
здесь находится входной файл из screens.txt:
Q9GZP0 GDLDLASEST Коэффициент привязки к каркасу B2 (SAF-B2) SAFB2
Q9UKA8-5 QKAFNSSSFN Ran GTPase-активирующий белок 1 (RanGAP1) RANGAP1
Я заинтересован в проверке, если Q9GZP0 и Q9UKA8-5 (первый столбец)
с экранов . txt находится в первом столбце new_list.txt , и если они
, то выводят всю строку / строку из screens.txt .
Заранее спасибо!