Conversation
|
From my notes back then: More maintainable. Usually to clean up stuff, context managers. Not meant for logic molecule resolver contextmanager should be rewritten Abstract Base Class Algorithm for best structure; Optional; Detailed/isomer by running through Opsin. If isomeric; OPSIN check. 5 names -> search 5 names on all service, for first found name, return. Correlations between databases. |
|
Figured I might as well :P |
|
Hi Tom, I will have to take some time to review this. :) It's a lot of changes. Thanks! I will try to get back to you in 1-2 weeks. |
|
Great, that's perfect. If there's anything missing, wanted, or necessary to change, just let me know or send me an email. Don't have a lot of free time anymore (I work as an AI-engineer at the moment, with some other projects going on), but enough to work on this when I want to in my free time. |
Implemented the plan from our meeting in september:
context manager is lifecycle-only
service logic is abstracted behind adapters
exhaustive all-name/all-service search with grouping is supported
best-structure selection now uses deterministic RDKit stereo/chirality scoring (no SMILES-length heuristic)
strict OPSIN isomer validation is available
cross-service evidence/correlation output is explicit
default usage remains backward-compatible.
API changes:
search_strategyadded (defaultfirst_hit)resolution_modeadded (defaultlegacy)include_evidenceadded for crosschecked searchinclude_evidence=TruereturnsResolutionResultexhaustivesearches all names/servicesstrict_isomerenforces OPSIN stereo matchlegacyandconsensuscurrently share the same pathAdded features:
resolve_one)CandidateEvidence)