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