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 上运行
- 我将随时编辑您需要的任何数据或信息,以帮助我解决此问题