Skip to content
Snippets Groups Projects
Commit c222fec5 authored by David Mendez's avatar David Mendez
Browse files

Eubopen compound: adapt sections to use chembl id, hide qt and act profile when no data

parent c6e2fab6
No related branches found
No related tags found
1 merge request!88Changes for the Midterm Review
Showing
with 155 additions and 24 deletions
...@@ -31,6 +31,10 @@ export default { ...@@ -31,6 +31,10 @@ export default {
type: String, type: String,
default: () => undefined, default: () => undefined,
}, },
chemblID: {
type: String,
default: () => undefined,
},
}, },
data() { data() {
return { return {
...@@ -60,10 +64,10 @@ export default { ...@@ -60,10 +64,10 @@ export default {
query: { query: {
bool: { bool: {
must: [ must: [
{ terms: { molecule_chembl_id: [this.itemID] } }, { terms: { molecule_chembl_id: [this.chemblID] } },
{ {
terms: { terms: {
'_metadata.eubopen_assay_type.aidx_prefix.keyword': [ '_metadata.eubopen_assay_type.aidx_prefix': [
this.tabConfig.key, this.tabConfig.key,
], ],
}, },
......
...@@ -7,7 +7,11 @@ ...@@ -7,7 +7,11 @@
</v-alert> </v-alert>
</template> </template>
<template v-else> <template v-else>
<DownloadButton :item-i-d="itemID" :section-key="sectionKey" /> <DownloadButton
:item-i-d="itemID"
:chembl-i-d="chemblID"
:section-key="sectionKey"
/>
<v-tabs v-model="tab" show-arrows> <v-tabs v-model="tab" show-arrows>
<v-tab v-for="item in shownSections" :key="item.key"> <v-tab v-for="item in shownSections" :key="item.key">
{{ item.title }} {{ item.title }}
...@@ -16,7 +20,11 @@ ...@@ -16,7 +20,11 @@
<v-tabs-items v-model="tab"> <v-tabs-items v-model="tab">
<v-tab-item v-for="item in shownSections" :key="item.key"> <v-tab-item v-for="item in shownSections" :key="item.key">
<ActivityDataSingleTab :tab-config="item" :item-i-d="itemID" /> <ActivityDataSingleTab
:tab-config="item"
:item-i-d="itemID"
:chembl-i-d="chemblID"
/>
</v-tab-item> </v-tab-item>
</v-tabs-items> </v-tabs-items>
</template> </template>
...@@ -41,6 +49,10 @@ export default { ...@@ -41,6 +49,10 @@ export default {
type: String, type: String,
default: () => undefined, default: () => undefined,
}, },
chemblID: {
type: String,
default: () => undefined,
},
}, },
data() { data() {
return { return {
...@@ -146,10 +158,10 @@ export default { ...@@ -146,10 +158,10 @@ export default {
query: { query: {
bool: { bool: {
must: [ must: [
{ terms: { molecule_chembl_id: [this.itemID] } }, { terms: { molecule_chembl_id: [this.chemblID] } },
{ {
terms: { terms: {
'_metadata.eubopen_assay_type.aidx_prefix.keyword': aidxPrefixes, '_metadata.eubopen_assay_type.aidx_prefix': aidxPrefixes,
}, },
}, },
], ],
......
...@@ -30,6 +30,10 @@ export default { ...@@ -30,6 +30,10 @@ export default {
type: String, type: String,
default: () => undefined, default: () => undefined,
}, },
chemblID: {
type: String,
default: () => undefined,
},
sectionKey: { sectionKey: {
type: String, type: String,
default: () => undefined, default: () => undefined,
...@@ -58,12 +62,12 @@ export default { ...@@ -58,12 +62,12 @@ export default {
}, },
starterParams() { starterParams() {
return { return {
chemblID: this.itemID, chemblID: this.chemblID,
propertiesGroups: this.propertiesGroups, propertiesGroups: this.propertiesGroups,
initialQuery: { initialQuery: {
query: { query: {
bool: { bool: {
must: [{ terms: { molecule_chembl_id: [this.itemID] } }], must: [{ terms: { molecule_chembl_id: [this.chemblID] } }],
}, },
}, },
}, },
......
...@@ -63,6 +63,10 @@ export default { ...@@ -63,6 +63,10 @@ export default {
type: String, type: String,
default: () => undefined, default: () => undefined,
}, },
chemblID: {
type: String,
default: () => undefined,
},
}, },
data() { data() {
return { return {
...@@ -72,7 +76,7 @@ export default { ...@@ -72,7 +76,7 @@ export default {
}, },
computed: { computed: {
csvURL() { csvURL() {
return `${process.env.esProxyBaseUrl}/eubopen/visualisations/compound/cell_viability_and_health_data/download/CHEMBL180022` return `${process.env.esProxyBaseUrl}/eubopen/visualisations/compound/cell_viability_and_health_data/download/${this.chemblID}`
}, },
}, },
mounted() { mounted() {
...@@ -80,7 +84,7 @@ export default { ...@@ -80,7 +84,7 @@ export default {
}, },
methods: { methods: {
loadData() { loadData() {
const visualisationPath = `/eubopen/visualisations/compound/cell_viability_and_health_data/${this.itemID}` const visualisationPath = `/eubopen/visualisations/compound/cell_viability_and_health_data/${this.chemblID}`
ESProxyService.getGenericData(visualisationPath) ESProxyService.getGenericData(visualisationPath)
.then((response) => { .then((response) => {
......
...@@ -2,7 +2,11 @@ ...@@ -2,7 +2,11 @@
<div> <div>
<v-card> <v-card>
<v-card-text> <v-card-text>
<ActivityDataTabs :item-i-d="itemID" section-key="ActivityProfile" /> <ActivityDataTabs
:item-i-d="itemID"
section-key="ActivityProfile"
:chembl-i-d="chemblID"
/>
</v-card-text> </v-card-text>
</v-card> </v-card>
</div> </div>
...@@ -19,6 +23,10 @@ export default { ...@@ -19,6 +23,10 @@ export default {
type: String, type: String,
default: () => undefined, default: () => undefined,
}, },
chemblID: {
type: String,
default: () => undefined,
},
}, },
} }
</script> </script>
......
...@@ -41,6 +41,10 @@ export default { ...@@ -41,6 +41,10 @@ export default {
type: String, type: String,
default: () => undefined, default: () => undefined,
}, },
chemblID: {
type: String,
default: () => undefined,
},
}, },
data() { data() {
return { return {
...@@ -64,7 +68,7 @@ export default { ...@@ -64,7 +68,7 @@ export default {
const unichemPropertyPath = '_metadata.unichem' const unichemPropertyPath = '_metadata.unichem'
const docSource = [unichemPropertyPath] const docSource = [unichemPropertyPath]
ESProxyService.getESDocument(indexName, this.itemID, docSource) ESProxyService.getESDocument(indexName, this.chemblID, docSource)
.then((response) => { .then((response) => {
const sourceObtained = response.data._source const sourceObtained = response.data._source
const unichemRefs = ObjectPropertyAccess.getPropertyPalue( const unichemRefs = ObjectPropertyAccess.getPropertyPalue(
......
...@@ -40,14 +40,24 @@ export default { ...@@ -40,14 +40,24 @@ export default {
async mounted() { async mounted() {
try { try {
const paramsFromCompound = await this.getOptionalSectionsParams() const paramsFromCompound = await this.getOptionalSectionsParams()
const showCellHeatlhAndViabilityData = await this.hasCellHeatlhAndViabilityData() const chemblID = await this.getChEMBLID()
const showCellHeatlhAndViabilityData = await this.hasCellHeatlhAndViabilityData(
chemblID
)
const showQualityControlData = await this.hasQualityControlData(chemblID)
const showActivityProfileData = await this.hasActivityProfileData(
chemblID
)
const reportCardStructure = CompoundReportCardGenerator.generateReportCardStructure( const reportCardStructure = CompoundReportCardGenerator.generateReportCardStructure(
this.itemID,
paramsFromCompound.prefName,
{ {
itemID: this.itemID,
chemblID,
prefName: paramsFromCompound.prefName,
isChemicalProbe: paramsFromCompound.isChemicalProbe, isChemicalProbe: paramsFromCompound.isChemicalProbe,
isNegativeControl: paramsFromCompound.isNegativeControl, isNegativeControl: paramsFromCompound.isNegativeControl,
showCellHeatlhAndViabilityData, showCellHeatlhAndViabilityData,
showQualityControlData,
showActivityProfileData,
} }
) )
...@@ -107,7 +117,7 @@ export default { ...@@ -107,7 +117,7 @@ export default {
isNegativeControl, isNegativeControl,
} }
}, },
async hasCellHeatlhAndViabilityData() { async getChEMBLID() {
const chemblIDResponse = await ESProxyService.getESDocument( const chemblIDResponse = await ESProxyService.getESDocument(
IndexNames.getIndexNameFromEntityID( IndexNames.getIndexNameFromEntityID(
EntityNames.EubopenCompound.entityID EntityNames.EubopenCompound.entityID
...@@ -116,7 +126,9 @@ export default { ...@@ -116,7 +126,9 @@ export default {
['molecule_chembl_id'] ['molecule_chembl_id']
) )
const chemblID = chemblIDResponse.data._source.molecule_chembl_id return chemblIDResponse.data._source.molecule_chembl_id
},
async hasCellHeatlhAndViabilityData(chemblID) {
const cellHeatlhAndViabilityDataPath = `/eubopen/visualisations/compound/cell_viability_and_health_data/${chemblID}` const cellHeatlhAndViabilityDataPath = `/eubopen/visualisations/compound/cell_viability_and_health_data/${chemblID}`
const cellHealthAndViabilityData = await ESProxyService.getGenericData( const cellHealthAndViabilityData = await ESProxyService.getGenericData(
cellHeatlhAndViabilityDataPath cellHeatlhAndViabilityDataPath
...@@ -125,6 +137,68 @@ export default { ...@@ -125,6 +137,68 @@ export default {
const numDataPoints = cellHealthAndViabilityData.data.num_datapoints const numDataPoints = cellHealthAndViabilityData.data.num_datapoints
return numDataPoints > 0 return numDataPoints > 0
}, },
async hasQualityControlData(chemblID) {
const entityID = EntityNames.EubopenActivity.entityID
const indexName = IndexNames.getIndexNameFromEntityID(entityID)
const aidxPrefixes = ['MULTI', 'INCU', 'LIABILITY']
const query = {
size: 0,
query: {
bool: {
must: [
{ terms: { molecule_chembl_id: [chemblID] } },
{
terms: {
'_metadata.eubopen_assay_type.aidx_prefix': aidxPrefixes,
},
},
],
},
},
}
const qtData = await ESProxyService.getESData(indexName, query)
const numHits = qtData.data.es_response.hits.total.value
return numHits > 0
},
async hasActivityProfileData(chemblID) {
const entityID = EntityNames.EubopenActivity.entityID
const indexName = IndexNames.getIndexNameFromEntityID(entityID)
const aidxPrefixes = [
'AB',
'AOT',
'AP',
'S',
'ASIC50',
'ASSS',
'GPCR',
'NanoBRET',
'ITC',
'HTRF',
]
const query = {
size: 0,
query: {
bool: {
must: [
{ terms: { molecule_chembl_id: [chemblID] } },
{
terms: {
'_metadata.eubopen_assay_type.aidx_prefix': aidxPrefixes,
},
},
],
},
},
}
const qtData = await ESProxyService.getESData(indexName, query)
const numHits = qtData.data.es_response.hits.total.value
return numHits > 0
},
}, },
} }
</script> </script>
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<div> <div>
<v-card> <v-card>
<v-card-text> <v-card-text>
<ActivityDataTabs :item-i-d="itemID" /> <ActivityDataTabs :item-i-d="itemID" :chembl-i-d="chemblID" />
</v-card-text> </v-card-text>
</v-card> </v-card>
</div> </div>
...@@ -19,6 +19,10 @@ export default { ...@@ -19,6 +19,10 @@ export default {
type: String, type: String,
default: () => undefined, default: () => undefined,
}, },
chemblID: {
type: String,
default: () => undefined,
},
}, },
} }
</script> </script>
......
...@@ -10,11 +10,16 @@ import EntityNames from '~/web-components-submodule/standardisation/EntityNames. ...@@ -10,11 +10,16 @@ import EntityNames from '~/web-components-submodule/standardisation/EntityNames.
import CellViabilityAndHealthData from '~/components/report_cards/chemical_probe/CellViabilityAndHealthData.vue' import CellViabilityAndHealthData from '~/components/report_cards/chemical_probe/CellViabilityAndHealthData.vue'
const methods = { const methods = {
generateReportCardStructure( generateReportCardStructure({
itemID, itemID,
chemblID,
prefName, prefName,
{ isChemicalProbe, isNegativeControl, showCellHeatlhAndViabilityData } isChemicalProbe,
) { isNegativeControl,
showCellHeatlhAndViabilityData,
showQualityControlData,
showActivityProfileData,
}) {
const basePageStructure = [ const basePageStructure = [
{ {
id: 'Summary', id: 'Summary',
...@@ -44,18 +49,27 @@ const methods = { ...@@ -44,18 +49,27 @@ const methods = {
id: 'QualityControl', id: 'QualityControl',
title: 'Quality Control', title: 'Quality Control',
component: QualityControl, component: QualityControl,
include: true, componentParams: {
chemblID,
},
include: showQualityControlData,
}, },
{ {
id: 'ActivityProfile', id: 'ActivityProfile',
title: 'Activity Profile', title: 'Activity Profile',
component: CompoundActivityProfile, component: CompoundActivityProfile,
include: true, componentParams: {
chemblID,
},
include: showActivityProfileData,
}, },
{ {
id: 'CellViabilityAndHealthData', id: 'CellViabilityAndHealthData',
title: 'Cell Health Data', title: 'Cell Health Data',
component: CellViabilityAndHealthData, component: CellViabilityAndHealthData,
componentParams: {
chemblID,
},
include: showCellHeatlhAndViabilityData, include: showCellHeatlhAndViabilityData,
}, },
{ {
...@@ -71,6 +85,9 @@ const methods = { ...@@ -71,6 +85,9 @@ const methods = {
id: 'CrystalStructures', id: 'CrystalStructures',
title: 'PDB Ligand Codes', title: 'PDB Ligand Codes',
component: CompoundCrystalStructures, component: CompoundCrystalStructures,
componentParams: {
chemblID,
},
include: true, include: true,
}, },
] ]
......
Subproject commit 4a0daf4316804616b68774a5d777c39865cfe599 Subproject commit 918874fc1fe49e86fd578e0630d8f08cc74be8b0
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment