Опитвам се да напиша скрипт, който преобразува всеки алел (A, T, G или C) в моя файл в 0 или 1 в зависимост от неговото състояние на предците в тази позиция, което е записано в друг файл "DAF.txt" I има два файла. Те са подредени въз основа на геномна позиция, но съдържат различна информация.
Файл 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" в file.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? Това е голям файл...