4.7.1.1. MD轨迹的弹性网络分析 MDAnalysis.analysis.gnm

作者:

本杰明·霍尔<benjamin.a.Hall@ucl.ac.uk>

:

2011

版权所有:

GNU公共许可证v2或更高版本

使用弹性网络模型分析弹道,遵循以下方法 [Hall2007]

MDAnalysis中提供了一个示例 Cookbook, 列出为 GNMExample.

基本方法是将轨迹传递到 GNMAnalysis 然后运行分析:

u = MDAnalysis.Universe(PSF, DCD)
C = MDAnalysis.analysis.gnm.GNMAnalysis(u, ReportVector="output.txt")

C.run()
output = zip(*C.results)

with open("eigenvalues.dat", "w") as outputfile:
    for item in output[1]:
        outputfile.write(item + "\n")

研究结果可在 GNMAnalysis.results ,可用于进一步处理(请参见 [Hall2007] )。

参考文献

[Hall2007] (1,2,3,4,5,6)

Benjamin A. Hall, Samantha L. Kaye, Andy Pang, Rafael Perera, and Philip C. Biggin. Characterization of protein conformational states by normal-mode frequencies. Journal of the American Chemical Society, 129(37):11394–11401, 2007. PMID: 17715919. doi:10.1021/ja071797y.

4.7.1.1.1. 分析任务

class MDAnalysis.analysis.gnm.GNMAnalysis(universe, select='protein and name CA', cutoff=7.0, ReportVector=None, Bonus_groups=None)[源代码]

GNM分析的基本工具。

将每一帧视为一种新的结构,并计算其GNM。默认情况下,它存储主要特征向量及其关联的特征值;两者都可用于监控模拟中的构象变化。

参数:
  • universe (Universe) -- 分析宇宙中的完整轨迹。

  • select (str (optional)) -- MDAnalysis选择字符串

  • cutoff (float (optional)) -- 将截止线内选定的原子视为高斯网络模型的邻居。

  • ReportVector (str (optional)) -- 要将特征向量写入的文件名,默认情况下不写入任何输出

  • Bonus_groups (tuple) -- 这是标识其他基团(如配体)的选择字符串的元组。每个基团的质心将作为一个点添加到ENM中(这是处理药物等小配体的流行方式)。你需要确保没有一个原子 Bonus_groups 包含在 selection 因为这可能会导致重复计算。不会应用任何检查。

results.times

分析中使用的模拟时间

类型:

numpy.ndarray

results.eigenvalues

计算出的特征值

类型:

numpy.ndarray

results.eigenvectors

计算的特征向量

类型:

numpy.ndarray

在 0.16.0 版本发生变更: 制造 generate_output() 一种私有方法 _generate_output()

在 1.0.0 版本发生变更: 变化 selection 关键字至 select

在 2.0.0 版本发生变更: 使用 AnalysisBase 作为父类并将结果存储为属性 timeseigenvalueseigenvectorsresults 属性。

generate_kirchoff()[源代码]

生成接触的基尔霍夫矩阵。

这通过生成近邻网格,然后计算哪些近邻在截止范围内来生成近邻矩阵。

返回:

得到的Kirchhoff矩阵

返回类型:

array

class MDAnalysis.analysis.gnm.closeContactGNMAnalysis(universe, select='protein', cutoff=4.5, ReportVector=None, weights='size')[源代码]

GNMAnalysis仅使用密切联系方式。

这是GNM的一个版本,其中基尔霍夫矩阵是由不同残基中的单个原子之间的紧密接触构成的。

参数:
  • universe (Universe) -- 分析宇宙中的完整轨迹。

  • select (str (optional)) -- MDAnalysis选择字符串

  • cutoff (float (optional)) -- 将截止线内选定的原子视为高斯网络模型的邻居。

  • ReportVector (str (optional)) -- 要将特征向量写入的文件名,默认情况下不写入任何输出

  • weights ({"size", None} (optional)) -- 如果设置为“SIZE”(默认),则按以下方式对联系人进行加权 \(1/\sqrt{{N_i N_j}}\) 哪里 \(N_i\)\(N_j\) 是残基中的原子数 \(i\)\(j\) 它们包含形成接触的原子。

results.times

分析中使用的模拟时间

类型:

numpy.ndarray

results.eigenvalues

计算出的特征值

类型:

numpy.ndarray

results.eigenvectors

计算的特征向量

类型:

numpy.ndarray

备注

这个 MassWeight 选项现已删除。

参见

GNMAnalysis

在 0.16.0 版本发生变更: 制造 generate_output() 一种私有方法 _generate_output()

自 0.16.0 版本弃用: 而不是 MassWeight=True 使用 weights="size"

在 1.0.0 版本发生变更: MassWeight选项(请参见上面的弃用条目)。变化 selection 关键字至 select

在 2.0.0 版本发生变更: 使用 AnalysisBase 作为父类并将结果存储为属性 timeseigenvalueseigenvectorsresults 属性。

generate_kirchoff()[源代码]

生成接触的基尔霍夫矩阵。

这通过生成近邻网格,然后计算哪些近邻在截止范围内来生成近邻矩阵。

返回:

得到的Kirchhoff矩阵

返回类型:

array

4.7.1.1.2. 效用函数

以下函数在内部使用,通常不直接用于执行分析。

MDAnalysis.analysis.gnm.generate_grid(positions, cutoff)[源代码]

简单的网格搜索。

搜索每个原子的整个列表的另一种选择;将结构分为 cutoff 这样设置框的大小,对于每个粒子,只需搜索相邻的框即可找到 cutoff

观察到,对于含有约300个残基的小蛋白来说,速度是原来的6倍;这在更大的系统中应该会更好。

参数:
  • positions (array) -- 原子的坐标

  • cutoff (float) -- 查找距离小于的粒子 cutoff 网格将由至少具有长度的边框组成 cutoff

MDAnalysis.analysis.gnm.order_list(w)[源代码]

返回显示本征值顺序的字典(通常报告为加扰)

在 0.16.0 版本发生变更: 删除未使用的功能 backup_file()