Spaces:
Running
Running
File size: 2,362 Bytes
2bbd13c d72faca 3b3aaa9 5b01054 2bbd13c 5b01054 2bbd13c 3b3aaa9 5b01054 d72faca 3b3aaa9 5b01054 2bbd13c 3b3aaa9 2bbd13c 3b3aaa9 5b01054 2bbd13c d72faca 3b3aaa9 2bbd13c 3b3aaa9 5d75841 3b3aaa9 2bbd13c 3b3aaa9 5b01054 d72faca 5b01054 |
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 |
from pathlib import Path
import pandas as pd
import streamlit as st
from mlip_arena.models.utils import MLIPEnum, 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",
"Supported elements",
# "No. of reversed forces",
# "Energy-consistent forces",
"Prediction",
"NVT",
"NPT",
"Last updated",
"Code",
"Paper"
])
for model in MLIPEnum:
rows = df[df["method"] == model.name]
metadata = REGISTRY.get(model.name, {})
new_row = {
"Model": model.name,
"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
"Prediction": metadata.get("prediction", None),
"NVT": "✅" if metadata.get("nvt", False) else "❌",
"NPT": "✅" if metadata.get("npt", False) else "❌",
"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=["Supported elements"],
vmin=0, vmax=120
)
st.markdown(
"""
<img src="https://raw.githubusercontent.com/atomind-ai/mlip-arena/main/mlip_arena/serve/assets/atomind.jpg" alt="MLIP Arena" style="width: 30%;"/>
<h1 style='text-align: center;'>MLIP Arena Leaderboard</h1>
""", unsafe_allow_html=True)
# 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",
),
},
)
|