{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Machine Learning\n", "Here we will demonstrate some fo the capabilities of PyBigDFT that are useful for constructing large datasets. We will demonstrate the utility of these features by showing a machine learning example based on the [QMLCode](https://www.qmlcode.org/index.html). Our goal will be to predict the energy of two water molecules. We will start by performing an MD simulation of water molecules using a forcefield. We will then compute snapshot energies using both a forcefield and BigDFT. We will feed the BigDFT energies into the machine learning model and see how we do.\n", "\n", "The number of datapoints to use:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "num_conformers = 200\n", "num_training = int(num_conformers/2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Read in the starting system." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "from BigDFT.IO import XYZReader\n", "from BigDFT.Systems import System\n", "from BigDFT.Fragments import Fragment\n", "from copy import deepcopy\n", "\n", "sys = System()\n", "with XYZReader(\"H2O\") as ifile:\n", " sys[\"FRA:0\"] = Fragment(xyzfile=ifile)\n", "sys[\"FRA:1\"] = deepcopy(sys[\"FRA:0\"])\n", "sys[\"FRA:1\"].translate([-5, 0, 0])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now it is time for the MD run, which will be done using openbabel's MMFF94 implementation. We will do a bunch of runs at 300K, stopping every 0.1 picoseconds to extract a position and energy value." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "from BigDFT.Interop.BabelInterop import molecular_dynamics, system_energy, optimize_system\n", "\n", "sys = optimize_system(sys)\n", "\n", "systems = [sys]\n", "mm_energies = [system_energy(sys)]\n", "\n", "for i in range(num_conformers-1):\n", " step = molecular_dynamics(systems[-1], 100, 300)\n", " systems.append(step)\n", " mm_energies.append(system_energy(step))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we will compute these energy values using BigDFT." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "from BigDFT.Inputfiles import Inputfile\n", "inp = Inputfile()\n", "inp.set_hgrid(0.37)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We will create a dataset so we can iterate over two dimensions: snapshots and functional." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "from BigDFT.Datasets import Dataset\n", "data = Dataset(run_dir=\"work-ai\", input=inp)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "from copy import deepcopy\n", "from BigDFT.Calculators import SystemCalculator\n", "code = SystemCalculator(verbose=False)\n", "\n", "for functional in [\"LDA\", \"PBE\"]:\n", " for i in range(num_conformers):\n", " thisinp = deepcopy(inp)\n", " thisinp.set_xc(functional)\n", " thisinp[\"posinp\"] = systems[i].get_posinp()\n", " if functional == \"PBE\":\n", " thisinp.set_dispersion_correction()\n", " data.append_run(id={\"step\": i, \"functional\": functional}, runner = code, input=thisinp)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "results = data.run()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And we extract the results." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "energies = {\"LDA\": data.fetch_results({'functional' : \"LDA\"}, attribute='energy'),\n", " \"PBE\": data.fetch_results({'functional' : \"PBE\"}, attribute='energy')}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can verify our simulations by plotting the DFT and MM energies together." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "def plot_fit(xvals, yvals, axs):\n", " from numpy import polyfit, poly1d\n", " from sklearn.metrics import r2_score\n", " \n", " def best_fit(xvals, yvals):\n", " return poly1d(polyfit(xvals, yvals, 1))\n", "\n", " fit = best_fit(xvals, yvals)\n", " r2 = r2_score(fit(xvals), yvals)\n", "\n", " axs.plot(xvals, fit(xvals), 'r', linestyle='--', label=\"$R^2 = $\" + \"{:.3f}\".format(r2))" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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gwcP7nP+1FNP1dWrV0eqe/PmzbrXXnvpY489pm+99ZYecMABev/9929z3aZNm3TEiBH6+uuvq6rqMccco7/4xS9UVfW2227T1atX6/7775+7fu3atbr//vvra6+9pu+8845OnTpVH3nkkaL9yMp7XXc8+qiqI3Gcctdd2tXVlTs9efLk3PPPXyZPnly0ynJ2xjw4Vcbz4iSuXA3DMBJm7dq1vO997wNg5MiRDBgwAHB+KJ9xxhlMnz6dsWPHRqr7r3/9K/vssw977bUXAwYM4Nhjj+X6668veO3mzZt544032Lx5M6+//jrDhg0D4JBDDmGnnXbqc+2DDz7IxIkTaWtro7m5mcmTJ7N06dJIfTQicuutzvBvgMGDnUTiiRP7pGbceuutOJplK6rKrbfeGrlZEzgVJj//pqenJ7ftqU5whI+qhakMw8gOnsBRVS644ALOPfdcAH74wx+ybNkyrr32Wi666KJt7ps0aRIHHXTQNmXZsmW5a5566in22GOP3P7uu+/OU089tU1du+22G6eddhrDhw9n1113ZdCgQXzsYx8r2ufRo0dz++238/zzz/P6669z8803s3HjxjhvgxGUt9+Gv//dCUUNHQo/+Qk89xwEmCk6iYE3Ng9Ohenu7s6JFhHZRrF69PT0mLgxDKMwhx667bE5c+DLX4bXX3cSOPM58USnPPccHH1033MBfiVv3LiRV155hSOOOIKnnnqKAw44IGejTjnlFE455ZSi995xxx1l6y9kCwvNS/Piiy9y/fXXs379enbYYQeOOeYYrrjiCj73uc8VrHfffffljDPOYNq0aWy33XYceOCBNDfboy91fvtbmDnTmZH47rth7lwYOHCbOeCKzT2UxHxw5sGpEqU+NBsybjQaItIsIp8UkZ+JyCoRedT9+zMROVpE7IlUZdasWcMhhxzCvffeyyOPPMJDDz3EXXfdFejeIB6c3XffvY9nZdOmTbnQk59ly5YxcuRIhg4dSv/+/fnkJz/JnXfeWbL9L3zhC9xzzz3cfvvt7LTTTowaNSrgqzZCowoHH+yIG4DTT4emJhg4ENg6yMYTtPl5M/5jcX/km9GoEj09PdsImWLKtqury7w5Rt0iIl8CzgQeBG4Dfgu8AmwP7At8EVgsIuep6rbxj0aklMelra30+SFDAnls8lm7di0f+MAHANhxxx35zGc+w003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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from matplotlib import pyplot as plt\n", "\n", "fig, axs = plt.subplots(2,2, figsize=(8,6))\n", "axs[0,0].plot(mm_energies, 'kx')\n", "axs[0,0].set_title(\"MMFF94\")\n", "axs[0,1].plot(energies[\"LDA\"], 'k+')\n", "axs[0,1].set_title(\"DFT (LDA)\")\n", "axs[1,0].plot(energies[\"PBE\"], 'k+')\n", "axs[1,0].set_title(\"DFT (PBE)\")\n", "axs[1,1].plot(mm_energies, energies[\"PBE\"], 'k+')\n", "plot_fit(mm_energies, energies[\"PBE\"], axs[1,1])\n", "axs[1,1].set_title(\"Correlation (PBE vs. MMFF94)\")\n", "for i in range(2):\n", " for j in range(2):\n", " axs[i, j].ticklabel_format(useOffset=False)\n", " axs[i, j].set_ylabel(\"Energy (Hartree)\", fontsize=12)\n", "axs[1,1].set_ylabel(\"DFT Energy (Hartree)\", fontsize=12)\n", "axs[1,1].set_xlabel(\"Open Babel Energy (Hartree)\", fontsize=12)\n", "axs[1,1].legend()\n", "fig.tight_layout()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Before proceeding, let's shuffle those values to remove any time correlation when predicting." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "from sklearn.utils import shuffle\n", "systems, target = shuffle(systems, energies[\"PBE\"], random_state=0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We are ready at this point to start with the machine learning example. We just need a very simple subroutine to convert to one of QML's fingerprints." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "def convert_system_to_coulomb_matrix(sys, sorting=\"row-norm\"):\n", " from numpy import array\n", " from qml.representations import generate_coulomb_matrix\n", " from BigDFT.Atoms import atomic_number\n", " \n", " charges = []\n", " coordinates = []\n", " \n", " size = sum([len(x) for x in sys.values()])\n", " for frag in sys.values():\n", " for at in frag:\n", " charges.append(atomic_number(at.sym))\n", " coordinates.append(at.get_position(\"angstroem\"))\n", "\n", " return generate_coulomb_matrix(array(charges), array(coordinates),\n", " size=size, sorting=sorting)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "from numpy import array\n", "reps = array([convert_system_to_coulomb_matrix(x) for x in systems])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Build our training and prediction sets." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "training_Y = array(target[:num_training])\n", "predict_Y = array(target[num_training:])\n", "\n", "training_X = reps[:num_training]\n", "predict_X = reps[num_training:]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is all just QML boilerplate. You can play with the sigma value (the famous hyper parameter tuning)." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "from qml.kernels import gaussian_kernel\n", "from qml.math import cho_solve\n", "from numpy import diag_indices_from\n", "\n", "sigma = 1000\n", "K = gaussian_kernel(training_X, training_X, sigma)\n", "K[diag_indices_from(K)] += 1e-8\n", "alpha = cho_solve(K, training_Y)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "from numpy import dot\n", "Ks = gaussian_kernel(predict_X, training_X, sigma)\n", "computed = dot(Ks, alpha)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we are ready to plot our results." ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, axs = plt.subplots(1,1, figsize=(12,4))\n", "\n", "axs.plot(predict_Y, computed, 'kx')\n", "plot_fit(predict_Y, computed, axs)\n", "\n", "axs.set_xlabel(\"Computed\", fontsize=12)\n", "axs.set_ylabel(\"Predicted\", fontsize=12)\n", "axs.set_title(\"PBE + Dispersion\", fontsize=12)\n", "\n", "axs.legend()\n", "\n", "axs.ticklabel_format(useOffset=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we repeat this process for LDA." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "target = shuffle(energies[\"LDA\"], random_state=0)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "training_Y = array(target[:num_training])\n", "predict_Y = array(target[num_training:])" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "sigma = 1000\n", "K = gaussian_kernel(training_X, training_X, sigma)\n", "K[diag_indices_from(K)] += 1e-8\n", "alpha = cho_solve(K, training_Y)\n", "Ks = gaussian_kernel(predict_X, training_X, sigma)\n", "computed = dot(Ks, alpha)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, axs = plt.subplots(1,1, figsize=(12,4))\n", "\n", "axs.plot(predict_Y, computed, 'kx')\n", "plot_fit(predict_Y, computed, axs)\n", "\n", "axs.set_xlabel(\"Computed\", fontsize=12)\n", "axs.set_ylabel(\"Predicted\", fontsize=12)\n", "axs.set_title(\"LDA\", fontsize=12)\n", "axs.legend()\n", "\n", "axs.ticklabel_format(useOffset=False)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.6.10" } }, "nbformat": 4, "nbformat_minor": 4 }