[Fix] Post Modern UI deploy Bugfixes (#240)

Co-authored-by: Tim Lorsbach <tim@lorsba.ch>
Reviewed-on: enviPath/enviPy#240
This commit is contained in:
2025-11-27 10:28:04 +13:00
parent 1a2c9bb543
commit fd2e2c2534
9 changed files with 127 additions and 53 deletions

View File

@ -2282,6 +2282,13 @@ class PackageBasedModel(EPModel):
return Dataset.load(ds_path)
def retrain(self):
# Reset eval fields
self.eval_results = {}
self.eval_packages.clear()
self.model_status = False
self.save()
# Do actual retrain
self.build_dataset()
self.build_model()
@ -2319,7 +2326,7 @@ class PackageBasedModel(EPModel):
self.save()
def evaluate_model(self, multigen: bool, eval_packages: List["Package"] = None, **kwargs):
if self.model_status != self.BUILT_NOT_EVALUATED:
if self.model_status not in [self.BUILT_NOT_EVALUATED, self.FINISHED]:
raise ValueError(f"Can't evaluate a model in state {self.model_status}!")
if multigen:
@ -2327,9 +2334,12 @@ class PackageBasedModel(EPModel):
self.save()
if eval_packages is not None:
self.eval_packages.clear()
for p in eval_packages:
self.eval_packages.add(p)
self.eval_results = {}
self.model_status = self.EVALUATING
self.save()
@ -2383,9 +2393,14 @@ class PackageBasedModel(EPModel):
recall = {f"{t:.2f}": [] for t in thresholds}
# Note: only one root compound supported at this time
root_compounds = [
[p.default_node_label.smiles for p in p.root_nodes][0] for p in pathways
]
root_compounds = []
for pw in pathways:
if pw.root_nodes:
root_compounds.append(pw.root_nodes[0].default_node_label)
else:
logger.info(
f"Skipping MG Eval of Pathway {pw.name} ({pw.uuid}) as it has no root compounds!"
)
# As we need a Model Instance in our setting, get a fresh copy from db, overwrite the serialized mode and
# pass it to the setting used in prediction
@ -3192,7 +3207,7 @@ class EnviFormer(PackageBasedModel):
return args
def evaluate_model(self, multigen: bool, eval_packages: List["Package"] = None, **kwargs):
if self.model_status != self.BUILT_NOT_EVALUATED:
if self.model_status not in [self.BUILT_NOT_EVALUATED, self.FINISHED]:
raise ValueError(f"Can't evaluate a model in state {self.model_status}!")
if multigen:
@ -3200,9 +3215,12 @@ class EnviFormer(PackageBasedModel):
self.save()
if eval_packages is not None:
self.eval_packages.clear()
for p in eval_packages:
self.eval_packages.add(p)
self.eval_results = {}
self.model_status = self.EVALUATING
self.save()