Java Code Examples for org.openscience.cdk.interfaces.IAtomContainer#setFlags()

The following examples show how to use org.openscience.cdk.interfaces.IAtomContainer#setFlags() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: ExtAtomContainerManipulator.java    From ReactionDecoder with GNU Lesser General Public License v3.0 6 votes vote down vote up
/**
 * Returns deep copy of the molecule
 *
 * @param container
 * @return deep copy of the mol
 * @throws CloneNotSupportedException
 */
public static IAtomContainer newInstanceWithIDs(IAtomContainer container) throws CloneNotSupportedException {
    //setNullHCountToZero(container);
    IChemObjectBuilder builder = SilentChemObjectBuilder.getInstance();
    IAtomContainer ac = builder.newInstance(IAtomContainer.class, container);
    /*Set IDs as CDK clone doesn't*/
    for (int i = 0; i < ac.getAtomCount(); i++) {
        ac.getAtom(i).setID(container.getAtom(i).getID());
        if (ac.getAtom(i).getProperties() == null) {
            ac.getAtom(i).setProperties(new HashMap<>());
        }
    }

    for (int i = 0; i < ac.getBondCount(); i++) {
        if (ac.getBond(i).getProperties() == null) {
            ac.getBond(i).setProperties(new HashMap<>());
        }
    }
    ac.setProperties(container.getProperties());
    ac.setFlags(container.getFlags());
    ac.setID(container.getID());
    ac.notifyChanged();
    return ac;
}
 
Example 2
Source File: ExtAtomContainerManipulator.java    From ReactionDecoder with GNU Lesser General Public License v3.0 6 votes vote down vote up
/**
 * Returns IAtomContainer without Hydrogen. If an GraphAtomContainer has
 * atom single atom which is atom Hydrogen then its not removed.
 *
 * @param atomContainer
 * @return IAtomContainer without Hydrogen. If an GraphAtomContainer has
 * atom single atom which is atom Hydrogen then its not removed.
 */
public static IAtomContainer convertExplicitToImplicitHydrogens(IAtomContainer atomContainer) {
    IAtomContainer mol = atomContainer.getBuilder().newInstance(IAtomContainer.class, atomContainer);
    if (mol.getAtomCount() > 1) {
        mol = removeHydrogensExceptSingleAndPreserveAtomID(mol);
    } else if (mol.getAtomCount() == 1 && !atomContainer.atoms().iterator().next().getSymbol().equalsIgnoreCase("H")) {
        /*
         * Pseudo-atoms and unconfigured atoms safetynet
         */
        convertImplicitToExplicitHydrogens(mol);
        mol = removeHydrogensExceptSingleAndPreserveAtomID(mol);
    } else if (mol.getAtomCount() == 1 && atomContainer.atoms().iterator().next().getSymbol().equalsIgnoreCase("H")) {
        LOGGER.warn("WARNING: single hydrogen atom removal not supported!");
    }
    mol.setProperties(atomContainer.getProperties());
    mol.setFlags(atomContainer.getFlags());
    if (atomContainer.getID() != null) {
        mol.setID(atomContainer.getID());
    }
    return mol;
}
 
Example 3
Source File: ExtAtomContainerManipulator.java    From ReactionDecoder with GNU Lesser General Public License v3.0 5 votes vote down vote up
/**
 * Returns deep copy of the molecule
 *
 * @param container
 * @return deep copy of the mol
 * @throws CloneNotSupportedException
 */
public static IAtomContainer cloneWithIDs(IAtomContainer container) throws CloneNotSupportedException {
    //setNullHCountToZero(container);
    IAtomContainer ac = new AtomContainer(container).clone();/*Set IDs as CDK clone doesn't*/
    for (int i = 0; i < ac.getAtomCount(); i++) {
        ac.getAtom(i).setID(container.getAtom(i).getID());
        if (ac.getAtom(i).getProperties() == null) {
            ac.getAtom(i).setProperties(new HashMap<>());
        } else {
            ac.getAtom(i).setID(container.getAtom(i).getID());
            ac.getAtom(i).setFlags(container.getAtom(i).getFlags());
            ac.getAtom(i).setProperties(container.getAtom(i).getProperties());
            ac.getAtom(i).setIsInRing(container.getAtom(i).isInRing());
            ac.getAtom(i).setIsAromatic(container.getAtom(i).isAromatic());
        }
    }

    for (int i = 0; i < ac.getBondCount(); i++) {
        if (ac.getBond(i).getProperties() == null) {
            ac.getBond(i).setProperties(new HashMap<>());
        } else {
            ac.getBond(i).setFlags(container.getBond(i).getFlags());
            ac.getBond(i).setProperties(container.getBond(i).getProperties());
        }
    }

    ac.setProperties(container.getProperties());
    ac.setFlags(container.getFlags());
    ac.setID(container.getID());
    ac.notifyChanged();
    return ac;
}
 
Example 4
Source File: MCSThread.java    From ReactionDecoder with GNU Lesser General Public License v3.0 5 votes vote down vote up
private synchronized IAtomContainer duplicate(IAtomContainer ac) throws CloneNotSupportedException {
    IAtomContainer a = ac.clone();
    a.setID(ac.getID());

    for (int i = 0; i < a.getAtomCount(); i++) {
        a.getAtom(i).setID(ac.getAtom(i).getID());
    }

    ac.setProperties(ac.getProperties());
    ac.setFlags(ac.getFlags());
    ac.setID(ac.getID());
    ac.notifyChanged();

    return a;
}