diff --git a/ippisite/ippidb/templates/targetcentric.html b/ippisite/ippidb/templates/targetcentric.html index 4191c16126c2e7a4545ad7fb48dad09472d5dace..6aa573b228018f0cf35424e99fdf75421bdca39f 100644 --- a/ippisite/ippidb/templates/targetcentric.html +++ b/ippisite/ippidb/templates/targetcentric.html @@ -236,230 +236,8 @@ Comparison and druggability prediction of protein-ligand binding sites from phar {% with chaincount=forloop.counter %} {% for cavity in cavities %} {% with cavcount=forloop.counter %} - <tr id="cavity_{{ cavity.id }}" class="table-light" > - <th class="zui-sticky-col text-nowrap"> - - <i class="far fa-plus-square" style="cursor: pointer;" data-toggle="collapse" data-target=".collapseme{{ chaincount }}_{{ cavcount }}"></i> - <a target="_blank" rel="noopener noreferrer" href="{% url 'cavities' %}?pdbsearch={{ cavity.chain.pdb.code }}">{{ cavity.chain.pdb.code }}</a> - / - <span class="dropdown"> - <div class="dropbtn" data-toggle="dropdown" title="uniprot: {{ cavity.chain.protein.uniprot_id }}"> - {{ cavity.chain.pdb_chain_id }} | {{ cavity.chain.protein.short_name }} - </div> - <div class="dropdown-content"> - <a target="_blank" rel="noopener noreferrer" href="{% url 'cavities' %}?uniprotid={{ cavity.chain.protein.uniprot_id }}">Query UniprotID in pockets</a> - <a target="_blank" rel="noopener noreferrer" href="{% url 'compound_list' %}?uniprot_id={{ cavity.chain.protein.uniprot_id }}">Query UniprotID as iPPI-DB target</a> - </div> - </span> - / - <span class="dropdown"> - <div class="dropbtn" data-toggle="dropdown"> - {{ cavity.cavity_number }} - </div> - <div class="dropdown-content"> - <a target="_blank" rel="noopener noreferrer" href="{% url 'networks' %}?search={{ cavity|build_name }}"> Query pocket in pocketome</a> - </div> - </span> - :: - {% if cavity.partner.ligand %} - <span class="dropdown"> - <div class="dropbtn" data-toggle="dropdown" title="smiles: {{ cavity.partner.ligand.canonical_smile }}"> - {{ cavity.partner.ligand.pdb_ligand_id }}_{{ cavity.partner.ligand.supplementary_id }} - </div> - <div class="dropdown-content"> - <a target="_blank" rel="noopener noreferrer" href="{% url 'cavities' %}?ligandcode={{ cavity.partner.ligand.pdb_ligand_id }}">Query ligand ID in pockets</a> - <a target="_blank" rel="noopener noreferrer" href="{% url 'compound_list' %}?similar_to=ECFP4:{{ cavity.partner.ligand.canonical_smile|urlencode }}">Query SMILES in iPPI-DB compounds</a> - </div> - </span> - {% else %} - <span class="dropdown"> - <div class="dropbtn" data-toggle="dropdown" title="uniprot: {{ cavity.partner.chain.protein.uniprot_id }}"> - {{ cavity.partner.chain.pdb_chain_id }} | {{ cavity.partner.chain.protein.short_name }} - </div> - <div class="dropdown-content"> - <a target="_blank" rel="noopener noreferrer" href="{% url 'cavities' %}?uniprotid={{ cavity.partner.chain.protein.uniprot_id }}">Query UniprotID in pockets</a> - <a target="_blank" rel="noopener noreferrer" href="{% url 'compound_list' %}?uniprot_id={{ cavity.partner.chain.protein.uniprot_id }}">Query UniprotID as iPPI-DB target</a> - </div> - </span> - {% endif %} - </th> - <td>{% if cavity.partner.ligand %}PL{% else %}HD{% endif %}</td> - <td>{{ cavity.volume|floatformat:0 }}</td> - <td>{{ cavity.npr1|floatformat:2 }}</td> - <td>{{ cavity.npr2|floatformat:2 }}</td> - <td>{{ cavity.asphericity|floatformat:2 }}</td> - <td>{{ cavity.eccentricity|floatformat:2 }}</td> - <td>{{ cavity.rgyr|floatformat:2 }}</td> - <td>{{ cavity.spherocityindex|floatformat:2 }}</td> - <td>{{ cavity.ca|floatformat:1 }}</td> - <td>{{ cavity.cz|floatformat:1 }}</td> - <td>{{ cavity.n|floatformat:1 }}</td> - <td>{{ cavity.o|floatformat:1 }}</td> - <td>{{ cavity.og|floatformat:1 }}</td> - <td>{{ cavity.nz|floatformat:1 }}</td> - <td>{{ cavity.od1|floatformat:1 }}</td> - <td>{{ cavity.du|floatformat:1 }}</td> - <td>{{ cavity.t40|floatformat:1 }}</td> - <td>{{ cavity.t40_50|floatformat:1 }}</td> - <td>{{ cavity.t50_60|floatformat:1 }}</td> - <td>{{ cavity.t60_70|floatformat:1 }}</td> - <td>{{ cavity.t70_80|floatformat:1 }}</td> - <td>{{ cavity.t80_90|floatformat:1 }}</td> - <td>{{ cavity.t90_100|floatformat:1 }}</td> - <td>{{ cavity.t100_110|floatformat:1 }}</td> - <td>{{ cavity.t110_120|floatformat:1 }}</td> - <td>{{ cavity.t120|floatformat:1 }}</td> - </tr> - {% for distance in cavity.near_cavities %} - {% if cavity == distance.cavity1 %} - <tr class="collapse out collapseme{{ chaincount }}_{{ cavcount }}" style="background-color:rgb({{ distance.distance|get_zscore:avg_std|get_color }})"> - <th class="zui-sticky-col text-nowrap"> - - <a title="{{ distance.distance|get_zscore:avg_std|floatformat:3|intcomma }}" target="_blank" rel="noopener noreferrer" href="{% url 'cavities' %}?pdbsearch={{ distance.cavity2.chain.pdb.code }}">{{ distance.cavity2.chain.pdb.code }}</a> - / - <span class="dropdown"> - <div class="dropbtn" data-toggle="dropdown" title="uniprot: {{ distance.cavity2.chain.protein.uniprot_id }}"> - {{ distance.cavity2.chain.pdb_chain_id }} | {{ distance.cavity2.chain.protein.short_name }} - </div> - <div class="dropdown-content"> - <a target="_blank" rel="noopener noreferrer" href="{% url 'cavities' %}?uniprotid={{ distance.cavity2.chain.protein.uniprot_id }}">Query UniprotID in pockets</a> - <a target="_blank" rel="noopener noreferrer" href="{% url 'compound_list' %}?uniprot_id={{ distance.cavity2.chain.protein.uniprot_id }}">Query UniprotID as iPPI-DB target</a> - </div> - </span> - / - <span class="dropdown"> - <div class="dropbtn" data-toggle="dropdown"> - {{ distance.cavity2.cavity_number }} - </div> - <div class="dropdown-content"> - <a target="_blank" rel="noopener noreferrer" href="{% url 'networks' %}?search={{ distance.cavity2|build_name }}"> Query pocket in pocketome</a> - </div> - </span> - :: - {% if distance.cavity2.partner.ligand %} - <span class="dropdown"> - <div class="dropbtn" data-toggle="dropdown" title="smiles: {{ distance.cavity2.partner.ligand.canonical_smile }}"> - {{ distance.cavity2.partner.ligand.pdb_ligand_id }}_{{ distance.cavity2.partner.ligand.supplementary_id }} - </div> - <div class="dropdown-content"> - <a target="_blank" rel="noopener noreferrer" href="{% url 'cavities' %}?ligandcode={{ distance.cavity2.partner.ligand.pdb_ligand_id }}">Query ligand ID in pockets</a> - <a target="_blank" rel="noopener noreferrer" href="{% url 'compound_list' %}?similar_to=ECFP4:{{ distance.cavity2.partner.ligand.canonical_smile|urlencode }}">Query SMILES in iPPI-DB compounds</a> - </div> - </span> - {% else %} - <span class="dropdown"> - <div class="dropbtn" data-toggle="dropdown" title="uniprot: {{ distance.cavity2.partner.chain.protein.uniprot_id }}"> - {{ distance.cavity2.partner.chain.pdb_chain_id }} | {{ distance.cavity2.partner.chain.protein.short_name }} - </div> - <div class="dropdown-content"> - <a target="_blank" rel="noopener noreferrer" href="{% url 'cavities' %}?uniprotid={{ distance.cavity2.partner.chain.protein.uniprot_id }}">Query UniprotID in pockets</a> - <a target="_blank" rel="noopener noreferrer" href="{% url 'compound_list' %}?uniprot_id={{ distance.cavity2.partner.chain.protein.uniprot_id }}">Query UniprotID as iPPI-DB target</a> - </div> - </span> - {% endif %} - </th> - <td>{% if distance.cavity2.partner.ligand %}PL{% else %}HD{% endif %}</td> - <td>{{ distance.cavity2.volume|floatformat:0 }}</td> - <td>{{ distance.cavity2.npr1|floatformat:2 }}</td> - <td>{{ distance.cavity2.npr2|floatformat:2 }}</td> - <td>{{ distance.cavity2.asphericity|floatformat:2 }}</td> - <td>{{ distance.cavity2.eccentricity|floatformat:2 }}</td> - <td>{{ distance.cavity2.rgyr|floatformat:2 }}</td> - <td>{{ distance.cavity2.spherocityindex|floatformat:2 }}</td> - <td>{{ distance.cavity2.ca|floatformat:1 }}</td> - <td>{{ distance.cavity2.cz|floatformat:1 }}</td> - <td>{{ distance.cavity2.n|floatformat:1 }}</td> - <td>{{ distance.cavity2.o|floatformat:1 }}</td> - <td>{{ distance.cavity2.og|floatformat:1 }}</td> - <td>{{ distance.cavity2.nz|floatformat:1 }}</td> - <td>{{ distance.cavity2.od1|floatformat:1 }}</td> - <td>{{ distance.cavity2.du|floatformat:1 }}</td> - <td>{{ distance.cavity2.t40|floatformat:1 }}</td> - <td>{{ distance.cavity2.t40_50|floatformat:1 }}</td> - <td>{{ distance.cavity2.t50_60|floatformat:1 }}</td> - <td>{{ distance.cavity2.t60_70|floatformat:1 }}</td> - <td>{{ distance.cavity2.t70_80|floatformat:1 }}</td> - <td>{{ distance.cavity2.t80_90|floatformat:1 }}</td> - <td>{{ distance.cavity2.t90_100|floatformat:1 }}</td> - <td>{{ distance.cavity2.t100_110|floatformat:1 }}</td> - <td>{{ distance.cavity2.t110_120|floatformat:1 }}</td> - <td>{{ distance.cavity2.t120|floatformat:1 }}</td> - </tr> - {% elif cavity == distance.cavity2 %} - <tr class="collapse out collapseme{{ chaincount }}_{{ cavcount }}" style="background-color:rgb({{ distance.distance|get_zscore:avg_std|get_color }})"> - <th class="zui-sticky-col text-nowrap"> - <a title="{{ distance.distance|get_zscore:avg_std|floatformat:3|intcomma }}" target="_blank" rel="noopener noreferrer" href="{% url 'cavities' %}?pdbsearch={{ distance.cavity1.chain.pdb.code }}">{{ distance.cavity1.chain.pdb.code }}</a> - / - <span class="dropdown"> - <div class="dropbtn" data-toggle="dropdown" title="uniprot: {{ distance.cavity1.chain.protein.uniprot_id }}"> - {{ distance.cavity1.chain.pdb_chain_id }} | {{ distance.cavity1.chain.protein.short_name }} - </div> - <div class="dropdown-content"> - <a target="_blank" rel="noopener noreferrer" href="{% url 'cavities' %}?uniprotid={{ distance.cavity1.chain.protein.uniprot_id }}">Query UniprotID in pockets</a> - <a target="_blank" rel="noopener noreferrer" href="{% url 'compound_list' %}?uniprot_id={{ distance.cavity1.chain.protein.uniprot_id }}">Query UniprotID as iPPI-DB target</a> - </div> - </span> - / - <span class="dropdown"> - <div class="dropbtn" data-toggle="dropdown"> - {{ distance.cavity1.cavity_number }} - </div> - <div class="dropdown-content"> - <a target="_blank" rel="noopener noreferrer" href="{% url 'networks' %}?search={{ distance.cavity1|build_name }}"> Query pocket in pocketome</a> - </div> - </span> - :: - {% if distance.cavity1.partner.ligand %} - <span class="dropdown"> - <div class="dropbtn" data-toggle="dropdown" title="smiles: {{ distance.cavity1.partner.ligand.canonical_smile }}"> - {{ distance.cavity1.partner.ligand.pdb_ligand_id }}_{{ distance.cavity1.partner.ligand.supplementary_id }} - </div> - <div class="dropdown-content"> - <a target="_blank" rel="noopener noreferrer" href="{% url 'cavities' %}?ligandcode={{ distance.cavity1.partner.ligand.pdb_ligand_id }}">Query ligand ID in pockets</a> - <a target="_blank" rel="noopener noreferrer" href="{% url 'compound_list' %}?similar_to=ECFP4:{{ distance.cavity1.partner.ligand.canonical_smile|urlencode }}">Query SMILES in iPPI-DB compounds</a> - </div> - </span> - {% else %} - <span class="dropdown"> - <div class="dropbtn" data-toggle="dropdown" title="uniprot: {{ distance.cavity1.partner.chain.protein.uniprot_id }}"> - {{ distance.cavity1.partner.chain.pdb_chain_id }} | {{ distance.cavity1.partner.chain.protein.short_name }} - </div> - <div class="dropdown-content"> - <a target="_blank" rel="noopener noreferrer" href="{% url 'cavities' %}?uniprotid={{ distance.cavity1.partner.chain.protein.uniprot_id }}">Query UniprotID in pockets</a> - <a target="_blank" rel="noopener noreferrer" href="{% url 'compound_list' %}?uniprot_id={{ distance.cavity1.partner.chain.protein.uniprot_id }}">Query UniprotID as iPPI-DB target</a> - </div> - </span> - {% endif %} - </th> - <td>{% if distance.cavity1.partner.ligand %}PL{% else %}HD{% endif %}</td> - <td>{{ distance.cavity1.volume|floatformat:0 }}</td> - <td>{{ distance.cavity1.npr1|floatformat:2 }}</td> - <td>{{ distance.cavity1.npr2|floatformat:2 }}</td> - <td>{{ distance.cavity1.asphericity|floatformat:2 }}</td> - <td>{{ distance.cavity1.eccentricity|floatformat:2 }}</td> - <td>{{ distance.cavity1.rgyr|floatformat:2 }}</td> - <td>{{ distance.cavity1.spherocityindex|floatformat:2 }}</td> - <td>{{ distance.cavity1.ca|floatformat:1 }}</td> - <td>{{ distance.cavity1.cz|floatformat:1 }}</td> - <td>{{ distance.cavity1.n|floatformat:1 }}</td> - <td>{{ distance.cavity1.o|floatformat:1 }}</td> - <td>{{ distance.cavity1.og|floatformat:1 }}</td> - <td>{{ distance.cavity1.nz|floatformat:1 }}</td> - <td>{{ distance.cavity1.od1|floatformat:1 }}</td> - <td>{{ distance.cavity1.du|floatformat:1 }}</td> - <td>{{ distance.cavity1.t40|floatformat:1 }}</td> - <td>{{ distance.cavity1.t40_50|floatformat:1 }}</td> - <td>{{ distance.cavity1.t50_60|floatformat:1 }}</td> - <td>{{ distance.cavity1.t60_70|floatformat:1 }}</td> - <td>{{ distance.cavity1.t70_80|floatformat:1 }}</td> - <td>{{ distance.cavity1.t80_90|floatformat:1 }}</td> - <td>{{ distance.cavity1.t90_100|floatformat:1 }}</td> - <td>{{ distance.cavity1.t100_110|floatformat:1 }}</td> - <td>{{ distance.cavity1.t110_120|floatformat:1 }}</td> - <td>{{ distance.cavity1.t120|floatformat:1 }}</td> - </tr> - {% endif %} - {% endfor %} + {% include "targetcentric_cavity_row.html" with chaincount=chaincount cavcount=cavcount %} + {% include "targetcentric_near_cavities.html" with object=cavity %} {% endwith %} {% endfor %} {% endwith %} diff --git a/ippisite/ippidb/templates/targetcentric_cavity_row.html b/ippisite/ippidb/templates/targetcentric_cavity_row.html new file mode 100644 index 0000000000000000000000000000000000000000..3e2fa41c3d649a743f6bd576e014049e619f0416 --- /dev/null +++ b/ippisite/ippidb/templates/targetcentric_cavity_row.html @@ -0,0 +1,87 @@ +{% load customtags %} +{% load humanize %} +<tr XXXid="cavity_{{ cavity.id }}" + {%if near_cavity %} + class="collapse out collapseme{{ chaincount }}_{{ cavcount }}" + style="background-color:rgb({{ score|get_color }})" + {%else%} + class="table-light" + {%endif%}> + <th class="zui-sticky-col text-nowrap"> + {%if not near_cavity %} + <i class="far fa-plus-square" style="cursor: pointer;" data-toggle="collapse" data-target=".collapseme{{ chaincount }}_{{ cavcount }}" + onclick="loadNearCavityRows($('.asnyc-construction[data-cavity-id={{ cavity.id }}]:not(loading)'));"></i> + {%endif%} + <a {%if score %} title="{{ score|floatformat:3|intcomma }}" {%endif%} + target="_blank" + rel="noopener noreferrer" + href="{% url 'cavities' %}?pdbsearch={{ cavity.chain.pdb.code }}">{{ cavity.chain.pdb.code }}</a> + / + <span class="dropdown"> + <div class="dropbtn" data-toggle="dropdown" title="uniprot: {{ cavity.chain.protein.uniprot_id }}"> + {{ cavity.chain.pdb_chain_id }} | {{ cavity.chain.protein.short_name }} + </div> + <div class="dropdown-content"> + <a target="_blank" rel="noopener noreferrer" href="{% url 'cavities' %}?uniprotid={{ cavity.chain.protein.uniprot_id }}">Query UniprotID in pockets</a> + <a target="_blank" rel="noopener noreferrer" href="{% url 'compound_list' %}?uniprot_id={{ cavity.chain.protein.uniprot_id }}">Query UniprotID as iPPI-DB target</a> + </div> + </span> + / + <span class="dropdown"> + <div class="dropbtn" data-toggle="dropdown"> + {{ cavity.cavity_number }} + </div> + <div class="dropdown-content"> + <a target="_blank" rel="noopener noreferrer" href="{% url 'networks' %}?search={{ cavity|build_name }}"> Query pocket in pocketome</a> + </div> + </span> + :: + {% if cavity.partner.ligand %} + <span class="dropdown"> + <div class="dropbtn" data-toggle="dropdown" title="smiles: {{ cavity.partner.ligand.canonical_smile }}"> + {{ cavity.partner.ligand.pdb_ligand_id }}_{{ cavity.partner.ligand.supplementary_id }} + </div> + <div class="dropdown-content"> + <a target="_blank" rel="noopener noreferrer" href="{% url 'cavities' %}?ligandcode={{ cavity.partner.ligand.pdb_ligand_id }}">Query ligand ID in pockets</a> + <a target="_blank" rel="noopener noreferrer" href="{% url 'compound_list' %}?similar_to=ECFP4:{{ cavity.partner.ligand.canonical_smile|urlencode }}">Query SMILES in iPPI-DB compounds</a> + </div> + </span> + {% else %} + <span class="dropdown"> + <div class="dropbtn" data-toggle="dropdown" title="uniprot: {{ cavity.partner.chain.protein.uniprot_id }}"> + {{ cavity.partner.chain.pdb_chain_id }} | {{ cavity.partner.chain.protein.short_name }} + </div> + <div class="dropdown-content"> + <a target="_blank" rel="noopener noreferrer" href="{% url 'cavities' %}?uniprotid={{ cavity.partner.chain.protein.uniprot_id }}">Query UniprotID in pockets</a> + <a target="_blank" rel="noopener noreferrer" href="{% url 'compound_list' %}?uniprot_id={{ cavity.partner.chain.protein.uniprot_id }}">Query UniprotID as iPPI-DB target</a> + </div> + </span> + {% endif %} + </th> + <td>{% if cavity.partner.ligand %}PL{% else %}HD{% endif %}</td> + <td>{{ cavity.volume|floatformat:0 }}</td> + <td>{{ cavity.npr1|floatformat:2 }}</td> + <td>{{ cavity.npr2|floatformat:2 }}</td> + <td>{{ cavity.asphericity|floatformat:2 }}</td> + <td>{{ cavity.eccentricity|floatformat:2 }}</td> + <td>{{ cavity.rgyr|floatformat:2 }}</td> + <td>{{ cavity.spherocityindex|floatformat:2 }}</td> + <td>{{ cavity.ca|floatformat:1 }}</td> + <td>{{ cavity.cz|floatformat:1 }}</td> + <td>{{ cavity.n|floatformat:1 }}</td> + <td>{{ cavity.o|floatformat:1 }}</td> + <td>{{ cavity.og|floatformat:1 }}</td> + <td>{{ cavity.nz|floatformat:1 }}</td> + <td>{{ cavity.od1|floatformat:1 }}</td> + <td>{{ cavity.du|floatformat:1 }}</td> + <td>{{ cavity.t40|floatformat:1 }}</td> + <td>{{ cavity.t40_50|floatformat:1 }}</td> + <td>{{ cavity.t50_60|floatformat:1 }}</td> + <td>{{ cavity.t60_70|floatformat:1 }}</td> + <td>{{ cavity.t70_80|floatformat:1 }}</td> + <td>{{ cavity.t80_90|floatformat:1 }}</td> + <td>{{ cavity.t90_100|floatformat:1 }}</td> + <td>{{ cavity.t100_110|floatformat:1 }}</td> + <td>{{ cavity.t110_120|floatformat:1 }}</td> + <td>{{ cavity.t120|floatformat:1 }}</td> +</tr> \ No newline at end of file diff --git a/ippisite/ippidb/templates/targetcentric_near_cavities.html b/ippisite/ippidb/templates/targetcentric_near_cavities.html new file mode 100644 index 0000000000000000000000000000000000000000..6d05ad86940d091cf5bc4f3984297c442c6ec48b --- /dev/null +++ b/ippisite/ippidb/templates/targetcentric_near_cavities.html @@ -0,0 +1,10 @@ +{% load customtags %} +{% for distance in object.near_cavities %} + {% with distance.distance|get_zscore:avg_std as score %} + {% if object == distance.cavity1 %} + {% include "targetcentric_cavity_row.html" with chaincount=chaincount cavcount=cavcount cavity=distance.cavity2 score=score near_cavity=True %} + {% elif object == distance.cavity2 %} + {% include "targetcentric_cavity_row.html" with chaincount=chaincount cavcount=cavcount cavity=distance.cavity1 score=score near_cavity=True %} + {% endif %} + {%endwith%} +{% endfor %} \ No newline at end of file