我看到这个错误,需要帮助!
warnings.warn("无法猜测以下原子类型的质量:{}".format(atom_type)) Traceback(最近一次调用最后一次):文件“traj_residue-z.py”,第 48 行,in protein_z=protein。质心() [2] IndexError:索引 2 超出轴 0 的范围,大小为 0
我看到这个错误,需要帮助!
warnings.warn("无法猜测以下原子类型的质量:{}".format(atom_type)) Traceback(最近一次调用最后一次):文件“traj_residue-z.py”,第 48 行,in protein_z=protein。质心() [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 开始的残基选择不匹配任何东西。这产生了一个空的 AtomGroup protein
。
随后的质心计算
protein_z=protein.centroid()[2]
失败,因为对于一个空的 AtomGroup,protein.centroid()
返回一个空数组,因此试图获取索引 2 处的元素 raises IndexError
。
'resid 1-%d'
以适应开始和停止残基,或nprotein_res
残基。protein = u.residues[:nprotein_res].atoms