diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index d6e2bcf1..7d362b58 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -8,7 +8,7 @@ ci: repos: - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.5.0 + rev: v0.6.3 hooks: - id: ruff args: [--fix] @@ -22,12 +22,12 @@ repos: - id: trailing-whitespace - repo: https://github.com/psf/black - rev: 24.4.2 + rev: 24.8.0 hooks: - id: black - repo: https://github.com/pre-commit/mirrors-mypy - rev: v1.10.1 + rev: v1.11.2 hooks: - id: mypy diff --git a/notebooks/atomsets/composition_models.ipynb b/notebooks/atomsets/composition_models.ipynb index d3f6ab44..3bd994cf 100644 --- a/notebooks/atomsets/composition_models.ipynb +++ b/notebooks/atomsets/composition_models.ipynb @@ -7,11 +7,12 @@ "metadata": {}, "outputs": [], "source": [ + "from __future__ import annotations\n", + "\n", "import pandas as pd\n", "\n", - "from maml.models import AtomSets\n", "from maml.describers import SiteElementProperty\n", - "\n", + "from maml.models import AtomSets\n", "\n", "# the data contains the MP formation energy data\n", "# 100 formula - formation energy\n", @@ -33,9 +34,8 @@ "metadata": {}, "outputs": [], "source": [ - "from pymatgen.core import Element\n", - "\n", "from megnet.data.crystal import get_elemental_embeddings\n", + "from pymatgen.core import Element\n", "\n", "embeddings = get_elemental_embeddings()\n", "embeddings = {Element(i).Z: j for i, j in embeddings.items()}" diff --git a/notebooks/atomsets/structure_model.ipynb b/notebooks/atomsets/structure_model.ipynb index 8a4a6322..370c22f1 100644 --- a/notebooks/atomsets/structure_model.ipynb +++ b/notebooks/atomsets/structure_model.ipynb @@ -7,11 +7,12 @@ "metadata": {}, "outputs": [], "source": [ - "from mdml.db import MamlDB\n", - "import pandas as pd\n", - "from pymatgen.core import Structure\n", + "from __future__ import annotations\n", + "\n", "import json\n", "\n", + "from pymatgen.core import Structure\n", + "\n", "from maml.models import AtomSets" ] }, @@ -30,7 +31,7 @@ "metadata": {}, "outputs": [], "source": [ - "with open(\"mp_ef_100.json\", \"r\") as f:\n", + "with open(\"mp_ef_100.json\") as f:\n", " data = json.load(f)\n", "\n", "structs = [Structure.from_dict(i) for i in data[\"structure\"]]\n", diff --git a/notebooks/bowsr/cgcnn_example.ipynb b/notebooks/bowsr/cgcnn_example.ipynb index 80a6b52a..49b4323d 100644 --- a/notebooks/bowsr/cgcnn_example.ipynb +++ b/notebooks/bowsr/cgcnn_example.ipynb @@ -6,9 +6,12 @@ "metadata": {}, "outputs": [], "source": [ + "from __future__ import annotations\n", + "\n", + "from pymatgen.core.periodic_table import get_el_sp\n", + "\n", "from maml.apps.bowsr.model.cgcnn import CGCNN\n", "from maml.apps.bowsr.optimizer import BayesianOptimizer\n", - "from pymatgen.core.periodic_table import get_el_sp\n", "\n", "model = CGCNN()\n", "\n", @@ -87,11 +90,11 @@ ], "source": [ "ef_cubic = model.predict_energy(cubic)\n", - "print(\"CGCNN predicted formation energy of cubic perovskite: {} eV/atom\".format(ef_cubic))\n", + "print(f\"CGCNN predicted formation energy of cubic perovskite: {ef_cubic} eV/atom\")\n", "ef_compressed_cubic = model.predict_energy(compressed_cubic)\n", - "print(\"CGCNN predicted formation energy of compressed cubic perovskite: {} eV/atom\".format(ef_compressed_cubic))\n", + "print(f\"CGCNN predicted formation energy of compressed cubic perovskite: {ef_compressed_cubic} eV/atom\")\n", "ef_expanded_cubic = model.predict_energy(expanded_cubic)\n", - "print(\"CGCNN predicted formation energy of expanded cubic perovskite: {} eV/atom\".format(ef_expanded_cubic))" + "print(f\"CGCNN predicted formation energy of expanded cubic perovskite: {ef_expanded_cubic} eV/atom\")" ] }, { @@ -124,9 +127,7 @@ "radius = max(round(expected_radius(compressed_optimizer.structure) * 0.6, 2), 1.1)\n", "relaxed_from_compressed_cubic, _ = compressed_optimizer.get_optimized_structure_and_energy(radius=radius)\n", "print(\n", - " \"CGCNN predicted formation energy of relaxed compressed cubic: {} eV/atom\".format(\n", - " model.predict_energy(relaxed_from_compressed_cubic)\n", - " )\n", + " f\"CGCNN predicted formation energy of relaxed compressed cubic: {model.predict_energy(relaxed_from_compressed_cubic)} eV/atom\"\n", ")" ] }, @@ -160,9 +161,7 @@ "radius = max(round(expected_radius(expanded_optimizer.structure) * 0.6, 2), 1.1)\n", "relaxed_from_expanded_cubic, _ = expanded_optimizer.get_optimized_structure_and_energy(radius=radius)\n", "print(\n", - " \"CGCNN predicted formation energy of relaxed expanded cubic: {} eV/atom\".format(\n", - " model.predict_energy(relaxed_from_expanded_cubic)\n", - " )\n", + " f\"CGCNN predicted formation energy of relaxed expanded cubic: {model.predict_energy(relaxed_from_expanded_cubic)} eV/atom\"\n", ")" ] }, @@ -190,16 +189,14 @@ ], "source": [ "ef_orthorhombic = model.predict_energy(orthorhombic)\n", - "print(\"CGCNN predicted formation energy of orthorhombic perovskite: {} eV/atom\".format(ef_orthorhombic))\n", + "print(f\"CGCNN predicted formation energy of orthorhombic perovskite: {ef_orthorhombic} eV/atom\")\n", "ef_compressed_orthorhombic = model.predict_energy(compressed_orthorhombic)\n", "print(\n", - " \"CGCNN predicted formation energy of compressed orthorhombic perovskite: {} eV/atom\".format(\n", - " ef_compressed_orthorhombic\n", - " )\n", + " f\"CGCNN predicted formation energy of compressed orthorhombic perovskite: {ef_compressed_orthorhombic} eV/atom\"\n", ")\n", "ef_expanded_orthorhombic = model.predict_energy(expanded_orthorhombic)\n", "print(\n", - " \"CGCNN predicted formation energy of expanded orthorhombic perovskite: {} eV/atom\".format(ef_expanded_orthorhombic)\n", + " f\"CGCNN predicted formation energy of expanded orthorhombic perovskite: {ef_expanded_orthorhombic} eV/atom\"\n", ")" ] }, @@ -233,9 +230,7 @@ "radius = max(round(expected_radius(compressed_optimizer.structure) * 0.6, 2), 1.1)\n", "relaxed_from_compressed_orthorhombic, _ = compressed_optimizer.get_optimized_structure_and_energy(radius=radius)\n", "print(\n", - " \"CGCNN predicted formation energy of relaxed compressed orthorhombic: {} eV/atom\".format(\n", - " model.predict_energy(relaxed_from_compressed_orthorhombic)\n", - " )\n", + " f\"CGCNN predicted formation energy of relaxed compressed orthorhombic: {model.predict_energy(relaxed_from_compressed_orthorhombic)} eV/atom\"\n", ")" ] }, @@ -269,9 +264,7 @@ "radius = max(round(expected_radius(expanded_optimizer.structure) * 0.6, 2), 1.1)\n", "relaxed_from_expanded_orthorhombic, _ = expanded_optimizer.get_optimized_structure_and_energy(radius=radius)\n", "print(\n", - " \"CGCNN predicted formation energy of relaxed expanded orthorhombic: {} eV/atom\".format(\n", - " model.predict_energy(relaxed_from_expanded_orthorhombic)\n", - " )\n", + " f\"CGCNN predicted formation energy of relaxed expanded orthorhombic: {model.predict_energy(relaxed_from_expanded_orthorhombic)} eV/atom\"\n", ")" ] }, diff --git a/notebooks/bowsr/megnet_example.ipynb b/notebooks/bowsr/megnet_example.ipynb index 8062b1b2..b81e6449 100644 --- a/notebooks/bowsr/megnet_example.ipynb +++ b/notebooks/bowsr/megnet_example.ipynb @@ -27,13 +27,15 @@ } ], "source": [ + "from __future__ import annotations\n", + "\n", "import os\n", "\n", "os.environ[\"CUDA_VISIBLE_DEVICES\"] = \"-1\"\n", - "import tensorflow as tf\n", + "from pymatgen.core.periodic_table import get_el_sp\n", + "\n", "from maml.apps.bowsr.model.megnet import MEGNet\n", "from maml.apps.bowsr.optimizer import BayesianOptimizer\n", - "from pymatgen.core.periodic_table import get_el_sp\n", "\n", "model = MEGNet()\n", "\n", @@ -119,11 +121,11 @@ ], "source": [ "ef_cubic = model.predict_energy(cubic)\n", - "print(\"MEGNet predicted formation energy of cubic perovskite: {} eV/atom\".format(ef_cubic))\n", + "print(f\"MEGNet predicted formation energy of cubic perovskite: {ef_cubic} eV/atom\")\n", "ef_compressed_cubic = model.predict_energy(compressed_cubic)\n", - "print(\"MEGNet predicted formation energy of compressed cubic perovskite: {} eV/atom\".format(ef_compressed_cubic))\n", + "print(f\"MEGNet predicted formation energy of compressed cubic perovskite: {ef_compressed_cubic} eV/atom\")\n", "ef_expanded_cubic = model.predict_energy(expanded_cubic)\n", - "print(\"MEGNet predicted formation energy of expanded cubic perovskite: {} eV/atom\".format(ef_expanded_cubic))" + "print(f\"MEGNet predicted formation energy of expanded cubic perovskite: {ef_expanded_cubic} eV/atom\")" ] }, { @@ -156,9 +158,7 @@ "radius = max(round(expected_radius(compressed_optimizer.structure) * 0.6, 2), 1.1)\n", "relaxed_from_compressed_cubic, _ = compressed_optimizer.get_optimized_structure_and_energy(radius=radius)\n", "print(\n", - " \"MEGNet predicted formation energy of relaxed compressed cubic: {} eV/atom\".format(\n", - " model.predict_energy(relaxed_from_compressed_cubic)\n", - " )\n", + " f\"MEGNet predicted formation energy of relaxed compressed cubic: {model.predict_energy(relaxed_from_compressed_cubic)} eV/atom\"\n", ")" ] }, @@ -192,9 +192,7 @@ "radius = max(round(expected_radius(expanded_optimizer.structure) * 0.6, 2), 1.1)\n", "relaxed_from_expanded_cubic, _ = expanded_optimizer.get_optimized_structure_and_energy(radius=radius)\n", "print(\n", - " \"MEGNet predicted formation energy of relaxed expanded cubic: {} eV/atom\".format(\n", - " model.predict_energy(relaxed_from_expanded_cubic)\n", - " )\n", + " f\"MEGNet predicted formation energy of relaxed expanded cubic: {model.predict_energy(relaxed_from_expanded_cubic)} eV/atom\"\n", ")" ] }, @@ -222,16 +220,14 @@ ], "source": [ "ef_orthorhombic = model.predict_energy(orthorhombic)\n", - "print(\"MEGNet predicted formation energy of orthorhombic perovskite: {} eV/atom\".format(ef_orthorhombic))\n", + "print(f\"MEGNet predicted formation energy of orthorhombic perovskite: {ef_orthorhombic} eV/atom\")\n", "ef_compressed_orthorhombic = model.predict_energy(compressed_orthorhombic)\n", "print(\n", - " \"MEGNet predicted formation energy of compressed orthorhombic perovskite: {} eV/atom\".format(\n", - " ef_compressed_orthorhombic\n", - " )\n", + " f\"MEGNet predicted formation energy of compressed orthorhombic perovskite: {ef_compressed_orthorhombic} eV/atom\"\n", ")\n", "ef_expanded_orthorhombic = model.predict_energy(expanded_orthorhombic)\n", "print(\n", - " \"MEGNet predicted formation energy of expanded orthorhombic perovskite: {} eV/atom\".format(ef_expanded_orthorhombic)\n", + " f\"MEGNet predicted formation energy of expanded orthorhombic perovskite: {ef_expanded_orthorhombic} eV/atom\"\n", ")" ] }, @@ -265,9 +261,7 @@ "radius = max(round(expected_radius(compressed_optimizer.structure) * 0.6, 2), 1.1)\n", "relaxed_from_compressed_orthorhombic, _ = compressed_optimizer.get_optimized_structure_and_energy(radius=radius)\n", "print(\n", - " \"MEGNet predicted formation energy of relaxed compressed orthorhombic: {} eV/atom\".format(\n", - " model.predict_energy(relaxed_from_compressed_orthorhombic)\n", - " )\n", + " f\"MEGNet predicted formation energy of relaxed compressed orthorhombic: {model.predict_energy(relaxed_from_compressed_orthorhombic)} eV/atom\"\n", ")" ] }, @@ -301,9 +295,7 @@ "radius = max(round(expected_radius(expanded_optimizer.structure) * 0.6, 2), 1.1)\n", "relaxed_from_expanded_orthorhombic, _ = expanded_optimizer.get_optimized_structure_and_energy(radius=radius)\n", "print(\n", - " \"MEGNet predicted formation energy of relaxed expanded orthorhombic: {} eV/atom\".format(\n", - " model.predict_energy(relaxed_from_expanded_orthorhombic)\n", - " )\n", + " f\"MEGNet predicted formation energy of relaxed expanded orthorhombic: {model.predict_energy(relaxed_from_expanded_orthorhombic)} eV/atom\"\n", ")" ] }, diff --git a/notebooks/describer/site_describer.ipynb b/notebooks/describer/site_describer.ipynb index c7c15cb9..744da863 100644 --- a/notebooks/describer/site_describer.ipynb +++ b/notebooks/describer/site_describer.ipynb @@ -6,7 +6,9 @@ "metadata": {}, "outputs": [], "source": [ - "from pymatgen.core import Structure, Lattice\n", + "from __future__ import annotations\n", + "\n", + "from pymatgen.core import Lattice, Structure\n", "\n", "s = Structure(Lattice.cubic(3.147), [\"Mo\", \"Mo\"], [[0, 0, 0], [0.5, 0.5, 0.5]]) # a simple Mo bcc lattice" ] diff --git a/notebooks/direct/Example1_MPF2021.2.8.all.ipynb b/notebooks/direct/Example1_MPF2021.2.8.all.ipynb index 8f7a814b..17ad542c 100644 --- a/notebooks/direct/Example1_MPF2021.2.8.all.ipynb +++ b/notebooks/direct/Example1_MPF2021.2.8.all.ipynb @@ -18,11 +18,15 @@ "metadata": {}, "outputs": [], "source": [ - "from maml.sampling.direct import DIRECTSampler, BirchClustering, SelectKFromClusters\n", + "from __future__ import annotations\n", + "\n", "import pickle\n", - "import numpy as np\n", + "\n", "import matplotlib.pyplot as plt\n", - "import matplotlib.ticker as mtick" + "import matplotlib.ticker as mtick\n", + "import numpy as np\n", + "\n", + "from maml.sampling.direct import BirchClustering, DIRECTSampler, SelectKFromClusters" ] }, { @@ -258,7 +262,7 @@ " explained_variance[:30] * 100,\n", " \"o-\",\n", ")\n", - "plt.xlabel(\"i$^{\\mathrm{th}}$ PC\", size=20)\n", + "plt.xlabel(r\"i$^{\\mathrm{th}}$ PC\", size=20)\n", "plt.ylabel(\"Explained variance\", size=20)\n", "ax = plt.gca()\n", "ax.yaxis.set_major_formatter(mtick.PercentFormatter())" @@ -468,13 +472,13 @@ " x + 0.6,\n", " scores_MPF_DIRECT,\n", " width=0.3,\n", - " label=f\"DIRECT, $\\overline{{\\mathrm{{Coverage\\ score}}}}$ = {np.mean(scores_MPF_DIRECT):.3f}\",\n", + " label=rf\"DIRECT, $\\overline{{\\mathrm{{Coverage\\ score}}}}$ = {np.mean(scores_MPF_DIRECT):.3f}\",\n", ")\n", "plt.bar(\n", " x + 0.3,\n", " scores_MPF_MS,\n", " width=0.3,\n", - " label=f\"Manual, $\\overline{{\\mathrm{{Coverage\\ score}}}}$ = {np.mean(scores_MPF_MS):.3f}\",\n", + " label=rf\"Manual, $\\overline{{\\mathrm{{Coverage\\ score}}}}$ = {np.mean(scores_MPF_MS):.3f}\",\n", ")\n", "plt.xticks(x + 0.45, x_ticks, size=16)\n", "plt.yticks(np.linspace(0, 1.0, 6), size=16)\n", diff --git a/notebooks/direct/Example2_Ti-H.ipynb b/notebooks/direct/Example2_Ti-H.ipynb index 73d666dd..2b81217d 100644 --- a/notebooks/direct/Example2_Ti-H.ipynb +++ b/notebooks/direct/Example2_Ti-H.ipynb @@ -18,11 +18,15 @@ "metadata": {}, "outputs": [], "source": [ - "from maml.sampling.direct import DIRECTSampler, BirchClustering, SelectKFromClusters, M3GNetStructure\n", + "from __future__ import annotations\n", + "\n", "import pickle\n", - "import numpy as np\n", + "\n", "import matplotlib.pyplot as plt\n", - "import matplotlib.ticker as mtick" + "import matplotlib.ticker as mtick\n", + "import numpy as np\n", + "\n", + "from maml.sampling.direct import BirchClustering, DIRECTSampler, SelectKFromClusters" ] }, { @@ -182,7 +186,7 @@ " explained_variance[:30] * 100,\n", " \"o-\",\n", ")\n", - "plt.xlabel(\"i$^{\\mathrm{th}}$ PC\", size=20)\n", + "plt.xlabel(r\"i$^{\\mathrm{th}}$ PC\", size=20)\n", "plt.ylabel(\"Explained variance\", size=20)\n", "ax = plt.gca()\n", "ax.yaxis.set_major_formatter(mtick.PercentFormatter())" @@ -421,10 +425,10 @@ " x + 0.6,\n", " scores_DIRECT,\n", " width=0.3,\n", - " label=f\"DIRECT, $\\overline{{\\mathrm{{Coverage\\ score}}}}$ = {np.mean(scores_DIRECT):.3f}\",\n", + " label=rf\"DIRECT, $\\overline{{\\mathrm{{Coverage\\ score}}}}$ = {np.mean(scores_DIRECT):.3f}\",\n", ")\n", "plt.bar(\n", - " x + 0.3, scores_MS, width=0.3, label=f\"Manual, $\\overline{{\\mathrm{{Coverage\\ score}}}}$ = {np.mean(scores_MS):.3f}\"\n", + " x + 0.3, scores_MS, width=0.3, label=rf\"Manual, $\\overline{{\\mathrm{{Coverage\\ score}}}}$ = {np.mean(scores_MS):.3f}\"\n", ")\n", "plt.xticks(x + 0.45, x_ticks, size=16)\n", "plt.yticks(np.linspace(0, 1.0, 6), size=16)\n", @@ -570,7 +574,7 @@ " explained_variance[:30] * 100,\n", " \"o-\",\n", ")\n", - "plt.xlabel(\"i$^{\\mathrm{th}}$ PC\", size=20)\n", + "plt.xlabel(r\"i$^{\\mathrm{th}}$ PC\", size=20)\n", "plt.ylabel(\"Explained variance\", size=20)\n", "ax = plt.gca()\n", "ax.yaxis.set_major_formatter(mtick.PercentFormatter())" @@ -747,8 +751,8 @@ "x_ticks = [f\"PC {n+1}\" for n in range(len(x))]\n", "\n", "plt.figure(figsize=(15,4))\n", - "plt.bar(x+0.6, scores_TiH_DIRECT_birch, width=0.3, label=f\"DIRECT, $\\overline{{\\mathrm{{Coverage\\ score}}}}$ = {np.mean(scores_TiH_DIRECT_birch):.3f}\")\n", - "plt.bar(x+0.3, scores_TiH_MS, width=0.3, label=f\"MS, $\\overline{{\\mathrm{{Coverage\\ score}}}}$ = {np.mean(scores_TiH_MS):.3f}\")\n", + "plt.bar(x+0.6, scores_TiH_DIRECT_birch, width=0.3, label=rf\"DIRECT, $\\overline{{\\mathrm{{Coverage\\ score}}}}$ = {np.mean(scores_TiH_DIRECT_birch):.3f}\")\n", + "plt.bar(x+0.3, scores_TiH_MS, width=0.3, label=rf\"MS, $\\overline{{\\mathrm{{Coverage\\ score}}}}$ = {np.mean(scores_TiH_MS):.3f}\")\n", "plt.xticks(x+0.45, x_ticks,size=16)\n", "plt.yticks(np.linspace(0,1.,6),size=16)\n", "plt.ylabel(\"Coverage score\", size=20)\n", diff --git a/notebooks/gbe/GB energy model.ipynb b/notebooks/gbe/GB energy model.ipynb index 33e55788..5ff89aef 100644 --- a/notebooks/gbe/GB energy model.ipynb +++ b/notebooks/gbe/GB energy model.ipynb @@ -7,16 +7,15 @@ "metadata": {}, "outputs": [], "source": [ + "from __future__ import annotations\n", + "\n", "import os\n", + "\n", "import joblib\n", - "import pickle\n", - "import numpy as np\n", - "import pandas as pd\n", - "from tqdm import tqdm\n", + "\n", "import maml.apps.gbe as gbe\n", "from maml.apps.gbe.describer import GBDescriber\n", - "from maml.apps.gbe.utils import load_data\n", - "from monty.serialization import loadfn" + "from maml.apps.gbe.utils import load_data" ] }, { diff --git a/notebooks/model/garnet_formation_energy.ipynb b/notebooks/model/garnet_formation_energy.ipynb index 1a0fb2dd..45fb2153 100644 --- a/notebooks/model/garnet_formation_energy.ipynb +++ b/notebooks/model/garnet_formation_energy.ipynb @@ -6,13 +6,15 @@ "metadata": {}, "outputs": [], "source": [ + "from __future__ import annotations\n", + "\n", + "import matplotlib.pyplot as plt\n", "import pandas as pd\n", "from pymatgen import Structure\n", + "from sklearn.linear_model import LinearRegression\n", "\n", "from maml.describers import DistinctSiteProperty\n", "from maml.models import SKLModel\n", - "from sklearn.linear_model import LinearRegression\n", - "import matplotlib.pyplot as plt\n", "\n", "%matplotlib inline" ] @@ -298,9 +300,10 @@ } ], "source": [ - "from maml.describers import ElementProperty\n", "from sklearn.linear_model import Ridge\n", "\n", + "from maml.describers import ElementProperty\n", + "\n", "model = SKLModel(describer=ElementProperty.from_preset(\"magpie\"), model=Ridge(1e-2))" ] }, @@ -379,10 +382,10 @@ "metadata": {}, "outputs": [], "source": [ - "from tensorflow.keras.models import Sequential\n", "from tensorflow.keras.layers import Dense\n", - "from maml.models import KerasModel\n", + "from tensorflow.keras.models import Sequential\n", "\n", + "from maml.models import KerasModel\n", "\n", "k_model = Sequential()\n", "k_model.add(Dense(128, input_dim=6, activation=\"relu\"))\n", diff --git a/notebooks/pes/data/process_vasprun_to_mliap.ipynb b/notebooks/pes/data/process_vasprun_to_mliap.ipynb index 84f12722..b43aa738 100644 --- a/notebooks/pes/data/process_vasprun_to_mliap.ipynb +++ b/notebooks/pes/data/process_vasprun_to_mliap.ipynb @@ -7,8 +7,10 @@ "metadata": {}, "outputs": [], "source": [ - "from glob import glob\n", + "from __future__ import annotations\n", + "\n", "import json\n", + "from glob import glob\n", "\n", "from pymatgen.io.vasp.outputs import Vasprun\n", "\n", diff --git a/notebooks/pes/gap/example.ipynb b/notebooks/pes/gap/example.ipynb index c7bd7f78..7bae9cae 100644 --- a/notebooks/pes/gap/example.ipynb +++ b/notebooks/pes/gap/example.ipynb @@ -15,8 +15,10 @@ }, "outputs": [], "source": [ - "from pymatgen import Structure\n", + "from __future__ import annotations\n", + "\n", "from monty.serialization import loadfn\n", + "from pymatgen import Structure\n", "\n", "data = loadfn(\"data.json\")\n", "train_structures = [d[\"structure\"] for d in data]\n", @@ -242,7 +244,7 @@ "Ni = Structure.from_spacegroup(sg=\"Fm-3m\", species=[\"Ni\"], lattice=Lattice.cubic(3.51), coords=[[0, 0, 0]])\n", "lc_calculator = LatticeConstant(ff_settings=gap)\n", "a, b, c = lc_calculator.calculate([Ni])[0]\n", - "print(\"Ni\", \"Lattice a: {}, Lattice b: {}, Lattice c: {}\".format(a, b, c))" + "print(\"Ni\", f\"Lattice a: {a}, Lattice b: {b}, Lattice c: {c}\")" ] }, { @@ -262,7 +264,7 @@ "Mo = Structure.from_spacegroup(sg=\"Im-3m\", species=[\"Mo\"], lattice=Lattice.cubic(3.17), coords=[[0, 0, 0]])\n", "lc_calculator = LatticeConstant(ff_settings=gap)\n", "a, b, c = lc_calculator.calculate([Mo])[0]\n", - "print(\"Mo\", \"Lattice a: {}, Lattice b: {}, Lattice c: {}\".format(a, b, c))" + "print(\"Mo\", f\"Lattice a: {a}, Lattice b: {b}, Lattice c: {c}\")" ] }, { @@ -496,7 +498,7 @@ "efs_calculator = EnergyForceStress(ff_settings=gap_loaded)\n", "energy, forces, stresses = efs_calculator.calculate([train_structures[0]])[0]\n", "\n", - "print(\"energy: {}\".format(energy))\n", + "print(f\"energy: {energy}\")\n", "print(\"forces: \\n\", forces)\n", "print(\"stresses: \", stresses)" ] diff --git a/notebooks/pes/mtp/example.ipynb b/notebooks/pes/mtp/example.ipynb index 70fd9839..3496a2e1 100644 --- a/notebooks/pes/mtp/example.ipynb +++ b/notebooks/pes/mtp/example.ipynb @@ -23,8 +23,10 @@ "metadata": {}, "outputs": [], "source": [ - "from pymatgen.core import Structure\n", + "from __future__ import annotations\n", + "\n", "from monty.serialization import loadfn\n", + "from pymatgen.core import Structure\n", "\n", "data = loadfn(\"data.json\")\n", "train_structures = [d[\"structure\"] for d in data]\n", @@ -147,16 +149,16 @@ } ], "source": [ - "from sklearn.metrics import mean_absolute_error\n", "import numpy as np\n", + "from sklearn.metrics import mean_absolute_error\n", "\n", "E_p = np.array(df_predict[df_predict[\"dtype\"] == \"energy\"][\"y_orig\"]) / df_predict[df_predict[\"dtype\"] == \"energy\"][\"n\"]\n", "E_o = np.array(df_orig[df_orig[\"dtype\"] == \"energy\"][\"y_orig\"]) / df_orig[df_orig[\"dtype\"] == \"energy\"][\"n\"]\n", - "print(\"MAE of training energy prediction is {} meV/atom\".format(mean_absolute_error(E_o, E_p) * 1000))\n", + "print(f\"MAE of training energy prediction is {mean_absolute_error(E_o, E_p) * 1000} meV/atom\")\n", "\n", "F_p = np.array(df_predict[df_predict[\"dtype\"] == \"force\"][\"y_orig\"]) / df_predict[df_predict[\"dtype\"] == \"force\"][\"n\"]\n", "F_o = np.array(df_orig[df_orig[\"dtype\"] == \"force\"][\"y_orig\"]) / df_orig[df_orig[\"dtype\"] == \"force\"][\"n\"]\n", - "print(\"MAE of training force prediction is {} eV/Å\".format(mean_absolute_error(F_o, F_p)))" + "print(f\"MAE of training force prediction is {mean_absolute_error(F_o, F_p)} eV/Å\")" ] }, { @@ -244,11 +246,11 @@ "\n", "lc_calculator = LatticeConstant(ff_settings=mtp_loaded)\n", "a, b, c = lc_calculator.calculate([Ni])[0]\n", - "print(\"Ni\", \"Lattice a: {}, Lattice b: {}, Lattice c: {}\".format(a, b, c))\n", + "print(\"Ni\", f\"Lattice a: {a}, Lattice b: {b}, Lattice c: {c}\")\n", "\n", "lc_calculator = LatticeConstant(ff_settings=mtp_loaded)\n", "a, b, c = lc_calculator.calculate([Mo])[0]\n", - "print(\"Mo\", \"Lattice a: {}, Lattice b: {}, Lattice c: {}\".format(a, b, c))" + "print(\"Mo\", f\"Lattice a: {a}, Lattice b: {b}, Lattice c: {c}\")" ] }, { @@ -517,7 +519,7 @@ "efs_calculator = EnergyForceStress(ff_settings=mtp_loaded)\n", "energy, forces, stresses = efs_calculator.calculate([train_structures[0]])[0]\n", "\n", - "print(\"energy: {}\".format(energy))\n", + "print(f\"energy: {energy}\")\n", "print(\"forces: \\n\", forces)\n", "print(\"stresses: \", stresses)" ] diff --git a/notebooks/pes/nnp/example.ipynb b/notebooks/pes/nnp/example.ipynb index 3d546680..a7b9e420 100644 --- a/notebooks/pes/nnp/example.ipynb +++ b/notebooks/pes/nnp/example.ipynb @@ -15,8 +15,10 @@ }, "outputs": [], "source": [ - "from pymatgen import Structure\n", + "from __future__ import annotations\n", + "\n", "from monty.serialization import loadfn\n", + "from pymatgen import Structure\n", "\n", "data = loadfn(\"data.json\")\n", "train_structures = [d[\"structure\"] for d in data]\n", @@ -454,7 +456,7 @@ "\n", "lc_calculator = LatticeConstant(ff_settings=nnp)\n", "a, b, c = lc_calculator.calculate([Ni])[0]\n", - "print(\"Ni\", \"Lattice a: {}, Lattice b: {}, Lattice c: {}\".format(a, b, c))" + "print(\"Ni\", f\"Lattice a: {a}, Lattice b: {b}, Lattice c: {c}\")" ] }, { @@ -473,7 +475,7 @@ "source": [ "lc_calculator = LatticeConstant(ff_settings=nnp)\n", "a, b, c = lc_calculator.calculate([Mo])[0]\n", - "print(\"Mo\", \"Lattice a: {}, Lattice b: {}, Lattice c: {}\".format(a, b, c))" + "print(\"Mo\", f\"Lattice a: {a}, Lattice b: {b}, Lattice c: {c}\")" ] }, { @@ -712,7 +714,7 @@ "efs_calculator = EnergyForceStress(ff_settings=nnp_loaded)\n", "energy, forces, stresses = efs_calculator.calculate([train_structures[0]])[0]\n", "\n", - "print(\"energy: {}\".format(energy))\n", + "print(f\"energy: {energy}\")\n", "print(\"forces: \\n\", forces)\n", "print(\"stresses: \", stresses)" ] diff --git a/notebooks/pes/qsnap/example.ipynb b/notebooks/pes/qsnap/example.ipynb index fad66367..42eb4812 100644 --- a/notebooks/pes/qsnap/example.ipynb +++ b/notebooks/pes/qsnap/example.ipynb @@ -13,8 +13,10 @@ "metadata": {}, "outputs": [], "source": [ - "from pymatgen.core import Structure\n", + "from __future__ import annotations\n", + "\n", "from monty.serialization import loadfn\n", + "from pymatgen.core import Structure\n", "\n", "data = loadfn(\"data.json\")\n", "train_structures = [d[\"structure\"] for d in data]\n", @@ -38,7 +40,8 @@ "outputs": [], "source": [ "import numpy as np\n", - "from maml.utils import pool_from, convert_docs\n", + "\n", + "from maml.utils import convert_docs, pool_from\n", "\n", "train_pool = pool_from(train_structures, train_energies, train_forces)\n", "_, df = convert_docs(train_pool)\n", @@ -66,10 +69,10 @@ }, "outputs": [], "source": [ - "from maml.base import SKLModel\n", - "from maml.describers import BispectrumCoefficients\n", "from sklearn.linear_model import LinearRegression\n", + "\n", "from maml.apps.pes import SNAPotential\n", + "from maml.describers import BispectrumCoefficients\n", "\n", "element_profile = {\"Mo\": {\"r\": 5.0, \"w\": 1}, \"Ni\": {\"r\": 5.0, \"w\": 1}}\n", "describer = BispectrumCoefficients(\n", @@ -472,7 +475,7 @@ "efs_calculator = EnergyForceStress(ff_settings=qsnap_loaded)\n", "energy, forces, stresses = efs_calculator.calculate([train_structures[0]])[0]\n", "\n", - "print(\"energy: {}\".format(energy))\n", + "print(f\"energy: {energy}\")\n", "print(\"forces: \\n\", forces)\n", "print(\"stresses: \", stresses)" ] diff --git a/notebooks/pes/qsnap/example_with_stress.ipynb b/notebooks/pes/qsnap/example_with_stress.ipynb index d1c23204..814d0eec 100644 --- a/notebooks/pes/qsnap/example_with_stress.ipynb +++ b/notebooks/pes/qsnap/example_with_stress.ipynb @@ -13,8 +13,10 @@ "metadata": {}, "outputs": [], "source": [ - "from pymatgen import Structure\n", + "from __future__ import annotations\n", + "\n", "from monty.serialization import loadfn\n", + "from pymatgen import Structure\n", "\n", "data = loadfn(\"data.json\")\n", "train_structures = [d[\"structure\"] for d in data]\n", @@ -45,7 +47,8 @@ "outputs": [], "source": [ "import numpy as np\n", - "from maml.utils import pool_from, convert_docs\n", + "\n", + "from maml.utils import convert_docs, pool_from\n", "\n", "train_pool = pool_from(train_structures, train_energies, train_forces, train_stresses)\n", "_, df = convert_docs(train_pool, include_stress=True)\n", @@ -91,10 +94,11 @@ } ], "source": [ - "from maml.base import SKLModel\n", - "from maml.describers import BispectrumCoefficients\n", "from sklearn.linear_model import LinearRegression\n", + "\n", "from maml.apps.pes import SNAPotential\n", + "from maml.base import SKLModel\n", + "from maml.describers import BispectrumCoefficients\n", "\n", "element_profile = {\"Mo\": {\"r\": 5.0, \"w\": 1}, \"Ni\": {\"r\": 5.0, \"w\": 1}}\n", "describer = BispectrumCoefficients(\n", diff --git a/notebooks/pes/snap/example.ipynb b/notebooks/pes/snap/example.ipynb index dd445d03..44c82f30 100644 --- a/notebooks/pes/snap/example.ipynb +++ b/notebooks/pes/snap/example.ipynb @@ -15,8 +15,10 @@ }, "outputs": [], "source": [ - "from pymatgen import Structure\n", + "from __future__ import annotations\n", + "\n", "from monty.serialization import loadfn\n", + "from pymatgen import Structure\n", "\n", "data = loadfn(\"data.json\")\n", "train_structures = [d[\"structure\"] for d in data]\n", @@ -40,7 +42,8 @@ "outputs": [], "source": [ "import numpy as np\n", - "from maml.utils import pool_from, convert_docs\n", + "\n", + "from maml.utils import convert_docs, pool_from\n", "\n", "train_pool = pool_from(train_structures, train_energies, train_forces)\n", "_, df = convert_docs(train_pool)\n", @@ -68,10 +71,11 @@ }, "outputs": [], "source": [ - "from maml.base import SKLModel\n", - "from maml.describers import BispectrumCoefficients\n", "from sklearn.linear_model import LinearRegression\n", + "\n", "from maml.apps.pes import SNAPotential\n", + "from maml.base import SKLModel\n", + "from maml.describers import BispectrumCoefficients\n", "\n", "element_profile = {\"Mo\": {\"r\": 5.0, \"w\": 1}, \"Ni\": {\"r\": 5.0, \"w\": 1}}\n", "describer = BispectrumCoefficients(\n", @@ -260,7 +264,7 @@ "Ni = Structure.from_spacegroup(sg=\"Fm-3m\", species=[\"Ni\"], lattice=Lattice.cubic(3.51), coords=[[0, 0, 0]])\n", "lc_calculator = LatticeConstant(ff_settings=snap)\n", "a, b, c = lc_calculator.calculate([Ni])[0]\n", - "print(\"Ni\", \"Lattice a: {}, Lattice b: {}, Lattice c: {}\".format(a, b, c))" + "print(\"Ni\", f\"Lattice a: {a}, Lattice b: {b}, Lattice c: {c}\")" ] }, { @@ -279,7 +283,7 @@ "source": [ "lc_calculator = LatticeConstant(ff_settings=snap)\n", "a, b, c = lc_calculator.calculate([Mo])[0]\n", - "print(\"Mo\", \"Lattice a: {}, Lattice b: {}, Lattice c: {}\".format(a, b, c))" + "print(\"Mo\", f\"Lattice a: {a}, Lattice b: {b}, Lattice c: {c}\")" ] }, { @@ -515,7 +519,7 @@ "efs_calculator = EnergyForceStress(ff_settings=snap_loaded)\n", "energy, forces, stresses = efs_calculator.calculate([train_structures[0]])[0]\n", "\n", - "print(\"energy: {}\".format(energy))\n", + "print(f\"energy: {energy}\")\n", "print(\"forces: \\n\", forces)\n", "print(\"stresses: \", stresses)" ] @@ -542,8 +546,7 @@ } ], "source": [ - "from maml.apps.pes import SNAPotential\n", - "from maml.apps.pes import ElasticConstant\n", + "from maml.apps.pes import ElasticConstant, SNAPotential\n", "\n", "snap_prb = SNAPotential.from_config(param_file=\"Ni_Mo.snapparam\", coeff_file=\"Ni_Mo.snapcoeff\")\n", "\n", diff --git a/notebooks/pes/snap/example_with_stress.ipynb b/notebooks/pes/snap/example_with_stress.ipynb index d48cb923..2d946f1b 100644 --- a/notebooks/pes/snap/example_with_stress.ipynb +++ b/notebooks/pes/snap/example_with_stress.ipynb @@ -13,8 +13,10 @@ "metadata": {}, "outputs": [], "source": [ - "from pymatgen import Structure\n", + "from __future__ import annotations\n", + "\n", "from monty.serialization import loadfn\n", + "from pymatgen import Structure\n", "\n", "data = loadfn(\"data.json\")\n", "train_structures = [d[\"structure\"] for d in data]\n", @@ -45,7 +47,8 @@ "outputs": [], "source": [ "import numpy as np\n", - "from maml.utils import pool_from, convert_docs\n", + "\n", + "from maml.utils import convert_docs, pool_from\n", "\n", "train_pool = pool_from(train_structures, train_energies, train_forces, train_stresses)\n", "_, df = convert_docs(train_pool, include_stress=True)\n", @@ -91,10 +94,11 @@ } ], "source": [ - "from maml.base import SKLModel\n", - "from maml.describers import BispectrumCoefficients\n", "from sklearn.linear_model import LinearRegression\n", + "\n", "from maml.apps.pes import SNAPotential\n", + "from maml.base import SKLModel\n", + "from maml.describers import BispectrumCoefficients\n", "\n", "element_profile = {\"Mo\": {\"r\": 5.0, \"w\": 1}, \"Ni\": {\"r\": 5.0, \"w\": 1}}\n", "describer = BispectrumCoefficients(\n", @@ -308,7 +312,7 @@ "\n", "lc_calculator = LatticeConstant(ff_settings=snap)\n", "a, b, c = lc_calculator.calculate([Ni])[0]\n", - "print(\"Ni\", \"Lattice a: {}, Lattice b: {}, Lattice c: {}\".format(a, b, c))" + "print(\"Ni\", f\"Lattice a: {a}, Lattice b: {b}, Lattice c: {c}\")" ] }, { @@ -334,7 +338,7 @@ "source": [ "lc_calculator = LatticeConstant(ff_settings=snap)\n", "a, b, c = lc_calculator.calculate([Mo])[0]\n", - "print(\"Mo\", \"Lattice a: {}, Lattice b: {}, Lattice c: {}\".format(a, b, c))" + "print(\"Mo\", f\"Lattice a: {a}, Lattice b: {b}, Lattice c: {c}\")" ] }, {