sorry, I sent the message before it was ready....here the complete version

Hi,

I would like to substract a substructure from a structure and keep the
remaining parts. There was a similar post in the mailing list history:

http://sourceforge.net/mailarchive/message.php?msg_id=200702050602.05302.e.willighagen%40science.ru.nl

The difference (is it a difference?) is, that I don't calculate the
substructure with CDK code but get it from somewhere else. My code looks
like this (but doesn't work):

while (sdfreader.hasNext()) {
            /*
            Substructure: O=Cc1ccccc1
            A:            OC(=O)c1cccc(c1)Cl
            B:            CC(=O)c1cccc(F)c1
            C:            Nc1cccc(c1)C(O)=O
            */

            // read the molecules A, B, C
            IMolecule mol2store = (IMolecule)sdfreader.next();

AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(mol2store);
            CDKHueckelAromaticityDetector.detectAromaticity(mol2store);

            // read the substructure
            FileInputStream fes = new FileInputStream(f_bb);
            IteratingMDLReader sdreader = new IteratingMDLReader(fes,
DefaultChemObjectBuilder.getInstance());
            IMolecule mol = null;
            while (sdreader.hasNext()) {
                mol = (IMolecule) sdreader.next();
            }
            sdreader.close();
            fes.close();

            String smiles = sg.createSMILES(mol);
            System.out.println("S: " + smiles);
            smiles = sg.createSMILES(mol2store);
            System.out.println("A: " + smiles);

            Iterable<IAtom> i = mol.atoms();
            Iterator<IAtom> atoms = i.iterator();
            while(atoms.hasNext()){
                IAtom a = atoms.next();
                mol2store.removeAtomAndConnectedElectronContainers(a);
            }
            smiles = sg.createSMILES(mol2store);
            System.out.println("B: " + smiles);
            smiles = sg.createSMILES(mol);
            System.out.println("S: " + smiles);
            System.out.println("-------------");
        }

Considering the SMILES output, the atoms haven't been substracted from the
molecules ABC.  Any thoughts?

On Tue, Oct 26, 2010 at 10:56 AM, Tobias Girschick <
[email protected]> wrote:

> Hi,
>
> I would like to substract a substructure from a structure and keep the
> remaining parts. There was a similar post in the mailing list history:
>
>
> http://sourceforge.net/mailarchive/message.php?msg_id=200702050602.05302.e.willighagen%40science.ru.nl
>
> The difference (is it a difference?) is, that I don't calculate the
> substructure with CDK code but get it from somewhere else. My code looks
> like this (but doesn't work):
>
> while (sdfreader.hasNext()) {
>             /*
>             Substructure: O=Cc1ccccc1
>             A:            OC(=O)c1cccc(c1)Cl
>             B:            CC(=O)c1cccc(F)c1
>             C:            Nc1cccc(c1)C(O)=O
>             */
>
>             IMolecule mol2store = (IMolecule)sdfreader.next();
>
> AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(mol2store);
>             CDKHueckelAromaticityDetector.detectAromaticity(mol2store);
>
>             FileInputStream fes = new FileInputStream(f_bb);
>             IteratingMDLReader sdreader = new IteratingMDLReader(fes,
> DefaultChemObjectBuilder.getInstance());
>             IMolecule mol = null;
>             while (sdreader.hasNext()) {
>                 mol = (IMolecule) sdreader.next();
>             }
>             sdreader.close();
>             fes.close();
>
>             String smiles = sg.createSMILES(mol);
>             System.out.println("S: " + smiles);
>             smiles = sg.createSMILES(mol2store);
>             System.out.println("A: " + smiles);
>
>             Iterable<IAtom> i = mol.atoms();
>             Iterator<IAtom> atoms = i.iterator();
>             while(atoms.hasNext()){
>                 IAtom a = atoms.next();
>                 mol2store.removeAtomAndConnectedElectronContainers(a);
>             }
>             smiles = sg.createSMILES(mol2store);
>             System.out.println("B: " + smiles);
>             smiles = sg.createSMILES(mol);
>             System.out.println("S: " + smiles);
>             System.out.println("-------------");
>         }
>
> --
> Tobias Girschick
> mailto: [email protected]
>



-- 
Tobias Girschick
mailto: [email protected]
------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store 
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
Cdk-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/cdk-user

Reply via email to