Commit 3a6f0f57 authored by Carlos GO's avatar Carlos GO
Browse files


parent 0443717d
......@@ -156,5 +156,9 @@ def module_view():
def mol():
return render_template("mol.html")
def help():
return render_template("help.html")
if __name__ == "__main__":
......@@ -14,7 +14,7 @@ def launch(pdb_path, library_path, n_hits=30, run='rnamigos-ismb'):
MASTER launcher.
,_ext = os.path.splittext(pdb_path)
_,ext = os.path.splittext(pdb_path)
if ext == '.cif':
print(f"launcher path {pdb_path}")
......@@ -24,7 +24,7 @@ def launch(pdb_path, library_path, n_hits=30, run='rnamigos-ismb'):
data = json.load(f)
G = nx.node_link_data(data)
raise ValueError, "Invalid input file type."
raise ValueError("Invalid input file type.")
run = 'ismb-tune_0'
......@@ -2,7 +2,7 @@ body{
width: 43%;
padding 10px;
font-family: monospace;
font-family: monospace;
color: #424344;
......@@ -77,5 +77,13 @@ th{
padding: 8px;
pre code {
background-color: #eee;
border: 1px solid #999;
display: block;
padding: 20px;
{% extends "default.html" %}
{% block body %}
<h1> What is RNAmigos> </h1>
RNAmigos is a Graph Neural Network for predicting RNA small molecule ligands. <br>
We trained RNAmigos on a set of RNA-small molecule complexes from the PDB DataBank to predict the associated ligand given only the binding site structure.
The input to RNAmigos is an RNA binding site structure. We can accept atomic coordinates, which are internally converted to a base pairing network, or we can take a base pairing network directly.
From the base pairing network, we predict a molecular fingerprint.
The resulting fingerprint can be used to identify similar molecules in a ligand database and thus accelerate virtual screening.
For full details see article.
<h1> What isn't RNAmigos </h1>
RNAmigos is not a docking tool, or an affinity predictor, hence we do not require a docked complex as input, nor do we return an affinity score.
<h1> Uploading Structure Data </h1>
We accept two input formats: <code>mmCIF (.cif)</code> and <code>JSON (.json)</code>. mmCIF is a format for describing atomic cooridnates, and we accept graphs encoded in the JSON <a href="">node-link</a> format.
The graph must have a node attribute <code>'nt'</code> which stores one of 5 possible nucleotides as characters <code>'A', 'U', 'C', 'G', 'N'</code> and the edges must have a <code>'label'</code> attribute which stores one of 13 possible edge labels, according to the Leontis-Westhof nomenclature.
Here is a sample node-link JSON:
{'directed': False,
'multigraph': False,
'graph': {},
'nodes': [{'nt': 'A', 'id': ('A', 5)},
{'nt': 'G', 'id': ('A', 6)},
{'nt': 'U', 'id': ('A', 26)},
{'nt': 'A', 'id': ('A', 7)},
{'nt': 'C', 'id': ('A', 25)},
{'nt': 'U', 'id': ('A', 9)},
{'nt': 'U', 'id': ('A', 8)},
{'nt': 'U', 'id': ('A', 24)},
{'nt': 'A', 'id': ('A', 11)},
{'nt': 'G', 'id': ('A', 10)},
{'nt': 'C', 'id': ('A', 23)},
{'nt': 'U', 'id': ('A', 22)},
{'nt': 'G', 'id': ('A', 12)},
{'nt': 'C', 'id': ('A', 13)},
{'nt': 'C', 'id': ('A', 21)},
{'nt': 'G', 'id': ('A', 20)}],
'links': [{'label': 'B53', 'source': ('A', 5), 'target': ('A', 6)},
{'label': 'CWW', 'source': ('A', 5), 'target': ('A', 26)},
{'label': 'B53', 'source': ('A', 6), 'target': ('A', 7)},
{'label': 'CWW', 'source': ('A', 6), 'target': ('A', 25)},
{'label': 'TSW', 'source': ('A', 6), 'target': ('A', 9)},
{'label': 'CSS', 'source': ('A', 26), 'target': ('A', 9)},
{'label': 'B53', 'source': ('A', 26), 'target': ('A', 25)},
{'label': 'B53', 'source': ('A', 7), 'target': ('A', 8)},
{'label': 'CWW', 'source': ('A', 7), 'target': ('A', 24)},
{'label': 'B53', 'source': ('A', 25), 'target': ('A', 24)},
{'label': 'B53', 'source': ('A', 9), 'target': ('A', 8)},
{'label': 'B53', 'source': ('A', 9), 'target': ('A', 10)},
{'label': 'CHW', 'source': ('A', 8), 'target': ('A', 11)},
{'label': 'B53', 'source': ('A', 24), 'target': ('A', 23)},
{'label': 'B53', 'source': ('A', 11), 'target': ('A', 10)},
{'label': 'B53', 'source': ('A', 11), 'target': ('A', 12)},
{'label': 'CWW', 'source': ('A', 11), 'target': ('A', 22)},
{'label': 'CWW', 'source': ('A', 10), 'target': ('A', 23)},
{'label': 'CSW', 'source': ('A', 10), 'target': ('A', 22)},
{'label': 'B53', 'source': ('A', 23), 'target': ('A', 22)},
{'label': 'B53', 'source': ('A', 22), 'target': ('A', 21)},
{'label': 'B53', 'source': ('A', 12), 'target': ('A', 13)},
{'label': 'CWW', 'source': ('A', 12), 'target': ('A', 21)},
{'label': 'CWW', 'source': ('A', 13), 'target': ('A', 20)},
{'label': 'B53', 'source': ('A', 21), 'target': ('A', 20)}]}
The <code>'id'</code> attribute can be whatever you like. In this case, it represents a chain and position in a PDB.
<h1> Uploading Ligand Database </h1>
If you provide your own ligand database to screen, we will use the prediction to return the most similar ligands in the database to the prediction.
The format for each line is <code>[SMILES] [some data]</code>.
Here is a sample file with 10 ligands.
c1ccc(cc1)[C@@H](C(=O)O)N 004
c1nc(c2c(n1)n3c(n2)[C@@H]([C@@H]4[C@H](C[C@H]3O4)O)OP(=O)(O)O)N 02I
c1nc(c2c(n1)n(cn2)[C@@H]3[C@H]([C@H]([C@@H](O3)COP(=O)(O)O)O)O)N 0A
C1=CN(C(=O)N=C1N)[C@@H]2[C@H]([C@H]([C@@H](O2)COP(=O)(O)O)O)O 0C
COc1cc2c(cc1OC)nc(nc2N)N3CCNCC3 0EC
c1nc2c(n1[C@@H]3[C@H]([C@H]([C@@H](O3)COP(=O)(O)O)O)O)N=C(NC2=O)N 0G
c1ccc(cc1)C[C@H](C(=O)N2CCC[C@H]2C(=O)N[C@@H](CCCNC(=[NH2+])N)[C@@H](CCl)O)N 0G6
CS[C@@H]([C@@H](C(=O)O)N)C(=O)O 0TD
C1=CN(C(=O)NC1=O)[C@@H]2[C@H]([C@H]([C@@H](O2)COP(=O)(O)O)O)O 0U
<h1> Interpreting output </h1>
When your query completes, we display a list of the 30 most similar ligands to the prediction, chosen from the ligand library.
You can then download the full list of distances to each element in the library by clicking the 'Download' button.
<h1> Source Code </h1>
<a href="">GitLab</a><br>
<a href="">GitHub</a>
<h1> Citing </h1>
@article {Oliver701326,
author = {Oliver, Carlos and Mallet, Vincent and Sarrazin Gendron,
Roman and Reinharz, Vladimir and Hamilton,
William L. and Moitessier, Nicolas and Waldisp{\"u}hl, J{\'e}r{\^o}me},
title = {Augmented base pairing networks encode RNA-small molecule binding preferences},
elocation-id = {701326},
year = {2020},
doi = {10.1101/701326},
publisher = {Cold Spring Harbor Laboratory},
URL = {},
eprint = {},
journal = {bioRxiv}
<h1>Contact </h1>
{% endblock body %}
......@@ -12,7 +12,7 @@
If you specify a small molecule library, we scan it using the predicted fingerprint and return the most similar compounds. <br><br>
Click <a href=""> here</a> for detailed instructions. <br><br>
Click <a href="{{ url_for('help') }}">here</a> for detailed instructions.</td>
This web server is an implementation of RNAMIGOS LINK. <br>
Markdown is supported
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