if (altA&&altB&&altA!==altB)returnfalse;// incompatible alternate location id
if (altA&&altB&&altA!==altB)returnfalse;// incompatible alternate location id
if (infoA.unit.residueIndex[infoA.unit.elements[indexA]]===infoB.unit.residueIndex[infoB.unit.elements[indexB]]&&infoA.unit===infoB.unit)returnfalse;// same residue
if (infoA.unit===infoB.unit&&infoA.unit.model.atomicHierarchy.residueAtomSegments.count>1&&infoA.unit.residueIndex[infoA.unit.elements[indexA]]===infoB.unit.residueIndex[infoB.unit.elements[indexB]])returnfalse;// same residue (and more than one residue)
// e.g. no hbond if donor and acceptor are bonded
// e.g. no hbond if donor and acceptor are bonded
if (connectedTo(structure,infoA.unit,indexA,infoB.unit,indexB))returnfalse;
if (connectedTo(structure,infoA.unit,indexA,infoB.unit,indexB))returnfalse;