我看到这个错误,需要帮助!
warnings.warn("无法猜测以下原子类型的质量:{}".format(atom_type((追踪(最近一次通话(:文件";traj_residue-z.py";,第48行,inprotein_z=蛋白质重心(([2]IndexError:索引2超出大小为0的轴0的界限
通过邮件列表线程中的讨论解决了问题https://groups.google.com/g/mdnalysis-discussion/c/J8oJ0M9Rjb4/m/kSD2jURODQAJ
简而言之:traj_residue-z.py脚本包含行
protein=u.select_atoms('resid 1-%d' % (nprotein_res))
事实证明,选择'resid 1-%d' % (nprotein_res)
不会选择任何内容,因为输入GRO文件以resid 1327 开头
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开始的resids的选择与任何都不匹配。这产生了一个空的AtomGroupprotein
后续质心计算
protein_z=protein.centroid()[2]
失败,因为对于空的AtomGroup,protein.centroid()
返回一个空数组,因此尝试获取索引2处的元素会引发IndexError
。
解决方案(感谢@IAlibay(是
- 更改选择字符串
'resid 1-%d'
以适应开始和停止大小,或者 - 以通过切片ResiduesGroup来仅选择第一个CCD_ 6残基CCD_