File size: 4,074 Bytes
3c2822a
 
 
 
 
 
 
 
34e7b9c
3c2822a
1e2c47c
 
 
 
3c2822a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4628125
116c5c7
f2ceba3
1e2c47c
4628125
 
 
b0a0f84
4628125
 
1e2c47c
 
 
 
0a4ba8c
 
 
4628125
0a4ba8c
 
 
3c2822a
 
 
 
 
 
 
 
 
 
 
 
 
 
4628125
1e2c47c
0a4ba8c
3c2822a
 
 
 
 
 
 
 
 
 
4628125
1e2c47c
0a4ba8c
3c2822a
 
 
 
 
 
 
 
 
 
 
4628125
1e2c47c
0a4ba8c
3c2822a
 
 
 
 
 
 
 
 
 
 
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#!/usr/bin/env python

from __future__ import annotations

import gradio as gr

from model_list import ModelList

DESCRIPTION = '# Explore Biology & Biochemistry Foundation Models 🧬'
NOTES = '''
Thanks to the following folks who have made suggestions to this list!
- [Shelby](https://twitter.com/shelbynewsad), author of [this nice model list](https://compoundvc.notion.site/compoundvc/474885e638e94e44a1aab4d3124e3d6a?v=299bce7af785413da4c9f36837c03aaf) for some of the models listed here! 
- [Valentyn Bezshapkin](https://twitter.com/valentynbez)
- [Payel Das](https://twitter.com/payel791)
'''
FOOTER = ''''''

def main():
    model_list = ModelList()

    with gr.Blocks(css='style.css') as demo:
        gr.Markdown(DESCRIPTION)

        search_box = gr.Textbox(
            label='Search Model Name',
            placeholder=
            'You can search for titles with regular expressions. e.g. (?<!sur)face',
            max_lines=1)
        
        case_sensitive = gr.Checkbox(label='Case Sensitive')
        
        filter_names = gr.CheckboxGroup(choices=[
            'Paper',
            'Code',
            'Model Weights',
        ], label='Filter')

        data_type_names = [
            'DNA', 'scRNA', 'scRNA perturbation', 'protein language model', 'protein structure prediction', 
            'protein generation', 'protein function prediction', 'antibody structure prediction', 'antibody language model', 'molecules',
            'ligand generation', 'reaction-to-enzyme', 'enzyme generation', 'epigenomics', 'molecular docking' 
        ]

        data_types = gr.CheckboxGroup(choices=data_type_names,
                                      value=data_type_names,
                                      label='Type')

        years = ['2020', '2021', '2022', '2023']

        years_checkbox = gr.CheckboxGroup(choices=years, value=years, label='Year of Publication/Preprint')

        # model_type_names = [
        #     'GPT2', 'GPT-Neo', 'GPT-NeoX', 'ESM', 'BERT', 'RoBERTa', 'BART', 'T5', 'MPNN', 'diffusion', 'custom model'
        # ]

        # model_types = gr.CheckboxGroup(choices=model_type_names,
        #                                value=model_type_names,
        #                                label='Base Model')
        
        search_button = gr.Button('Search')

        number_of_models = gr.Textbox(label='Number of Models Found')
        table = gr.HTML(show_label=False)

        gr.Markdown(NOTES)
        gr.Markdown(FOOTER)

        demo.load(fn=model_list.render,
                  inputs=[
                      search_box,
                      case_sensitive,
                      filter_names,
                      data_types,
                      years_checkbox,
                      #model_types
                  ],
                  outputs=[
                      number_of_models,
                      table,
                  ])
        search_box.submit(fn=model_list.render,
                          inputs=[
                              search_box,
                              case_sensitive,
                              filter_names,
                              data_types,
                              years_checkbox,
                              #model_types
                          ],
                          outputs=[
                              number_of_models,
                              table,
                          ])

        search_button.click(fn=model_list.render,
                            inputs=[
                                search_box,
                                case_sensitive,
                                filter_names,
                                data_types,
                                years_checkbox,
                                #model_types
                            ],
                            outputs=[
                                number_of_models,
                                table,
                            ])

    demo.launch(enable_queue=True, share=False)


if __name__ == '__main__':
    main()