我正在使用Biopython库的AlignIO和Phylo函数来比对多个序列并创建系统树。文档在这方面非常清楚,我在获得我的结果时没有任何问题。然而,我不想只在程序运行时显示结果,还想将它们保存到一个文件中(最好是不同的文件)。然而,正如我所怀疑的那样,我得到了TypeError: expected a character buffer object。我找不到任何关于将这些结果写入文件的帮助。
我的代码:
from Bio import AlignIO, Phylo
align = AlignIO.read("allseqs.aln", "clustal")
alignfile = open("alignfile.txt","w")
print(align)
#alignfile.write(align) -->gives error
tree = Phylo.read("allseqs.dnd","newick")
Phylo.draw_ascii(tree)align结果如下所示:
SingleLetterAlphabet() alignment with 14 rows and 1688 columns
--------------------------------------------...--- M.HpyFIII.dna
--------------------------------------------...--- M.HpyFIV.dna
TTGCATAAAGTTTTTATTATGGAAGCTTTGGAATGTTTGAAAAG...--- M.HpyFII.dna
--------------------------------------------...--- M.HpyFXII.dna
ATGCCTTCAAACGCTCTTTCTATTGAAGAAATCGCTCGCCTAGT...TAA M.HpyFVII.dna
--------------------------------------------...--- M.HpyFV.dna
--------------------------------------------...--- M.HpyFXI.dna
--------------------------------------------...--- M.HpyFORFX.dna
--------------------------------------------...--- M1.HpyFXIII.dna
--------------------------------------------...--- M.HpyFVI.dna
---------------------------------------ATGCA...--- M.HpyFVIII.dna
--------------------------------------------...--- M.HpyFIX.dna
--------------------------------------------...--- M2.HpyFXIII.dna
--------------------------------------------...--- M.HpyFI.dna系统发育树如下所示:
__________________ M.HpyFI.dna
|
|__________________ M2.HpyFXIII.dna
|
|__________________ M.HpyFII.dna
|
| __________ M.HpyFIII.dna
|_______|
| |__________ M.HpyFIV.dna
|
| ________________ M.HpyFVII.dna
|_|
| |________________ M.HpyFXII.dna
_________________________________________|
|__________________ M.HpyFIX.dna
|
| ______________ M.HpyFVI.dna
|___|
| |______________ M.HpyFVIII.dna
|
| __________________ M.HpyFORFX.dna
,|
|| _____________ M.HpyFV.dna
||__|
| |______________ M.HpyFXI.dna
|
|__________________ M1.HpyFXIII.dna编辑代码:
from Bio import AlignIO, Phylo,SeqIO
import networkx, pylab
align = AlignIO.read("allseqs.aln", "clustal")
align_write = SeqIO.write(align,"alignment_file.fasta","fasta")
tree = Phylo.read("allseqs.dnd","newick")
with open('phylo_tree.txt', 'wb') as fh:
Phylo.draw_ascii(tree, file = fh)发布于 2014-10-13 05:54:25
这一切都在the documentations中,正如@jonrsharpe提到的那样
with open('asciout.txt', 'wb') as fh:
Phylo.draw_ascii(tree, file = fh)
with open("alignfile.txt","w") as alignfile:
AlignIO.write(align, alignfile, format)或者,如果您确实想要按原样表示字符串:
with open("alignfile.txt","w") as alignfile:
alignfile.write(str(align))print得到的是str(align)。
https://stackoverflow.com/questions/26328996
复制相似问题