Skip to content
Snippets Groups Projects
Commit 4c19f646 authored by Bryan BRANCOTTE's avatar Bryan BRANCOTTE
Browse files

factorize row construction of cavities and sub cavities

parent ded0cb6d
No related branches found
No related tags found
2 merge requests!45Async near cavities,!43K8S deployments of release branche, and other updates
...@@ -236,230 +236,8 @@ Comparison and druggability prediction of protein-ligand binding sites from phar ...@@ -236,230 +236,8 @@ Comparison and druggability prediction of protein-ligand binding sites from phar
{% with chaincount=forloop.counter %} {% with chaincount=forloop.counter %}
{% for cavity in cavities %} {% for cavity in cavities %}
{% with cavcount=forloop.counter %} {% with cavcount=forloop.counter %}
<tr id="cavity_{{ cavity.id }}" class="table-light" > {% include "targetcentric_cavity_row.html" with chaincount=chaincount cavcount=cavcount %}
<th class="zui-sticky-col text-nowrap"> {% include "targetcentric_near_cavities.html" with object=cavity %}
<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 %}
{% endwith %} {% endwith %}
{% endfor %} {% endfor %}
{% endwith %} {% endwith %}
......
{% 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
{% 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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment