我正在使用 python 中的 ete3 包从我使用随机模型生成的数据构建系统发育树,并且效果很好。我之前已经将这些树编写为 newick 格式,然后使用另一个脚本(带有 Dendropy 包)来读取这些树并对其进行一些分析。这两个脚本都可以正常工作。
我现在正在尝试进行大量此类数据处理,并想编写一个脚本,在其中跳过文件写入。这两种方法都称为 Tree,所以我通过导入 dendropy 方法解决了这个问题,例如:
from dendropy import Tree as DTree
和 ete3 方法,如:
from ete3 import Tree
这似乎没问题。
我的问题是如何将对象从一个包传递到另一个包。我有一个循环,我首先使用 ete3 方法构建树对象,我称之为“t”。然后我的计划是使用 ete3 中的 Tree.write 方法使用“get”方法将树对象传递给 Dendropy 并跳过实际的 outfile 位,如下所示:
treePass = t.write(format = 1)
DendroTree = DTree.get(treePass, schema = 'newick')
但这给出了错误:
DendroTree = DTree.get(treePass)
TypeError: get() takes 1 positional argument but 2 were given
欢迎任何想法。