{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Initial imports" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [], "source": [ "from typing import List\n", "import scm.plams as plams\n", "from scm.input_classes import engines\n", "from scm.reactions_discovery import ReactionsDiscoveryJob\n", "from rdkit import Chem\n", "from rdkit.Chem import Draw\n", "\n", "# Settings for displaying molecules in the notebook\n", "from rdkit.Chem.Draw import IPythonConsole\n", "\n", "IPythonConsole.ipython_useSVG = True\n", "IPythonConsole.molSize = 250, 250\n", "\n", "try:\n", " from scm.plams import view # view molecule using AMSview in a Jupyter Notebook in AMS2026+\n", "except ImportError:\n", " from scm.plams import plot_molecule # plot molecule in a Jupyter Notebook in AMS2023+\n", "\n", " def view(molecule, **kwargs):\n", " plot_molecule(molecule)\n", "\n", "\n", "# this line is not required in AMS2025+\n", "plams.init()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Helpers for showing molecules" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "def draw_molecules(molecules: List[plams.Molecule]):\n", " smiles = [molecule.properties.smiles for molecule in molecules]\n", " return draw_smiles(smiles)\n", "\n", "\n", "def draw_smiles(smiles: List[str]):\n", " rd_mols = [Chem.MolFromSmiles(s) for s in smiles]\n", " return Draw.MolsToGridImage(rd_mols)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The ReactionsDiscoveryJob class" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "job = ReactionsDiscoveryJob(name=\"MyDiscovery\")\n", "driver = job.input\n", "md = driver.MolecularDynamics" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Setting up the reactants for molecular dynamics" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "\n", " \n", "H2O\n", "\n", "\n", "\n", "\n", "\n", "NH2\n", "HO\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "O\n", "O\n", "" ], "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "md.NumSimulations = 4\n", "build = md.BuildSystem\n", "build.NumAtoms = 250\n", "build.Density = 0.9\n", "build.Molecule[0].SMILES = \"O\" # Water\n", "build.Molecule[0].MoleFraction = 1\n", "build.Molecule[1].SMILES = \"NCCO\" # MEA\n", "build.Molecule[1].MoleFraction = 2\n", "build.Molecule[2].SMILES = \"O=C=O\" # Carbondioxide\n", "build.Molecule[2].MoleFraction = 3\n", "draw_smiles([build.Molecule[i].SMILES.val for i in range(len(build.Molecule))])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Setting up reactive molecular dynamics" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "md.Enabled = \"Yes\"\n", "md.Type = \"NanoReactor\"\n", "reactor = md.NanoReactor\n", "reactor.NumCycles = 10\n", "reactor.Temperature = 500\n", "reactor.MinVolumeFraction = 0.6" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Setting up network extraction and ranking" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "network = driver.NetworkExtraction\n", "network.Enabled = \"Yes\"\n", "network.UseCharges = \"Yes\"\n", "ranking = driver.ProductRanking\n", "ranking.Enabled = \"Yes\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Selecting the AMS engine to use" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "engine = engines.ReaxFF()\n", "engine.ForceField = \"Glycine.ff\"\n", "engine.TaperBO = \"Yes\" # This is a really important setting for reaction analysis with ReaxFF potentials\n", "driver.Engine = engine" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Running reactions discovery" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[13.01|09:49:52] JOB MyDiscovery STARTED\n", "[13.01|09:49:52] JOB MyDiscovery RUNNING\n", "[13.01|10:26:59] JOB MyDiscovery FINISHED\n", "[13.01|10:27:00] Job mdsim_2 reported warnings. Please check the output\n", "[13.01|10:27:00] JOB MyDiscovery SUCCESSFUL\n", "[13.01|10:27:00] Job mdsim_2 reported warnings. Please check the output\n" ] }, { "data": { "text/plain": [ "True" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "result = job.run() # start the job\n", "job.check() # check if job was succesful" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Obtain the results" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "graph, molecules, categories = result.get_network()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Categories\n", "\n", "The categories are `Products` `Reactants` and `Unstable`, as described in the reactions discovery manual. `molecules` is a dictionary with keys equal to the categories and each concomitant value is a list of PLAMS molecules." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['Products', 'Reactants', 'Unstable']\n" ] } ], "source": [ "print(categories)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "\n", " \n", "\n", "\n", "\n", "\n", "\n", "NH2\n", "HO\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "O\n", "O\n", "H2O\n", "" ], "text/plain": [ "" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "draw_molecules(molecules[\"Reactants\"])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Products\n", "\n", "These are the side products that reactions discovery found in the order as found by the ranking algorithm." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "\n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "NH2\n", "O\n", "\n", "\n", "\n", "\n", "OH\n", "NH3\n", "\n", "\n", "H2N\n", "OH\n", "\n", "HO\n", "OH\n", "\n", "\n", "\n", "\n", "O\n", "" ], "text/plain": [ "" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "draw_molecules(molecules[\"Products\"][:6])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Unstable\n", "\n", "Unstable products were determined to not likely exist outside of reactive dynamics. This e.g. includes radicals or structures that don't form stable molecules in isolation. Not all unstable molecules have a sensible 2d structure, so instead we plot their 3d structure." ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "view(molecules[\"Unstable\"][0], width=200, height=200)" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "view(molecules[\"Unstable\"][1], width=200, height=200)" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "view(molecules[\"Unstable\"][2], width=200, height=200)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Graph of the reaction network\n", "\n", "The graph is a bipartate networkx DiGraph with reaction and molecule nodes. This can be stored on disk in standard graph formats, e.g. `.gml`" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "import networkx as nx\n", "\n", "nx.write_gml(graph, \"reaction_network.gml\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Load a job not originally run by PLAMS" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "from scm.plams import FileError\n", "\n", "try:\n", " job = ReactionsDiscoveryJob.load_external(\"plams_workdir/MyDiscovery\")\n", " graph, molecules, categories = job.results.get_network()\n", "except FileError:\n", " pass" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.16" } }, "nbformat": 4, "nbformat_minor": 5 }