2

Biopython提供了与PAML包接口以进行系统发育分析的方法。

特别是,我正在使用Bio.Phylo.PAML使用 PAML 的 codeml.exe 程序运行分析,在我的情况下,该程序对直系同源基因序列对进行 Ka/Ks (dN/dS) 比率分析。

使用运行分析后,results = cml.run()我可以看到它已成功生成result.out看起来正确的文件。最重要的是,文件的最后一行是我需要解析成 Python 的内容:

t= 0.2173  S=   703.9  N=  1489.1  dN/dS=  0.2247  dN = 0.0344  dS = 0.1529

我最感兴趣的是dN/dS = 0.2247

根据 Biopython 的PAML wiki,这个值可以从 Python 中获得,通过results = cml.run()在运行分析后生成一个包含一组我感兴趣的值的字典。wiki 声称我可以在一个名为'parameters'. 但这只会返回我需要的值之一t= 0.2173,看:

>>> results.values()
['Fcodon', 'One dN/dS ratio for branches, ', '4.7b', {0: {'description': 'one-ratio', 'parameters': {'t': 0.1982}}}, {'htlv': {}, 'stlv': {}}]

请注意,我的参数键仅包含t= 0.2173并且已省略S= 703.9 N= 1489.1 dN/dS= 0.2247 dN = 0.0344 dS = 0.1529

codeml经验的人可以向我解释为什么解析器无法产生我感兴趣的大部分参数(值)吗?

额外细节

  • 使用Python2.7、PAML4.7a
  • 在 Windows 7 上运行
  • 我将随时编辑您需要的任何数据或信息,以帮助我解决此问题
4

1 回答 1

2

来自https://www.biostars.org/p/89848/的交叉发布:

您可以使用以下命令获取每个分支的 omega 值:

from Bio.Phylo.PAML import codeml

results = codeml.read(paml_outputfile)

print results["NSsites"][0]["parameters"]["omega"]

这为您提供了每个分支的 omega (dn/ds) 列表

使用版本 4.7b 和 biopython-1.6.3

于 2015-03-10T13:00:07.237 回答