Я пытаюсь написать скрипт, который преобразует каждый аллель (A, T, G или C) в моем файле в 0 или 1 в зависимости от его исходного состояния в этой позиции, которая сохраняется в другом файле «DAF.txt». есть два файла. Они упорядочены в зависимости от положения в геноме, но содержат разную информацию.
Файл 1: Аллели
1 2 3 4 ...900000
A G T C G
G A G G C
A A T C C
DAF.txt: родовой статус
1 A
2 A
3 T
4 G
...900000 C
DAF.txt служит своего рода эталоном для файла 1. Каждая строка файла 1 должна сравниваться столбец за столбцом с каждой строкой в DAF.txt. Если буква в столбце 1, строка 1 в файле 1 == буква в строке 1 в DAF.txt, тогда мне нужно заменить эту букву или напечатать «0» в новом файле на его месте, file.hap, иначе, если буквы в файлах не совпадают в этой позиции, затем напечатать «1», чтобы файл.hap. Порядок имеет значение. file.hap должен быть в том же порядке, что и файл 1.
В итоге file.hap должен выглядеть так:
1 2 3 4 ...900000
0 1 0 1 1
1 0 1 0 0
0 0 0 1 0
Любые предложения для того, чтобы сделать это в Perl? Это большой файл...