Операция ввода-вывода Biopython + File - TypeError: ожидается объект символьного буфера

Я попытался прочитать файл FASTA с помощью Biopython и снова записать его в другой файл, прежде чем выполнять фактическую обработку последовательности.

w.write('Length of the Ref Seq: '+ ref_seq + ' is '+ str(len(ref_seq))+'\n')

TypeError: ожидается объект символьного буфера

Я получил ошибку, упомянутую выше. Может ли кто-нибудь помочь мне понять ошибку?

Спасибо.


person Prradep    schedule 28.04.2015    source источник
comment
Все выглядит нормально, вы уверены, что ref_seq имеет строковый тип?   -  person ZdaR    schedule 28.04.2015
comment
Проблема, вероятно, в том, что ref_seq относится к типу Bio.Seq, str(ref_seq) должно помочь.   -  person cnluzon    schedule 28.04.2015
comment
@anmol_uppal ref_seq — это переменная, содержащая последовательность, считанную из файла fasta.   -  person Prradep    schedule 28.04.2015
comment
@cnluzon Спасибо, попробую. Что означает тип Bio.Seq? Это другой тип переменной, такой как строка, целое число?   -  person Prradep    schedule 28.04.2015
comment
@Prradep Seq — это класс, реализованный Biopython. По сути, он включает в себя string, содержащую саму последовательность, а также связанный с ней алфавит, в зависимости от типа используемой вами последовательности (это может быть ДНК, РНК, белок). Дополнительную информацию об этом можно найти в документации Biopython: biopython.org/wiki/Seq   -  person cnluzon    schedule 29.04.2015
comment
Спасибо за объяснение @cnluzon   -  person Prradep    schedule 30.04.2015


Ответы (1)


следующий код решает проблему

from Bio import SeqIO
in_file = open("input.fasta")
records = SeqIO.parse(in_file, format="fasta")
out_file = open("output.txt", "w")
for mySeq in records:
  out_file.write('Length of the Ref Seq: '+ str(mySeq.seq) + 
                 ' is '+ str(len(mySeq.seq))+'\n')

out_file.close()

вход.фаста:

>165613

TAACTGCAGTGTTTTGTGTCGAGC

>165875

GGGATCTTCGGACCTCGT

вы получаете следующий вывод

Длина Ref Seq: TAACTGCAGTGTTTTGTGTCGAGC равна 24.

Длина Ref Seq: GGGATCTTCGGACCTCGT равна 18.

person Jose Ricardo Bustos M.    schedule 29.04.2015
comment
Спасибо за пример и решение. - person Prradep; 30.04.2015