Skip to content

Commit 32da68b

Browse files
committed
split chemlog extra predictors into two for generalisability
1 parent c575637 commit 32da68b

File tree

4 files changed

+20
-14
lines changed

4 files changed

+20
-14
lines changed

chebifier/cli.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import click
44
import yaml
55

6-
from .model_registry import ENSEMBLES
6+
from chebifier.model_registry import ENSEMBLES
77

88

99
@click.group()

chebifier/model_registry.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@
77
ChemlogPeptidesPredictor,
88
ElectraPredictor,
99
ResGatedPredictor,
10-
ChEBILookupPredictor, ChemlogByElementPredictor
10+
ChEBILookupPredictor
1111
)
12+
from chebifier.prediction_models.chemlog_predictor import ChemlogXMolecularEntityPredictor, ChemlogOrganoXCompoundPredictor
1213

1314
ENSEMBLES = {
1415
"mv": BaseEnsemble,
@@ -22,7 +23,8 @@
2223
"resgated": ResGatedPredictor,
2324
"chemlog_peptides": ChemlogPeptidesPredictor,
2425
"chebi_lookup": ChEBILookupPredictor,
25-
"chemlog_element": ChemlogByElementPredictor
26+
"chemlog_element": ChemlogXMolecularEntityPredictor,
27+
"chemlog_organox": ChemlogOrganoXCompoundPredictor,
2628
}
2729

2830

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from .base_predictor import BasePredictor
2-
from .chemlog_predictor import ChemlogPeptidesPredictor, ChemlogByElementPredictor
2+
from .chemlog_predictor import ChemlogPeptidesPredictor, ChemlogExtraPredictor
33
from .electra_predictor import ElectraPredictor
44
from .gnn_predictor import ResGatedPredictor
55
from .chebi_lookup import ChEBILookupPredictor
66
__all__ = ["BasePredictor", "ChemlogPeptidesPredictor", "ElectraPredictor", "ResGatedPredictor", "ChEBILookupPredictor",
7-
"ChemlogByElementPredictor"]
7+
"ChemlogExtraPredictor"]

chebifier/prediction_models/chemlog_predictor.py

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -39,21 +39,25 @@
3939
"Y": "L-tyrosine",
4040
}
4141

42-
class ChemlogByElementPredictor(BasePredictor):
42+
class ChemlogExtraPredictor(BasePredictor):
43+
44+
CHEMLOG_CLASSIFIER = None
4345

4446
def __init__(self, model_name: str, **kwargs):
4547
super().__init__(model_name, **kwargs)
46-
self.x_molecular = XMolecularEntityClassifier()
47-
self.organo_x = OrganoXCompoundClassifier()
48+
self.classifier = self.CHEMLOG_CLASSIFIER()
4849

4950
def predict_smiles_list(self, smiles_list: list[str]) -> list:
5051
mol_list = [_smiles_to_mol(smiles) for smiles in smiles_list]
51-
return [
52-
{str(cls): 1 for cls in self.x_molecular.classify(mol)[0] + self.organo_x.classify(mol)[0]}
53-
if mol
54-
else None
55-
for mol in mol_list
56-
]
52+
return self.classifier.classify(mol_list)
53+
54+
class ChemlogXMolecularEntityPredictor(ChemlogExtraPredictor):
55+
56+
CHEMLOG_CLASSIFIER = XMolecularEntityClassifier
57+
58+
class ChemlogOrganoXCompoundPredictor(ChemlogExtraPredictor):
59+
60+
CHEMLOG_CLASSIFIER = OrganoXCompoundClassifier
5761

5862
class ChemlogPeptidesPredictor(BasePredictor):
5963
def __init__(self, model_name: str, **kwargs):

0 commit comments

Comments
 (0)