SeqIO.parse Biopython - какой формат файла мне следует указать? - PullRequest
1 голос
/ 11 апреля 2019

Я пытаюсь извлечь информацию из мультифаст-файла (например, 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
...