Sorry could be my bad wording, there are really three 'levels' of hydrogens
representation. This isn't that confusing but the terminology is often
misnamed in toolkits/formats. Even there where i said explicit I should
have said labelled or something similar:
Implicit/Undefined -> defined by valence rules -> CCO
Labelled/Contracted/Suppressed -> explicitly stated in format ->
[CH3][CH2][OH]
Explicit/Expanded/Sprouted -> explicit nodes ->
C][H])([H])([H])C([H])([H])O[H]
When CDK says 'ImplicitHydrogenAdder' it's not adding implicit hydrogens
per say but rather taken a molecule with some unknown hydrogen counts
(implicit) it sets the value of these explicitly. They are still contracted
on the parent atoms. You can take always expand these and make them
explicit nodes in the graph if so desired
(AtomContainerManipulator.convertImplicitHydrogensToExplicit) or something
similar. The reverse is 'suppressExplicitHydrogens', also for legacy reason
'removeExplicitHydrogens' but doesn't actually remove them so the
'suppress' name is preffered.
John
Regards,
John W May
john.wilkinson...@gmail.com
On 22 June 2016 at 09:55, Tim Dudgeon <tdudgeon...@gmail.com> wrote:
> John
>
> Thanks for that. Adding implicit hydrogens does indeed resolve the problem.
> But does this mean that for formats like this you MUST add IMPLICIT
> hydrogens everywhere (there's no way for them to be explicit)? That's ugly!
>
> Tim
>
> On 21/06/2016 19:04, John M wrote:
>
> SMILES, InChI, Molfile have explicit valence models and thus their
> hydrogens are set automatically on read. For other formats you need to add
> them. The CDK doesn't do this by valence counting but rather through more
> expensive atom typing. Very clunky:
>
> AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(mol);
> CDKHydrogenAdder.getInstance(mol.getBuilder()).addImplicitHydrogens(mol);
>
> If someone can point at the Tripos Mol2 valence model, am happy to add it.
> Should be easy right as they encode the atom types in the format?
>
> John
>
> Regards,
> John W May
> john.wilkinson...@gmail.com
>
> On 21 June 2016 at 17:22, Tim Dudgeon <tdudgeon...@gmail.com> wrote:
>
>> I'm having difficulty reading Mol2 format files. Code is:
>>
>> def is = new FileInputStream("../../data/testfiles/ligand.mol2")
>> def reader = new Mol2Reader(is)
>> def file = reader.read(new ChemFile())
>> def mol = ChemFileManipulator.getAllAtomContainers(file).get(0)
>> AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(mol)
>> def out = new ByteArrayOutputStream()
>> def writer = new SMILESWriter(out)
>> writer.writeAtomContainer(mol)
>> println new String(out.toByteArray())
>>
>> The file appears to be a valid mol2 format file, but when I try to write
>> it out as smiles it blows up with:
>>
>> java.lang.NullPointerException: One or more atoms had an undefined number
>> of implicit hydrogens
>> at
>> com.google.common.base.Preconditions.checkNotNull(Preconditions.java:229)
>> at org.openscience.cdk.smiles.CDKToBeam.toBeamAtom(CDKToBeam.java:195)
>> at org.openscience.cdk.smiles.CDKToBeam.toBeamGraph(CDKToBeam.java:145)
>> at
>> org.openscience.cdk.smiles.SmilesGenerator.create(SmilesGenerator.java:369)
>> at
>> org.openscience.cdk.smiles.SmilesGenerator.create(SmilesGenerator.java:325)
>> at
>> org.openscience.cdk.io.SMILESWriter.writeAtomContainer(SMILESWriter.java:179)
>>
>> What am I missing?
>>
>> Tim
>>
>>
>> ------------------------------------------------------------------------------
>> Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
>> Francisco, CA to explore cutting-edge tech and listen to tech luminaries
>> present their vision of the future. This family event has something for
>> everyone, including kids. Get more information and register today.
>> http://sdm.link/attshape
>> _______________________________________________
>> Cdk-user mailing list
>> Cdk-user@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/cdk-user
>>
>>
>
>
> ------------------------------------------------------------------------------
> Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
> Francisco, CA to explore cutting-edge tech and listen to tech luminaries
> present their vision of the future. This family event has something for
> everyone, including kids. Get more information and register
> today.http://sdm.link/attshape
>
>
>
> _______________________________________________
> Cdk-user mailing
> listCdk-user@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/cdk-user
>
>
>
>
> ------------------------------------------------------------------------------
> Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
> Francisco, CA to explore cutting-edge tech and listen to tech luminaries
> present their vision of the future. This family event has something for
> everyone, including kids. Get more information and register today.
> http://sdm.link/attshape
> _______________________________________________
> Cdk-user mailing list
> Cdk-user@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/cdk-user
>
>
------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape
_______________________________________________
Cdk-user mailing list
Cdk-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cdk-user