File size: 2,635 Bytes
bebad14
 
dffaf30
 
bebad14
bca3a49
 
bebad14
 
bca3a49
bebad14
 
bca3a49
dadbe2e
bca3a49
 
bebad14
 
 
bca3a49
 
bebad14
bca3a49
 
bebad14
bca3a49
bebad14
f354223
bebad14
c0df2f3
43105fe
f354223
bca3a49
bebad14
 
28cb117
bebad14
 
 
 
44470f9
28cb117
 
 
 
5122f94
28cb117
f354223
28cb117
 
130e4f7
28cb117
bca3a49
 
 
 
 
 
4853a01
bca3a49
 
 
 
 
 
 
28cb117
dadbe2e
bebad14
 
bca3a49
 
dffaf30
bebad14
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import time

import gradio as gr

from gradio_molecule3d import Molecule3D
from run_on_seq import run_on_sample_seqs
from env_consts import RUN_CONFIG_PATH, OUTPUT_PROT_PATH, OUTPUT_LIG_PATH


def predict(input_sequence, input_ligand, input_msa, input_protein):
    start_time = time.time()
    # Do inference here
    # return an output pdb file with the protein and ligand with resname LIG or UNK.
    # also return any metrics you want to log, metrics will not be used for evaluation but might be useful for users
    metrics = run_on_sample_seqs(input_sequence, input_protein, input_ligand, OUTPUT_PROT_PATH, OUTPUT_LIG_PATH,
                                 RUN_CONFIG_PATH)
    end_time = time.time()
    run_time = end_time - start_time

    return [OUTPUT_PROT_PATH, OUTPUT_LIG_PATH], metrics, run_time


with gr.Blocks() as app:
    gr.Markdown("DockFormer")

    # gr.Markdown("Title, description, and other information about the model")
    with gr.Row():
        input_sequence = gr.Textbox(lines=3, label="Input Protein sequence (FASTA)")
        input_ligand = gr.Textbox(lines=3, label="Input ligand SMILES")
    with gr.Row():
        input_msa = gr.File(label="Input Protein MSA (A3M)")
        input_protein = gr.File(label="Input protein monomer")

    # define any options here

    # for automated inference the default options are used
    # slider_option = gr.Slider(0,10, label="Slider Option")
    # checkbox_option = gr.Checkbox(label="Checkbox Option")
    # dropdown_option = gr.Dropdown(["Option 1", "Option 2", "Option 3"], label="Radio Option")

    btn = gr.Button("Run Inference")

    gr.Examples(
        [
            [
                "SVKSEYAEAAAVGQEAVAVFNTMKAAFQNGDKEAVAQYLARLASLYTRHEELLNRILEKARREGNKEAVTLMNEFTATFQTGKSIFNAMVAAFKNGDDDSFESYLQALEKVTAKGETLADQIAKAL:SVKSEYAEAAAVGQEAVAVFNTMKAAFQNGDKEAVAQYLARLASLYTRHEELLNRILEKARREGNKEAVTLMNEFTATFQTGKSIFNAMVAAFKNGDDDSFESYLQALEKVTAKGETLADQIAKAL",
                "COc1ccc(cc1)n2c3c(c(n2)C(=O)N)CCN(C3=O)c4ccc(cc4)N5CCCCC5=O",
                "test_out.pdb"
            ],
        ],
        [input_sequence, input_ligand, input_protein],
    )
    reps = [
        {
            "model": 0,
            "style": "cartoon",
            "color": "whiteCarbon",
        },
        {
            "model": 1,
            "style": "stick",
            "color": "greenCarbon",
        }

    ]

    out = Molecule3D(reps=reps)
    metrics = gr.JSON(label="Metrics")
    run_time = gr.Textbox(label="Runtime")

    btn.click(predict, inputs=[input_sequence, input_ligand, input_msa, input_protein],
              outputs=[out, metrics, run_time])

app.launch()