Spaces:
Running
Running
Add new METL models in dropdown
#2
by
samgelman
- opened
app.py
CHANGED
@@ -14,6 +14,78 @@ metl_config = AutoConfig.from_pretrained('gitter-lab/METL', trust_remote_code=Tr
|
|
14 |
metl = AutoModel.from_pretrained('gitter-lab/METL', trust_remote_code=True, cache_dir='./cache')
|
15 |
pdb_path = None
|
16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
RADIO_CSS = """
|
18 |
#indexing>div {
|
19 |
flex-direction: column;
|
@@ -275,20 +347,26 @@ def empty_pdb_path(button):
|
|
275 |
pdb_path = None
|
276 |
return ""
|
277 |
|
278 |
-
def load_model(
|
279 |
global metl
|
280 |
|
281 |
-
|
282 |
-
|
|
|
|
|
|
|
283 |
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
|
|
|
|
|
|
290 |
|
291 |
-
return get_color(
|
292 |
|
293 |
def update_pdb(variant_modal, indexing):
|
294 |
if len(variant_modal['text']) == 0 and len(variant_modal['files']) == 0:
|
@@ -322,7 +400,7 @@ def hide_variants(checkbox_values):
|
|
322 |
def populate_example():
|
323 |
global pdb_path
|
324 |
|
325 |
-
model = "
|
326 |
wt = "MQYKLILNGKTLKGETTTEAVDAATAEKVFKQYANDNGVDGEWTYDDATKTFTVTE"
|
327 |
variants = '["T17P,T54F", "V28L,F51A"]'
|
328 |
# "T17P,V28L,F51A,T54F"
|
@@ -419,12 +497,20 @@ def predict(input_multi_modal, variant_multi_modal, variant_index_type):
|
|
419 |
return out_str, iframe, checkbox
|
420 |
|
421 |
with gr.Blocks(css=RADIO_CSS) as demo:
|
422 |
-
with gr.Row(equal_height=True, elem_id="modelPDBRow"):
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
428 |
|
429 |
with gr.Column():
|
430 |
metl_seq_input = gr.MultimodalTextbox(label="Input Protein Sequence", interactive=True, elem_classes="multiModalText", elem_id="wildTypeSequence")
|
|
|
14 |
metl = AutoModel.from_pretrained('gitter-lab/METL', trust_remote_code=True, cache_dir='./cache')
|
15 |
pdb_path = None
|
16 |
|
17 |
+
# UUID lookup for models -- used for the dropdown list
|
18 |
+
uuid_lookup = {
|
19 |
+
"Source / Global / 1D β [METL-G-20M-1D] (D72M9aEp)": "D72M9aEp",
|
20 |
+
"Source / Global / 3D β [METL-G-20M-3D] (Nr9zCKpR)": "Nr9zCKpR",
|
21 |
+
"Source / Global / 1D β [METL-G-50M-1D] (auKdzzwX)": "auKdzzwX",
|
22 |
+
"Source / Global / 3D β [METL-G-50M-3D] (6PSAzdfv)": "6PSAzdfv",
|
23 |
+
"Source / Local / GFP / 1D β [METL-L-2M-1D-GFP] (8gMPQJy4)": "8gMPQJy4",
|
24 |
+
"Source / Local / GFP / 3D β [METL-L-2M-3D-GFP] (Hr4GNHws)": "Hr4GNHws",
|
25 |
+
"Source / Local / DLG4 / 1D β [METL-L-2M-1D-DLG4_2022] (8iFoiYw2)": "8iFoiYw2",
|
26 |
+
"Source / Local / DLG4 / 3D β [METL-L-2M-3D-DLG4_2022] (kt5DdWTa)": "kt5DdWTa",
|
27 |
+
"Source / Local / GB1 / 1D β [METL-L-2M-1D-GB1] (DMfkjVzT)": "DMfkjVzT",
|
28 |
+
"Source / Local / GB1 / 3D β [METL-L-2M-3D-GB1] (epegcFiH)": "epegcFiH",
|
29 |
+
"Source / Local / GRB2 / 1D β [METL-L-2M-1D-GRB2] (kS3rUS7h)": "kS3rUS7h",
|
30 |
+
"Source / Local / GRB2 / 3D β [METL-L-2M-3D-GRB2] (X7w83g6S)": "X7w83g6S",
|
31 |
+
"Source / Local / Pab1 / 1D β [METL-L-2M-1D-Pab1] (UKebCQGz)": "UKebCQGz",
|
32 |
+
"Source / Local / Pab1 / 3D β [METL-L-2M-3D-Pab1] (2rr8V4th)": "2rr8V4th",
|
33 |
+
"Source / Local / PTEN / 1D β [METL-L-2M-1D-PTEN] (CEMSx7ZC)": "CEMSx7ZC",
|
34 |
+
"Source / Local / PTEN / 3D β [METL-L-2M-3D-PTEN] (PjxR5LW7)": "PjxR5LW7",
|
35 |
+
"Source / Local / TEM-1 / 1D β [METL-L-2M-1D-TEM-1] (PREhfC22)": "PREhfC22",
|
36 |
+
"Source / Local / TEM-1 / 3D β [METL-L-2M-3D-TEM-1] (9ASvszux)": "9ASvszux",
|
37 |
+
"Source / Local / Ube4b / 1D β [METL-L-2M-1D-Ube4b] (HscFFkAb)": "HscFFkAb",
|
38 |
+
"Source / Local / Ube4b / 3D β [METL-L-2M-3D-Ube4b] (H48oiNZN)": "H48oiNZN",
|
39 |
+
"METL-BIND / Source / Local / GB1 / 3D β [METL-BIND-2M-3D-GB1-STANDARD] (K6mw24Rg)": "K6mw24Rg",
|
40 |
+
"METL-BIND / Source / Local / GB1 / 3D β [METL-BIND-2M-3D-GB1-BINDING] (Bo5wn2SG)": "Bo5wn2SG",
|
41 |
+
"Finetuned / Global / GFP / 1D β (PeT2D92j)": "PeT2D92j",
|
42 |
+
"Finetuned / Global / GFP / 3D β (6JBzHpkQ)": "6JBzHpkQ",
|
43 |
+
"Finetuned / Global / DLG4-Abundance / 1D β (4Rh3WCbG)": "4Rh3WCbG",
|
44 |
+
"Finetuned / Global / DLG4-Abundance / 3D β (RBtqxzvu)": "RBtqxzvu",
|
45 |
+
"Finetuned / Global / DLG4-Binding / 1D β (4xbuC5y7)": "4xbuC5y7",
|
46 |
+
"Finetuned / Global / DLG4-Binding / 3D β (BuvxgE2x)": "BuvxgE2x",
|
47 |
+
"Finetuned / Global / GB1 / 1D β (dAndZfJ4)": "dAndZfJ4",
|
48 |
+
"Finetuned / Global / GB1 / 3D β (9vSB3DRM)": "9vSB3DRM",
|
49 |
+
"Finetuned / Global / GRB2-Abundance / 1D β (HenDpDWe)": "HenDpDWe",
|
50 |
+
"Finetuned / Global / GRB2-Abundance / 3D β (dDoCCvfr)": "dDoCCvfr",
|
51 |
+
"Finetuned / Global / GRB2-Binding / 1D β (cvnycE5Q)": "cvnycE5Q",
|
52 |
+
"Finetuned / Global / GRB2-Binding / 3D β (jYesS9Ki)": "jYesS9Ki",
|
53 |
+
"Finetuned / Global / Pab1 / 1D β (ho54gxzv)": "ho54gxzv",
|
54 |
+
"Finetuned / Global / Pab1 / 3D β (jhbL2FeB)": "jhbL2FeB",
|
55 |
+
"Finetuned / Global / PTEN-Abundance / 1D β (UEuMtmfx)": "UEuMtmfx",
|
56 |
+
"Finetuned / Global / PTEN-Abundance / 3D β (eJPPQYEW)": "eJPPQYEW",
|
57 |
+
"Finetuned / Global / PTEN-Activity / 1D β (U3X8mSeT)": "U3X8mSeT",
|
58 |
+
"Finetuned / Global / PTEN-Activity / 3D β (4gqYnW6V)": "4gqYnW6V",
|
59 |
+
"Finetuned / Global / TEM-1 / 1D β (ELL4GGQq)": "ELL4GGQq",
|
60 |
+
"Finetuned / Global / TEM-1 / 3D β (K6BjsWXm)": "K6BjsWXm",
|
61 |
+
"Finetuned / Global / Ube4b / 1D β (BAWw23vW)": "BAWw23vW",
|
62 |
+
"Finetuned / Global / Ube4b / 3D β (G9piq6WH)": "G9piq6WH",
|
63 |
+
"Finetuned / Local / GFP / 1D β (HaUuRwfE)": "HaUuRwfE",
|
64 |
+
"Finetuned / Local / GFP / 3D β (LWEY95Yb)": "LWEY95Yb",
|
65 |
+
"Finetuned / Local / DLG4-Abundance / 1D β (RMFA6dnX)": "RMFA6dnX",
|
66 |
+
"Finetuned / Local / DLG4-Abundance / 3D β (V3uTtXVe)": "V3uTtXVe",
|
67 |
+
"Finetuned / Local / DLG4-Binding / 1D β (YdzBYWHs)": "YdzBYWHs",
|
68 |
+
"Finetuned / Local / DLG4-Binding / 3D β (iu6ZahPw)": "iu6ZahPw",
|
69 |
+
"Finetuned / Local / GB1 / 1D β (Pgcseywk)": "Pgcseywk",
|
70 |
+
"Finetuned / Local / GB1 / 3D β (UvMMdsq4)": "UvMMdsq4",
|
71 |
+
"Finetuned / Local / GRB2-Abundance / 1D β (VNpi9Zjt)": "VNpi9Zjt",
|
72 |
+
"Finetuned / Local / GRB2-Abundance / 3D β (PqBMjXkA)": "PqBMjXkA",
|
73 |
+
"Finetuned / Local / GRB2-Binding / 1D β (Z59BhUaE)": "Z59BhUaE",
|
74 |
+
"Finetuned / Local / GRB2-Binding / 3D β (VwcRN6UB)": "VwcRN6UB",
|
75 |
+
"Finetuned / Local / Pab1 / 1D β (TdjCzoQQ)": "TdjCzoQQ",
|
76 |
+
"Finetuned / Local / Pab1 / 3D β (5SjoLx3y)": "5SjoLx3y",
|
77 |
+
"Finetuned / Local / PTEN-Abundance / 1D β (oUScGeHo)": "oUScGeHo",
|
78 |
+
"Finetuned / Local / PTEN-Abundance / 3D β (DhuasDEr)": "DhuasDEr",
|
79 |
+
"Finetuned / Local / PTEN-Activity / 1D β (m9UsG7dq)": "m9UsG7dq",
|
80 |
+
"Finetuned / Local / PTEN-Activity / 3D β (8Vi7ENcC)": "8Vi7ENcC",
|
81 |
+
"Finetuned / Local / TEM-1 / 1D β (64ncFxBR)": "64ncFxBR",
|
82 |
+
"Finetuned / Local / TEM-1 / 3D β (PncvgiJU)": "PncvgiJU",
|
83 |
+
"Finetuned / Local / Ube4b / 1D β (e9uhhnAv)": "e9uhhnAv",
|
84 |
+
"Finetuned / Local / Ube4b / 3D β (NfbZL7jK)": "NfbZL7jK",
|
85 |
+
"GFP DESIGN / Finetuned / Local / GFP / 1D β (YoQkzoLD)": "YoQkzoLD",
|
86 |
+
"GFP DESIGN / Finetuned / Local / GFP / 3D β (PEkeRuxb)": "PEkeRuxb"
|
87 |
+
}
|
88 |
+
|
89 |
RADIO_CSS = """
|
90 |
#indexing>div {
|
91 |
flex-direction: column;
|
|
|
347 |
pdb_path = None
|
348 |
return ""
|
349 |
|
350 |
+
def load_model(model_input, _):
|
351 |
global metl
|
352 |
|
353 |
+
# Case 1: input is one of the dropdown labels β lookup UUID
|
354 |
+
if model_input in uuid_lookup:
|
355 |
+
uuid = uuid_lookup[model_input]
|
356 |
+
metl.load_from_uuid(uuid)
|
357 |
+
return get_color(GREEN, f"{model_input} loaded (from dropdown)"), gr.Button(interactive=True)
|
358 |
|
359 |
+
# Case 2: input is a raw UUID
|
360 |
+
elif model_input in metl.config.UUID_URL_MAP:
|
361 |
+
metl.load_from_uuid(model_input)
|
362 |
+
return get_color(GREEN, f"{model_input} loaded (direct UUID)"), gr.Button(interactive=True)
|
363 |
+
|
364 |
+
# Case 3: input is a raw IDENT
|
365 |
+
elif model_input in metl.config.IDENT_UUID_MAP:
|
366 |
+
metl.load_from_ident(model_input)
|
367 |
+
return get_color(GREEN, f"{model_input} loaded (direct IDENT)"), gr.Button(interactive=True)
|
368 |
|
369 |
+
return get_color(RED, "Model not recognized"), gr.Button(interactive=False)
|
370 |
|
371 |
def update_pdb(variant_modal, indexing):
|
372 |
if len(variant_modal['text']) == 0 and len(variant_modal['files']) == 0:
|
|
|
400 |
def populate_example():
|
401 |
global pdb_path
|
402 |
|
403 |
+
model = "Source / Local / GB1 / 3D β [METL-L-2M-3D-GB1] (epegcFiH)"
|
404 |
wt = "MQYKLILNGKTLKGETTTEAVDAATAEKVFKQYANDNGVDGEWTYDDATKTFTVTE"
|
405 |
variants = '["T17P,T54F", "V28L,F51A"]'
|
406 |
# "T17P,V28L,F51A,T54F"
|
|
|
497 |
return out_str, iframe, checkbox
|
498 |
|
499 |
with gr.Blocks(css=RADIO_CSS) as demo:
|
500 |
+
# with gr.Row(equal_height=True, elem_id="modelPDBRow"):
|
501 |
+
# with gr.Column(elem_id="modelInputCol"):
|
502 |
+
# # metl_model_id = gr.Dropdown(label="METL model IDENT or UUID", choices=list(metl.config.IDENT_UUID_MAP.keys()), allow_custom_value=False)
|
503 |
+
# metl_model_id = gr.Dropdown(label="METL model", choices=['Source / Global / 1D β [METL-G-20M-1D] (D72M9aEp)', 'Source / Global / 3D β [METL-G-20M-3D] (Nr9zCKpR)', 'Source / Global / 1D β [METL-G-50M-1D] (auKdzzwX)', 'Source / Global / 3D β [METL-G-50M-3D] (6PSAzdfv)', 'Source / Local / GFP / 1D β [METL-L-2M-1D-GFP] (8gMPQJy4)', 'Source / Local / GFP / 3D β [METL-L-2M-3D-GFP] (Hr4GNHws)', 'Source / Local / DLG4 / 1D β [METL-L-2M-1D-DLG4_2022] (8iFoiYw2)', 'Source / Local / DLG4 / 3D β [METL-L-2M-3D-DLG4_2022] (kt5DdWTa)', 'Source / Local / GB1 / 1D β [METL-L-2M-1D-GB1] (DMfkjVzT)', 'Source / Local / GB1 / 3D β [METL-L-2M-3D-GB1] (epegcFiH)', 'Source / Local / GRB2 / 1D β [METL-L-2M-1D-GRB2] (kS3rUS7h)', 'Source / Local / GRB2 / 3D β [METL-L-2M-3D-GRB2] (X7w83g6S)', 'Source / Local / Pab1 / 1D β [METL-L-2M-1D-Pab1] (UKebCQGz)', 'Source / Local / Pab1 / 3D β [METL-L-2M-3D-Pab1] (2rr8V4th)', 'Source / Local / PTEN / 1D β [METL-L-2M-1D-PTEN] (CEMSx7ZC)', 'Source / Local / PTEN / 3D β [METL-L-2M-3D-PTEN] (PjxR5LW7)', 'Source / Local / TEM-1 / 1D β [METL-L-2M-1D-TEM-1] (PREhfC22)', 'Source / Local / TEM-1 / 3D β [METL-L-2M-3D-TEM-1] (9ASvszux)', 'Source / Local / Ube4b / 1D β [METL-L-2M-1D-Ube4b] (HscFFkAb)', 'Source / Local / Ube4b / 3D β [METL-L-2M-3D-Ube4b] (H48oiNZN)', 'METL-BIND / Source / Local / GB1 / 3D β [METL-BIND-2M-3D-GB1-STANDARD] (K6mw24Rg)', 'METL-BIND / Source / Local / GB1 / 3D β [METL-BIND-2M-3D-GB1-BINDING] (Bo5wn2SG)', 'Finetuned / Global / GFP / 1D β (PeT2D92j)', 'Finetuned / Global / GFP / 3D β (6JBzHpkQ)', 'Finetuned / Global / DLG4-Abundance / 1D β (4Rh3WCbG)', 'Finetuned / Global / DLG4-Abundance / 3D β (RBtqxzvu)', 'Finetuned / Global / DLG4-Binding / 1D β (4xbuC5y7)', 'Finetuned / Global / DLG4-Binding / 3D β (BuvxgE2x)', 'Finetuned / Global / GB1 / 1D β (dAndZfJ4)', 'Finetuned / Global / GB1 / 3D β (9vSB3DRM)', 'Finetuned / Global / GRB2-Abundance / 1D β (HenDpDWe)', 'Finetuned / Global / GRB2-Abundance / 3D β (dDoCCvfr)', 'Finetuned / Global / GRB2-Binding / 1D β (cvnycE5Q)', 'Finetuned / Global / GRB2-Binding / 3D β (jYesS9Ki)', 'Finetuned / Global / Pab1 / 1D β (ho54gxzv)', 'Finetuned / Global / Pab1 / 3D β (jhbL2FeB)', 'Finetuned / Global / PTEN-Abundance / 1D β (UEuMtmfx)', 'Finetuned / Global / PTEN-Abundance / 3D β (eJPPQYEW)', 'Finetuned / Global / PTEN-Activity / 1D β (U3X8mSeT)', 'Finetuned / Global / PTEN-Activity / 3D β (4gqYnW6V)', 'Finetuned / Global / TEM-1 / 1D β (ELL4GGQq)', 'Finetuned / Global / TEM-1 / 3D β (K6BjsWXm)', 'Finetuned / Global / Ube4b / 1D β (BAWw23vW)', 'Finetuned / Global / Ube4b / 3D β (G9piq6WH)', 'Finetuned / Local / GFP / 1D β (HaUuRwfE)', 'Finetuned / Local / GFP / 3D β (LWEY95Yb)', 'Finetuned / Local / DLG4-Abundance / 1D β (RMFA6dnX)', 'Finetuned / Local / DLG4-Abundance / 3D β (V3uTtXVe)', 'Finetuned / Local / DLG4-Binding / 1D β (YdzBYWHs)', 'Finetuned / Local / DLG4-Binding / 3D β (iu6ZahPw)', 'Finetuned / Local / GB1 / 1D β (Pgcseywk)', 'Finetuned / Local / GB1 / 3D β (UvMMdsq4)', 'Finetuned / Local / GRB2-Abundance / 1D β (VNpi9Zjt)', 'Finetuned / Local / GRB2-Abundance / 3D β (PqBMjXkA)', 'Finetuned / Local / GRB2-Binding / 1D β (Z59BhUaE)', 'Finetuned / Local / GRB2-Binding / 3D β (VwcRN6UB)', 'Finetuned / Local / Pab1 / 1D β (TdjCzoQQ)', 'Finetuned / Local / Pab1 / 3D β (5SjoLx3y)', 'Finetuned / Local / PTEN-Abundance / 1D β (oUScGeHo)', 'Finetuned / Local / PTEN-Abundance / 3D β (DhuasDEr)', 'Finetuned / Local / PTEN-Activity / 1D β (m9UsG7dq)', 'Finetuned / Local / PTEN-Activity / 3D β (8Vi7ENcC)', 'Finetuned / Local / TEM-1 / 1D β (64ncFxBR)', 'Finetuned / Local / TEM-1 / 3D β (PncvgiJU)', 'Finetuned / Local / Ube4b / 1D β (e9uhhnAv)', 'Finetuned / Local / Ube4b / 3D β (NfbZL7jK)', 'GFP DESIGN / Finetuned / Local / GFP / 1D β (YoQkzoLD)', 'GFP DESIGN / Finetuned / Local / GFP / 3D β (PEkeRuxb)'], allow_custom_value=False)
|
504 |
+
# metl_model_status = gr.HTML(get_color(RED, "Select Model"), elem_id="modelStatus")
|
505 |
+
# with gr.Column():
|
506 |
+
# upload_pdb = gr.File(label="PDB File upload", elem_id="pdbUpload", file_types=[".pdb", ".txt"])
|
507 |
+
|
508 |
+
with gr.Column():
|
509 |
+
metl_model_id = gr.Dropdown(label="METL model", choices=list(uuid_lookup.keys()), allow_custom_value=False)
|
510 |
+
metl_model_status = gr.HTML(get_color(RED, "Select Model"), elem_id="modelStatus")
|
511 |
+
|
512 |
+
with gr.Column():
|
513 |
+
upload_pdb = gr.File(label="PDB File upload", elem_id="pdbUpload", file_types=[".pdb", ".txt"])
|
514 |
|
515 |
with gr.Column():
|
516 |
metl_seq_input = gr.MultimodalTextbox(label="Input Protein Sequence", interactive=True, elem_classes="multiModalText", elem_id="wildTypeSequence")
|