{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Metal Organic Frameworks\n", "\n", "> ### In this tutorial we will cover:\n", "> - how we can build metal organic frameworks in BuildAMol from scratch" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Metal Organic Frameworks (MOF) are a class of materials consisting of metal ions and organic linker molecules that have been studied for purposes of catalysis or gas filtering. Actually, if you are reading this tutorial you likely know more about them than I do, so let's just jump in!\n", "\n", "In this tutorial we will build a pillard paddlewheel MOF as is shown in figure 1b of the review by [Deria et al. (2014)](https://doi.org/10.1039/C4CS00067F)\n", "\n", "\n", "Since BuildAMol does by default not have any trick up it's sleeve to create\n", " MOFs we will have to make the structure from hand. Also, the highly geometric nature of the overall structure means that we cannot really use the `attach` method to assemble our fragments since that method is designed to more freely find good spatial placements instead of maintaining a good orientation for macro-assembly. As a consequence we will be assembling the fragments using `merge` (which does not alter the placement of fragments in any way) and manually establish the placements. \n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Sounds like a lot of work, right? Well, it is not as straightforward as calling some function a few times but hopefully it will be clear by the end. Admittedly, this tutorial will be a lengthy one but hopefully it will be very illustrative for cases where manual assembly is the only option to obtain the desired structure. If you make it through this tutorial you will surely be a master at using methods such as `align_to`, `superimpose_to_bond`, or `move`, all of which we will be using to get the right fragment in the right orientation at the right position. \n", "\n", "Let's go!" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import buildamol as bam\n", "import numpy as np" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Get the basic components\n", "\n", "The structure essentiall consists of two basic units, the metal complex and benzene rings. We can get the benzene rings from BuildAMol's built-in data but the metal complex is a more challenging bit. Spoilers ahead: we'll be just loading a file with an existing complex, which I prepared previously with the help of Stk, which is really good when it comes to metal complexes. " ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "application/3dmoljs_load.v0": "
You appear to be running in JupyterLab (or JavaScript failed to load for some other reason). You need to install the 3dmol extension:
\n jupyter labextension install jupyterlab_3dmol
You appear to be running in JupyterLab (or JavaScript failed to load for some other reason). You need to install the 3dmol extension:
\n",
" jupyter labextension install jupyterlab_3dmol
You appear to be running in JupyterLab (or JavaScript failed to load for some other reason). You need to install the 3dmol extension:
\n jupyter labextension install jupyterlab_3dmol
You appear to be running in JupyterLab (or JavaScript failed to load for some other reason). You need to install the 3dmol extension:
\n",
" jupyter labextension install jupyterlab_3dmol
You appear to be running in JupyterLab (or JavaScript failed to load for some other reason). You need to install the 3dmol extension:
\n jupyter labextension install jupyterlab_3dmol
You appear to be running in JupyterLab (or JavaScript failed to load for some other reason). You need to install the 3dmol extension:
\n",
" jupyter labextension install jupyterlab_3dmol
You appear to be running in JupyterLab (or JavaScript failed to load for some other reason). You need to install the 3dmol extension:
\n jupyter labextension install jupyterlab_3dmol
You appear to be running in JupyterLab (or JavaScript failed to load for some other reason). You need to install the 3dmol extension:
\n",
" jupyter labextension install jupyterlab_3dmol
You appear to be running in JupyterLab (or JavaScript failed to load for some other reason). You need to install the 3dmol extension:
\n jupyter labextension install jupyterlab_3dmol
You appear to be running in JupyterLab (or JavaScript failed to load for some other reason). You need to install the 3dmol extension:
\n",
" jupyter labextension install jupyterlab_3dmol
You appear to be running in JupyterLab (or JavaScript failed to load for some other reason). You need to install the 3dmol extension:
\n jupyter labextension install jupyterlab_3dmol
You appear to be running in JupyterLab (or JavaScript failed to load for some other reason). You need to install the 3dmol extension:
\n",
" jupyter labextension install jupyterlab_3dmol
You appear to be running in JupyterLab (or JavaScript failed to load for some other reason). You need to install the 3dmol extension:
\n jupyter labextension install jupyterlab_3dmol
You appear to be running in JupyterLab (or JavaScript failed to load for some other reason). You need to install the 3dmol extension:
\n",
" jupyter labextension install jupyterlab_3dmol
You appear to be running in JupyterLab (or JavaScript failed to load for some other reason). You need to install the 3dmol extension:
\n jupyter labextension install jupyterlab_3dmol
You appear to be running in JupyterLab (or JavaScript failed to load for some other reason). You need to install the 3dmol extension:
\n",
" jupyter labextension install jupyterlab_3dmol
You appear to be running in JupyterLab (or JavaScript failed to load for some other reason). You need to install the 3dmol extension:
\n jupyter labextension install jupyterlab_3dmol
You appear to be running in JupyterLab (or JavaScript failed to load for some other reason). You need to install the 3dmol extension:
\n",
" jupyter labextension install jupyterlab_3dmol
You appear to be running in JupyterLab (or JavaScript failed to load for some other reason). You need to install the 3dmol extension:
\n jupyter labextension install jupyterlab_3dmol
You appear to be running in JupyterLab (or JavaScript failed to load for some other reason). You need to install the 3dmol extension:
\n",
" jupyter labextension install jupyterlab_3dmol