File size: 4,209 Bytes
3c2822a
 
 
 
 
 
 
 
34e7b9c
3c2822a
1e2c47c
fd5fb14
1e2c47c
 
93bbda2
3c2822a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4628125
2120548
3b8ed6a
d409e00
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
115
#!/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) 
- [Valentyn Bezshapkin](https://twitter.com/valentynbez)
- [Payel Das](https://twitter.com/payel791)
- [Anthony Costa](https://twitter.com/anthonycosta)
'''
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', 'mRNA', 'scRNA perturbation', 'RNA structure prediction', 'RNA language model', 'protein language model', 'protein structure prediction', 
            'protein generation', 'protein function prediction', 'protein fitness prediction', 'antibody structure prediction', 'antibody language model', 'molecules',
            'ligand generation', 'reaction-to-enzyme', 'enzyme generation', 'epigenomic', 'molecular docking', 'peptide property prediction', 
        ]

        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()