bool OECapTermini(OEChem::OEMolBase &mol, const OESystem::OEUnaryPredicate<OEChem::OEAtomBase> &exclude=OEChem::OEIsFalseAtom(), const bool deleteClashingSolvent=true)
A predicate can be passed to exclude certain termini from being capped, such as the true biological terminal residues since these should be charged to match the biophysical experiments.
The function by default can delete a solvent molecule if it clashes with where the cap is being built, but this behavior can be turned off. A solvent molecule blocking the protein backbone is not very realistic and the solvent molecule is likely placed to account for density that should have belonged to the residue not resolved in the crystal structure.
Explicit hydrogens are not added to the structure during the build processes.