Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unlike in the tautomer 1.06 pre release, the 1.07 library does not work for the tautomer transformationss that have been added by Igor Filippov #53

Open
gblanke02 opened this issue Aug 29, 2024 · 1 comment
Assignees

Comments

@gblanke02
Copy link
Contributor

gblanke02 commented Aug 29, 2024

Marc Nicklaus (NIH) reported an issue found by Wolf-Dieterich Ihlenfeldt that the 1.07 library does ot work for the "TAUTO" option in CACTUS.
CACTUS has already provided the property E_TAUTO_INCHI[KEY] for 3 years that includes the 6 tautomer rules programmed by Igor Fillipov. The special 1.06 version used contains the 6 rules as pre-release although they are not offical part of the 1.06 release.

The CACTUS call is
cactvs>prop test E_TAUTO_INCHI
/home/wdi/CACTVS/BIN/Linux5.14-SuSELeap15.4-64/tclcactvs: symbol lookup error: /home/wdi/CACTVS/OBJ/Linux5.14-SuSELeap15.4-64/mod_e_tauto_inchi
.so: undefined symbol: GetTautoINCHI

The Tauto-enabled 1.06 version contains the funktion in inchi_dll.c

Wolf Dietrich Ihlenfeldt sent following note on August 30th:
He uses the following code to call the tautomers:

memset(&out,0,sizeof(out));
CSnamedMutexLock(INCHI_MUTEX_NAME);
#ifdef STDINCHI
    res = (RetValGetINCHI) GetStdINCHI(&in,&out);
#else
    #ifdef TAUTOINCHI
        res = (RetValGetINCHI) GetTautoINCHI(&in,&out);
    #else
        res = (RetValGetINCHI) GetINCHI(&in,&out);
    #endif
#endif

./INCHI_BASE/src/inchi_dll.c:int INCHI_DECL GetTautoINCHI( inchi_Input *inp, inchi_Output *out )

GetTautoINCHI() exists in the Tauto enabled 1.06 version but does not exist in 1.07.

Note by Wolf-Dietrich: Because he does not trust the thread safty of the InChI-Lib he has always Mutex-secured every call. But nowadays, it is expected that a library is threatsafe, at least the status of each of the functions must be well documented

Notes:

  • The Tauto enabled 1.06 version was a special test release sent to Marc Nicklaus. It was not part of the official 1.06 release. Therefoe, we do not have it in 1.07.
  • CACTUS is developed by Wolf-Dietrich Ihlenfeldt, whose company Xemistry is based in Königstein (Taunus, next to Frabkfurt). The program is used by NIH and PubChem. In this case NIH is important because Marc Nicklaus (NIH) is developing the tautomer rules and uses them already.
  • Because we do not have a CACTUS version we will have to work together with the CACTUS developer Wolf-Dieterich directly.

Wolf-D. Ihlenfeldt - Xemistry GmbH - wdi@xemistry.com
Phone: +49 6174 201455 - Fax +49 6174 209665

@gblanke02 gblanke02 changed the title Unlike in the tautomer 1.06 pre release, the 1.07 library does not work for the tautomers that have been added by Igor Filippov Unlike in the tautomer 1.06 pre release, the 1.07 library does not work for the tautomer transformationss that have been added by Igor Filippov Aug 30, 2024
@gblanke02
Copy link
Contributor Author

The attached file is the special release for the NIH / Marc Nicklaus, Wolf Dietrich Ihlenfelder:
INCHI_BASE.zip

Taken from the email (15-Nov-2024):

Here it is (attached). Entry point is

#ifdef STDINCHI
res = (RetValGetINCHI) GetStdINCHI(&in,&out);
#else
#ifdef TAUTOINCHI
res = (RetValGetINCHI) GetTautoINCHI(&in,&out);
#else
res = (RetValGetINCHI) GetINCHI(&in,&out);
#endif
#endif

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants