diff --git a/ippisite/ippidb/models.py b/ippisite/ippidb/models.py index 5cd1496915c30d27cf8bc97713639f3dc1d37578..f1fb52bf9beee9a48d63e606a0341c96d8a4b5ca 100644 --- a/ippisite/ippidb/models.py +++ b/ippisite/ippidb/models.py @@ -158,6 +158,10 @@ class Domain(AutoFillableModel): self.pfam_id = info['id'] self.pfam_description = info['description'] + @property + def name(self): + return self.pfam_id + def __str__(self): return '{} ({}-{})'.format(self.pfam_acc, self.pfam_id, self.pfam_description) diff --git a/ippisite/ippidb/templates/compound_list.html b/ippisite/ippidb/templates/compound_list.html index 3b93d43b4ac3726d0d956dddab4b77ac970b18c2..46c4b7cccd57c69934fd92b73a96d55ea31a8f7d 100644 --- a/ippisite/ippidb/templates/compound_list.html +++ b/ippisite/ippidb/templates/compound_list.html @@ -107,6 +107,7 @@ PPI target filters </button> <div class="dropdown-menu" aria-labelledby="ptfMenuButton"> + {% include "modal_open_button.html" with label="PFAM" param_name="domain" %} {% include "modal_open_button.html" with label="Bound complex" param_name="boundcomplex" %} {% include "modal_open_button.html" with label="Partner complex" param_name="partnercomplex" %} {% include "modal_open_button.html" with label="PPI Family" param_name="family" %} @@ -135,7 +136,7 @@ <div class="m-2 d-flex justify-content-between"> <span>{{ paginator.count }} compounds</span> - {% if nb_donor_h or nb_acceptor_h or tpsa or nb_rotatable_bonds or molecular_weight or a_log_p or nb_aromatic_sssr or nb_chiral_centers or fsp3 or lipinsky or veber or pfizer or best_activity or le or lle or pdb_ligand_av or inhibition_role or stabilisation_role or binding_role or pubchem_id or chembl_id or chemspider_id or selected_boundcomplex or selected_partnercomplex or selected_family or selected_taxonomy or selected_disease or selected_ppi or similar_to or pubs %} + {% if nb_donor_h or nb_acceptor_h or tpsa or nb_rotatable_bonds or molecular_weight or a_log_p or nb_aromatic_sssr or nb_chiral_centers or fsp3 or lipinsky or veber or pfizer or best_activity or le or lle or pdb_ligand_av or inhibition_role or stabilisation_role or binding_role or pubchem_id or chembl_id or chemspider_id or selected_domain or selected_boundcomplex or selected_partnercomplex or selected_family or selected_taxonomy or selected_disease or selected_ppi or similar_to or pubs %} <span> - filters: {% include "slider_badge.html" with param_name="nb_donor_h" param_value=nb_donor_h param_value_min=nb_donor_h_value_min param_value_max=nb_donor_h_value_max param_label="H donors" %} @@ -165,6 +166,7 @@ {% include "boolean_badge.html" with param_name="chembl_id" param_value=chembl_id label="ChEMBL ID"%} {% include "boolean_badge.html" with param_name="chemspider_id" param_value=chemspider_id label="ChemSpider ID"%} + {% include "selected_badge.html" with param_name="domain" values=selected_domain %} {% include "selected_badge.html" with param_name="boundcomplex" values=selected_boundcomplex %} {% include "selected_badge.html" with param_name="partnercomplex" values=selected_partnercomplex %} {% include "selected_badge.html" with param_name="family" values=selected_family %} @@ -233,6 +235,7 @@ {% include "multiselection_modal.html" with label="Organism" selected_list=selected_taxonomy unselected_list=taxonomy param_name="taxonomy" all_param_name="taxonomy_all" all_param_value=taxonomy_all %} {% include "multiselection_modal.html" with label="Bound complex" selected_list=selected_boundcomplex unselected_list=boundcomplex param_name="boundcomplex" all_param_name="boundcomplex_all" all_param_value=boundcomplex_all %} {% include "multiselection_modal.html" with label="Partner complex" selected_list=selected_partnercomplex unselected_list=partnercomplex param_name="partnercomplex" all_param_name="partnercomplex_all" all_param_value=boundcomplex_all %} + {% include "multiselection_modal.html" with label="PFAM" selected_list=selected_domain unselected_list=domain param_name="domain" all_param_name="domain_all" all_param_value=domain_all %} {% include "slider_modal.html" with label="Molecular Weight" param_name="molecular_weight" param_min=molecular_weight_min param_max=molecular_weight_max param_value=molecular_weight param_value_min=molecular_weight_value_min param_value_max=molecular_weight_value_max step='50' param_label='Select a cutoff value for the molecular weight of the compounds to be selected'%} {% include "slider_modal.html" with label="AlogP" param_name="a_log_p" param_min=a_log_p_min param_max=a_log_p_max param_value=a_log_p param_value_min=a_log_p_value_min param_value_max=a_log_p_value_max step='1' param_label='Select a cutoff value for the AlogP of the compounds to be selected'%} {% include "slider_modal.html" with label="H donors" param_name="nb_donor_h" param_min=nb_donor_h_min param_max=nb_donor_h_max param_value=nb_donor_h param_value_min=nb_donor_h_value_min param_value_max=nb_donor_h_value_max step='1' param_label='Select a cutoff value for the number of H donors in the compounds to be selected'%} diff --git a/ippisite/ippidb/views/compound_query.py b/ippisite/ippidb/views/compound_query.py index 06568bb1f13eafd668456a69e9ecb60b5ca06019..41b6344c751ccf3f453751940985d6c40c92dd77 100644 --- a/ippisite/ippidb/views/compound_query.py +++ b/ippisite/ippidb/views/compound_query.py @@ -13,7 +13,7 @@ from django.views.generic.list import ListView from django.views.generic.base import RedirectView from ippidb.utils import mol2smi, smi2mol -from ippidb.models import Compound, Ppi, ProteinDomainBoundComplex, ProteinDomainPartnerComplex, Disease, Taxonomy, LeLleBiplotData, PcaBiplotData, PpiFamily, create_tanimoto +from ippidb.models import Compound, Ppi, ProteinDomainBoundComplex, ProteinDomainPartnerComplex, Disease, Domain, Taxonomy, LeLleBiplotData, PcaBiplotData, PpiFamily, create_tanimoto DEACTIVATION_MAPPING = { 'lipinsky': set(['molecular_weight', 'nb_acceptor_h', 'nb_donor_h', 'a_log_p']), @@ -52,7 +52,6 @@ class CompoundListFilterHandler(FilterHandler): super().__init__(parameter_name, filter_context, request_get) self.filter_class = filter_class self.relation_from_compound = relation_from_compound - self.relation_from_compound = relation_from_compound self.relation_to_compound = relation_to_compound self.value = request_get.getlist(parameter_name) @@ -313,6 +312,7 @@ class CompoundListView(ListView): CompoundListFilterHandler(Taxonomy, 'compoundaction__ppi_id__ppicomplex__complex__protein__organism', 'protein__proteindomaincomplex__ppicomplex__ppi__compoundaction__compound', 'taxonomy', self.filter_context, self.request.GET), CompoundListFilterHandler(ProteinDomainBoundComplex, 'compoundaction__ppi_id__ppicomplex__complex', 'ppicomplex__ppi__compoundaction__compound', 'boundcomplex', self.filter_context, self.request.GET), CompoundListFilterHandler(ProteinDomainPartnerComplex, 'compoundaction__ppi_id__ppicomplex__complex', 'ppicomplex__ppi__compoundaction__compound', 'partnercomplex', self.filter_context, self.request.GET), + CompoundListFilterHandler(Domain, 'compoundaction__ppi_id__ppicomplex__complex__domain', 'proteindomaincomplex__ppicomplex__ppi__compoundaction__compound', 'domain', self.filter_context, self.request.GET), CompoundRangeFilterHandler('molecular_weight', self.filter_context, self.request.GET, 50), CompoundRangeFilterHandler('a_log_p', self.filter_context, self.request.GET), CompoundRangeFilterHandler('nb_donor_h', self.filter_context, self.request.GET),