使用旋转(fx)计算两组笛卡尔坐标(xyz或pdb格式)之间的均方根偏差(rmsd)。kabsch算法),原子重新排序(fx。匈牙利算法),和轴反射,导致最小rmsd。

rmsd的Python项目详细描述


https://travis-ci.org/charnley/rmsd.svg?branch=masterhttps://badge.fury.io/py/rmsd.svg

使用旋转计算两个分子的均方根偏差(rmsd)

使用kabsch算法计算均方根偏差(rmsd) (1976)或用于旋转的四元数算法(1991),在两个笛卡尔坐标系之间 以.xyz.pdb格式显示的坐标,导致 RMSD公司。

有关详细信息,请阅读RMSDKabsch algorithm

动机

你有分子A和B,想计算结构差 介于两者之间。如果你直接计算RMSD你可能 得到的值太大,如下所示。你需要先将 两个分子,然后相互旋转,得到真正的最小值 RMSD公司。这就是这个脚本的作用。

No ChangesRe-centeredRotated
begintranslaterotate
RMSD 2.50RMSD 1.07RMSD 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 pypi
pip 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上提交问题或请求。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
任务“:app:compiledBugJava”与“;”的java Android执行失败预期   cmd Java找不到主类   应用程序关闭后java还原Android回栈   无法识别Java中通过OutputStream发送到Firefox的HTML代码   Redis hmget的java超时时间   排序java如何生成按字母顺序排序集合的泛型函数   java从何处提取默认编码?   必须指定java Spring引导安全配置authenticationManager   创建目录的java单元测试代码   初始化期间的java空变量   java如何通过同一个交换机编码启用和禁用Wifi、移动数据和GPS?   java将顺序UI作业排队并在UI中显示它们   java JMS连接未连接到远程JBoss,但连接本地实例   swing Java多GUI窗口创建   包装jar的java OSGi服务   java意外字符“ï”,使用Jackson解析JSON