Spaces:
Sleeping
Sleeping
Add table of top_n attention pairs
Browse files- hexviz/app.py +15 -0
hexviz/app.py
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
|
|
| 1 |
import py3Dmol
|
| 2 |
import stmol
|
| 3 |
import streamlit as st
|
|
@@ -115,6 +116,20 @@ showmol(xyzview, height=500, width=800)
|
|
| 115 |
st.markdown(f'PDB: [{pdb_id}](https://www.rcsb.org/structure/{pdb_id})', unsafe_allow_html=True)
|
| 116 |
|
| 117 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 118 |
"""
|
| 119 |
More models will be added soon. The attention visualization is inspired by [provis](https://github.com/salesforce/provis#provis-attention-visualizer).
|
| 120 |
"""
|
|
|
|
| 1 |
+
import pandas as pd
|
| 2 |
import py3Dmol
|
| 3 |
import stmol
|
| 4 |
import streamlit as st
|
|
|
|
| 116 |
st.markdown(f'PDB: [{pdb_id}](https://www.rcsb.org/structure/{pdb_id})', unsafe_allow_html=True)
|
| 117 |
|
| 118 |
|
| 119 |
+
chain_dict = {f"{chain.id}": chain for chain in list(structure.get_chains())}
|
| 120 |
+
data = []
|
| 121 |
+
for att_weight, _ , _ , chain, first, second in top_n:
|
| 122 |
+
res1 = chain_dict[chain][first]
|
| 123 |
+
res2 = chain_dict[chain][second]
|
| 124 |
+
el = (att_weight, f"{res1.resname:3}{res1.id[1]:0>3} - {res2.resname:3}{res2.id[1]:0>3} ({chain})")
|
| 125 |
+
data.append(el)
|
| 126 |
+
# st.write(f"Attention weight: {att_weight:.2f} | Residue pair: {structure.get_chain_id(chain)[first].get_resname()}-{structure.get_chain(chain)[first].full_id[3]}{chain.id}<-->{chain[second].get_resname()}")
|
| 127 |
+
|
| 128 |
+
df = pd.DataFrame(data, columns=['Avg attention', 'Residue pair'])
|
| 129 |
+
f"Top {n_pairs} attention pairs:"
|
| 130 |
+
st.table(df)
|
| 131 |
+
|
| 132 |
+
|
| 133 |
"""
|
| 134 |
More models will be added soon. The attention visualization is inspired by [provis](https://github.com/salesforce/provis#provis-attention-visualizer).
|
| 135 |
"""
|