diff --git a/arc/reaction/reaction.py b/arc/reaction/reaction.py index 39f6752bd3..74fe9744f2 100644 --- a/arc/reaction/reaction.py +++ b/arc/reaction/reaction.py @@ -550,13 +550,16 @@ def determine_family(self, ): """ Determine the RMG reaction family. - Populates the .family, and .family_own_reverse attributes. Args: rmg_family_set (str, optional): The RMG family set to use. consider_rmg_families (bool, optional): Whether to consider RMG's families in addition to ARC's. consider_arc_families (bool, optional): Whether to consider ARC's families in addition to RMG's. discover_own_reverse_rxns_in_reverse (bool, optional): Whether to discover own reverse reactions in reverse. + + Returns: + tuple[str | None, bool | None]: The reaction family label, + and whether the family's template also represents its own reverse. """ if rmg_family_set == 'default' and consider_rmg_families and consider_arc_families and not discover_own_reverse_rxns_in_reverse: # these are the default values, don't bother generating a new product_dicts list, use the property diff --git a/ipython/Tools/External symmetry and optical isomers.ipynb b/ipython/Tools/External symmetry and optical isomers.ipynb index f5da0b3752..2fdca13a23 100644 --- a/ipython/Tools/External symmetry and optical isomers.ipynb +++ b/ipython/Tools/External symmetry and optical isomers.ipynb @@ -19,28 +19,14 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "RDKit WARNING: [13:53:02] Enabling RDKit 2019.09.3 jupyter extensions\n" - ] - } - ], - "source": [ - "from arc.molecule import Molecule\n", - "from arc.species import ARCSpecies\n", - "from IPython.display import display\n", - "from arc.plotter import show_sticks\n", - "from arc.species.converter import molecules_from_xyz, check_xyz_dict" - ] + "outputs": [], + "source": "from arc.molecule import Molecule\nfrom arc.species import ARCSpecies\nfrom IPython.display import display\nfrom arc.plotter import show_sticks\nfrom arc.species.converter import check_xyz_dict\nfrom arc.species.perceive import perceive_molecule_from_xyz" }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -90,100 +76,10 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "WARNING:pint.util:Could not resolve planks_constant: UndefinedUnitError()\n", - "WARNING:pint.util:Could not resolve plank_constant: UndefinedUnitError()\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "SMILES: [O]OC(c1cc(ccc1OC)C(C)C)NC(C)C\n", - "External symmetry: 1\n", - "Optical isomers: 2\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "Molecule(smiles=\"[O]OC(c1cc(ccc1OC)C(C)C)NC(C)C\")" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/3dmoljs_load.v0": "
\n

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

\n
\n", - "text/html": [ - "
\n", - "

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

\n", - "
\n", - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "\n", - "if smiles is None:\n", - " mol = molecules_from_xyz(check_xyz_dict(xyz))[1]\n", - " smiles = mol.to_smiles()\n", - "\n", - "rmg_mol = Molecule(smiles=smiles)\n", - "arc_spc = ARCSpecies(label='test', smiles=smiles, xyz=xyz)\n", - "arc_spc.determine_symmetry()\n", - "\n", - "print('SMILES: ', smiles)\n", - "print('External symmetry: ', arc_spc.external_symmetry)\n", - "print('Optical isomers: ', arc_spc.optical_isomers)\n", - "\n", - "display(rmg_mol)\n", - "success = show_sticks(xyz=xyz)" - ] + "outputs": [], + "source": "\nif smiles is None:\n mol = perceive_molecule_from_xyz(check_xyz_dict(xyz))\n smiles = mol.to_smiles()\n\nrmg_mol = Molecule(smiles=smiles)\narc_spc = ARCSpecies(label='test', smiles=smiles, xyz=xyz)\narc_spc.determine_symmetry()\n\nprint('SMILES: ', smiles)\nprint('External symmetry: ', arc_spc.external_symmetry)\nprint('Optical isomers: ', arc_spc.optical_isomers)\n\ndisplay(rmg_mol)\nsuccess = show_sticks(xyz=xyz)" }, { "cell_type": "code", diff --git a/ipython/Tools/Perceive_xyz_(xyz_to_smiles).ipynb b/ipython/Tools/Perceive_xyz_(xyz_to_smiles).ipynb index 5eda953f57..dc73f256cd 100644 --- a/ipython/Tools/Perceive_xyz_(xyz_to_smiles).ipynb +++ b/ipython/Tools/Perceive_xyz_(xyz_to_smiles).ipynb @@ -20,7 +20,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -40,40 +40,12 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": { "pycharm": {} }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "SMILES: O=CN(C)C\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEQAAAAmCAIAAADyTaq0AAAABmJLR0QA/wD/AP+gvaeTAAAEIklEQVRYhe2YX0haXxzAzww2agku7ZKgmMNClJoRPWQkYT30j8EeLsSgXmz25H0LX0bCRsNHhRYzGCsYc1REXHqLwLInGQZRSzB7mXIp7sqcpmn6/T3cfmXarHVvTIafp+v3fM/33M/heu459wEAoH8F3t8aeHFx0e/3c1vzXCYej3NbtzDJZJKmaa1WOzo6GolEuCp7LqPRaIaHh/f397mq+zsymcz09LRcLpdKpT6fL5lM1tXV2e32dDrNQXUAAIBoNGqxWIRCocViicfjcD94PB6tVqtSqXAcp2maCXq9Xp1O19TUtLq6yrI+yv7h9/txHFcoFLOzsyzr5hAKhYxGo0QicTgc4XDYZDJhGGa321OpFJNAkmRtbW1/f//e3t6dR0H5oZWVlYaGBr1ev7m5eW2fSCSC43goFLrNACcnJ1arVSgUEgQRiUQu4j6fr6+vr76+fmlpKTsTwzCz2ZydCQBTU1MTExPZEbfbbTKZ0un0DTIAkEqlHA6HWCw2Go0HBwc5Jm1tbUajMZPJ3GhCkqRcLi8w38vLyyqVqqura3t7m4kEg8HBwUGJRDIzM8MMMTk5KZPJAoFAdsdYLKbX64eGhrJ9rpdhODw8JAiiurraZrMxz0M0Gu3o6DAYDDlTks/GxoZOp9NoNC6Xq3BmMpm02WwikYggiHA4zAQ9Hk9ra2tLS8vY2JhMJtvd3c3vGIvFOjs7BwYGLp7VQjIMOzs7PT09SqVyYWHhNiY0TRMEgWGYzWY7Ozu7sf7vemUymZGREalUeq3JtT43yzCQJFlZWalQKBgTtRr4fPh/QQKnE5qbAQDW1taYOT46Orpl5Wy8Xm97ezuzsrlcritP15cv8OwZPHoEGAavXsHPnxc+er1+fHz8D2QAgKKo+fl55lqthqoqGB3NlXG73VtbW3fQyIZZ2Xp7ey+Wb/jwAQQCcDohHIbv36G7G5qaIJFgGk9PT4+Pj/9MJhu1Gt6+BT4fKOqKDFcwK1swGAQAiMfhyRP4+PGyORaDmhpwOHJ63X1vplSiFy/Qu3ccvLjzKS8vN5vNNTU1CCH07Rs6OkI4ftlcUYGeP0fLyzm9WG00LRb06RP68YNNjUKUlZUhhBBNo8ePEZ9/pU0sRjSdk89K5ulT9PIlevOGTY1bIBKhWAz9+nUlSFFIJMpJZHsEeP0aOZ0oEGBZpiDNzUggQHNzl5GTE0SSqLMzN/Nuf1C1Gubmzq9NJqiq4ngByOX9exAI4OtXCIdhZwe6u6GxEfI2xBzIUBRUVNyzDAB8/gyNjfDwIYhEYDBcvuOyeAClYzMDRVHr6+tc3Qp7WMl4vV6r1crVrbDnr33QuA9KMsVKSaZYKckUKyWZYqUkU6yUZIoVVjI8Ho/HK6LpYHU4SyQSwWBQoVBweENs+KdOmv8Brc8HwMxCO/cAAAAASUVORK5CYII=\n", - "text/plain": [ - "Molecule(smiles=\"O=CN(C)C\")" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "from arc.species.converter import molecules_from_xyz, check_xyz_dict\n", - "from IPython.display import display\n", - "\n", - "\n", - "s_mol, b_mol = molecules_from_xyz(check_xyz_dict(coords))\n", - "\n", - "print(f'SMILES: {b_mol.to_smiles()}')\n", - "\n", - "display(b_mol)" - ] + "outputs": [], + "source": "from arc.species.converter import check_xyz_dict\nfrom arc.species.perceive import perceive_molecule_from_xyz\nfrom IPython.display import display\n\n\nmol = perceive_molecule_from_xyz(check_xyz_dict(coords))\n\nprint(f'SMILES: {mol.to_smiles()}')\n\ndisplay(mol)" }, { "cell_type": "code", diff --git a/ipython/Tools/Plot xyz.ipynb b/ipython/Tools/Plot xyz.ipynb index ec8ff3e30a..52d25795f3 100644 --- a/ipython/Tools/Plot xyz.ipynb +++ b/ipython/Tools/Plot xyz.ipynb @@ -17,7 +17,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -32,239 +32,48 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": {}, "outputs": [], - "source": [ - "from arc.plotter import show_sticks, plot_3d_mol_as_scatter\n", - "from arc.species.converter import check_xyz_dict, molecules_from_xyz\n", - "from arc.species.converter import xyz_to_pybel_mol, pybel_to_inchi\n", - "from IPython.display import display\n", - "%matplotlib inline\n", - "\n", - "xyz = '/home/alongd/Code/ARC/ipython/Tools/ts1016.log'\n", - "\n", - "xyz = check_xyz_dict(xyz)" - ] + "source": "from arc.plotter import show_sticks, plot_3d_mol_as_scatter\nfrom arc.species.converter import check_xyz_dict\nfrom arc.species.converter import xyz_to_pybel_mol, pybel_to_inchi\nfrom arc.species.perceive import perceive_molecule_from_xyz\nfrom IPython.display import display\n%matplotlib inline\n\nxyz = 'ts1016.log'\n\nxyz = check_xyz_dict(xyz)" }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": {}, "outputs": [], - "source": [ - "path = '/home/alongd/Code/runs/T3/35/iteration_0/ARC/calcs/Species/C2H4_0/freq_a6950/output.out'" - ] + "source": "path = '/path/to/ESS/output/file/output.out'" }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "application/3dmoljs_load.v0": "
\n

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

\n
\n", - "text/html": [ - "
\n", - "

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

\n", - "
\n", - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [ - "True" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "show_sticks(xyz)" ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[O]N=C\n", - "\n", - "\n", - "InChI=1/CH2NO/c1-2-3/h1H2\n", - "\n", - "\n", - "multiplicity 2\n", - "1 O u1 p2 c0 {2,S}\n", - "2 N u0 p1 c0 {1,S} {3,D}\n", - "3 C u0 p0 c0 {2,D} {4,S} {5,S}\n", - "4 H u0 p0 c0 {3,S}\n", - "5 H u0 p0 c0 {3,S}\n", - "\n", - "\n", - "\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEYAAAAcCAIAAABTWV5CAAAABmJLR0QA/wD/AP+gvaeTAAAEdUlEQVRYhd1YbUhabRh+lLY4lWQlx9MXlAUuhY0QighqZIFpjEYMYiCMja0gqGSBPxoUg8XZn2URlD9GRDGREy36+BFWZFQYTXlRi+hHH64yY5o4dTPK5/1xSu0TKY+8vNev+76e59zXc/Gcc+7nHBqEEPy/QI+ynsVimZqaolQiqpa2t7dLS0t3d3eplYHRws7ODofD6e7uplooSpai5gdGx5LVas3Kyurp6YEQ8vmQwYC/fp0NqVRQIIiwXDSeJTqd3tnZ2dDQQKYPHoDPn6mUo7D2OVAUra6uDqQyGejrAwcHVMlF+yUOAHj0CDx/Djo6qKofPUt+vz8Qt7WB/n7w8yclQlGyND4+bjabAymHA16+BB8/UqIVQ0nVEBgMhubmZrfbrdVqQ/kPH0BeHsjKirwihbtkt9ubmpoqKytrampWVlYYDEboaGYmeP0afPkSZKRSqdFovKlaV1eXTqcLZQiCGBkZuWZqhJsChBDC4+NjhULBYrEaGxudTidJbm1tQQj5fEgQZ9OsVhgXF+xLAwMDbDZbKpUeHh5eKtje3s7j8Ww2WyhpMpkwDFOr1ZcmR96SRqPh8Xjl5eWrq6sks7e3J5VKMzIyLBbL7dc6HA65XM5ms3Ec9/l8JInjOJfL3d/fvzp/bW0tPT19aGgolIywJbfbXVZWNjExQaZerxfHcRRF5XK5y+UKs8j6+rpYLOZyuZOTk7f4IXHV1QVLfD5/cHAwkKpUKi6Xe1Ot4eHhwsJCBEFYLJZYLF5aWiL509NTMhgbG8vOzq6qqtrc3AzTTCg0Gk1qampOTs7BwcEZ9e0bfPIExsZCFIVv30K7naSNRiOGYfPz8/eypFQqGQyGUqnc3d09OjoiCKKuri4wajAYSkpK8vPztVrtHcwEsLm5aT9fN+zrg0wmVKmg0wnX1qBIBPPz4d+/5ODOzo7D4bi7Ja/Xy2QylUplKOn3+wMxiqIKheLk5OQ+fi7gzx+YlAS/fg0yHg/EMHhxDSTu0pf0er3T6aytrQ0laTRaIN7Y2EhMTLxD5Rvx4wc4OgIvXgSZuDjw7BnQaMC7dyTR2tqamZlZX19/eZcSEhJSzsFgMK7dpdHR0fj4+IjtQDj4/h1eVWxrg0+fkqHX642Njc3Ly4NXPy46Ojr+OQeO4yS5sLBQVFRUXFwsk8kAACkpKR6Px+VyRXIfbgeLBTwe8Pv3BdJqBSwWGSIIYjabZ2dnwdXTQ1JSUsY5kpOTSZLD4czNzS0uLlosFpPJJBAImEymWq0OvRBS+qdJIABMJiCIIOP1grExIBQGiNzcXAzDQJhnvLS0NDKIiYmh0+kIguA43tLSQqPRJBIJgiAzMzPT09O9vb2RtBEKBAGfPoH370F8PBCJgNUKZDKAouDVq2smh96ct7/xlpeXRSJRICUIoqCggOxLEokk0JcoxNAQfPwYPnwIWSz45k3wc/8iwj092Gy24uLiYNf7DyMsSz6fr6KiQq/XU72aiCAsS/39/RiGCYVCoVCo0+moXtM98S9BaguW+MSkZwAAAABJRU5ErkJggg==\n", - "text/plain": [ - "Molecule(smiles=\"[O]N=C\")" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Analyze graph\n", - "\n", - "s_mol, b_mol = molecules_from_xyz(xyz)\n", - "mol = b_mol or s_mol\n", - "print(mol.to_smiles())\n", - "print('\\n')\n", - "print(pybel_to_inchi(xyz_to_pybel_mol(xyz)))\n", - "print('\\n')\n", - "print(mol.to_adjacency_list())\n", - "print('\\n')\n", - "display(mol)" - ] + "outputs": [], + "source": "# Analyze graph\n\nmol = perceive_molecule_from_xyz(xyz)\nprint(mol.to_smiles())\nprint('\\n')\nprint(pybel_to_inchi(xyz_to_pybel_mol(xyz)))\nprint('\\n')\nprint(mol.to_adjacency_list())\nprint('\\n')\ndisplay(mol)" }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "application/3dmoljs_load.v0": "
\n

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

\n
\n", - "text/html": [ - "
\n", - "

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

\n", - "
\n", - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [ - "True" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "show_sticks(xyz)" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "WARNING:pint.util:Could not resolve planks_constant: UndefinedUnitError()\n", - "WARNING:pint.util:Could not resolve plank_constant: UndefinedUnitError()\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "plot_3d_mol_as_scatter(xyz)" ] diff --git a/ipython/Tools/TS Guesses.ipynb b/ipython/Tools/TS Guesses.ipynb index 17b9f88738..af6ce4a3eb 100644 --- a/ipython/Tools/TS Guesses.ipynb +++ b/ipython/Tools/TS Guesses.ipynb @@ -12,26 +12,15 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "5bae17f3", "metadata": {}, "outputs": [], - "source": [ - "from arc.imports import settings\n", - "from arc.job.adapters.common import all_families_ts_adapters, ts_adapters_by_rmg_family\n", - "from arc.plotter import draw_structure\n", - "from arc.reaction import ARCReaction\n", - "from arc.rmgdb import make_rmg_database_object, load_families_only\n", - "from arc.species import ARCSpecies\n", - "from arc.species.converter import xyz_to_str\n", - "from arc.scheduler import Scheduler\n", - "\n", - "%matplotlib inline" - ] + "source": "from arc.imports import settings\nfrom arc.job.adapters.common import all_families_ts_adapters, ts_adapters_by_rmg_family\nfrom arc.level import Level\nfrom arc.plotter import draw_structure\nfrom arc.reaction import ARCReaction\nfrom arc.species import ARCSpecies\nfrom arc.species.converter import xyz_to_str\nfrom arc.scheduler import Scheduler\n\n%matplotlib inline" }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "c2be78fd", "metadata": {}, "outputs": [], @@ -45,7 +34,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "1571f9b1", "metadata": {}, "outputs": [], @@ -56,18 +45,7 @@ }, { "cell_type": "code", - "execution_count": 4, - "id": "826ede9f", - "metadata": {}, - "outputs": [], - "source": [ - "rmgdb = make_rmg_database_object()\n", - "load_families_only(rmgdb)" - ] - }, - { - "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "9a2a6dc9", "metadata": {}, "outputs": [], @@ -78,432 +56,38 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "id": "348b3b0a", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Considering the following reaction:\n", - "\n", - "[OH] + CCC <=> O + [CH2]CC\n", - "\n", - "Reaction family: H_Abstraction\n" - ] - } - ], - "source": [ - "r_species, p_species = list(), list()\n", - "for r_smiles in [r1_smiles, r2_smiles]:\n", - " if r_smiles is not None:\n", - " r_species.append(generate_species_from_smiles(r_smiles))\n", - "for p_smiles in [p1_smiles, p2_smiles]:\n", - " if p_smiles is not None:\n", - " p_species.append(generate_species_from_smiles(p_smiles))\n", - "\n", - "rxn = ARCReaction(r_species=r_species, p_species=p_species)\n", - "rxn.ts_species = ARCSpecies(label='TS', is_ts=True)\n", - "rxn.determine_family(rmg_database=rmgdb)\n", - "\n", - "print(f'Considering the following reaction:\\n\\n{rxn.label}\\n\\nReaction family: {rxn.family.label}')" - ] + "outputs": [], + "source": "r_species, p_species = list(), list()\nfor r_smiles in [r1_smiles, r2_smiles]:\n if r_smiles is not None:\n r_species.append(generate_species_from_smiles(r_smiles))\nfor p_smiles in [p1_smiles, p2_smiles]:\n if p_smiles is not None:\n p_species.append(generate_species_from_smiles(p_smiles))\n\nrxn = ARCReaction(r_species=r_species, p_species=p_species)\nrxn.ts_species = ARCSpecies(label='TS', is_ts=True)\nrxn.family, rxn.family_own_reverse = rxn.determine_family()\n\nprint(f'Considering the following reaction:\\n\\n{rxn.label}\\n\\nReaction family: {rxn.family}')" }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "id": "2db720a0", "metadata": { "scrolled": false }, "outputs": [], - "source": [ - "sched = Scheduler(project='TS_search_1',\n", - " species_list=rxn.r_species + rxn.p_species,\n", - " rmg_database=rmgdb,\n", - " conformer_level='wb97xd/Def2TZVP',\n", - " opt_level='wb97xd/Def2TZVP',\n", - " sp_level='wb97xd/Def2TZVP',\n", - " freq_level='wb97xd/Def2TZVP',\n", - " ess_settings=None,\n", - " testing=True,\n", - " project_directory='/home/alon/Dropbox (MIT)/runs/TS_search_1',\n", - " )\n", - "sched.job_dict = {'TS': {'tsg': {}}}" - ] + "source": "level = Level(repr='wb97xd/Def2TZVP')\n\nsched = Scheduler(project='TS_search_1',\n species_list=rxn.r_species + rxn.p_species,\n conformer_opt_level=level,\n conformer_sp_level=level,\n opt_level=level,\n sp_level=level,\n freq_level=level,\n ess_settings=None,\n testing=True,\n project_directory='TS_search_1',\n )\nsched.job_dict = {'TS': {'tsg': {}}}" }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "id": "0ff84291", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Considering the following TS Search methods: ['heuristics', 'autotst', 'gcn', 'kinbot']\n", - "dihedral_increment: 90\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/bin/bash: -c: line 0: syntax error near unexpected token `('\n", - "/bin/bash: -c: line 0: `source ~/.bashrc; /home/alon/anaconda3/envs/tst_env/bin/python /mnt/Data/Code/ARC/arc/job/adapters/ts/scripts/autotst_script.py [OH]+CCC_O+[CH2]CC /home/alon/Dropbox (MIT)/runs/TS_search_1/calcs/TS_guesses/TS/tsg1/ts_results.yml'\n", - "WARNING:arc:AutoTST subprocess did not give a successful return code for ARCReaction(label=\"[OH] + CCC <=> O + [CH2]CC\", rmg_reaction=\"[OH] + CCC <=> O + [CH2]CC\", multiplicity=2, charge=0) in the forward direction.\n", - "Got return code: 1\n", - "stdout: None\n", - "stderr: None\n", - "/bin/bash: -c: line 0: syntax error near unexpected token `('\n", - "/bin/bash: -c: line 0: `source ~/.bashrc; /home/alon/anaconda3/envs/tst_env/bin/python /mnt/Data/Code/ARC/arc/job/adapters/ts/scripts/autotst_script.py O+[CH2]CC_[OH]+CCC /home/alon/Dropbox (MIT)/runs/TS_search_1/calcs/TS_guesses/TS/tsg1/ts_results.yml'\n", - "WARNING:arc:AutoTST subprocess did not give a successful return code for ARCReaction(label=\"[OH] + CCC <=> O + [CH2]CC\", rmg_reaction=\"[OH] + CCC <=> O + [CH2]CC\", multiplicity=2, charge=0) in the reverse direction.\n", - "Got return code: 1\n", - "stdout: None\n", - "stderr: None\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Got 4 TS Guesses (before clustering).\n", - "Got 4 TS Guesses (after clustering).\n" - ] - } - ], - "source": [ - "tsg_index = 0\n", - "ts_adapters = settings['ts_adapters']\n", - "ts_adapters = [a.lower() for a in ts_adapters]\n", - "\n", - "print(f'Considering the following TS Search methods: {ts_adapters}')\n", - "\n", - "for method in ts_adapters:\n", - " if method in all_families_ts_adapters or \\\n", - " (rxn.family is not None\n", - " and rxn.family.label in list(ts_adapters_by_rmg_family.keys())\n", - " and method in ts_adapters_by_rmg_family[rxn.family.label]):\n", - " sched.run_job(job_type='tsg',\n", - " job_adapter=method,\n", - " reactions=[rxn],\n", - " tsg=tsg_index,\n", - " dihedral_increment=dihedral_increment,\n", - " )\n", - " tsg_index += 1\n", - "\n", - "print(f'Got {len(rxn.ts_species.ts_guesses)} TS Guesses (before clustering).')\n", - "\n", - "rxn.ts_species.cluster_tsgs()\n", - " \n", - "print(f'Got {len(rxn.ts_species.ts_guesses)} TS Guesses (after clustering).')" - ] + "outputs": [], + "source": "tsg_index = 0\nts_adapters = settings['ts_adapters']\nts_adapters = [a.lower() for a in ts_adapters]\n\nprint(f'Considering the following TS Search methods: {ts_adapters}')\n\nfor method in ts_adapters:\n if method in all_families_ts_adapters or \\\n (rxn.family is not None\n and rxn.family in list(ts_adapters_by_rmg_family.keys())\n and method in ts_adapters_by_rmg_family[rxn.family]):\n sched.run_job(job_type='tsg',\n job_adapter=method,\n reactions=[rxn],\n tsg=tsg_index,\n dihedral_increment=dihedral_increment,\n )\n tsg_index += 1\n\nprint(f'Got {len(rxn.ts_species.ts_guesses)} TS Guesses (before clustering).')\n\nrxn.ts_species.cluster_tsgs()\n \nprint(f'Got {len(rxn.ts_species.ts_guesses)} TS Guesses (after clustering).')" }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "id": "91452d76", "metadata": { "scrolled": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "heuristics 0 (success: True):\n", - "coordinates:\n", - "O 1.43737500 1.58112542 0.11736861\n", - "H 1.91964767 0.94498355 -0.43190146\n", - "C -0.56973933 0.33273535 0.85620513\n", - "C -0.56973933 -1.07932962 0.29545433\n", - "C -0.56973933 -1.07932962 -1.22387717\n", - "H 0.49495302 0.99495540 0.46428247\n", - "H -0.56974009 0.30632916 1.95037139\n", - "H -1.45698281 0.88458558 0.52960174\n", - "H -1.45215391 -1.61664362 0.66021023\n", - "H 0.31267551 -1.61664346 0.66021017\n", - "H 0.31750400 -0.57210949 -1.61622422\n", - "H -1.45698284 -0.57210981 -1.61622424\n", - "H -0.56973903 -2.10599218 -1.60316723\n" - ] - }, - { - "data": { - "application/3dmoljs_load.v0": "
\n

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

\n
\n", - "text/html": [ - "
\n", - "

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

\n", - "
\n", - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "\n", - "\n", - "\n", - "heuristics 1 (success: True):\n", - "coordinates:\n", - "O 1.44990567 1.56370672 0.12197742\n", - "H 1.17292977 1.98298507 -0.70654599\n", - "C -0.55720866 0.31531664 0.86081394\n", - "C -0.55720866 -1.09674832 0.30006314\n", - "C -0.55720866 -1.09674832 -1.21926836\n", - "H 0.50748369 0.97753670 0.46889128\n", - "H -0.55720941 0.28891046 1.95498020\n", - "H -1.44445213 0.86716687 0.53421055\n", - "H -1.43962324 -1.63406232 0.66481904\n", - "H 0.32520618 -1.63406216 0.66481898\n", - "H 0.33003468 -0.58952819 -1.61161541\n", - "H -1.44445217 -0.58952851 -1.61161543\n", - "H -0.55720836 -2.12341088 -1.59855842\n" - ] - }, - { - "data": { - "application/3dmoljs_load.v0": "
\n

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

\n
\n", - "text/html": [ - "
\n", - "

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

\n", - "
\n", - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "\n", - "\n", - "\n", - "heuristics 2 (success: True):\n", - "coordinates:\n", - "O 1.44703222 1.55623294 0.10154324\n", - "H 1.34416191 2.42835646 0.51115195\n", - "C -0.56008211 0.30784287 0.84037976\n", - "C -0.56008211 -1.10422209 0.27962895\n", - "C -0.56008211 -1.10422209 -1.23970255\n", - "H 0.50461024 0.97006292 0.44845710\n", - "H -0.56008286 0.28143668 1.93454601\n", - "H -1.44732558 0.85969310 0.51377636\n", - "H -1.44249668 -1.64153610 0.64438485\n", - "H 0.32233273 -1.64153593 0.64438479\n", - "H 0.32716123 -0.59700196 -1.63204960\n", - "H -1.44732561 -0.59700228 -1.63204962\n", - "H -0.56008181 -2.13088465 -1.61899260\n" - ] - }, - { - "data": { - "application/3dmoljs_load.v0": "
\n

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

\n
\n", - "text/html": [ - "
\n", - "

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

\n", - "
\n", - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "\n", - "\n", - "\n", - "heuristics 3 (success: True):\n", - "coordinates:\n", - "O 1.43450155 1.57365164 0.09693443\n", - "H 2.09087982 1.39035494 0.78579648\n", - "C -0.57261278 0.32526157 0.83577095\n", - "C -0.57261278 -1.08680339 0.27502014\n", - "C -0.57261278 -1.08680339 -1.24431136\n", - "H 0.49207957 0.98748162 0.44384829\n", - "H -0.57261353 0.29885538 1.92993720\n", - "H -1.45985625 0.87711180 0.50916755\n", - "H -1.45502736 -1.62411740 0.63977604\n", - "H 0.30980206 -1.62411723 0.63977598\n", - "H 0.31463056 -0.57958326 -1.63665841\n", - "H -1.45985628 -0.57958358 -1.63665843\n", - "H -0.57261248 -2.11346595 -1.62360141\n" - ] - }, - { - "data": { - "application/3dmoljs_load.v0": "
\n

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

\n
\n", - "text/html": [ - "
\n", - "

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

\n", - "
\n", - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "\n", - "\n", - "\n" - ] - } - ], + "outputs": [], "source": [ "for tsg in rxn.ts_species.ts_guesses:\n", " print(f'{tsg.method} {tsg.method_index} (success: {tsg.success}):')\n", diff --git a/ipython/Tools/Visualize 1D Torsion scan.ipynb b/ipython/Tools/Visualize 1D Torsion scan.ipynb index 71c7a94058..e393c7ade2 100644 --- a/ipython/Tools/Visualize 1D Torsion scan.ipynb +++ b/ipython/Tools/Visualize 1D Torsion scan.ipynb @@ -17,7 +17,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -30,847 +30,17 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "WARNING:root:No kyotocabinet available\n" - ] - } - ], - "source": [ - "from arc.species.species import determine_rotor_symmetry\n", - "from arc.parser import parse_1d_scan_energies\n", - "from arc.common import read_yaml_file\n", - "from arc.plotter import plot_1d_rotor_scan\n", - "%matplotlib notebook" - ] + "outputs": [], + "source": "from arc.species.species import determine_rotor_symmetry\nfrom arc.parser.parser import parse_1d_scan_energies\nfrom arc.common import read_yaml_file\nfrom arc.plotter import plot_1d_rotor_scan\n%matplotlib notebook" }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "application/javascript": [ - "/* Put everything inside the global mpl namespace */\n", - "window.mpl = {};\n", - "\n", - "\n", - "mpl.get_websocket_type = function() {\n", - " if (typeof(WebSocket) !== 'undefined') {\n", - " return WebSocket;\n", - " } else if (typeof(MozWebSocket) !== 'undefined') {\n", - " return MozWebSocket;\n", - " } else {\n", - " alert('Your browser does not have WebSocket support. ' +\n", - " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", - " 'Firefox 4 and 5 are also supported but you ' +\n", - " 'have to enable WebSockets in about:config.');\n", - " };\n", - "}\n", - "\n", - "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", - " this.id = figure_id;\n", - "\n", - " this.ws = websocket;\n", - "\n", - " this.supports_binary = (this.ws.binaryType != undefined);\n", - "\n", - " if (!this.supports_binary) {\n", - " var warnings = document.getElementById(\"mpl-warnings\");\n", - " if (warnings) {\n", - " warnings.style.display = 'block';\n", - " warnings.textContent = (\n", - " \"This browser does not support binary websocket messages. \" +\n", - " \"Performance may be slow.\");\n", - " }\n", - " }\n", - "\n", - " this.imageObj = new Image();\n", - "\n", - " this.context = undefined;\n", - " this.message = undefined;\n", - " this.canvas = undefined;\n", - " this.rubberband_canvas = undefined;\n", - " this.rubberband_context = undefined;\n", - " this.format_dropdown = undefined;\n", - "\n", - " this.image_mode = 'full';\n", - "\n", - " this.root = $('
');\n", - " this._root_extra_style(this.root)\n", - " this.root.attr('style', 'display: inline-block');\n", - "\n", - " $(parent_element).append(this.root);\n", - "\n", - " this._init_header(this);\n", - " this._init_canvas(this);\n", - " this._init_toolbar(this);\n", - "\n", - " var fig = this;\n", - "\n", - " this.waiting = false;\n", - "\n", - " this.ws.onopen = function () {\n", - " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", - " fig.send_message(\"send_image_mode\", {});\n", - " if (mpl.ratio != 1) {\n", - " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", - " }\n", - " fig.send_message(\"refresh\", {});\n", - " }\n", - "\n", - " this.imageObj.onload = function() {\n", - " if (fig.image_mode == 'full') {\n", - " // Full images could contain transparency (where diff images\n", - " // almost always do), so we need to clear the canvas so that\n", - " // there is no ghosting.\n", - " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", - " }\n", - " fig.context.drawImage(fig.imageObj, 0, 0);\n", - " };\n", - "\n", - " this.imageObj.onunload = function() {\n", - " fig.ws.close();\n", - " }\n", - "\n", - " this.ws.onmessage = this._make_on_message_function(this);\n", - "\n", - " this.ondownload = ondownload;\n", - "}\n", - "\n", - "mpl.figure.prototype._init_header = function() {\n", - " var titlebar = $(\n", - " '
');\n", - " var titletext = $(\n", - " '
');\n", - " titlebar.append(titletext)\n", - " this.root.append(titlebar);\n", - " this.header = titletext[0];\n", - "}\n", - "\n", - "\n", - "\n", - "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", - "\n", - "}\n", - "\n", - "\n", - "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", - "\n", - "}\n", - "\n", - "mpl.figure.prototype._init_canvas = function() {\n", - " var fig = this;\n", - "\n", - " var canvas_div = $('
');\n", - "\n", - " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", - "\n", - " function canvas_keyboard_event(event) {\n", - " return fig.key_event(event, event['data']);\n", - " }\n", - "\n", - " canvas_div.keydown('key_press', canvas_keyboard_event);\n", - " canvas_div.keyup('key_release', canvas_keyboard_event);\n", - " this.canvas_div = canvas_div\n", - " this._canvas_extra_style(canvas_div)\n", - " this.root.append(canvas_div);\n", - "\n", - " var canvas = $('');\n", - " canvas.addClass('mpl-canvas');\n", - " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", - "\n", - " this.canvas = canvas[0];\n", - " this.context = canvas[0].getContext(\"2d\");\n", - "\n", - " var backingStore = this.context.backingStorePixelRatio ||\n", - "\tthis.context.webkitBackingStorePixelRatio ||\n", - "\tthis.context.mozBackingStorePixelRatio ||\n", - "\tthis.context.msBackingStorePixelRatio ||\n", - "\tthis.context.oBackingStorePixelRatio ||\n", - "\tthis.context.backingStorePixelRatio || 1;\n", - "\n", - " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", - "\n", - " var rubberband = $('');\n", - " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", - "\n", - " var pass_mouse_events = true;\n", - "\n", - " canvas_div.resizable({\n", - " start: function(event, ui) {\n", - " pass_mouse_events = false;\n", - " },\n", - " resize: function(event, ui) {\n", - " fig.request_resize(ui.size.width, ui.size.height);\n", - " },\n", - " stop: function(event, ui) {\n", - " pass_mouse_events = true;\n", - " fig.request_resize(ui.size.width, ui.size.height);\n", - " },\n", - " });\n", - "\n", - " function mouse_event_fn(event) {\n", - " if (pass_mouse_events)\n", - " return fig.mouse_event(event, event['data']);\n", - " }\n", - "\n", - " rubberband.mousedown('button_press', mouse_event_fn);\n", - " rubberband.mouseup('button_release', mouse_event_fn);\n", - " // Throttle sequential mouse events to 1 every 20ms.\n", - " rubberband.mousemove('motion_notify', mouse_event_fn);\n", - "\n", - " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", - " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", - "\n", - " canvas_div.on(\"wheel\", function (event) {\n", - " event = event.originalEvent;\n", - " event['data'] = 'scroll'\n", - " if (event.deltaY < 0) {\n", - " event.step = 1;\n", - " } else {\n", - " event.step = -1;\n", - " }\n", - " mouse_event_fn(event);\n", - " });\n", - "\n", - " canvas_div.append(canvas);\n", - " canvas_div.append(rubberband);\n", - "\n", - " this.rubberband = rubberband;\n", - " this.rubberband_canvas = rubberband[0];\n", - " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", - " this.rubberband_context.strokeStyle = \"#000000\";\n", - "\n", - " this._resize_canvas = function(width, height) {\n", - " // Keep the size of the canvas, canvas container, and rubber band\n", - " // canvas in synch.\n", - " canvas_div.css('width', width)\n", - " canvas_div.css('height', height)\n", - "\n", - " canvas.attr('width', width * mpl.ratio);\n", - " canvas.attr('height', height * mpl.ratio);\n", - " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", - "\n", - " rubberband.attr('width', width);\n", - " rubberband.attr('height', height);\n", - " }\n", - "\n", - " // Set the figure to an initial 600x600px, this will subsequently be updated\n", - " // upon first draw.\n", - " this._resize_canvas(600, 600);\n", - "\n", - " // Disable right mouse context menu.\n", - " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", - " return false;\n", - " });\n", - "\n", - " function set_focus () {\n", - " canvas.focus();\n", - " canvas_div.focus();\n", - " }\n", - "\n", - " window.setTimeout(set_focus, 100);\n", - "}\n", - "\n", - "mpl.figure.prototype._init_toolbar = function() {\n", - " var fig = this;\n", - "\n", - " var nav_element = $('
');\n", - " nav_element.attr('style', 'width: 100%');\n", - " this.root.append(nav_element);\n", - "\n", - " // Define a callback function for later on.\n", - " function toolbar_event(event) {\n", - " return fig.toolbar_button_onclick(event['data']);\n", - " }\n", - " function toolbar_mouse_event(event) {\n", - " return fig.toolbar_button_onmouseover(event['data']);\n", - " }\n", - "\n", - " for(var toolbar_ind in mpl.toolbar_items) {\n", - " var name = mpl.toolbar_items[toolbar_ind][0];\n", - " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", - " var image = mpl.toolbar_items[toolbar_ind][2];\n", - " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", - "\n", - " if (!name) {\n", - " // put a spacer in here.\n", - " continue;\n", - " }\n", - " var button = $('