private void setSourceSingleAtomMap(IQueryAtomContainer source, boolean removeHydrogen) throws CDKException {
int counter = 0;
BondEnergies be = BondEnergies.getInstance();
for (IAtom sourceAtom : source.atoms()) {
IQueryAtom smartAtom = (IQueryAtom) sourceAtom;
if ((removeHydrogen && !smartAtom.getSymbol().equals("H")) || (!removeHydrogen)) {
for (IAtom targetAtom : target.atoms()) {
Map<IAtom, IAtom> mapAtoms = new HashMap<IAtom, IAtom>();
if (smartAtom.matches(targetAtom)) {
mapAtoms.put(sourceAtom, targetAtom);
List<IBond> bonds = target.getConnectedBondsList(targetAtom);
double totalOrder = 0;
for (IBond bond : bonds) {
Order order = bond.getOrder();
totalOrder += order.numeric() + be.getEnergies(bond);
}
if (!Objects.equals(targetAtom.getFormalCharge(), sourceAtom.getFormalCharge())) {
totalOrder += 0.5;
}
connectedBondOrder.put(counter, totalOrder);
mappings.add(counter++, mapAtoms);
}
}
} else {
System.err.println("Skippping Hydrogen mapping or This is not a single mapping case!");
}
}
}