Spaces:
Running
Running
| from pathlib import Path | |
| from loguru import logger | |
| from tqdm.auto import tqdm | |
| from mlip_arena.models import REGISTRY, MLIPEnum | |
| from mlip_arena.tasks.stability.analysis import gather_results | |
| from mlip_arena.tasks.stability.data import get_atoms_from_db | |
| if __name__ == "__main__": | |
| compositions = [] | |
| sizes = [] | |
| for atoms in tqdm(get_atoms_from_db("random-mixture.db")): | |
| if len(atoms) == 0: | |
| continue | |
| compositions.append(atoms.get_chemical_formula()) | |
| for model in MLIPEnum: | |
| try: | |
| run_dir = Path(__file__).parent / f"{REGISTRY[model.name]['family']}" | |
| df = gather_results(run_dir, prefix=model.name, run_type="nvt") | |
| df = df[ | |
| df["formula"].isin(compositions[:120]) | |
| ].copy() # tentatively we only take the first 120 structures | |
| assert len(df) > 0 | |
| df.to_parquet(run_dir / f"{model.name}-heating.parquet", index=False) | |
| except Exception as e: | |
| logger.warning(f"Error processing model {model.name}: {e}") | |
| for model in MLIPEnum: | |
| try: | |
| run_dir = Path(__file__).parent / f"{REGISTRY[model.name]['family']}" | |
| df = gather_results(run_dir, prefix=model.name, run_type="npt") | |
| df = df[ | |
| df["formula"].isin(compositions[:80]) | |
| ].copy() # tentatively we only take the first 80 structures | |
| assert len(df) > 0 | |
| df.to_parquet(run_dir / f"{model.name}-compression.parquet", index=False) | |
| except Exception as e: | |
| logger.warning(f"Error processing model {model.name}: {e}") | |