@Override public String toSDF() { // Function to return the SDF of a given strucutre GroupToSDF gts = new GroupToSDF(); return gts.getText(this); }
private Object getCharges(Group thisGroup) { List<Number> chargeList = getAtomCharges(thisGroup); outS.append("M CHG N"); outS.append(getSpace(4, Integer.toString(i))+(i+1)); outS.append(getSpace(4, Short.toString(charge))+charge); chargeCount++;
for(Atom a: thisGroup.getAtoms()){ String spaceX = getSpace(10, df.format(a.getX())); String spaceY = getSpace(10, df.format(a.getY())); String spaceZ = getSpace(10, df.format(a.getZ())); String spaceEle = getSpace(4, a.getElement().toString()); atomList.append(spaceX+df.format(a.getX())+spaceY+df.format(a.getY())+spaceZ+df.format(a.getZ())+" "+a.getElement().toString()+spaceEle+"0 0 0 0 0 0 0 0 0 0 0 0\n"); for(Bond b: a.getBonds()){ String index = Integer.toString(atoms.indexOf(a)+1); String order = Integer.toString(b.getBondOrder()); String spaceIndOne = getSpace(3, index); String spaceIndTwo = getSpace(3, indexOther); String spaceOrder = getSpace(3, order); bondOrders.append(spaceIndOne).append(index).append(spaceIndTwo).append(indexOther).append(spaceOrder).append(order).append(" 0\n"); String spaceNumAtoms = getSpace(3, Integer.toString(thisGroup.getAtoms().size())); String spaceNumBonds = getSpace(3, Integer.toString(numBonds)); header.append("\n"); header.append(spaceNumAtoms).append(thisGroup.getAtoms().size()).append(spaceNumBonds).append(numBonds).append(" 0 0 0 0 0 0 0 0999 V2000\n"); outString.append(atomList.toString()); outString.append(bondOrders.toString()); outString.append(getCharges(thisGroup));