BioPython 的 codeml 永远不会完成
Posted
技术标签:
【中文标题】BioPython 的 codeml 永远不会完成【英文标题】:codeml from BioPython never finish 【发布时间】:2016-03-30 22:44:50 【问题描述】:我正在尝试使用 BioPython 来运行 PAML 并运行这些代码:
from Bio.Phylo.PAML import codeml
cml = codeml.Codeml(alignment = "lysin.phy", tree = "lysin.trees", out_file = "results.out")
cml.read_ctl_file("codeml.ctl")
results=cml.run()
但是,cml.run() 将进入睡眠状态并且永远不会完成。当我取消它时,消息返回是:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/bioinfo/anaconda3/lib/python3.5/site-packages/biopython-1.66-py3.5-linux-x86_64.egg/Bio/Phylo/PAML/codeml.py", line 186, in run
Paml.run(self, ctl_file, verbose, command)
File "/home/bioinfo/anaconda3/lib/python3.5/site-packages/biopython-1.66-py3.5-linux-x86_64.egg/Bio/Phylo/PAML/_paml.py", line 145, in run
stdout=subprocess.PIPE)
File "/home/bioinfo/anaconda3/lib/python3.5/subprocess.py", line 562, in call
return p.wait(timeout=timeout)
File "/home/bioinfo/anaconda3/lib/python3.5/subprocess.py", line 1651, in wait
(pid, sts) = self._try_wait(0)
File "/home/bioinfo/anaconda3/lib/python3.5/subprocess.py", line 1601, in _try_wait
(pid, sts) = os.waitpid(self.pid, wait_flags)
KeyboardInterrupt
谁能帮我找出错误在哪里。我使用的对齐文件和树文件在 PAML 示例文件夹中。
【问题讨论】:
你有哪个版本的 PAML,它可以在 Biopython 之外正常运行吗?即它是否安装正确。另外您使用的是哪个操作系统?我可以从回溯中告诉您正在使用 Anaconda 的 Python 3.5。 【参考方案1】:我遇到了同样的问题,以下调整有效。我不知道为什么,现在也没有时间弄清楚,但如果有人能解释一下,我会很高兴。基本上顺序很重要,否则参数设置回null【你可以通过cml.print_options()来验证】。
cml = codeml.Codeml()
cml.read_ctl_file("ctl_file_path")
cml.tree = "full_tree_path"
cml.alignment = "full_alignment_path"
cml.out_file = "full_out_path"
cml.working_dir = "full_dir_path"
cml.run()
它在以下情况下不起作用:
-
设置其他选项后读取ctl文件
使用构造函数 codeml.Codeml() 设置选项
working_dir 未设置(尽管提供了所有文件的完整路径)
我也在通过 conda 运行 python。
【讨论】:
以上是关于BioPython 的 codeml 永远不会完成的主要内容,如果未能解决你的问题,请参考以下文章
NSBundleResourceRequest beginAccessingResources 永远不会完成