使用旋转(fx)计算两组笛卡尔坐标(xyz或pdb格式)之间的均方根偏差(rmsd)。kabsch算法),原子重新排序(fx。匈牙利算法),和轴反射,导致最小rmsd。
rmsd的Python项目详细描述
使用旋转计算两个分子的均方根偏差(rmsd)
使用kabsch算法计算均方根偏差(rmsd) (1976)或用于旋转的四元数算法(1991),在两个笛卡尔坐标系之间 以.xyz或.pdb格式显示的坐标,导致 RMSD公司。
有关详细信息,请阅读RMSD和Kabsch algorithm。
动机
你有分子A和B,想计算结构差 介于两者之间。如果你直接计算RMSD你可能 得到的值太大,如下所示。你需要先将 两个分子,然后相互旋转,得到真正的最小值 RMSD公司。这就是这个脚本的作用。
No Changes | Re-centered | Rotated |
---|---|---|
RMSD 2.50 | RMSD 1.07 | RMSD 0.25 |
引文
- 实现:
- 使用旋转计算两个分子的均方根偏差(rmsd),github, http://github.com/charnley/rmsd,<;git提交哈希或版本号>;
- kabsch算法:
- 卡布希W.,1976年, 将两组向量关联的最佳旋转的解决方案, 晶体学报,A32:922-923, doi:http://dx.doi.org/10.1107/s056739476001873
- 四元数算法
- 迈克尔w.沃克、邵乐军和理查德a.沃兹,1991年, 使用双四元数估计三维定位参数,CVGIP:图像理解,54:358-367, doi:http://dx.doi.org/10.1016/1049-9660(91)90036-o
- 四元数算法
在用于科学出版物时,请引用此项目。
安装
最简单的方法是使用包名rmsd,
获取程序vis pypipip install rmsd
或者通过
git clone https://github.com/charnley/rmsd
只有一个python文件,因此您还可以下载 把它放进你的箱子里。
wget -O calculate_rmsd https://raw.githubusercontent.com/charnley/rmsd/master/rmsd/calculate_rmsd.py chmod +x calculate_rmsd
用法示例
使用calculate_rmsd --help查看所有功能。用法很简单 转发,调用calculate_rmsd,在.xyz或 .pdb。在本例中,乙烷具有完全相同的结构,但是 在空间中转换,因此rmsd应该为零。
calculate_rmsd tests/ethane.xyz tests/ethane_translate.xyz
也可以忽略所有的氢(对于大分子 氢在不可分辨的地方移动)并打印旋转的结构 视觉比较。输出将采用xyz格式。
calculate_rmsd --no-hydrogen --print tests/ethane.xyz tests/ethane_mini.xyz
如果原子被扰乱并且没有排列,你可以使用--reorder 将原子从结构B排列到结构A的论点。使用 --reorder-method选择要重新排序的方法。在两者之间选择 {a8}(默认)、距离(非常近似)和蛮力(慢)。
calculate_rmsd --reorder tests/water_16.xyz tests/water_16_idx.xyz
也可以在其他脚本中将rmsd用作库,请参见example.py示例用法。
有问题吗?
在github上提交问题或请求。