【问题标题】:Biopython+File IO operation - TypeError: expected a character buffer objectBiopython+File IO 操作 - TypeError: expected a character buffer object
【发布时间】:2015-04-30 02:33:27
【问题描述】:

在实际处理序列之前,我尝试使用 Biopython 读取 FASTA 文件并将其再次写入另一个文件。

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

TypeError: 需要一个字符缓冲区对象

我收到了上面提到的错误。有人可以帮我理解错误吗?

谢谢。

【问题讨论】:

  • 一切正常,你确定ref_seq 是字符串类型吗?
  • 问题可能是ref_seq 的类型是Bio.Seqstr(ref_seq) 应该可以解决问题。
  • @anmol_uppal ref_seq 是具有从 fasta 文件中读取的序列的变量。
  • @cnluzon 谢谢,我会试试的。 Bio.Seq 类型是什么意思?它是另一种类型的变量,如字符串、整数吗?
  • 谢谢@cnluzon的解释

标签: python file-io biopython


【解决方案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()

input.fasta:

>165613

TAACTGCAGTGTTTTGTGTCGAGC

>165875

GGGATCTTCGGACCTCGT

你得到以下输出

Ref Seq 的长度:TAACTGCAGTGTTTTGTGTCGAGC 为 24

Ref Seq 的长度:GGGATCTTCGGACCTCGT 为 18

【讨论】:

  • 感谢您的示例和解决方案。
猜你喜欢
  • 1970-01-01
  • 2021-03-30
  • 1970-01-01
  • 1970-01-01
  • 2021-02-25
  • 2012-02-22
  • 2022-12-02
  • 1970-01-01
  • 2018-07-13
相关资源
最近更新 更多