{ "cells": [ { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "# Reading ChemDraw files\n", "\n", "Molli features a robust Chemdraw parser, specifically designed to work with the `CDXML` format. This parser is capable of parsing point, axial, and planar chirality, along with full structure labels, substructure labels, atom labels, charges, and multiplicities. This notebook will explain its properties and how to use it.\n", "\n", "## Reading Example" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/blakeo2/new_molli/molli_dev/molli/molli/ftypes/cdxml.py:157: CDXMLSyntaxWarning: CDXML file /home/blakeo2/new_molli/molli_dev/molli/molli/files/parser_demo.cdxml contains redundant label 'naphthalene' Only the first occurrence will be kept.\n", " warn(\n" ] } ], "source": [ "#This imports molli\n", "import molli as ml\n", "\n", "#This configures the visualization tool\n", "ml.visual.configure(bgcolor='white')\n", "\n", "# This just loads an example file that contains boundary cases\n", "cdxf = ml.CDXMLFile(ml.files.parser_demo_cdxml)" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "Note: The file was designed to purposely show the warnings when duplicate structures are present!\n", "\n", "The `CDXMLFile` class can be thought of as a dictionary, with keys being the label, and the values being the `Molecule`." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dict_keys(['benzene', 'naphthalene', 'stereo', 'decoy', 'isotopes', 'phenanthrene_ar', 'estradiol', 'taxadiene', 'substruct_stereo', 'high_complexity_1', 'r_binol', 'chiral_fragment', 'attached_acronym', 'Taniaphos', 'BrettPhos', 'toluene', 'stereo_groups', 'attachments'])" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# This will display the list of all named molecules in the file.\n", "cdxf.keys()" ] }, { "attachments": { "Point_Chirality.PNG": { "image/png": "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ert5dV1zxz2K6iAUAaiJUITVyN2riJaJ+XnrIRRaJubVda8irrebV9c1d9yjqA5CEYCaCEVYjdy9imiZmF/uuglaJubVda8irrebV+6aO+5RVA+hCEBNhCKsRu5eRbRMzC933QQtE/PqulcR19vNK3fNHfcoqodQBKAmQhFWI3evIlom5pcb8YxrJuaXulcRLRPzy7XccY+ieghFAGoiFGE1cvcqomVifrkRz7hmYn6pexXRMjG/XMsd9yiqh1AEoCZCEVYjd68irpmYX2rEM1omlpFquaNlYhmpljvuUVTPixcvDjdu3Dgp+n8f7969GzwvgDYQirAauXsVcc3E/FIjntEysYxUyx0tE8tItdxxjyIA2CZCEVbFu1cR9yhaRuq6CVomlpFquaNlYhmpljuutwOAbSIUYVW8exVxj6JlpK6boGViGamWO1omlpFqueN6OwDYJkIRVsW7VxH3KFqOd90ELRPLSLXc0TKxDK/ljuvt6tJgCRokQeXp06fHR8t8+PDhdF69DgDECEVYFe9eRdyjaDnedRO0TCwj1XJHy8QyvJY7rrerS4HGLm/dL6oUo88B6EIowqp49yriHkXL8a6boGViOXHLHS0Ty/Fa7rjerq44FKl8+vTp+GweoQhAF0IRVsW7VxH3KFqOd90ELRPLiVvuaJlYjtdyx/V2dXmh6Pbt28dn8whFALoQirAq3r2KdEYWy4ivm6BlYllxyx0tE8uKW+643q4uLxSplHSjIxQB6EIowqp49yrSGVksI75ugpaJZcUtd7RMLCtuueN6u7pSoUilqxsdoQhAF0IRVsfeq0hnYrGc+LoJWiaWFbfc0TKxrLjljuvt6rKhSP+/cuXK6d9d3egIRQC6EIqwOvZeRToTi+XE103QMrGsuOWOlollxS13XG9XVxyK3r17d2b557rREYoAdCEUYXXsvYp0JhbLstdN0DKxrLjljpaJZdmWO663qy8ORfFjKqludIQiAF0IRVgde68inYnFsux1E7RMLCtuuaNlYlm25Y7r7erzQpGUdKMjFAHoQij6I519VevEn//5n1PpW4F//dd/PT14/du//dvxUSzl7//+70/Xx//+7/8eH8VS/vRP//RkXdAysbz/+7//O903/vZv//b4KGpJhaKSbnSEovmpPvW73/3upH7FKLLYgqZD0cePHw937949/aH85ptv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" } }, "cell_type": "markdown", "metadata": {}, "source": [ "## Point Chirality Example\n", "\n", "For the demonstration of how to work with these molecules, the following structure will be used to illustrate how point chirality is maintained. In addition, different functional groups are parsed into their expanded equivalent. Note: all structures should interpreted chemically, and all labels underneath the molecule should be BOLDED and NOT interpreted chemically!\n", "\n", "" ] }, { "cell_type": "code", "execution_count": 3, "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