Я работаю над некоторыми данными генома, и у меня есть 2 файла ->
Файл1
A1 1 10
A1 15 20
A2 2 11
A2 13 16
Файл2
>A1
CTATTATTTATCGCACCTACGTTCAATATTACAGGCGAACATACCTACTA
AAGTGTGTTAATTAATTAATGCTTGTAGGACATAATAATAACAATTGAAT
>A2
GTCTGCACAGCCGCTTTCCACACAGACATCATAACAAAAAATTTCCACCA
AACCCCCCCCTCCCCCCGCTTCTGGCCACAGCACTTAAACACATCTCTGC
CAAACCCCAAAAACAAAGAACCCTAACACCAGCCTAACCAGATTTCAAAT
В файле 1, 2 и 3столбец представляет индексы в File2.Поэтому я хочу, чтобы, если символ в столбце1 файла1 совпадал с символом, за которым следует символ (>) в файле2, то из следующей строки этого файла2 возвращать подстроку в соответствии с индексами в столбцах col2 и col3 файла1.(извините, я знаю, это сложно) Вот вывод желаний ->
Вывод
>A1#1:10
CTATTATTTA
>A1#15:20
ACCTA
>A2#2:11
TCTGCACAGC
>A2#13:16
GCTT
Я знаю, что если у меня есть только 1 строка, я могу очень легко извлечь подстроку ->
@ARGV or die "No input file specified";
open $first, '<',$ARGV[0] or die "Unable to open input file: $!";
$string="GATCACAGGTCTATCACCCTATTAACCACTCACGGGAGCTCTCCATGCAT";
while (<$first>)
{
@cols = split /\s+/;
$co=$cols[1]-1;
$length=$cols[2]-$co;
$fragment = substr $string, $co, $length;
print ">",$cols[0],"#",$cols[1],":",$cols[2],"\n",$fragment,"\n";
}
но здесь моя проблема в том, когда я должен ввести свой второй файл и как мне сопоставить символ в столбце col1 (файла1) с символом в файле2 (за которым следует> символ), а затем получить подстроку