From 6074d79ca46cdd141d166789af1e7268c0e7bf33 Mon Sep 17 00:00:00 2001 From: Boris Kovar Date: Wed, 17 Apr 2024 09:50:06 +0200 Subject: [PATCH] - #1348 - fixed cases when all pdbs are missing --- docker-compose.dev.vector.yml | 4 ++-- js/components/datasets/datasetMoleculeList.js | 19 ++++++++++++++----- .../datasetMoleculeView.js | 2 +- js/components/nglView/generatingObjects.js | 2 +- 4 files changed, 18 insertions(+), 9 deletions(-) diff --git a/docker-compose.dev.vector.yml b/docker-compose.dev.vector.yml index e9238a97c..272e4b83f 100644 --- a/docker-compose.dev.vector.yml +++ b/docker-compose.dev.vector.yml @@ -53,10 +53,10 @@ services: start_period: 10s web: container_name: web_dock - # image: xchem/fragalysis-stack:latest + image: xchem/fragalysis-stack:latest # image: alanbchristie/fragalysis-backend:1187.3 # image: boriskovarm2ms/fragalysis-stack:experiment2 - image: kaliif/fragalysis-backend:latest + # image: kaliif/fragalysis-backend:latest command: /bin/bash /code/launch-stack.sh volumes: - ../data/logs:/code/logs/ diff --git a/js/components/datasets/datasetMoleculeList.js b/js/components/datasets/datasetMoleculeList.js index 7fb2bb84d..5f2892273 100644 --- a/js/components/datasets/datasetMoleculeList.js +++ b/js/components/datasets/datasetMoleculeList.js @@ -487,9 +487,18 @@ const DatasetMoleculeList = ({ title, datasetID, url }) => { const compoundColors = useSelector(state => state.datasetsReducers.compoundColorByDataset[datasetID]) ?? {}; - const isSelectedTypeOn = typeList => { + const isSelectedTypeOn = (typeList, isLHSReference) => { if (typeList) { - return typeList.some(molId => allMolecules.some(mol => mol.id === molId)); + if (!isLHSReference) { + return typeList.some(molId => allMolecules.some(mol => mol.id === molId)); + } else { + const molsWithLHSReference = allMolecules.filter(mol => mol.site_observation_code); + return typeList.some(molId => + molsWithLHSReference.some( + mol => mol.site_observation_code === allMoleculesList.find(m => m.id === molId)?.code + ) + ); + } } return false; }; @@ -498,9 +507,9 @@ const DatasetMoleculeList = ({ title, datasetID, url }) => { return typeList && typeList.length > 0; }; - let isLigandOn = isSelectedTypeOn(ligandList); - let isProteinOn = isSelectedTypeOn(proteinList) || isSelectedTypeOn(proteinListDataset); - let isComplexOn = isSelectedTypeOn(complexList) || isSelectedTypeOn(complexListDataset); + let isLigandOn = isSelectedTypeOn(ligandList, false); + let isProteinOn = isSelectedTypeOn(proteinList, true) || isSelectedTypeOn(proteinListDataset, false); + let isComplexOn = isSelectedTypeOn(complexList, true) || isSelectedTypeOn(complexListDataset, false); let areArrowsVisible = isTypeOn(ligandList) || diff --git a/js/components/datasets/datasetMoleculeView/datasetMoleculeView.js b/js/components/datasets/datasetMoleculeView/datasetMoleculeView.js index eab19055a..6a283e978 100644 --- a/js/components/datasets/datasetMoleculeView/datasetMoleculeView.js +++ b/js/components/datasets/datasetMoleculeView/datasetMoleculeView.js @@ -463,7 +463,7 @@ const DatasetMoleculeView = memo( // #1249 dataset molecules currently could use side observation molecule for some renders const allMolecules = useSelector(state => state.apiReducers.all_mol_lists); const [pdbData, setPdbData] = useState(null); - const isPdbAvailable = !!(data && (data.pdb_info || pdbData)); + const isPdbAvailable = !!(data && (data.pdb_info || data.site_observation_code)); useEffect(() => { if (data.site_observation_code) { diff --git a/js/components/nglView/generatingObjects.js b/js/components/nglView/generatingObjects.js index 271c58350..8af53b404 100644 --- a/js/components/nglView/generatingObjects.js +++ b/js/components/nglView/generatingObjects.js @@ -25,7 +25,7 @@ export const assignRepresentationArrayToComp = (representations, comp) => { export const generateProteinObject = data => { // Now deal with this target - const prot_to_load = window.location.protocol + '//' + window.location.host + data.template_protein; + const prot_to_load = data.template_protein; if (JSON.stringify(prot_to_load) !== JSON.stringify(undefined)) { return { name: OBJECT_TYPE.PROTEIN + '_' + data.id.toString(),