Spaces:
Running
Running
File size: 2,047 Bytes
bf80dbc 1ab1abd dacee7e 7ba6910 63c13c0 dacee7e bf80dbc 7ba6910 1ab1abd 7ba6910 1ab1abd 7ba6910 bf80dbc dacee7e 1ab1abd 7ba6910 1ab1abd 7ba6910 1ab1abd 7ba6910 1ab1abd 7ba6910 1ab1abd 7ba6910 1ab1abd bf80dbc |
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 |
import gradio as gr
import pandas as pd
# Expanded dataframe with hidden columns
leaderboard_df = (
pd.read_csv("results.csv", usecols=["dataset", "modality", "model", "score", "se", "metric"])
.rename(columns={"dataset": "Dataset", "modality": "Approach", "model": "Model", "metric": "Metric"})
.round(3)
)
def filter_leaderboard(dataset_choice, approach_choice, metric_choice):
"""Filter dataframe based on selections and drop filter columns"""
filtered_df = leaderboard_df[
(leaderboard_df['Dataset'] == dataset_choice) &
(leaderboard_df['Approach'] == approach_choice) &
(leaderboard_df['Metric'] == metric_choice)
]
return filtered_df.drop(columns=['Dataset', 'Approach', 'Metric']).sort_values('score', ascending=False)
with gr.Blocks(title="TraitGym Leaderboard") as demo:
gr.Markdown("## π TraitGym Leaderboard")
with gr.Row():
dataset_filter = gr.Radio(
choices=["Mendelian traits", "Complex traits"],
value="Mendelian traits",
label="Select Dataset"
)
approach_filter = gr.Radio(
choices=["Zero-shot", "Linear probing"],
value="Zero-shot",
label="Select Approach"
)
metric_filter = gr.Radio(
choices=["AUPRC", "AUPRC_by_chrom_weighted_average"],
value="AUPRC",
label="Select Metric"
)
leaderboard = gr.Dataframe(
headers=["Model", "score", "se"],
datatype=["str", "number", "number"],
interactive=False,
)
# Connect filters to update the table
for filter in [dataset_filter, approach_filter, metric_filter]:
filter.change(
fn=filter_leaderboard,
inputs=[dataset_filter, approach_filter, metric_filter],
outputs=leaderboard
)
# Initial load
demo.load(
fn=filter_leaderboard,
inputs=[dataset_filter, approach_filter, metric_filter],
outputs=leaderboard
)
demo.launch() |