Я пытаюсь извлечь информацию из мультифаст-файла (например, C / G / A / T count, CG%), используя biopython. Я продолжаю сталкиваться с проблемами, когда пытаюсь перебрать файл для каждой последовательности fast-fast - я могу получить только первый, который будет распечатан.
Я подозреваю, что это может быть связано с моим форматом файла, поскольку это не настоящий файл fastta, но я не знаю, как мне это изменить.
input_file = open("inputfile.fa", 'r')
output_file = open('nucleotide_counts.txt','w')
output_file.write('Gene\tA\tC\tG\tT\tLength\tCG%\n')
#count nucleotides in this record..gene_name = cur_record.name
from Bio import SeqIO
for cur_record in SeqIO.parse(input_file, "fasta"):
gene_name = cur_record.name
A_count = cur_record.seq.count('A')
C_count = cur_record.seq.count('C')
G_count = cur_record.seq.count('G')
T_count = cur_record.seq.count('T')
length = len(cur_record.seq)
cg_percentage = (float(C_count + G_count) / length)*100
output_line = '%s\t%i\t%i\t%i\t%i\t%i\t%f\n' % \
(gene_name, A_count, C_count, G_count, T_count, length, cg_percentage)
output_file.write(output_line)
output_file.close()
input_file.close()
Вот так выглядит моя мультифаста (с указанием начала и конца)
>1:start-end
CGCCCCAGTGATGTAGCCGAA
>1:start-end
CGGCCACCCCGAAGCGTGGGG
И мой выходной файл содержит только одну строку:
Gene A C G T Length CG%
1:start-end 85 115 180 59 439 67.198178