gonzalobenegas's picture
Update app.py
3a4607c verified
raw
history blame
1.72 kB
import gradio as gr
import pandas as pd
# Expanded dataframe with hidden columns
leaderboard_df = (
pd.read_csv("results.csv", usecols=["dataset", "modality", "model", "AUPRC", "se"])
.rename(columns={"dataset": "Dataset", "modality": "Approach", "model": "Model"})
.round(3)
)
def filter_leaderboard(dataset_choice, approach_choice):
"""Filter dataframe based on selections and drop filter columns"""
filtered_df = leaderboard_df[
(leaderboard_df['Dataset'] == dataset_choice) &
(leaderboard_df['Approach'] == approach_choice)
]
return filtered_df.drop(columns=['Dataset', 'Approach']).sort_values('AUPRC', 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"
)
leaderboard = gr.Dataframe(
headers=["Model", "AUPRC", "se"],
datatype=["str", "number", "number"],
interactive=False,
)
# Connect filters to update the table
for filter in [dataset_filter, approach_filter]:
filter.change(
fn=filter_leaderboard,
inputs=[dataset_filter, approach_filter],
outputs=leaderboard
)
# Initial load
demo.load(
fn=filter_leaderboard,
inputs=[dataset_filter, approach_filter],
outputs=leaderboard
)
demo.launch()