0
我想用biopython模块Bio/Graphics/BasicChromosome.py生成一个核型图像。 这里是我的代码python3 renderPM(?)filehandle pb(通过biopython)
import sys
import pprint # debug
from Bio.Graphics import BasicChromosome
diagram = BasicChromosome.Organism()
diagram.output_format = "pdf"
# Ok, it works
# diagram.draw("toto.pdf", "test")
# this one fail.
with open("toto.pdf", 'w') as o_out:
diagram.draw(o_out, "test")
这个脚本生成一个空的图,只有在PDF文档中的标题为“测试”。至少它应该,而且实际上它与python2。
随着python3时,出现以下错误:
Traceback (most recent call last):
File "test_emptyKaryo.py", line 16, in <module>
diagram.draw(o_out, "test")
File "/usr/lib/python3/dist-packages/Bio/Graphics/BasicChromosome.py", line 161, in draw
return _write(cur_drawing, output_file, self.output_format)
File "/usr/lib/python3/dist-packages/Bio/Graphics/__init__.py", line 82, in _write
return drawmethod.drawToFile(drawing, output_file)
File "/usr/lib/python3/dist-packages/reportlab/graphics/renderPDF.py", line 298, in drawToFile
c.save()
File "/usr/lib/python3/dist-packages/reportlab/pdfgen/canvas.py", line 1237, in save
self._doc.SaveToFile(self._filename, self)
File "/usr/lib/python3/dist-packages/reportlab/pdfbase/pdfdoc.py", line 222, in SaveToFile
f.write(data)
TypeError: write() argument must be str, not bytes
看来,文件句柄不再被支持。 我不认为这是一个biopython错误。 任何人都可以给我一个线索,使其工作?
如果我将输出格式更改为png,则pdf将不再调用,因此我认为它来自renderPM.py。