首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据分析- MD分析Python

数据分析- MD分析Python
EN

Stack Overflow用户
提问于 2021-12-21 16:59:07
回答 1查看 74关注 0票数 -2

我看到这个错误,需要帮助这个!

Warnings.warn(“未能猜出以下原子类型的质量:{}".format(atom_type))回溯(最近一次调用):protein_z=protein.centroid()2 IndexError中的文件”traj_残留物-z.py“第48行:索引2超出了大小为0的轴0的界限。

EN

回答 1

Stack Overflow用户

发布于 2021-12-22 17:20:04

这个问题通过邮件列表线程https://groups.google.com/g/mdnalysis-discussion/c/J8oJ0M9Rjb4/m/kSD2jURODQAJ中的讨论得到了解决。

简单地说:residue-z.py脚本包含了行

代码语言:javascript
复制
protein=u.select_atoms('resid 1-%d' % (nprotein_res))

结果显示,选择'resid 1-%d' % (nprotein_res)不会选择任何内容,因为输入GRO文件以resid 1327开头。

代码语言:javascript
复制
 1327LEU      N    1   2.013   3.349   8.848  0.4933 -0.2510  0.2982
 1327LEU     H1    2   1.953   3.277   8.893  0.0174  0.1791  0.3637
 1327LEU     H2    3   1.960   3.377   8.762  0.6275 -0.5669  0.1094
 ...

因此,从1开始的大小选择并不匹配任何内容。这产生了一个空的AtomGroup protein__。

后继质心计算

代码语言:javascript
复制
protein_z=protein.centroid()[2]

失败是因为对于空AtomGroup,protein.centroid()返回一个空数组,因此试图在索引2处获取元素会引发IndexError

解决方案(感谢@IAlibay)是为了

  • 要么更改选择字符串'resid 1-%d'以适应开始和停止大小,要么
  • 只需通过切片nprotein_res protein = u.residues[:nprotein_res].atoms来选择第一个ResiduesGroup残基。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70439022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档