У меня проблема с генератором последовательности. У меня есть файл, где каждая строка содержит один фрагмент (8 букв). Я загружаю его из файла в список, где каждый элемент представляет собой один фрагмент. Это ДНК, поэтому так и должно быть:
1. Принимает первый 8-буквенный элемент
2. Проверьте элемент, в котором первые 7 букв совпадают с последними 7 буквами в первой.
3. Добавьте восьмую букву из второго элемента в последовательность.
Это должно выглядеть так:
ATTGCCAT
TTGCCATA
TGCAATAC
Итак, последовательность: ATTGCCATAC
К сожалению, он добавляет только один элемент. :( Первый элемент задан (мы знали это). Я делаю это таким образом, его первым в файле (первая строка).
Вот код:
from os import sys
import random
def frag_get(seqfile):
frags = []
f_in = open(seqfile, "r")
for i in f_in.readlines():
frags.append(i.strip())
f_in.close()
return frags
def frag_list_shuffle(frags):
random.shuffle(frags)
return frags
def seq_build(first, frags):
seq = first
for f in frags:
if seq[-7:] == f[:7]:
seq += f[-1:]
return seq
def errors():
pass
if __name__ == "__main__":
frags = frag_get(sys.argv[1])
first = frags[0]
frags.remove(first)
frags = frag_list_shuffle(frags)
seq = seq_build(first, frags)
check(sys.argv[2], seq)
spectrum(sys.argv[2], sys.argv[3])
Я удалил функции проверки и спектра, потому что это простые вычисления, например Сравнение длины, так что это не то, что вызывает проблемы, как я думаю.
Я буду очень благодарен за помощь!
С уважением,
Матеуш