Spaces:
Running
Running
Massimo G. Totaro
commited on
Commit
·
4f4563b
1
Parent(s):
8677ef1
table fix
Browse files- README.md +14 -0
- app.py +10 -5
- data.py +5 -6
- instructions.md +6 -10
- requirements.txt +0 -1
README.md
CHANGED
@@ -8,6 +8,20 @@ sdk_version: 5.5.0
|
|
8 |
app_file: app.py
|
9 |
pinned: false
|
10 |
license: bsd-2-clause
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
---
|
12 |
|
13 |
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
|
|
|
8 |
app_file: app.py
|
9 |
pinned: false
|
10 |
license: bsd-2-clause
|
11 |
+
preload_from_hub:
|
12 |
+
- facebook/esm-1b
|
13 |
+
- facebook/esm2_t6_8M_UR50D
|
14 |
+
- facebook/esm2_t33_650M_UR50D
|
15 |
+
- facebook/esm2_t30_150M_UR50D
|
16 |
+
- facebook/esm2_t12_35M_UR50D
|
17 |
+
- facebook/esm1b_t33_650M_UR50S
|
18 |
+
- facebook/esm2_t36_3B_UR50D
|
19 |
+
- facebook/esm2_t48_15B_UR50D
|
20 |
+
- facebook/esm1v_t33_650M_UR90S_5
|
21 |
+
- facebook/esm1v_t33_650M_UR90S_4
|
22 |
+
- facebook/esm1v_t33_650M_UR90S_3
|
23 |
+
- facebook/esm1v_t33_650M_UR90S_2
|
24 |
+
- facebook/esm1v_t33_650M_UR90S_1
|
25 |
---
|
26 |
|
27 |
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
|
app.py
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
from gradio import Blocks, Button, Checkbox, DownloadButton, Dropdown, Examples, File, Image, Markdown, Textbox
|
2 |
|
3 |
from model import get_models
|
4 |
from data import Data
|
@@ -19,8 +19,12 @@ def app(*argv):
|
|
19 |
# Calculate the data based on the input parameters
|
20 |
data = Data(seq, trg, model_name, scoring).calculate()
|
21 |
|
22 |
-
|
23 |
-
|
|
|
|
|
|
|
|
|
24 |
|
25 |
# Create the Gradio interface
|
26 |
with open("instructions.md", "r", encoding="utf-8") as md, Blocks() as esm_scan:
|
@@ -41,13 +45,14 @@ with open("instructions.md", "r", encoding="utf-8") as md, Blocks() as esm_scan:
|
|
41 |
)
|
42 |
model_name = Dropdown(MODELS, label="Model", value="facebook/esm2_t30_150M_UR50D")
|
43 |
scoring_strategy = Checkbox(value=True, label="Use higher accuracy scoring", interactive=True)
|
|
|
44 |
dlb = DownloadButton(label="Download raw data", visible=False)
|
45 |
out = Image(visible=False)
|
46 |
-
|
47 |
btn.click(
|
48 |
fn=app,
|
49 |
inputs=[seq, trg, model_name],
|
50 |
-
outputs=[out, dlb]
|
51 |
)
|
52 |
ex = Examples(
|
53 |
examples=[
|
|
|
1 |
+
from gradio import Blocks, Button, Checkbox, DataFrame, DownloadButton, Dropdown, Examples, File, Image, Markdown, Textbox
|
2 |
|
3 |
from model import get_models
|
4 |
from data import Data
|
|
|
19 |
# Calculate the data based on the input parameters
|
20 |
data = Data(seq, trg, model_name, scoring).calculate()
|
21 |
|
22 |
+
if isinstance(data.image(), str):
|
23 |
+
out = Image(value=data.image(), type='filepath', visible=True), DataFrame(visible=False)
|
24 |
+
else:
|
25 |
+
out = Image(visible=False), DataFrame(value=data.image(), visible=True)
|
26 |
+
|
27 |
+
return *out, DownloadButton(value=data.csv(), visible=True)
|
28 |
|
29 |
# Create the Gradio interface
|
30 |
with open("instructions.md", "r", encoding="utf-8") as md, Blocks() as esm_scan:
|
|
|
45 |
)
|
46 |
model_name = Dropdown(MODELS, label="Model", value="facebook/esm2_t30_150M_UR50D")
|
47 |
scoring_strategy = Checkbox(value=True, label="Use higher accuracy scoring", interactive=True)
|
48 |
+
btn = Button(value="Run", variant="primary")
|
49 |
dlb = DownloadButton(label="Download raw data", visible=False)
|
50 |
out = Image(visible=False)
|
51 |
+
ouu = DataFrame(visible=False)
|
52 |
btn.click(
|
53 |
fn=app,
|
54 |
inputs=[seq, trg, model_name],
|
55 |
+
outputs=[out, ouu, dlb]
|
56 |
)
|
57 |
ex = Examples(
|
58 |
examples=[
|
data.py
CHANGED
@@ -1,4 +1,3 @@
|
|
1 |
-
import dataframe_image as dfi
|
2 |
from math import ceil
|
3 |
import matplotlib.pyplot as plt
|
4 |
import pandas as pd
|
@@ -86,11 +85,11 @@ class Data:
|
|
86 |
self.sort_by_score()
|
87 |
else:
|
88 |
raise RuntimeError(f"Unrecognised mode {self.mode}")
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
self.out.to_csv(self.out_csv, float_format='%.2f', index=False, header=False)
|
95 |
|
96 |
def sort_by_score(self):
|
|
|
|
|
1 |
from math import ceil
|
2 |
import matplotlib.pyplot as plt
|
3 |
import pandas as pd
|
|
|
85 |
self.sort_by_score()
|
86 |
else:
|
87 |
raise RuntimeError(f"Unrecognised mode {self.mode}")
|
88 |
+
self.out.columns = [str(i) for i in range(self.out.shape[1])]
|
89 |
+
self.out_img = (self.out.style
|
90 |
+
.format(lambda x: f'{x:.2f}' if isinstance(x, float) else x)
|
91 |
+
.hide(axis=0)
|
92 |
+
.background_gradient(cmap="RdYlGn", vmax=8, vmin=-8))
|
93 |
self.out.to_csv(self.out_csv, float_format='%.2f', index=False, header=False)
|
94 |
|
95 |
def sort_by_score(self):
|
instructions.md
CHANGED
@@ -2,10 +2,6 @@
|
|
2 |
|
3 |
Calculate the <u>fitness of single amino acid substitutions</u> on proteins, using a [zero-shot](https://doi.org/10.1101/2021.07.09.450648) [language model predictor](https://github.com/facebookresearch/esm)
|
4 |
|
5 |
-
If you use this tool in your research, please cite:
|
6 |
-
- Totaro, M.G. (2023). “ESM-Scan - a tool to guide amino acid substitutions.” bioRxiv. [doi.org/10.1101/2023.12.12.571273](https://doi.org/10.1101/2023.12.12.571273)
|
7 |
-
- Meier, J. (2021). “Language Models Enable Zero-Shot Prediction of the Effects of Mutations on Protein Function.” bioRxiv (Cold Spring Harbor Laboratory), July. [doi.org/10.1101/2021.07.09.450648](https://doi.org/10.1101/2021.07.09.450648)
|
8 |
-
|
9 |
<details>
|
10 |
<summary> <b> USAGE INSTRUCTIONS </b> </summary>
|
11 |
|
@@ -45,21 +41,21 @@ If the server remains idle for a period, it will enter standby mode. Running a c
|
|
45 |
Results are displayed in a color-coded table, except for deep mutational scans, which produce a heatmap.
|
46 |
In the table:
|
47 |
|
48 |
-
- Beneficial substitutions are highlighted in
|
49 |
-
- Detrimental substitutions appear in red with negative values.
|
50 |
|
51 |
As a rule of thumb, score differences of *4* or more are considered significant. For instance:
|
52 |
|
53 |
- A substitution scoring *-6* is likely detrimental to protein functionality.
|
54 |
- A score of *+2* is generally regarded as neutral.
|
55 |
|
56 |
-
|
57 |
|
58 |
-
|
59 |
-
If you use this tool in your research, please cite
|
60 |
|
61 |
- Totaro, M.G. (2023). “ESM-Scan - a tool to guide amino acid substitutions.” bioRxiv. [doi.org/10.1101/2023.12.12.571273](https://doi.org/10.1101/2023.12.12.571273)
|
62 |
- Meier, J. (2021). “Language Models Enable Zero-Shot Prediction of the Effects of Mutations on Protein Function.” bioRxiv (Cold Spring Harbor Laboratory), July. [doi.org/10.1101/2021.07.09.450648](https://doi.org/10.1101/2021.07.09.450648)
|
63 |
-
</b>
|
64 |
|
65 |
</details>
|
|
|
|
2 |
|
3 |
Calculate the <u>fitness of single amino acid substitutions</u> on proteins, using a [zero-shot](https://doi.org/10.1101/2021.07.09.450648) [language model predictor](https://github.com/facebookresearch/esm)
|
4 |
|
|
|
|
|
|
|
|
|
5 |
<details>
|
6 |
<summary> <b> USAGE INSTRUCTIONS </b> </summary>
|
7 |
|
|
|
41 |
Results are displayed in a color-coded table, except for deep mutational scans, which produce a heatmap.
|
42 |
In the table:
|
43 |
|
44 |
+
- Beneficial substitutions are highlighted in green with positive values.
|
45 |
+
- Detrimental substitutions appear in red with negative values.
|
46 |
|
47 |
As a rule of thumb, score differences of *4* or more are considered significant. For instance:
|
48 |
|
49 |
- A substitution scoring *-6* is likely detrimental to protein functionality.
|
50 |
- A score of *+2* is generally regarded as neutral.
|
51 |
|
52 |
+
The **Download raw data** button lets you download the output in CSV format.
|
53 |
|
54 |
+
|
55 |
+
**If you use this tool in your research, please cite**:
|
56 |
|
57 |
- Totaro, M.G. (2023). “ESM-Scan - a tool to guide amino acid substitutions.” bioRxiv. [doi.org/10.1101/2023.12.12.571273](https://doi.org/10.1101/2023.12.12.571273)
|
58 |
- Meier, J. (2021). “Language Models Enable Zero-Shot Prediction of the Effects of Mutations on Protein Function.” bioRxiv (Cold Spring Harbor Laboratory), July. [doi.org/10.1101/2021.07.09.450648](https://doi.org/10.1101/2021.07.09.450648)
|
|
|
59 |
|
60 |
</details>
|
61 |
+
|
requirements.txt
CHANGED
@@ -1,4 +1,3 @@
|
|
1 |
-
dataframe-image
|
2 |
gradio
|
3 |
pandas
|
4 |
seaborn
|
|
|
|
|
1 |
gradio
|
2 |
pandas
|
3 |
seaborn
|