# Improvements to GROMACS tools¶

## Supported replacing solvent in gmx insert-molecules¶

Make it possible to specify the solvent (or other set of atoms) with -replace (as a selection) for gmx insert-molecules, and make the tool replace residues from this set with the inserted molecules, instead of not inserting there. It is assumed that the solvent consists of single-residue molecules, since molecule information would require a tpr input, which might not be commonly available when preparing the system.

## Default random seeds have changed for some analysis tools¶

See individual tools documentation for their functionality. In some cases, the magic value to obtain a generated seed has changed (or is now documented.)

## Made gmx solvate and gmx insert-molecules work better with PDB inputs¶

When both -f and -o were .pdb files, the pdbinfo struct got out-of-sync when the atoms were added/removed.

Issue 1887

## Tools in the new analysis framework can read trajectory files with subsets¶

Make tools written for the new C++ analysis framework support analyzing trajectories that contain an arbitrary subset of atoms.

Issue 1861

## Made moleculetype name case sensitive¶

This is useful in case you have more than 36 chains in your system with chain IDs set. PDB allows using both uppercase letters, lowercase letters and numbers for chain identifiers. Now we can use the maximum of 62 chains.

## Added number density normalization option for gmx rdf¶

Add an option to gmx rdf that allows selecting a radial number density as the normalization for the output (in addition to current raw neighbor counts and the actual RDF).

## Simplified gmx genconf by removing -block, -sort and -shuffle¶

Option -block isn’t useful since particle decomposition was removed. Options -sort and -shuffle were undocumented and don’t seem very useful - these days they would be somebody’s simple python script.

Also Issue 1841

## Improved gmx sasa error message¶

Print more information when an output group is not part of the group selected for calculation, which should help the user diagnosing the issue.

## Fix gmx hbond group overlap check¶

gmx hbond does not support partially overlapping analysis groups. The check in the code was broken and never caught this, resulting incorrect output that might OK at first sight. Also corrected bitmasks = enums that (intentionally?) seemed to give correct results by not using non power of 2 enum index entries.

## Made gmx dos work again.¶

Due to an error in the index handling gmx dos always stopped with a fatal error.

Issue 1996

## Add checks for too much memory in gmx nmeig¶

gmx nmeig could request storage for eigenvector output and matrices for more than INT_MAX elements, but nearly all loop variables are int. Now a fatal error is produced in this case. This also avoids the confusing error message when too much memory is requested; the allocation routine will get the correct size, but gmx_fatal prints it as a smaller integer. Added support for -first > 1 with sparse matrices.