After going to add a patch today and seeing the reader was already setting the 
aromatic flags I released the issue… in this case hydrogens need to be added 
via atom types, when perceive and configure is called it clears aromatic flags 
on the atoms hence they need to be re-added.

J

On Apr 22, 2015, at 7:35 PM, John May <john...@ebi.ac.uk> wrote:

> Aromatic bonds (bond order 4) are a query feature and should NOT be used to 
> store structures. The reason is otherwise the implicit hydrogen placement 
> must be guessed. It’s easier to demonstrate this error propagation with 
> SMILES, same structure in, different structures out:
> 
>> [hal ~]: obabel -:'c1ncnc1C.Cc1ncnc1' -o smi
>> c1[nH]cnc1C.Cc1[nH]cnc1      
> 
> I actually saw this mentioned in a talk by Tony W today and would strongly 
> recommended pipping your structure through http://cvsp.chemspider.com/ to get 
> the list of errors.
> 
> How are you reading/writing there should be a warning in the molfile writers 
> for bond order 4? If not that’s a bug.
> 
>> FixBondOrdersTool.kekuliseAromaticRings
> 
> 
> Should be deprecated - I don’t know why it doesn’t work here but having 
> looked at it before it is very incomplete. The new Kekulization class should 
> be what you need. Unfortunately a SINGLE_OR_DOUBLE flag is set on the bond 
> when the algorithm expects aromatic flags on atoms. This is a simple jig 
> around (see example) – sorry this isn’t easier but it’s a disconnected 
> between different developers.
> MDLV2000Reader mdlr = new MDLV2000Reader(new StringReader(molfileStr));
> IAtomContainer mol = mdlr.read(new AtomContainer());
> 
> // query molecule so need to guess hydrogen counts, do not do this in
> // general, normal molfiles will have them set on read!
> AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(mol);
> CDKHydrogenAdder.getInstance(mol.getBuilder()).addImplicitHydrogens(mol);
> for (IBond bond : mol.bonds()) {
>     if (bond.getFlag(CDKConstants.SINGLE_OR_DOUBLE)) {
>         bond.setFlag(CDKConstants.ISAROMATIC, true); // optional
>          bond.getAtom(0).setFlag(CDKConstants.ISAROMATIC, true);
>         bond.getAtom(1).setFlag(CDKConstants.ISAROMATIC, true);
>     }
> }
>     
> Kekulization.kekulize(mol);
> new MDLV2000Writer(System.out).write(mol);
> 
>> Moreover, I was told in an earlier email that I should recreate a new 
>> molecule after adding hydrogens (because all added hydrogens had the same 
>> set of coordinates at 0.000). However, as you can see, thehydrogen atoms in 
>> molecule MOL2 (even the one in MOL 1 that had non-zero x and y coordinates) 
>> have the coordinates (0,0,0).
> 
> Recreate…? you need to assign coordinates (layout) if implicit hydrogens are 
> converted to explicit. There is possibly an SDG (layout) call somewhere 
> already in your code. In MOL1 the H has been laid out by someone else or a 
> previous invocation.
> 
> J
> 
> On Apr 21, 2015, at 10:41 PM, Yannick .Djoumbou <y.djoum...@gmail.com> wrote:
> 
>> Hello all,
>> 
>> 
>> Regarding kekulization, should the bond type change from 4 to 1 and/or 2? If 
>> I have the following file, what does the function 
>> FixBondOrdersTool.kekuliseAromaticRings(IAtomContainer) change actually? I 
>> am a bit confused. When I apply the function to the molecie MOL 1 below 
>> after adding explicit H atoms (Not necessary in general but it's part of my 
>> costum function), I get the molecule MOL2. The bond types remain the same. 
>> Moreover, I was told in an earlier email that I should recreate a new 
>> molecule after adding hydrogens (because all added hydrogens had the same 
>> set of coordinates at 0.000). However, as you can see, thehydrogen atoms in 
>> molecule MOL2 (even the one in MOL 1 that had non-zero x and y coordinates) 
>> have the coordinates (0,0,0). 
>> 
>> Thanks for your consideration.
>> 
>> MOL1
>>  10 10  0  0  0  0  0  0  0  0999 V2000
>>    -2.8875   -2.9759    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0
>>    -3.7125   -2.9759    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
>>    -2.0625   -2.9759    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
>>    -2.8875   -3.8009    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
>>    -1.6500   -3.6904    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
>>    -0.8250   -3.6904    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
>>    -0.4125   -2.9759    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
>>    -0.8250   -2.2614    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
>>    -1.6500   -2.2614    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
>>     0.4125   -2.9759    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
>>   1  2  1  0  0  0  0 
>>   1  3  1  0  0  0  0 
>>   1  4  1  0  0  0  0 
>>   3  5  4  0  0  0  0 
>>   3  9  4  0  0  0  0 
>>   5  6  4  0  0  0  0 
>>   6  7  4  0  0  0  0 
>>   7  8  4  0  0  0  0 
>>   8  9  4  0  0  0  0 
>>   7 10  1  0  0  0  0 
>> M  END
>> $$$$
>> 
>> MOL2
>>   CDK     0421151530
>> 
>>  16 16  0  0  0  0  0  0  0  0999 V2000
>>     1.2990   -0.7500    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0
>>     1.2990   -2.2500    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
>>     0.0000    0.0000    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
>>     2.5981   -0.0000    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
>>     0.0000    1.5000    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
>>    -1.2990    2.2500    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
>>    -2.5981    1.5000    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
>>    -2.5981   -0.0000    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
>>    -1.2990   -0.7500    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
>>    -3.8971    2.2500    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
>>     2.5981   -3.0000    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
>>    -0.1782   -1.9895    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
>>     0.7860   -3.6595    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
>>    -3.8971    3.7500    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
>>    -5.3743    2.5105    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
>>    -4.4101    0.8405    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
>>   1  2  1  0  0  0  0 
>>   1  3  1  0  0  0  0 
>>   1  4  1  0  0  0  0 
>>   3  5  4  0  0  0  0 
>>   3  9  4  0  0  0  0 
>>   5  6  4  0  0  0  0 
>>   6  7  4  0  0  0  0 
>>   7  8  4  0  0  0  0 
>>   8  9  4  0  0  0  0 
>>   7 10  1  0  0  0  0 
>>   2 11  1  0  0  0  0 
>>   2 12  1  0  0  0  0 
>>   2 13  1  0  0  0  0 
>>  10 14  1  0  0  0  0 
>>  10 15  1  0  0  0  0 
>>  10 16  1  0  0  0  0 
>> M  END
>> $$$$
> 
> ------------------------------------------------------------------------------
> BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
> Develop your own process in accordance with the BPMN 2 standard
> Learn Process modeling best practices with Bonita BPM through live exercises
> http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_
> source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF_______________________________________________
> Cdk-user mailing list
> Cdk-user@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/cdk-user

------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
Cdk-user mailing list
Cdk-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cdk-user

Reply via email to