wip
Some checks failed
API CI / api-tests (pull_request) Failing after 14s
CI / test (pull_request) Failing after 20s

This commit is contained in:
Tim Lorsbach
2026-04-21 10:26:35 +02:00
parent d9c8c9746d
commit 2e24666744
28 changed files with 653 additions and 69 deletions

View File

@ -867,18 +867,25 @@ class Compound(
standardized_smiles = FormatConverter.standardize(smiles, remove_stereo=True)
subclasses = CompoundStructure.__subclasses__()
qs = CompoundStructure.objects.filter(smiles=smiles, compound__package=package)
if subclasses:
qs = qs.not_instance_of(*subclasses)
# Check if we find a direct match for a given SMILES
if CompoundStructure.objects.filter(smiles=smiles, compound__package=package).exists():
return CompoundStructure.objects.get(smiles=smiles, compound__package=package).compound
if qs.exists():
return qs.first().compound
qs = CompoundStructure.objects.filter(smiles=standardized_smiles, compound__package=package)
if subclasses:
qs = qs.not_instance_of(*subclasses)
# Check if we can find the standardized one
if CompoundStructure.objects.filter(
smiles=standardized_smiles, compound__package=package
).exists():
if qs.exists():
# TODO should we add a structure?
return CompoundStructure.objects.get(
smiles=standardized_smiles, compound__package=package
).compound
return qs.first().compound
# Generate Compound
c = Compound()