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}}经验的人都可以向我解释为什么解析器无法产生我感兴趣的大部分参数(值)吗?
额外详情
答案 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