Hi all,

I am trying to get my head around the tautomer function. Here a few issues,
could you help me getting into touch with Tim, or someone else being able
to help with the tautomerization functionality?

First, the canonical tautomer function is less tautomeric than I would wish
for.
The following molecules are not normalized correctly, I get two different
tautomeric versions. Test file and debugging log files are attached.
In both cases I would expect: CC(=O)Cc1ccccc1

Second, the full enumeration is just not working. In the case of NOT
defining "-c" I would expect to get all possible tautomers as defined by
the Functor class
class Functor : public OpenBabel::TautomerFunctor
but I just get one structure all the time? Any clues what goes wrong?

Third, I would highly recommend that we replace the tautomerization
framework with an alternative solution, e.g. the SMIRKS ennumeriation from
Markus Sitzman. The SMIRKS patterns are part of his publication
*Article (sin10)*
Sitzmann, M.; Ihlenfeldt, W.-D. & Nicklaus, M. C.
Tautomerism in large databases
*J Comput Aided Mol Des, **2010**, 24*, 521-551
DOI *10.1007/s10822-010-9346-4*<http://dx.doi.org/10.1007/s10822-010-9346-4>
* *
PMID *20512400 *

Or we should at least put the interfaces in-place to allow users to use
their tautomerization framework of choice.

Thoughts?

Cheers
/.Joerg

-- 
Web <http://www.joergkurtwegner.eu>,
Twitter<http://twitter.com/joergkurtwegner>,
LinkedIn <http://linkedin.com/in/joergkurtwegner>,
FOAF<http://foaf-visualizer.org/?uri=http://www.joergkurtwegner.eu/foaf.xml&hl=en>,
FaceBook <http://www.facebook.com/joergkurtwegner>,
Google+<https://plus.google.com/116731043002877336055/posts>
Atom Types:
  0: Hybridized
  1: Hybridized
  2: Hybridized
  3: Hybridized
  4: Hybridized
  5: Hybridized
  6: Other
  7: Hybridized
  8: Acceptor
  9: Other
Bond Types:
  0: Unassigned
  1: Unassigned
  2: Unassigned
  3: Unassigned
  4: Unassigned
  5: Unassigned
  6: Assigned
  7: Assigned
  8: Unassigned
  9: Assigned
Atom Types:
  0: Hybridized
  1: Hybridized
  2: Hybridized
  3: Hybridized
  4: Hybridized
  5: Hybridized
  6: Other
  7: Hybridized
  8: Unassigned
  9: Other
EnumerateRecursive
  Assigned 8 Acceptor
    -> Rule 5: Assign 7-8 Double
    -> Rule 5: Assign 5-0 Double
    -> Rule 5: Assign 1-2 Double
    -> Rule 4: Assign 2-3 Single
    -> Rule 4: Assign 4-5 Single
    -> Rule 5: Assign 3-4 Double
  --> LeafNode reached...
Change?
8 
A 
8 
A 
  Backtrack... 8
CC(=O)Cc1ccccc1 
Atom Types:
  0: Hybridized
  1: Hybridized
  2: Hybridized
  3: Hybridized
  4: Hybridized
  5: Hybridized
  6: Hybridized
  7: Hybridized
  8: Donor
  9: Other
Bond Types:
  0: Unassigned
  1: Unassigned
  2: Unassigned
  3: Unassigned
  4: Unassigned
  5: Unassigned
  6: Unassigned
  7: Unassigned
  8: Unassigned
  9: Assigned
Atom Types:
  0: Hybridized
  1: Hybridized
  2: Hybridized
  3: Hybridized
  4: Hybridized
  5: Hybridized
  6: Hybridized
  7: Hybridized
  8: Unassigned
  9: Other
EnumerateRecursive
  Assigned 8 Donor
    -> Rule 1: Assign 7-8 Single
    -> Rule 5: Assign 6-7 Double
    -> Rule 4: Assign 0-6 Single
    -> Rule 5: Assign 5-0 Double
    -> Rule 5: Assign 1-2 Double
    -> Rule 4: Assign 2-3 Single
    -> Rule 4: Assign 4-5 Single
    -> Rule 5: Assign 3-4 Double
  --> LeafNode reached...
Change?
8 
D 
  Change 8 to Acceptor
    -> Rule 5: Assign 1-2 Double
    -> Rule 5: Assign 7-8 Double
    -> Rule 4: Assign 2-3 Single
    -> Rule 4: Assign 6-7 Single
    -> Rule 5: Assign 3-4 Double
    -> Rule 5: Assign 0-6 Double
    -> Rule 4: Assign 5-0 Single
    -> Rule 4: Assign 4-5 Single
invalid Acceptor/Hybridized 1
8 
A 
  Backtrack... 8
CC(=Cc1ccccc1)O 

Attachment: test4.sdf
Description: Binary data

Atom Types:
  0: Hybridized
  1: Hybridized
  2: Hybridized
  3: Hybridized
  4: Hybridized
  5: Hybridized
  6: Other
  7: Hybridized
  8: Acceptor
  9: Other
Bond Types:
  0: Unassigned
  1: Unassigned
  2: Unassigned
  3: Unassigned
  4: Unassigned
  5: Unassigned
  6: Assigned
  7: Assigned
  8: Unassigned
  9: Assigned
Atom Types:
  0: Hybridized
  1: Hybridized
  2: Hybridized
  3: Hybridized
  4: Hybridized
  5: Hybridized
  6: Other
  7: Hybridized
  8: Unassigned
  9: Other
EnumerateRecursive
  Assigned 8 Acceptor
    -> Rule 5: Assign 7-8 Double
    -> Rule 5: Assign 5-0 Double
    -> Rule 5: Assign 1-2 Double
    -> Rule 4: Assign 2-3 Single
    -> Rule 4: Assign 4-5 Single
    -> Rule 5: Assign 3-4 Double
  --> LeafNode reached...
CC(=O)Cc1ccccc1 
Change?
8 
A 
8 
A 
  Backtrack... 8
Atom Types:
  0: Hybridized
  1: Hybridized
  2: Hybridized
  3: Hybridized
  4: Hybridized
  5: Hybridized
  6: Hybridized
  7: Hybridized
  8: Donor
  9: Other
Bond Types:
  0: Unassigned
  1: Unassigned
  2: Unassigned
  3: Unassigned
  4: Unassigned
  5: Unassigned
  6: Unassigned
  7: Unassigned
  8: Unassigned
  9: Assigned
Atom Types:
  0: Hybridized
  1: Hybridized
  2: Hybridized
  3: Hybridized
  4: Hybridized
  5: Hybridized
  6: Hybridized
  7: Hybridized
  8: Unassigned
  9: Other
EnumerateRecursive
  Assigned 8 Donor
    -> Rule 1: Assign 7-8 Single
    -> Rule 5: Assign 6-7 Double
    -> Rule 4: Assign 0-6 Single
    -> Rule 5: Assign 5-0 Double
    -> Rule 5: Assign 1-2 Double
    -> Rule 4: Assign 2-3 Single
    -> Rule 4: Assign 4-5 Single
    -> Rule 5: Assign 3-4 Double
  --> LeafNode reached...
C/C(=C\c1ccccc1)/O      
Change?
8 
D 
  Change 8 to Acceptor
    -> Rule 5: Assign 1-2 Double
    -> Rule 5: Assign 7-8 Double
    -> Rule 4: Assign 2-3 Single
    -> Rule 4: Assign 6-7 Single
    -> Rule 5: Assign 3-4 Double
    -> Rule 5: Assign 0-6 Double
    -> Rule 4: Assign 5-0 Single
    -> Rule 4: Assign 4-5 Single
invalid Acceptor/Hybridized 1
8 
A 
  Backtrack... 8
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
OpenBabel-Devel mailing list
OpenBabel-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbabel-devel

Reply via email to