Этот код предназначен для извлечения и разделения последовательностей из файла fasta.
outfile=open('outf','w')
for line in open('input'):
if line[0]==">":
outfile.write('\n')
else:
outfile.write(line.strip())
outfile.close()
all_codons=[]
for line in open('outf', 'r'):
seq=line.strip()
codons = [seq[i:i+3] for i in xrange(0, len(seq), 3) if len(seq[i:i+3])==3]
all_codons.append(codons)
Затем из разделенных последовательностей я хочу взять три последовательности, длина которых составляет 9 (9 оснований), например:
CGTAACAAG
AATCCGGAG
CCGCCTCGG
Я разбиваю первую последовательность на 3 подпоследовательности по три основания, так что из одной последовательности получаю 3 подпоследовательности, то же самое делаю для двух других последовательностей.
Так:
CGT AAC AAG
AAT CCG GAG
CCG CCT CGG
пример:
identical_segment('CGT')
Я хочу применить эту функцию к каждой подпоследовательности трех последовательностей, а затем применить то же самое ко всем файлам fasta. Итак, цель состоит в том, чтобы получить матрицу, например, я беру первую подпоследовательность «CGT» и применяю функцию идентичный_сегмент(), она возвращает 28, то же самое для остальных 8 подпоследовательностей. Итак, я получаю матрицу (3,3):
28 2 3
4 23 35
23 4 27
Что я могу сделать?