Bio.Phylo.PAML.codeml的结果解析器悄然无法读取所有数据

时间:2014-01-01 19:37:46

标签: parsing python-2.7 bioinformatics biopython dna-sequence

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,可以通过执行results = cml.run()从Python获取此值,该'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

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

额外详情

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

1 个答案:

答案 0 :(得分: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