Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions package/CHANGELOG
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ The rules for this file:
* 2.0.0

Fixes
* Avoid using deprecated array indexing in topology attributes
(Issue #2990, PR #2991)
* ParmedParser no longer guesses elements if they are not recognised, instead
empty strings are assigned (Issue #2933)
* Instead of using ATOM for both ATOM and HETATM, HETATM record type
Expand Down
4 changes: 2 additions & 2 deletions package/MDAnalysis/core/topologyattrs.py
Original file line number Diff line number Diff line change
Expand Up @@ -1116,7 +1116,7 @@ def get_residues(self, rg):

if isinstance(rg._ix, numbers.Integral):
# for a single residue
masses = self.values[resatoms].sum()
masses = self.values[tuple(resatoms)].sum()
else:
# for a residuegroup
masses = np.empty(len(rg))
Expand Down Expand Up @@ -1537,7 +1537,7 @@ def get_residues(self, rg):
resatoms = self.top.tt.residues2atoms_2d(rg.ix)

if isinstance(rg._ix, numbers.Integral):
charges = self.values[resatoms].sum()
charges = self.values[tuple(resatoms)].sum()
else:
charges = np.empty(len(rg))
for i, row in enumerate(resatoms):
Expand Down
10 changes: 10 additions & 0 deletions testsuite/MDAnalysisTests/core/test_accumulate.py
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,11 @@ def test_total_charge_compounds(self, group, name, compound):
ref = [sum(a.charges) for a in group.atoms.groupby(name).values()]
assert_almost_equal(group.total_charge(compound=compound), ref)

@pytest.mark.filterwarnings( # Prevents regression of issue #2990
"error:"
"Using a non-tuple sequence for multidimensional indexing is deprecated:"
"FutureWarning"
)
def test_total_charge_duplicates(self, group):
group2 = group + group[0]
ref = group.total_charge() + group[0].charge
Expand All @@ -133,6 +138,11 @@ def test_total_mass_compounds(self, group, name, compound):
ref = [sum(a.masses) for a in group.atoms.groupby(name).values()]
assert_almost_equal(group.total_mass(compound=compound), ref)

@pytest.mark.filterwarnings( # Prevents regression of issue #2990
"error:"
"Using a non-tuple sequence for multidimensional indexing is deprecated:"
"FutureWarning"
)
def test_total_mass_duplicates(self, group):
group2 = group + group[0]
ref = group.total_mass() + group2[0].mass
Expand Down