Spaces:
Running
Running
from pathlib import Path | |
import pandas as pd | |
import streamlit as st | |
from mlip_arena.models import REGISTRY | |
DATA_DIR = Path("mlip_arena/tasks/diatomics") | |
methods = ["MACE-MP", "Equiformer", "CHGNet", "MACE-OFF", "eSCN", "ALIGNN"] | |
dfs = [pd.read_json(DATA_DIR / method.lower() / "homonuclear-diatomics.json") for method in methods] | |
df = pd.concat(dfs, ignore_index=True) | |
table = pd.DataFrame(columns=[ | |
"Model", | |
"No. of supported elements", | |
"No. of reversed forces", | |
"Energy-consistent forces", | |
"Last updated", | |
"Code", | |
"Paper" | |
]) | |
for method in df["method"].unique(): | |
rows = df[df["method"] == method] | |
metadata = REGISTRY.get(method, None) | |
new_row = { | |
"Model": method, | |
"No. of supported elements": len(rows["name"].unique()), | |
"No. of reversed forces": None, # Replace with actual logic if available | |
"Energy-consistent forces": None, # Replace with actual logic if available | |
"Code": metadata.get("github", None) if metadata else None, | |
"Paper": metadata.get("doi", None) if metadata else None, | |
} | |
table = pd.concat([table, pd.DataFrame([new_row])], ignore_index=True) | |
table.set_index("Model", inplace=True) | |
s = table.style.background_gradient( | |
cmap="PuRd", | |
subset=["No. of supported elements"], | |
vmin=0, vmax=120 | |
) | |
st.markdown("# MLIP Arena Leaderboard") | |
st.dataframe( | |
s, | |
use_container_width=True, | |
column_config={ | |
"Code": st.column_config.LinkColumn( | |
# "GitHub", | |
# help="The top trending Streamlit apps", | |
# validate="^https://[a-z]+\.streamlit\.app$", | |
max_chars=100, | |
display_text="GitHub", | |
), | |
"Paper": st.column_config.LinkColumn( | |
# validate="^https://[a-z]+\.streamlit\.app$", | |
max_chars=100, | |
display_text="arXiv", | |
), | |
}, | |
) | |