From 8074b86b868fad931360c9eabb89277e7315386c Mon Sep 17 00:00:00 2001 From: Xavier Robin <xavier.robin@unibas.ch> Date: Wed, 9 Aug 2023 11:32:03 +0200 Subject: [PATCH] fix: ligand maps must always be available --- actions/ost-compare-ligand-structures | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/actions/ost-compare-ligand-structures b/actions/ost-compare-ligand-structures index a246b13af..d8e55d6b5 100644 --- a/actions/ost-compare-ligand-structures +++ b/actions/ost-compare-ligand-structures @@ -379,8 +379,6 @@ def _Process(model, model_ligands, reference, reference_ligands, args): # Replace model ligand by path if len(model_ligands) == len(scorer.model_ligands): # Map ligand => path - model_ligands_map = {k.hash_code: v for k, v in zip( - scorer.model_ligands, args.model_ligands)} out["model_ligands"] = args.model_ligands elif len(model_ligands) < len(scorer.model_ligands): # Multi-ligand SDF files were given @@ -396,16 +394,16 @@ def _Process(model, model_ligands, reference, reference_ligands, args): "(%d) than given (%d)" % ( len(scorer.model_ligands), len(model_ligands))) else: - model_ligands_map = {l.hash_code: _QualifiedResidueNotation(l) - for l in scorer.model_ligands} - out["model_ligands"] = list(model_ligands_map.values()) + # Map ligand => qualified residue + out["model_ligands"] = [_QualifiedResidueNotation(l) for l in scorer.model_ligands] + + model_ligands_map = {k.hash_code: v for k, v in zip( + scorer.model_ligands, out["model_ligands"])} if reference_ligands is not None: # Replace reference ligand by path if len(reference_ligands) == len(scorer.target_ligands): # Map ligand => path - reference_ligands_map = {k.hash_code: v for k, v in zip( - scorer.target_ligands, args.reference_ligands)} out["reference_ligands"] = args.reference_ligands elif len(reference_ligands) < len(scorer.target_ligands): # Multi-ligand SDF files were given @@ -422,9 +420,12 @@ def _Process(model, model_ligands, reference, reference_ligands, args): len(scorer.target_ligands), len(reference_ligands))) else: - reference_ligands_map = {l.hash_code: _QualifiedResidueNotation(l) - for l in scorer.target_ligands} - out["reference_ligands"] = list(reference_ligands_map.values()) + # Map ligand => qualified residue + out["reference_ligands"] = [_QualifiedResidueNotation(l) for l in scorer.target_ligands] + + reference_ligands_map = {k.hash_code: v for k, v in zip( + scorer.target_ligands, out["reference_ligands"])} + if not (args.lddt_pli or args.rmsd): ost.LogWarning("No score selected, output will be empty.") -- GitLab