From 7ce8673e266ed35a4998306c69084dac0a498909 Mon Sep 17 00:00:00 2001 From: Andrew Tarzia Date: Tue, 14 Oct 2025 19:37:04 +0100 Subject: [PATCH 01/33] Unpin rdkit. --- pyproject.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index db50d7c..c0e38ec 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,8 +10,8 @@ maintainers = [ ] dependencies = [ "numpy<2", - # Pinned while rdkit changes stk results. - "rdkit == 2024.3.4", + # Avoid one version with bad changes to structure. + "rdkit != 2024.3.5", "stk", "networkx", "rmsd", @@ -24,7 +24,7 @@ readme = "README.rst" dev = [ "ruff", "mypy", - "moldoc==3.0.0", + "moldoc", # TODO: Remove pin when https://github.com/TvoroG/pytest-lazy-fixture/issues/65 is resolved. # pytest-lazy-fixture 0.6.0 is incompatible with pytest 8.0.0 "pytest<8", From 5de1f6c05c512b6fe1f40c5fe74878149381b454 Mon Sep 17 00:00:00 2001 From: Andrew Tarzia Date: Sat, 6 Dec 2025 17:22:52 +0000 Subject: [PATCH 02/33] Add logo. --- docs/source/_static/logo.png | Bin 0 -> 76144 bytes docs/source/_static/new_stko_logo_dec2025.pdf | Bin 0 -> 13550 bytes docs/source/_static/new_stko_logo_dec2025.svg | 87895 ++++++++++++++++ docs/source/_static/sidebar_logo.png | Bin 0 -> 64136 bytes docs/source/_static/sidebar_logo.svg | 87871 +++++++++++++++ docs/source/conf.py | 1 + docs/source/index.rst | 5 +- 7 files changed, 175770 insertions(+), 2 deletions(-) create mode 100644 docs/source/_static/logo.png create mode 100644 docs/source/_static/new_stko_logo_dec2025.pdf create mode 100644 docs/source/_static/new_stko_logo_dec2025.svg create mode 100644 docs/source/_static/sidebar_logo.png create mode 100644 docs/source/_static/sidebar_logo.svg diff --git a/docs/source/_static/logo.png b/docs/source/_static/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..6588ee227bd0698879009fcfef33839045137a5b GIT binary patch literal 76144 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

kzgrR2qvXwbrlG_%*mB)I4WhO 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 literal 0 HcmV?d00001 diff --git a/docs/source/_static/new_stko_logo_dec2025.pdf b/docs/source/_static/new_stko_logo_dec2025.pdf new file mode 100644 index 0000000000000000000000000000000000000000..29fe9b5e7536aee33c92968ff4dd7aa4ca2bc91a GIT binary patch literal 13550 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℘Yc3O ze;Lqo|9P0UW)oJNKVyd2jg>&2It5NCwy6egYND$S>_(OlwR;3Id~44_IC$sZ*0lAT z_y)}%_$AMYsZh4~uvF*CU1p4R79)yFNbHE3 zzAc!gtj)@MN#VhB_Pe=)1U?wX57cSIC^||%SM^wj9K4K;e&y`J)b*a`C7u45<=gm{ z3@ug??8V$!)>$FN!qg?!L4X47wf6_JV2ig0#_B|67q8`Cf%weFJAG{t*(heHC4e52 zv>qzGn6@UO@HwxW0xkAj*yW zNeH61GJJ=dQ?>$TZgP&db!_DR`FBrgNR=ZeIO!zPwB= zCY3-HvE*#E+zq~| zL<$6|jz3jN6d?Zc#?4%!CrkXBbKz3Hz&qwe9oiAzp3lVF9SiiKHy8>yofewg>CaN- z*z`n#Qj(}XYrZtk6qSYYQtBw($&0-e0Nov|@gR4gd&1u#RQEB7?g@dsO(Y)+7QX_6 zJlI^Yl^MdS zu++)LOOPWyJi1ysrYdQ9x6BSj-L7OE%|P03#@IFzcjK#7x7;Icj!Gt*^Tb=#sMma& zZghp^frPVKYYmwI;Zy0LEo4V|(`-lU#Z4THc9ECLQtEC8wZwZ)hPvOH=;R_5JsAx> z`Mzck6lGqtVPW>~^3SSb8#on^s=DPSuv=gZ?wd<0m+6PeK1t8RUNpS|{22VY60B%f z4<*?1=}Fai8}Dx7-gN-uOJlG$a36XNzPTtFmH~f7Q8u2WTUNvH1=CeKFU?!uw;^EO z`^leHJ-5`)pc5kYmr;LD3HlXb{R(`(d+(@N=zGwqW~68=r}lf$`8_uLOYDChbAnN! z!}pj|1dIwOe`f6bXE7)AT%rG~nDcu=*sr9d-vgOn7Wv-Zzlk~j&(`_xLr#$JU-tWD zc>owaHah2Leny!8Cgl7Xvi<+HM+cDK-+w>)mx1N^D*szx`P-`hJ{;)GJdbm;s5zWx zVx8ORXTq8*iVpc(k{S5-Gzu-GtBsd6>Yo!_)-VSoiUAh@2@3!LT=t%xZXQaerq_sKv6IN2}K1(MIcZ}3pa=xDM{gk1F%Y#! zT^A~v1)_4nfMApiMCivJ1)_1VC`tykiJjk$lzy#xRL|B~;9m4l&p9@q0E zx%2c#j~@w-zt)Bi5^hTfMBSDNQA+=K0feDY)T*@we8*6EdBP~#2K@pceqcbb5E!+r z{(*rZe_%i$nppU!+@F}JkT8mm`G=e+5H%70hM~BeKjk1GFzOfPZ*r(Hg8rd11eNFb zPdTtKItTLab%j9a%)Gy2BLAYUh$!%n>lFnF{|ihE^{e*x_C!U+P_y`N7zhMK + + +Magnetic Disk (Database)A magnetic disk. (ISO)Magnetic Disk (Database)A magnetic disk. (ISO)ProcessAny processing function.Manual OperationAn offline process (at "human speed").DecisionA decision or switching type operation.Magnetic TapeMagnetic tape storageoptimisation + analysisstkostkostko diff --git a/docs/source/_static/sidebar_logo.png b/docs/source/_static/sidebar_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..bd1e8004e5b1656acfabc1ed4306527900c862b3 GIT binary patch literal 64136 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%0DWg`yv|?U|iP5wPPhsfWs*pP%9OZEcGzBl}+Q^ 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 literal 0 HcmV?d00001 diff --git a/docs/source/_static/sidebar_logo.svg b/docs/source/_static/sidebar_logo.svg new file mode 100644 index 0000000..17b01a3 --- /dev/null +++ b/docs/source/_static/sidebar_logo.svg @@ -0,0 +1,87871 @@ + + + +Magnetic Disk (Database)A magnetic disk. (ISO)Magnetic Disk (Database)A magnetic disk. (ISO)ProcessAny processing function.Manual OperationAn offline process (at "human speed").DecisionA decision or switching type operation.Magnetic TapeMagnetic tape storagestkostkostko diff --git a/docs/source/conf.py b/docs/source/conf.py index 51f5355..387b725 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -51,3 +51,4 @@ html_theme = "sphinx_rtd_theme" html_static_path = ["_static"] +html_logo = "_static/sidebar_logo.png" diff --git a/docs/source/index.rst b/docs/source/index.rst index c6a5a1a..088d2d2 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -30,6 +30,9 @@ Welcome to stko's documentation! ⭐ Star us on `GitHub `_! ⭐ +.. figure:: _static/logo.png + + Install ======= @@ -47,8 +50,6 @@ Some optional dependencies are only available through conda: mamba install xtb # for openbabel mamba install openbabel - # for mdanalysis - mamba install mdanalysis With OpenMM ----------- From 203642ec48d1d4a8a7825c597f0992b993df0c50 Mon Sep 17 00:00:00 2001 From: Andrew Tarzia Date: Sat, 6 Dec 2025 19:57:31 +0000 Subject: [PATCH 03/33] Modify github actions. --- .github/workflows/tests.yml | 9 +++------ docs/Makefile | 2 +- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 2ef7a88..86bb718 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -58,8 +58,7 @@ jobs: - name: Build environment run: | conda activate pytest - conda install -c conda-forge pytorch==2.3.1 torchdata==0.7.1 openff-toolkit openmm openmmtools dgl rdkit==2024.3.4 espaloma_charge - conda install -c conda-forge mdanalysis openbabel + conda install -c conda-forge openff-toolkit python -m pip install --upgrade pip python -m pip install --upgrade setuptools python -m pip install -e '.[dev]' @@ -83,8 +82,7 @@ jobs: - name: Build environment run: | conda activate pytest - conda install -c conda-forge pytorch==2.3.1 torchdata==0.7.1 openff-toolkit openmm openmmtools dgl rdkit==2024.3.4 espaloma_charge - conda install -c conda-forge mdanalysis openbabel + conda install -c conda-forge openff-toolkit python -m pip install --upgrade pip python -m pip install --upgrade setuptools python -m pip install -e '.[dev]' @@ -109,8 +107,7 @@ jobs: - name: Build environment run: | conda activate pytest - conda install -c conda-forge pytorch==2.3.1 torchdata==0.7.1 openff-toolkit openmm openmmtools dgl rdkit==2024.3.4 espaloma_charge - conda install -c conda-forge mdanalysis openbabel + conda install -c conda-forge openff-toolkit python -m pip install --upgrade pip python -m pip install --upgrade setuptools python -m pip install -e '.[dev]' diff --git a/docs/Makefile b/docs/Makefile index 56884a2..dc999f0 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -16,4 +16,4 @@ help: # Catch-all target: route all unknown targets to Sphinx using the new # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). %: Makefile - @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) \ No newline at end of file + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) From ff9ca11c790370117ffb426b34f9c317cf337940 Mon Sep 17 00:00:00 2001 From: Andrew Tarzia Date: Sat, 6 Dec 2025 19:58:09 +0000 Subject: [PATCH 04/33] Update example output. --- examples/aligner_directory/aligned_0.mol | 40 +++--- examples/aligner_directory/aligned_1.mol | 48 +++---- examples/aligner_directory/aligned_2.mol | 20 +-- examples/aligner_directory/aligned_3.mol | 24 ++-- examples/aligner_directory/aligned_4.mol | 36 ++--- examples/aligner_directory/aligned_5.mol | 160 ++++++++++----------- examples/aligner_directory/init_0.mol | 40 +++--- examples/aligner_directory/init_1.mol | 48 +++---- examples/aligner_directory/init_2.mol | 20 +-- examples/aligner_directory/init_3.mol | 24 ++-- examples/aligner_directory/init_4.mol | 32 ++--- examples/aligner_directory/init_5.mol | 160 ++++++++++----------- examples/aligner_directory/unaligned_0.mol | 40 +++--- examples/aligner_directory/unaligned_1.mol | 48 +++---- examples/aligner_directory/unaligned_2.mol | 20 +-- examples/aligner_directory/unaligned_3.mol | 24 ++-- examples/aligner_directory/unaligned_4.mol | 32 ++--- examples/aligner_directory/unaligned_5.mol | 160 ++++++++++----------- 18 files changed, 488 insertions(+), 488 deletions(-) diff --git a/examples/aligner_directory/aligned_0.mol b/examples/aligner_directory/aligned_0.mol index 30da1af..bb15cb6 100644 --- a/examples/aligner_directory/aligned_0.mol +++ b/examples/aligner_directory/aligned_0.mol @@ -5,26 +5,26 @@ M V30 BEGIN CTAB M V30 COUNTS 20 19 0 0 0 M V30 BEGIN ATOM -M V30 1 N -0.5735 2.8439 -0.8029 0 -M V30 2 C 0.7431 2.4435 -0.3147 0 -M V30 3 C 0.6483 1.1417 0.4838 0 -M V30 4 N 0.1313 0.0585 -0.3618 0 -M V30 5 C -0.0391 -1.1668 0.4272 0 -M V30 6 C -0.6625 -2.2663 -0.4416 0 -M V30 7 N -0.8708 -3.4951 0.3214 0 -M V30 8 H -0.4465 3.6942 -1.3981 0 -M V30 9 H -1.1507 3.1398 0.0179 0 -M V30 10 H 1.1651 3.2440 0.3332 0 -M V30 11 H 1.4302 2.2989 -1.1771 0 -M V30 12 H -0.0253 1.3070 1.3544 0 -M V30 13 H 1.6607 0.8809 0.8672 0 -M V30 14 H 0.8447 -0.1354 -1.1044 0 -M V30 15 H 0.9456 -1.5145 0.8146 0 -M V30 16 H -0.7150 -0.9705 1.2893 0 -M V30 17 H 0.0035 -2.4849 -1.3044 0 -M V30 18 H -1.6394 -1.9160 -0.8403 0 -M V30 19 H 0.0486 -3.8152 0.7042 0 -M V30 20 H -1.4984 -3.2876 1.1322 0 +M V30 1 N -0.6636 2.8712 -0.6142 0 +M V30 2 C 0.7145 2.4399 -0.3975 0 +M V30 3 C 0.7505 1.1197 0.3752 0 +M V30 4 N 0.0604 0.0658 -0.3790 0 +M V30 5 C 0.0218 -1.1766 0.4007 0 +M V30 6 C -0.7774 -2.2448 -0.3560 0 +M V30 7 N -0.8583 -3.4895 0.4054 0 +M V30 8 H -0.6373 3.7344 -1.2037 0 +M V30 9 H -1.0666 3.1543 0.3087 0 +M V30 10 H 1.2681 3.2177 0.1746 0 +M V30 11 H 1.2203 2.3075 -1.3791 0 +M V30 12 H 0.2599 1.2724 1.3626 0 +M V30 13 H 1.8126 0.8350 0.5507 0 +M V30 14 H 0.6142 -0.1193 -1.2491 0 +M V30 15 H 1.0558 -1.5479 0.5835 0 +M V30 16 H -0.4722 -0.9927 1.3810 0 +M V30 17 H -0.2937 -2.4508 -1.3355 0 +M V30 18 H -1.8059 -1.8706 -0.5514 0 +M V30 19 H 0.1113 -3.8321 0.5969 0 +M V30 20 H -1.3145 -3.2937 1.3262 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 1 1 2 diff --git a/examples/aligner_directory/aligned_1.mol b/examples/aligner_directory/aligned_1.mol index 895e9bf..5bfd458 100644 --- a/examples/aligner_directory/aligned_1.mol +++ b/examples/aligner_directory/aligned_1.mol @@ -5,30 +5,30 @@ M V30 BEGIN CTAB M V30 COUNTS 24 25 0 0 0 M V30 BEGIN ATOM -M V30 1 C -0.1998 3.3147 0.3414 0 -M V30 2 N 0.5454 2.0601 0.3304 0 -M V30 3 C 1.8762 1.8991 0.5331 0 -M V30 4 N 2.2758 0.6029 0.4558 0 -M V30 5 C 1.1257 -0.0500 0.1916 0 -M V30 6 C 0.0893 0.8152 0.1139 0 -M V30 7 C -1.1927 0.3561 -0.1583 0 -M V30 8 O -2.1636 1.1602 -0.2086 0 -M V30 9 N -1.3698 -0.9927 -0.3695 0 -M V30 10 C -0.2961 -1.8622 -0.2622 0 -M V30 11 O -0.4735 -3.1019 -0.4320 0 -M V30 12 N 0.9665 -1.3917 0.0295 0 -M V30 13 C 2.1177 -2.3017 0.0993 0 -M V30 14 C -2.7169 -1.5221 -0.6410 0 -M V30 15 H -0.6779 3.4750 -0.6476 0 -M V30 16 H -0.9803 3.2799 1.1301 0 -M V30 17 H 0.4797 4.1681 0.5509 0 -M V30 18 H 2.5561 2.7165 0.7365 0 -M V30 19 H 2.9567 -1.8531 0.6728 0 -M V30 20 H 2.4682 -2.5369 -0.9276 0 -M V30 21 H 1.8385 -3.2447 0.6160 0 -M V30 22 H -3.3548 -0.7685 -1.1501 0 -M V30 23 H -3.1985 -1.8205 0.3138 0 -M V30 24 H -2.6717 -2.4017 -1.3181 0 +M V30 1 C -0.2369 3.3243 0.1915 0 +M V30 2 N 0.5242 2.0796 0.2257 0 +M V30 3 C 1.8601 1.9444 0.4128 0 +M V30 4 N 2.2750 0.6509 0.3885 0 +M V30 5 C 1.1293 -0.0275 0.1744 0 +M V30 6 C 0.0806 0.8206 0.0747 0 +M V30 7 C -1.1997 0.3339 -0.1540 0 +M V30 8 O -2.1815 1.1230 -0.2248 0 +M V30 9 N -1.3628 -1.0253 -0.2998 0 +M V30 10 C -0.2764 -1.8758 -0.1709 0 +M V30 11 O -0.4405 -3.1241 -0.2804 0 +M V30 12 N 0.9847 -1.3771 0.0771 0 +M V30 13 C 2.1486 -2.2687 0.1691 0 +M V30 14 C -2.7073 -1.5829 -0.5236 0 +M V30 15 H -0.7332 3.4328 -0.7956 0 +M V30 16 H -1.0037 3.3166 0.9942 0 +M V30 17 H 0.4350 4.1946 0.3498 0 +M V30 18 H 2.5327 2.7785 0.5666 0 +M V30 19 H 2.9908 -1.7842 0.7073 0 +M V30 20 H 2.4854 -2.5466 -0.8517 0 +M V30 21 H 1.8900 -3.1905 0.7329 0 +M V30 22 H -3.3632 -0.8615 -1.0558 0 +M V30 23 H -3.1692 -1.8426 0.4521 0 +M V30 24 H -2.6620 -2.4923 -1.1601 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 1 1 2 diff --git a/examples/aligner_directory/aligned_2.mol b/examples/aligner_directory/aligned_2.mol index ac1b639..2215d22 100644 --- a/examples/aligner_directory/aligned_2.mol +++ b/examples/aligner_directory/aligned_2.mol @@ -5,16 +5,16 @@ M V30 BEGIN CTAB M V30 COUNTS 10 10 0 0 0 M V30 BEGIN ATOM -M V30 1 C -0.5020 -1.0239 0.1056 0 -M V30 2 C -1.0291 0.0988 0.7435 0 -M V30 3 N -0.4190 1.3051 0.6062 0 -M V30 4 C 0.7041 1.4359 -0.1480 0 -M V30 5 N 1.2320 0.3529 -0.7771 0 -M V30 6 C 0.6509 -0.8701 -0.6640 0 -M V30 7 H -0.9765 -1.9915 0.2053 0 -M V30 8 H -1.9224 0.0120 1.3475 0 -M V30 9 H 1.1781 2.4026 -0.2477 0 -M V30 10 H 1.0840 -1.7219 -1.1713 0 +M V30 1 C -0.4040 -0.9587 -0.4786 0 +M V30 2 C 0.9656 -0.6965 -0.4520 0 +M V30 3 N 1.4256 0.4467 0.1205 0 +M V30 4 C 0.5666 1.3445 0.6713 0 +M V30 5 N -0.7713 1.1058 0.6545 0 +M V30 6 C -1.2699 -0.0257 0.0914 0 +M V30 7 H -0.7858 -1.8648 -0.9310 0 +M V30 8 H 1.6628 -1.4007 -0.8858 0 +M V30 9 H 0.9481 2.2498 1.1232 0 +M V30 10 H -2.3375 -0.2004 0.0865 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 2 1 2 diff --git a/examples/aligner_directory/aligned_3.mol b/examples/aligner_directory/aligned_3.mol index f744f6a..064f758 100644 --- a/examples/aligner_directory/aligned_3.mol +++ b/examples/aligner_directory/aligned_3.mol @@ -5,18 +5,18 @@ M V30 BEGIN CTAB M V30 COUNTS 12 12 0 0 0 M V30 BEGIN ATOM -M V30 1 C 1.3462 -0.3789 -0.0405 0 -M V30 2 C 0.3460 -1.3555 0.0166 0 -M V30 3 C -1.0002 -0.9766 0.0571 0 -M V30 4 C -1.3462 0.3789 0.0405 0 -M V30 5 C -0.3460 1.3555 -0.0166 0 -M V30 6 C 1.0002 0.9766 -0.0571 0 -M V30 7 H 2.3876 -0.6720 -0.0718 0 -M V30 8 H 0.6137 -2.4041 0.0295 0 -M V30 9 H -1.7739 -1.7321 0.1012 0 -M V30 10 H -2.3876 0.6720 0.0718 0 -M V30 11 H -0.6137 2.4041 -0.0295 0 -M V30 12 H 1.7739 1.7321 -0.1012 0 +M V30 1 C -1.3154 0.4749 -0.0407 0 +M V30 2 C -0.2487 1.3760 0.0464 0 +M V30 3 C 1.0666 0.9011 0.0870 0 +M V30 4 C 1.3154 -0.4749 0.0407 0 +M V30 5 C 0.2487 -1.3760 -0.0464 0 +M V30 6 C -1.0666 -0.9011 -0.0870 0 +M V30 7 H -2.3330 0.8422 -0.0721 0 +M V30 8 H -0.4411 2.4405 0.0823 0 +M V30 9 H 1.8918 1.5983 0.1544 0 +M V30 10 H 2.3330 -0.8422 0.0721 0 +M V30 11 H 0.4411 -2.4405 -0.0823 0 +M V30 12 H -1.8918 -1.5983 -0.1544 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 2 1 2 diff --git a/examples/aligner_directory/aligned_4.mol b/examples/aligner_directory/aligned_4.mol index 5edb2a4..e2a9b3c 100644 --- a/examples/aligner_directory/aligned_4.mol +++ b/examples/aligner_directory/aligned_4.mol @@ -5,24 +5,24 @@ M V30 BEGIN CTAB M V30 COUNTS 18 18 0 0 0 M V30 BEGIN ATOM -M V30 1 C 0.2885 1.4424 0.1522 0 -M V30 2 C 1.3591 0.4657 -0.3507 0 -M V30 3 C 1.1192 -0.9456 0.2006 0 -M V30 4 C -0.2885 -1.4424 -0.1522 0 -M V30 5 C -1.3591 -0.4657 0.3507 0 -M V30 6 C -1.1192 0.9456 -0.2006 0 -M V30 7 H 0.4532 2.4384 -0.3124 0 -M V30 8 H 0.3779 1.5595 1.2547 0 -M V30 9 H 2.3610 0.8208 -0.0267 0 -M V30 10 H 1.3479 0.4392 -1.4626 0 -M V30 11 H 1.2481 -0.9419 1.3054 0 -M V30 12 H 1.8721 -1.6404 -0.2297 0 -M V30 13 H -0.3779 -1.5595 -1.2547 0 -M V30 14 H -0.4532 -2.4384 0.3124 0 -M V30 15 H -2.3610 -0.8208 0.0267 0 -M V30 16 H -1.3479 -0.4392 1.4626 0 -M V30 17 H -1.8721 1.6404 0.2297 0 -M V30 18 H -1.2481 0.9419 -1.3054 0 +M V30 1 C -1.0414 0.9526 -0.4416 0 +M V30 2 C -1.4092 -0.3497 0.2807 0 +M V30 3 C -0.3550 -1.4353 0.0293 0 +M V30 4 C 1.0414 -0.9526 0.4416 0 +M V30 5 C 1.4092 0.3497 -0.2807 0 +M V30 6 C 0.3550 1.4353 -0.0293 0 +M V30 7 H -1.7892 1.7353 -0.1905 0 +M V30 8 H -1.0709 0.7907 -1.5417 0 +M V30 9 H -2.3966 -0.7055 -0.0844 0 +M V30 10 H -1.4960 -0.1592 1.3732 0 +M V30 11 H -0.3520 -1.7105 -1.0484 0 +M V30 12 H -0.6168 -2.3434 0.6139 0 +M V30 13 H 1.0709 -0.7907 1.5417 0 +M V30 14 H 1.7892 -1.7353 0.1905 0 +M V30 15 H 2.3966 0.7055 0.0844 0 +M V30 16 H 1.4960 0.1592 -1.3732 0 +M V30 17 H 0.6168 2.3434 -0.6139 0 +M V30 18 H 0.3520 1.7105 1.0484 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 1 1 2 diff --git a/examples/aligner_directory/aligned_5.mol b/examples/aligner_directory/aligned_5.mol index 79a3093..a8b4e6e 100644 --- a/examples/aligner_directory/aligned_5.mol +++ b/examples/aligner_directory/aligned_5.mol @@ -5,86 +5,86 @@ M V30 BEGIN CTAB M V30 COUNTS 80 82 0 0 0 M V30 BEGIN ATOM -M V30 1 C 0.3260 -1.5698 3.6008 0 -M V30 2 C 0.2922 -0.1561 4.1161 0 -M V30 3 C 1.2990 0.6866 3.3920 0 -M V30 4 C -1.0674 0.4811 4.0232 0 -M V30 5 H -0.1555 -1.8172 2.6562 0 -M V30 6 H 0.5747 -0.1765 5.1935 0 -M V30 7 H 1.6292 0.3982 2.3968 0 -M V30 8 H -1.3875 1.1042 4.8579 0 -M V30 9 C 1.8181 -3.5631 0.0671 0 -M V30 10 C 1.1355 -3.7514 -1.2633 0 -M V30 11 C -0.2410 -3.1505 -1.2475 0 -M V30 12 C 1.9306 -3.1509 -2.3889 0 -M V30 13 H 1.1169 -4.0559 0.7120 0 -M V30 14 H 1.0580 -4.8456 -1.4615 0 -M V30 15 H -0.3737 -2.1221 -0.9161 0 -M V30 16 H 1.8680 -3.6198 -3.3681 0 -M V30 17 C 2.0140 2.4999 0.2257 0 -M V30 18 C 2.5086 2.4048 -1.1932 0 -M V30 19 C 3.0351 1.0217 -1.4644 0 -M V30 20 C 1.4366 2.7785 -2.1885 0 -M V30 21 H 1.2687 1.7909 0.5744 0 -M V30 22 H 3.3504 3.1205 -1.3240 0 -M V30 23 H 2.8602 0.2235 -0.7470 0 -M V30 24 H 1.6601 2.6947 -3.2495 0 -M V30 25 C -4.4355 1.0248 -0.5227 0 -M V30 26 C -4.2215 1.2057 -2.0113 0 -M V30 27 C -3.4748 2.4598 -2.3923 0 -M V30 28 C -3.5812 0.0096 -2.6716 0 -M V30 29 H -3.4275 0.9978 -0.1449 0 -M V30 30 H -5.2363 1.2979 -2.4512 0 -M V30 31 H -3.5554 2.8003 -3.4239 0 -M V30 32 H -3.3576 0.0586 -3.7356 0 -M V30 33 N 1.0586 -2.4389 4.2085 0 -M V30 34 C 1.2701 -3.7852 3.7233 0 -M V30 35 C 2.2036 -3.7889 2.5038 0 -M V30 36 N 1.3964 -3.9924 1.2335 0 -M V30 37 H 0.2950 -4.2703 3.4931 0 -M V30 38 H 1.7472 -4.3713 4.5375 0 -M V30 39 H 2.7775 -2.8371 2.4440 0 -M V30 40 H 2.9360 -4.6203 2.5942 0 -M V30 41 N 1.7470 1.7590 3.9461 0 -M V30 42 C 2.6861 2.6446 3.2943 0 -M V30 43 C 1.9577 3.6177 2.3478 0 -M V30 44 N 2.4146 3.4590 0.9851 0 -M V30 45 H 3.4695 2.0565 2.7648 0 -M V30 46 H 3.2050 3.2330 4.0817 0 -M V30 47 H 0.8519 3.4947 2.3968 0 -M V30 48 H 2.1787 4.6593 2.6653 0 -M V30 49 N -1.8032 0.3903 2.9662 0 -M V30 50 C -3.0588 1.1062 2.8804 0 -M V30 51 C -3.9824 0.4897 1.8345 0 -M V30 52 N -3.5415 0.8494 0.4250 0 -M V30 53 H -2.8653 2.1738 2.6381 0 -M V30 54 H -3.5854 1.0632 3.8609 0 -M V30 55 H -4.0132 -0.6162 1.9463 0 -M V30 56 H -5.0094 0.8820 2.0134 0 -M V30 57 N 2.6317 -2.0814 -2.2263 0 -M V30 58 C 3.3809 -1.4948 -3.3149 0 -M V30 59 C 4.3857 -0.4676 -2.7866 0 -M V30 60 N 3.7581 0.8065 -2.5073 0 -M V30 61 H 2.6865 -1.0208 -4.0428 0 -M V30 62 H 3.9492 -2.2926 -3.8433 0 -M V30 63 H 4.9083 -0.8531 -1.8827 0 -M V30 64 H 5.1577 -0.3019 -3.5674 0 -M V30 65 N -1.2535 -3.8581 -1.6141 0 -M V30 66 C -2.6062 -3.3490 -1.5793 0 -M V30 67 C -2.8230 -2.2596 -2.6425 0 -M V30 68 N -3.3784 -1.0810 -2.0192 0 -M V30 69 H -2.8292 -2.9710 -0.5559 0 -M V30 70 H -3.3058 -4.1912 -1.7714 0 -M V30 71 H -1.8675 -1.9948 -3.1530 0 -M V30 72 H -3.5292 -2.6335 -3.4189 0 -M V30 73 N 0.3256 3.3058 -1.8038 0 -M V30 74 C -0.6619 3.7999 -2.7336 0 -M V30 75 C -1.9187 4.2275 -1.9720 0 -M V30 76 N -2.6918 3.0714 -1.5709 0 -M V30 77 H -0.9101 3.0180 -3.4854 0 -M V30 78 H -0.2473 4.6812 -3.2698 0 -M V30 79 H -1.6273 4.8015 -1.0658 0 -M V30 80 H -2.5363 4.9007 -2.6083 0 +M V30 1 C 0.1642 -1.2461 3.3435 0 +M V30 2 C 0.0334 0.1273 3.9940 0 +M V30 3 C 0.7826 1.2212 3.2929 0 +M V30 4 C -1.4205 0.6348 4.0956 0 +M V30 5 H -0.1337 -1.3976 2.3130 0 +M V30 6 H 0.4262 0.0251 5.0982 0 +M V30 7 H 0.2501 1.2955 2.3072 0 +M V30 8 H -1.6316 1.5647 4.6335 0 +M V30 9 C 1.2115 -3.1916 0.4027 0 +M V30 10 C 1.0838 -3.6010 -1.0728 0 +M V30 11 C -0.3470 -3.2972 -1.5698 0 +M V30 12 C 2.0476 -2.9125 -2.0526 0 +M V30 13 H 1.0846 -2.1825 0.7345 0 +M V30 14 H 1.2283 -4.7011 -1.2556 0 +M V30 15 H -0.8197 -2.4330 -1.0826 0 +M V30 16 H 1.9854 -3.0958 -3.1635 0 +M V30 17 C 2.2997 2.9049 0.1854 0 +M V30 18 C 2.6440 2.8517 -1.2916 0 +M V30 19 C 2.8601 1.4061 -1.7313 0 +M V30 20 C 1.6518 3.5169 -2.2262 0 +M V30 21 H 1.2974 2.7328 0.5392 0 +M V30 22 H 3.6181 3.4060 -1.4135 0 +M V30 23 H 2.0296 0.8071 -2.3191 0 +M V30 24 H 2.0048 3.8344 -3.2238 0 +M V30 25 C -4.3491 0.4619 -0.2985 0 +M V30 26 C -3.7873 0.6958 -1.7242 0 +M V30 27 C -2.6457 1.7727 -1.8846 0 +M V30 28 C -3.5088 -0.5279 -2.6523 0 +M V30 29 H -3.4743 0.5837 0.2054 0 +M V30 30 H -4.6389 1.1565 -2.2377 0 +M V30 31 H -1.7068 1.6681 -1.2465 0 +M V30 32 H -3.7974 -0.4460 -3.7309 0 +M V30 33 N 0.6550 -2.1840 4.0966 0 +M V30 34 C 0.7190 -3.6135 3.6646 0 +M V30 35 C 1.7367 -4.1576 2.6321 0 +M V30 36 N 1.2555 -4.2096 1.2510 0 +M V30 37 H -0.3015 -4.0762 3.6218 0 +M V30 38 H 1.1466 -4.0553 4.5547 0 +M V30 39 H 2.7226 -3.6169 2.7481 0 +M V30 40 H 1.9023 -5.2418 2.8902 0 +M V30 41 N 2.0810 1.1774 3.2217 0 +M V30 42 C 2.9387 2.3233 3.4552 0 +M V30 43 C 3.0412 3.4904 2.3935 0 +M V30 44 N 3.2644 3.1703 0.9925 0 +M V30 45 H 3.9421 2.0299 3.6366 0 +M V30 46 H 2.6372 2.8398 4.4343 0 +M V30 47 H 2.1451 4.1720 2.5189 0 +M V30 48 H 3.8672 4.1465 2.7619 0 +M V30 49 N -2.3935 0.1293 3.3572 0 +M V30 50 C -3.6910 0.8102 3.2815 0 +M V30 51 C -4.5556 0.5608 2.0533 0 +M V30 52 N -3.7021 0.6536 0.8306 0 +M V30 53 H -3.5045 1.9506 3.3509 0 +M V30 54 H -4.3494 0.5768 4.2037 0 +M V30 55 H -5.0553 -0.4620 2.2342 0 +M V30 56 H -5.4332 1.2999 2.0199 0 +M V30 57 N 2.9698 -2.0882 -1.6203 0 +M V30 58 C 3.8435 -1.4608 -2.6049 0 +M V30 59 C 4.6424 -0.1922 -2.1348 0 +M V30 60 N 4.0267 0.9004 -1.4348 0 +M V30 61 H 3.3784 -1.2198 -3.5812 0 +M V30 62 H 4.6588 -2.1737 -2.9234 0 +M V30 63 H 5.4963 -0.5415 -1.6352 0 +M V30 64 H 5.1026 0.2438 -3.0166 0 +M V30 65 N -0.9328 -4.0998 -2.4271 0 +M V30 66 C -2.3795 -3.9994 -2.6587 0 +M V30 67 C -2.9397 -2.6600 -3.1642 0 +M V30 68 N -3.0653 -1.6067 -2.2052 0 +M V30 69 H -2.9320 -4.2959 -1.7409 0 +M V30 70 H -2.5955 -4.7948 -3.4416 0 +M V30 71 H -2.3622 -2.3920 -4.0627 0 +M V30 72 H -3.9467 -2.9256 -3.5738 0 +M V30 73 N 0.3496 3.4106 -2.0459 0 +M V30 74 C -0.5733 3.9270 -3.0806 0 +M V30 75 C -2.0516 4.0659 -2.6423 0 +M V30 76 N -2.8658 2.8125 -2.5949 0 +M V30 77 H -0.4495 3.4032 -4.0786 0 +M V30 78 H -0.2552 4.9495 -3.2967 0 +M V30 79 H -2.1148 4.7276 -1.7443 0 +M V30 80 H -2.5155 4.6608 -3.4643 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 1 1 2 diff --git a/examples/aligner_directory/init_0.mol b/examples/aligner_directory/init_0.mol index 5514156..27355df 100644 --- a/examples/aligner_directory/init_0.mol +++ b/examples/aligner_directory/init_0.mol @@ -5,26 +5,26 @@ M V30 BEGIN CTAB M V30 COUNTS 20 19 0 0 0 M V30 BEGIN ATOM -M V30 1 N -0.5022 2.7072 -1.0118 0 -M V30 2 C 0.8820 2.3474 -0.6384 0 -M V30 3 C 0.7529 1.1807 0.3612 0 -M V30 4 N 0.1369 0.0957 -0.3496 0 -M V30 5 C -0.2542 -1.0102 0.4388 0 -M V30 6 C -0.5435 -2.1840 -0.4700 0 -M V30 7 N -0.9603 -3.3283 0.3320 0 -M V30 8 H -0.6166 3.7299 -0.8680 0 -M V30 9 H -1.1986 2.2683 -0.3276 0 -M V30 10 H 1.4452 3.1852 -0.2033 0 -M V30 11 H 1.4070 2.0241 -1.5567 0 -M V30 12 H 0.1035 1.4782 1.2070 0 -M V30 13 H 1.7630 0.8733 0.7342 0 -M V30 14 H 0.4975 -0.0253 -1.2794 0 -M V30 15 H 0.4821 -1.2256 1.2467 0 -M V30 16 H -1.2502 -0.7116 0.9372 0 -M V30 17 H 0.4401 -2.4071 -0.9943 0 -M V30 18 H -1.2779 -1.8821 -1.2209 0 -M V30 19 H -0.1748 -4.0489 0.3774 0 -M V30 20 H -1.1318 -3.0670 1.3145 0 +M V30 1 N -0.5162 2.7381 -0.9878 0 +M V30 2 C 0.8765 2.3391 -0.6336 0 +M V30 3 C 0.7585 1.1550 0.3000 0 +M V30 4 N 0.0999 0.0882 -0.3939 0 +M V30 5 C -0.2747 -0.9897 0.4517 0 +M V30 6 C -0.5476 -2.2073 -0.4570 0 +M V30 7 N -0.9581 -3.3220 0.3472 0 +M V30 8 H -0.5940 3.7744 -0.7445 0 +M V30 9 H -1.1874 2.2922 -0.2860 0 +M V30 10 H 1.4356 3.1992 -0.2032 0 +M V30 11 H 1.4030 2.0819 -1.5525 0 +M V30 12 H 0.1598 1.3975 1.2014 0 +M V30 13 H 1.7816 0.8163 0.6132 0 +M V30 14 H 0.4628 -0.0816 -1.3103 0 +M V30 15 H 0.4237 -1.1714 1.2499 0 +M V30 16 H -1.2840 -0.7016 0.9080 0 +M V30 17 H 0.4732 -2.4259 -0.9443 0 +M V30 18 H -1.2274 -1.8902 -1.2511 0 +M V30 19 H -0.1724 -4.0417 0.3817 0 +M V30 20 H -1.1129 -3.0506 1.3403 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 1 1 2 diff --git a/examples/aligner_directory/init_1.mol b/examples/aligner_directory/init_1.mol index 846eeea..b817765 100644 --- a/examples/aligner_directory/init_1.mol +++ b/examples/aligner_directory/init_1.mol @@ -5,30 +5,30 @@ M V30 BEGIN CTAB M V30 COUNTS 24 25 0 0 0 M V30 BEGIN ATOM -M V30 1 C -0.2887 3.2678 0.0693 0 -M V30 2 N 0.5257 2.0722 0.1389 0 -M V30 3 C 1.8360 2.0703 0.3201 0 -M V30 4 N 2.2177 0.7815 0.3265 0 -M V30 5 C 1.1390 -0.0059 0.1488 0 -M V30 6 C 0.0497 0.8336 0.0283 0 -M V30 7 C -1.1874 0.2482 -0.1640 0 -M V30 8 O -2.1875 1.0023 -0.2752 0 -M V30 9 N -1.3458 -1.0852 -0.2341 0 -M V30 10 C -0.2485 -1.8464 -0.1097 0 -M V30 11 O -0.3719 -3.0831 -0.1714 0 -M V30 12 N 0.9809 -1.3417 0.0787 0 -M V30 13 C 2.1377 -2.2084 0.2074 0 -M V30 14 C -2.6634 -1.6577 -0.4371 0 -M V30 15 H -0.2146 3.7838 -0.9065 0 -M V30 16 H -1.3411 3.1011 0.3101 0 -M V30 17 H 0.0921 3.9979 0.8422 0 -M V30 18 H 2.4901 2.9358 0.4419 0 -M V30 19 H 2.9731 -1.6831 0.7269 0 -M V30 20 H 2.5216 -2.5614 -0.7509 0 -M V30 21 H 1.8867 -3.0967 0.8571 0 -M V30 22 H -3.3332 -0.9537 -0.9693 0 -M V30 23 H -3.0995 -1.9823 0.5514 0 -M V30 24 H -2.5687 -2.5888 -1.0294 0 +M V30 1 C -0.2891 3.2697 0.0608 0 +M V30 2 N 0.5238 2.0690 0.1355 0 +M V30 3 C 1.8498 2.0843 0.3235 0 +M V30 4 N 2.2651 0.7882 0.3388 0 +M V30 5 C 1.1662 0.0021 0.1570 0 +M V30 6 C 0.0631 0.8221 0.0285 0 +M V30 7 C -1.1943 0.2849 -0.1672 0 +M V30 8 O -2.2205 1.0160 -0.2878 0 +M V30 9 N -1.3276 -1.0516 -0.2309 0 +M V30 10 C -0.2503 -1.8601 -0.1057 0 +M V30 11 O -0.3821 -3.0965 -0.1658 0 +M V30 12 N 0.9702 -1.3298 0.0847 0 +M V30 13 C 2.1099 -2.2466 0.2151 0 +M V30 14 C -2.6469 -1.6528 -0.4376 0 +M V30 15 H -0.2083 3.7785 -0.9258 0 +M V30 16 H -1.3513 3.1091 0.2838 0 +M V30 17 H 0.0555 4.0112 0.8240 0 +M V30 18 H 2.4858 2.9648 0.4429 0 +M V30 19 H 2.9703 -1.7189 0.7131 0 +M V30 20 H 2.4779 -2.6240 -0.7359 0 +M V30 21 H 1.8289 -3.0823 0.8983 0 +M V30 22 H -3.3049 -0.9802 -0.9996 0 +M V30 23 H -3.0799 -1.9516 0.5508 0 +M V30 24 H -2.5116 -2.6056 -1.0007 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 1 1 2 diff --git a/examples/aligner_directory/init_2.mol b/examples/aligner_directory/init_2.mol index 3829089..b807428 100644 --- a/examples/aligner_directory/init_2.mol +++ b/examples/aligner_directory/init_2.mol @@ -5,16 +5,16 @@ M V30 BEGIN CTAB M V30 COUNTS 10 10 0 0 0 M V30 BEGIN ATOM -M V30 1 C -0.4892 -1.0392 0.1462 0 -M V30 2 C 0.5525 -0.8430 -0.7378 0 -M V30 3 N 1.0994 0.3775 -0.8845 0 -M V30 4 C 0.6960 1.4669 -0.2113 0 -M V30 5 N -0.3186 1.2845 0.6522 0 -M V30 6 C -0.9026 0.0821 0.8375 0 -M V30 7 H -0.9672 -1.9944 0.3061 0 -M V30 8 H 0.8950 -1.7138 -1.2941 0 -M V30 9 H 1.1615 2.4456 -0.3532 0 -M V30 10 H -1.7268 -0.0662 1.5389 0 +M V30 1 C -0.3193 -0.9788 -0.3851 0 +M V30 2 C 1.0195 -0.6518 -0.4739 0 +M V30 3 N 1.3718 0.5718 0.0158 0 +M V30 4 C 0.4583 1.4068 0.5537 0 +M V30 5 N -0.8486 1.0680 0.6314 0 +M V30 6 C -1.2669 -0.1357 0.1623 0 +M V30 7 H -0.6068 -1.9496 -0.7723 0 +M V30 8 H 1.7561 -1.3176 -0.9042 0 +M V30 9 H 0.7509 2.3786 0.9404 0 +M V30 10 H -2.3150 -0.3916 0.2318 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 2 1 2 diff --git a/examples/aligner_directory/init_3.mol b/examples/aligner_directory/init_3.mol index b2a9335..42e3b2f 100644 --- a/examples/aligner_directory/init_3.mol +++ b/examples/aligner_directory/init_3.mol @@ -5,18 +5,18 @@ M V30 BEGIN CTAB M V30 COUNTS 12 12 0 0 0 M V30 BEGIN ATOM -M V30 1 C -1.2900 0.4457 -0.0182 0 -M V30 2 C -0.2857 1.3824 -0.0099 0 -M V30 3 C 1.0256 0.9229 0.0086 0 -M V30 4 C 1.2895 -0.4500 0.0182 0 -M V30 5 C 0.2682 -1.3782 0.0097 0 -M V30 6 C -1.0227 -0.8950 -0.0087 0 -M V30 7 H -2.3380 0.7609 -0.0328 0 -M V30 8 H -0.4726 2.4419 -0.0172 0 -M V30 9 H 1.8617 1.6067 0.0159 0 -M V30 10 H 2.3296 -0.7883 0.0328 0 -M V30 11 H 0.4792 -2.4519 0.0173 0 -M V30 12 H -1.8448 -1.5971 -0.0158 0 +M V30 1 C -1.3059 0.4292 -0.0153 0 +M V30 2 C -0.3029 1.3676 -0.0049 0 +M V30 3 C 1.0001 0.9111 0.0104 0 +M V30 4 C 1.3069 -0.4337 0.0154 0 +M V30 5 C 0.2936 -1.3705 0.0048 0 +M V30 6 C -1.0123 -0.9070 -0.0106 0 +M V30 7 H -2.3307 0.8068 -0.0274 0 +M V30 8 H -0.4757 2.4407 -0.0081 0 +M V30 9 H 1.8497 1.6074 0.0194 0 +M V30 10 H 2.3168 -0.8202 0.0273 0 +M V30 11 H 0.5046 -2.4344 0.0084 0 +M V30 12 H -1.8443 -1.5972 -0.0193 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 2 1 2 diff --git a/examples/aligner_directory/init_4.mol b/examples/aligner_directory/init_4.mol index 81faf95..2ba5505 100644 --- a/examples/aligner_directory/init_4.mol +++ b/examples/aligner_directory/init_4.mol @@ -5,24 +5,24 @@ M V30 BEGIN CTAB M V30 COUNTS 18 18 0 0 0 M V30 BEGIN ATOM -M V30 1 C 0.1922 1.4399 0.0749 0 -M V30 2 C 1.3223 0.4613 -0.1316 0 -M V30 3 C 1.0533 -0.8809 0.4766 0 -M V30 4 C -0.2159 -1.4317 -0.1427 0 -M V30 5 C -1.3377 -0.4795 0.2880 0 -M V30 6 C -1.0799 0.8201 -0.4718 0 -M V30 7 H 0.4272 2.3236 -0.5878 0 -M V30 8 H 0.0892 1.7762 1.1147 0 -M V30 9 H 2.2350 0.9274 0.2766 0 -M V30 10 H 1.4340 0.3407 -1.2376 0 -M V30 11 H 0.8857 -0.8104 1.5608 0 -M V30 12 H 1.9292 -1.5181 0.3136 0 -M V30 13 H -0.1920 -1.3799 -1.2601 0 +M V30 1 C 0.1948 1.4412 0.0718 0 +M V30 2 C 1.3218 0.4606 -0.1322 0 +M V30 3 C 1.0491 -0.8829 0.4780 0 +M V30 4 C -0.2157 -1.4266 -0.1433 0 +M V30 5 C -1.3313 -0.4806 0.2886 0 +M V30 6 C -1.0767 0.8163 -0.4715 0 +M V30 7 H 0.4321 2.3172 -0.5875 0 +M V30 8 H 0.0887 1.7766 1.1151 0 +M V30 9 H 2.2284 0.9290 0.2760 0 +M V30 10 H 1.4314 0.3435 -1.2354 0 +M V30 11 H 0.8856 -0.8107 1.5616 0 +M V30 12 H 1.9284 -1.5149 0.3118 0 +M V30 13 H -0.1929 -1.3803 -1.2615 0 M V30 14 H -0.4571 -2.4474 0.2243 0 -M V30 15 H -2.3285 -0.8910 0.1012 0 +M V30 15 H -2.3301 -0.8920 0.1019 0 M V30 16 H -1.1745 -0.2628 1.3568 0 -M V30 17 H -1.9425 1.4904 -0.4289 0 -M V30 18 H -0.8401 0.5221 -1.5272 0 +M V30 17 H -1.9430 1.4906 -0.4289 0 +M V30 18 H -0.8391 0.5230 -1.5256 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 1 1 2 diff --git a/examples/aligner_directory/init_5.mol b/examples/aligner_directory/init_5.mol index 0c3bee9..a90ac27 100644 --- a/examples/aligner_directory/init_5.mol +++ b/examples/aligner_directory/init_5.mol @@ -5,86 +5,86 @@ M V30 BEGIN CTAB M V30 COUNTS 80 82 0 0 0 M V30 BEGIN ATOM -M V30 1 C 0.0817 -1.2612 3.8328 0 -M V30 2 C -0.3411 0.0872 4.2939 0 -M V30 3 C 0.6523 1.1136 3.8328 0 -M V30 4 C -1.7022 0.3886 3.8328 0 -M V30 5 H 0.1976 -1.4910 2.7874 0 -M V30 6 H -0.3495 0.1101 5.4047 0 -M V30 7 H 0.8207 1.2271 2.7565 0 -M V30 8 H -2.2174 1.3161 4.0500 0 -M V30 9 C 1.0722 -4.0992 -0.2564 0 -M V30 10 C 1.0767 -4.0599 -1.7422 0 -M V30 11 C -0.3100 -3.7816 -2.2448 0 -M V30 12 C 2.0500 -3.0752 -2.2310 0 -M V30 13 H 0.7694 -3.2493 0.3311 0 -M V30 14 H 1.3780 -5.0544 -2.1354 0 -M V30 15 H -0.7944 -2.8469 -1.9426 0 -M V30 16 H 2.2254 -2.8753 -3.2809 0 -M V30 17 C 2.5570 3.2119 -0.4931 0 -M V30 18 C 2.5207 3.1962 -1.9790 0 -M V30 19 C 2.9731 1.8561 -2.4815 0 -M V30 20 C 1.1813 3.5468 -2.4677 0 -M V30 21 H 1.9724 2.5247 0.0944 0 -M V30 22 H 3.2314 3.9544 -2.3721 0 -M V30 23 H 2.4058 0.9693 -2.1793 0 -M V30 24 H 0.9205 3.5987 -3.5176 0 -M V30 25 C -4.5522 1.1366 -0.6293 0 -M V30 26 C -4.5205 1.1131 -2.1152 0 -M V30 27 C -3.5860 2.1749 -2.6177 0 -M V30 28 C -4.1543 -0.2222 -2.6040 0 -M V30 29 H -3.6647 0.9739 -0.0418 0 -M V30 30 H -5.5323 1.3494 -2.5084 0 -M V30 31 H -2.5344 2.1270 -2.3156 0 -M V30 32 H -4.0688 -0.4740 -3.6538 0 -M V30 33 N 0.7826 -2.7388 3.7609 0 -M V30 34 C 0.8289 -4.1748 3.7839 0 -M V30 35 C 1.7055 -4.7135 2.6570 0 -M V30 36 N 1.2702 -4.3563 1.3718 0 -M V30 37 H -0.1955 -4.5942 3.7069 0 -M V30 38 H 1.3263 -4.4698 4.7329 0 -M V30 39 H 2.7154 -4.2418 2.8302 0 -M V30 40 H 1.8019 -5.8058 2.7630 0 -M V30 41 N 2.0641 2.1514 3.4762 0 -M V30 42 C 3.2846 2.9092 3.4992 0 -M V30 43 C 3.3130 3.9378 2.3724 0 -M V30 44 N 3.2210 3.3824 1.0871 0 -M V30 45 H 4.1599 2.2316 3.4220 0 -M V30 46 H 3.2916 3.4874 4.4482 0 -M V30 47 H 2.3997 4.5768 2.5457 0 -M V30 48 H 4.2109 4.5673 2.4783 0 -M V30 49 N -3.2294 0.7438 3.2663 0 -M V30 50 C -4.4969 1.4202 3.2896 0 -M V30 51 C -5.4010 0.9303 2.1622 0 -M V30 52 N -4.8739 1.1303 0.8772 0 -M V30 53 H -4.3491 2.5173 3.2135 0 -M V30 54 H -5.0009 1.1356 4.2383 0 -M V30 55 H -5.4962 -0.1804 2.3345 0 -M V30 56 H -6.3957 1.3917 2.2683 0 -M V30 57 N 3.4519 -2.1518 -2.7493 0 -M V30 58 C 4.3359 -1.5555 -3.7124 0 -M V30 59 C 5.0132 -0.3136 -3.1403 0 -M V30 60 N 4.1212 0.6966 -2.7493 0 -M V30 61 H 3.7799 -1.2975 -4.6373 0 -M V30 62 H 5.1471 -2.2895 -3.9086 0 -M V30 63 H 5.5537 -0.6808 -2.2209 0 -M V30 64 H 5.7564 0.0597 -3.8627 0 -M V30 65 N -1.8270 -3.7987 -2.8953 0 -M V30 66 C -3.1854 -4.1011 -3.2533 0 -M V30 67 C -3.8967 -2.8663 -3.7990 0 -M V30 68 N -3.9592 -1.7948 -2.8953 0 -M V30 69 H -3.7339 -4.5037 -2.3767 0 -M V30 70 H -3.1471 -4.8327 -4.0890 0 -M V30 71 H -3.2740 -2.5452 -4.6830 0 -M V30 72 H -4.8983 -3.1533 -4.1570 0 -M V30 73 N -0.2473 4.4714 -2.9418 0 -M V30 74 C -1.2057 4.9389 -3.9049 0 -M V30 75 C -2.6199 4.9044 -3.3328 0 -M V30 76 N -3.0488 3.6268 -2.9418 0 -M V30 77 H -1.1511 4.3283 -4.8298 0 -M V30 78 H -0.9757 6.0083 -4.1011 0 -M V30 79 H -2.5722 5.5561 -2.4134 0 -M V30 80 H -3.3147 5.3614 -4.0552 0 +M V30 1 C 0.2668 -1.1718 3.7809 0 +M V30 2 C -0.1411 0.1847 4.2633 0 +M V30 3 C 0.8380 1.2034 3.7809 0 +M V30 4 C -1.5164 0.4737 3.7809 0 +M V30 5 H 0.3291 -1.3151 2.6970 0 +M V30 6 H -0.1606 0.1955 5.3630 0 +M V30 7 H 0.9502 1.2932 2.6961 0 +M V30 8 H -1.9795 1.4290 4.0408 0 +M V30 9 C 1.0173 -4.0138 -0.0989 0 +M V30 10 C 1.0113 -3.9975 -1.5952 0 +M V30 11 C -0.3656 -3.6964 -2.0875 0 +M V30 12 C 1.9961 -2.9910 -2.0696 0 +M V30 13 H 0.7197 -3.0901 0.4087 0 +M V30 14 H 1.3239 -4.9806 -1.9768 0 +M V30 15 H -0.7937 -2.7385 -1.7764 0 +M V30 16 H 2.1265 -2.8427 -3.1445 0 +M V30 17 C 2.6946 3.4178 -0.4703 0 +M V30 18 C 2.6834 3.4045 -1.9666 0 +M V30 19 C 3.1112 2.0615 -2.4589 0 +M V30 20 C 1.3194 3.7541 -2.4410 0 +M V30 21 H 2.0435 2.6983 0.0373 0 +M V30 22 H 3.3786 4.1667 -2.3482 0 +M V30 23 H 2.4957 1.2118 -2.1478 0 +M V30 24 H 1.1258 3.7929 -3.5160 0 +M V30 25 C -4.5343 0.9521 -0.4994 0 +M V30 26 C -4.5172 0.9490 -1.9958 0 +M V30 27 C -3.5680 1.9910 -2.4881 0 +M V30 28 C -4.1380 -0.4070 -2.4702 0 +M V30 29 H -3.5856 0.7479 0.0081 0 +M V30 30 H -5.5249 1.1699 -2.3774 0 +M V30 31 H -2.5244 1.8828 -2.1770 0 +M V30 32 H -4.0747 -0.5941 -3.5451 0 +M V30 33 N 0.8211 -2.8437 3.8731 0 +M V30 34 C 0.8662 -4.2797 3.8942 0 +M V30 35 C 1.7421 -4.8198 2.7697 0 +M V30 36 N 1.3088 -4.4615 1.4834 0 +M V30 37 H -0.1555 -4.6980 3.8209 0 +M V30 38 H 1.3643 -4.5735 4.8459 0 +M V30 39 H 2.7415 -4.3339 2.9393 0 +M V30 40 H 1.8500 -5.9078 2.8764 0 +M V30 41 N 2.1456 2.3298 3.4828 0 +M V30 42 C 3.3668 3.0867 3.5038 0 +M V30 43 C 3.3966 4.1154 2.3794 0 +M V30 44 N 3.3029 3.5611 1.0930 0 +M V30 45 H 4.2399 2.4110 3.4305 0 +M V30 46 H 3.3723 3.6650 4.4556 0 +M V30 47 H 2.4763 4.7381 2.5491 0 +M V30 48 H 4.2851 4.7527 2.4861 0 +M V30 49 N -3.2876 0.7009 3.4514 0 +M V30 50 C -4.5547 1.3781 3.4728 0 +M V30 51 C -5.4595 0.8894 2.3477 0 +M V30 52 N -4.9326 1.0874 1.0617 0 +M V30 53 H -4.4076 2.4724 3.4006 0 +M V30 54 H -5.0581 1.0921 4.4242 0 +M V30 55 H -5.5370 -0.2193 2.5163 0 +M V30 56 H -6.4564 1.3385 2.4547 0 +M V30 57 N 3.3161 -2.0707 -2.6569 0 +M V30 58 C 4.1988 -1.4726 -3.6200 0 +M V30 59 C 4.8770 -0.2322 -3.0500 0 +M V30 60 N 3.9856 0.7786 -2.6569 0 +M V30 61 H 3.6454 -1.2185 -4.5438 0 +M V30 62 H 5.0106 -2.2095 -3.8158 0 +M V30 63 H 5.4001 -0.6022 -2.1264 0 +M V30 64 H 5.6268 0.1384 -3.7622 0 +M V30 65 N -1.7170 -3.9880 -2.7997 0 +M V30 66 C -3.0761 -4.2891 -3.1557 0 +M V30 67 C -3.7882 -3.0572 -3.7021 0 +M V30 68 N -3.8497 -1.9836 -2.7997 0 +M V30 69 H -3.6222 -4.6938 -2.2826 0 +M V30 70 H -3.0360 -5.0228 -3.9926 0 +M V30 71 H -3.1543 -2.7339 -4.5723 0 +M V30 72 H -4.7842 -3.3396 -4.0697 0 +M V30 73 N -0.2212 4.1834 -2.8690 0 +M V30 74 C -1.1805 4.6489 -3.8321 0 +M V30 75 C -2.5938 4.6160 -3.2621 0 +M V30 76 N -3.0234 3.3386 -2.8690 0 +M V30 77 H -1.1238 4.0425 -4.7559 0 +M V30 78 H -0.9482 5.7204 -4.0279 0 +M V30 79 H -2.5349 5.2540 -2.3385 0 +M V30 80 H -3.2896 5.0800 -3.9744 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 1 1 2 diff --git a/examples/aligner_directory/unaligned_0.mol b/examples/aligner_directory/unaligned_0.mol index eb9f7cf..1da5dd2 100644 --- a/examples/aligner_directory/unaligned_0.mol +++ b/examples/aligner_directory/unaligned_0.mol @@ -5,26 +5,26 @@ M V30 BEGIN CTAB M V30 COUNTS 20 19 0 0 0 M V30 BEGIN ATOM -M V30 1 N 2.5205 1.1082 -1.0118 0 -M V30 2 C 2.4869 -0.3216 -0.6384 0 -M V30 3 C 1.3217 -0.4629 0.3612 0 -M V30 4 N 0.1245 -0.1114 -0.3496 0 -M V30 5 C -1.0415 0.0164 0.4388 0 -M V30 6 C -2.2504 0.0295 -0.4700 0 -M V30 7 N -3.4597 0.1735 0.3320 0 -M V30 8 H 3.4899 1.4535 -0.8680 0 -M V30 9 H 1.9339 1.6857 -0.3276 0 -M V30 10 H 3.4314 -0.6783 -0.2033 0 -M V30 11 H 2.2923 -0.9067 -1.5567 0 -M V30 12 H 1.4627 0.2374 1.2070 0 -M V30 13 H 1.2535 -1.5165 0.7342 0 -M V30 14 H 0.0892 -0.4900 -1.2794 0 -M V30 15 H -1.0829 -0.7497 1.2467 0 -M V30 16 H -0.9787 1.0543 0.9372 0 -M V30 17 H -2.2426 -0.9790 -0.9943 0 -M V30 18 H -2.1245 0.8135 -1.2209 0 -M V30 19 H -3.9816 -0.7560 0.3774 0 -M V30 20 H -3.2446 0.4002 1.3145 0 +M V30 1 N 2.5474 1.1288 -0.9878 0 +M V30 2 C 2.4776 -0.3182 -0.6336 0 +M V30 3 C 1.2979 -0.4742 0.3000 0 +M V30 4 N 0.1088 -0.0771 -0.3939 0 +M V30 5 C -1.0263 0.0410 0.4517 0 +M V30 6 C -2.2740 0.0281 -0.4570 0 +M V30 7 N -3.4531 0.1728 0.3472 0 +M V30 8 H 3.5384 1.4417 -0.7445 0 +M V30 9 H 1.9598 1.6802 -0.2860 0 +M V30 10 H 3.4428 -0.6657 -0.2032 0 +M V30 11 H 2.3476 -0.8896 -1.5525 0 +M V30 12 H 1.3970 0.1641 1.2014 0 +M V30 13 H 1.2022 -1.5476 0.6132 0 +M V30 14 H 0.0264 -0.4692 -1.3103 0 +M V30 15 H -1.0434 -0.6804 1.2499 0 +M V30 16 H -0.9767 1.0895 0.9080 0 +M V30 17 H -2.2534 -1.0156 -0.9443 0 +M V30 18 H -2.1208 0.7624 -1.2511 0 +M V30 19 H -3.9740 -0.7567 0.3817 0 +M V30 20 H -3.2243 0.3855 1.3403 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 1 1 2 diff --git a/examples/aligner_directory/unaligned_1.mol b/examples/aligner_directory/unaligned_1.mol index 6b7742d..52ef6c4 100644 --- a/examples/aligner_directory/unaligned_1.mol +++ b/examples/aligner_directory/unaligned_1.mol @@ -5,30 +5,30 @@ M V30 BEGIN CTAB M V30 COUNTS 24 25 0 0 0 M V30 BEGIN ATOM -M V30 1 C 3.1151 1.0285 0.0693 0 -M V30 2 N 2.1375 -0.0378 0.1389 0 -M V30 3 C 2.4354 -1.3137 0.3201 0 -M V30 4 N 1.2680 -1.9801 0.3265 0 -M V30 5 C 0.2548 -1.1102 0.1488 0 -M V30 6 C 0.8229 0.1423 0.0283 0 -M V30 7 C -0.0300 1.2127 -0.1640 0 -M V30 8 O 0.4753 2.3587 -0.2752 0 -M V30 9 N -1.3643 1.0619 -0.2341 0 -M V30 10 C -1.8543 -0.1804 -0.1097 0 -M V30 11 O -3.0864 -0.3432 -0.1714 0 -M V30 12 N -1.0817 -1.2619 0.0787 0 -M V30 13 C -1.6609 -2.5862 0.2074 0 -M V30 14 C -2.2230 2.2136 -0.4371 0 -M V30 15 H 3.6344 1.0744 -0.9065 0 -M V30 16 H 2.7121 2.0150 0.3101 0 -M V30 17 H 3.9129 0.8249 0.8422 0 -M V30 18 H 3.4276 -1.7524 0.4419 0 -M V30 19 H -0.9584 -3.2793 0.7269 0 -M V30 20 H -1.9167 -3.0407 -0.7509 0 -M V30 21 H -2.5830 -2.5451 0.8571 0 -M V30 22 H -1.6909 3.0267 -0.9693 0 -M V30 23 H -2.6388 2.5639 0.5514 0 -M V30 24 H -3.1078 1.9084 -1.0294 0 +M V30 1 C 3.1169 1.0294 0.0608 0 +M V30 2 N 2.1340 -0.0366 0.1355 0 +M V30 3 C 2.4522 -1.3240 0.3235 0 +M V30 4 N 1.2854 -2.0247 0.3388 0 +M V30 5 C 0.2688 -1.1348 0.1570 0 +M V30 6 C 0.8147 0.1266 0.0285 0 +M V30 7 C 0.0041 1.2278 -0.1672 0 +M V30 8 O 0.4811 2.3940 -0.2878 0 +M V30 9 N -1.3274 1.0518 -0.2309 0 +M V30 10 C -1.8680 -0.1819 -0.1057 0 +M V30 11 O -3.1017 -0.3364 -0.1658 0 +M V30 12 N -1.0726 -1.2487 0.0847 0 +M V30 13 C -1.7044 -2.5678 0.2151 0 +M V30 14 C -2.2144 2.1986 -0.4376 0 +M V30 15 H 3.6307 1.0671 -0.9258 0 +M V30 16 H 2.7176 2.0267 0.2838 0 +M V30 17 H 3.9175 0.8636 0.8240 0 +M V30 18 H 3.4548 -1.7417 0.4429 0 +M V30 19 H -0.9939 -3.2848 0.7131 0 +M V30 20 H -1.9876 -3.0125 -0.7359 0 +M V30 21 H -2.5822 -2.4854 0.8983 0 +M V30 22 H -1.7102 2.9930 -0.9996 0 +M V30 23 H -2.6044 2.5518 0.5508 0 +M V30 24 H -3.1110 1.8490 -1.0007 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 1 1 2 diff --git a/examples/aligner_directory/unaligned_2.mol b/examples/aligner_directory/unaligned_2.mol index 1fab4c7..a4e8d71 100644 --- a/examples/aligner_directory/unaligned_2.mol +++ b/examples/aligner_directory/unaligned_2.mol @@ -5,16 +5,16 @@ M V30 BEGIN CTAB M V30 COUNTS 10 10 0 0 0 M V30 BEGIN ATOM -M V30 1 C -1.1235 0.2385 0.1462 0 -M V30 2 C -0.6942 -0.7307 -0.7378 0 -M V30 3 N 0.6190 -0.9839 -0.8845 0 -M V30 4 C 1.5872 -0.3420 -0.2113 0 -M V30 5 N 1.1776 0.6040 0.6522 0 -M V30 6 C -0.1266 0.8974 0.8375 0 -M V30 7 H -2.1628 0.4854 0.3061 0 -M V30 8 H -1.4636 -1.2633 -1.2941 0 -M V30 9 H 2.6464 -0.5713 -0.3532 0 -M V30 10 H -0.4595 1.6659 1.5389 0 +M V30 1 C -1.0258 0.0869 -0.3851 0 +M V30 2 C -0.4013 -1.1416 -0.4739 0 +M V30 3 N 0.8704 -1.2046 0.0158 0 +M V30 4 C 1.4744 -0.1243 0.5537 0 +M V30 5 N 0.8456 1.0704 0.6314 0 +M V30 6 C -0.4220 1.2023 0.1623 0 +M V30 7 H -2.0367 0.1447 -0.7723 0 +M V30 8 H -0.8810 -2.0110 -0.9042 0 +M V30 9 H 2.4873 -0.1869 0.9404 0 +M V30 10 H -0.9108 2.1640 0.2318 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 2 1 2 diff --git a/examples/aligner_directory/unaligned_3.mol b/examples/aligner_directory/unaligned_3.mol index 4a94904..4bd600f 100644 --- a/examples/aligner_directory/unaligned_3.mol +++ b/examples/aligner_directory/unaligned_3.mol @@ -5,18 +5,18 @@ M V30 BEGIN CTAB M V30 COUNTS 12 12 0 0 0 M V30 BEGIN ATOM -M V30 1 C 0.1388 1.3577 -0.0182 0 -M V30 2 C 1.2804 0.5943 -0.0099 0 -M V30 3 C 1.1331 -0.7873 0.0086 0 -M V30 4 C -0.1431 -1.3583 0.0182 0 -M V30 5 C -1.2803 -0.5763 0.0097 0 -M V30 6 C -1.1052 0.7908 -0.0087 0 -M V30 7 H 0.2059 2.4501 -0.0328 0 -M V30 8 H 2.2690 1.0187 -0.0172 0 -M V30 9 H 1.9900 -1.4448 0.0159 0 -M V30 10 H -0.2345 -2.4482 0.0328 0 -M V30 11 H -2.2773 -1.0274 0.0173 0 -M V30 12 H -1.9768 1.4306 -0.0158 0 +M V30 1 C 0.1191 1.3695 -0.0153 0 +M V30 2 C 1.2621 0.6077 -0.0049 0 +M V30 3 C 1.1158 -0.7651 0.0104 0 +M V30 4 C -0.1233 -1.3715 0.0154 0 +M V30 5 C -1.2670 -0.5994 0.0048 0 +M V30 6 C -1.1145 0.7780 -0.0106 0 +M V30 7 H 0.2523 2.4535 -0.0274 0 +M V30 8 H 2.2672 1.0214 -0.0081 0 +M V30 9 H 1.9879 -1.4329 0.0194 0 +M V30 10 H -0.2685 -2.4430 0.0273 0 +M V30 11 H -2.2544 -1.0481 0.0084 0 +M V30 12 H -1.9767 1.4300 -0.0193 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 2 1 2 diff --git a/examples/aligner_directory/unaligned_4.mol b/examples/aligner_directory/unaligned_4.mol index 2745ad8..9288eed 100644 --- a/examples/aligner_directory/unaligned_4.mol +++ b/examples/aligner_directory/unaligned_4.mol @@ -5,24 +5,24 @@ M V30 BEGIN CTAB M V30 COUNTS 18 18 0 0 0 M V30 BEGIN ATOM -M V30 1 C 1.4457 0.1423 0.0749 0 -M V30 2 C 0.7515 -1.1817 -0.1316 0 -M V30 3 C -0.6166 -1.2269 0.4766 0 -M V30 4 C -1.4431 -0.1174 -0.1427 0 -M V30 5 C -0.7728 1.1925 0.2880 0 -M V30 6 C 0.5513 1.2389 -0.4718 0 -M V30 7 H 2.3597 0.1157 -0.5878 0 -M V30 8 H 1.7495 0.3195 1.1147 0 -M V30 9 H 1.4140 -1.9636 0.2766 0 -M V30 10 H 0.6597 -1.3181 -1.2376 0 -M V30 11 H -0.5863 -1.0476 1.5608 0 -M V30 12 H -1.0365 -2.2253 0.3136 0 -M V30 13 H -1.3872 -0.1288 -1.2601 0 +M V30 1 C 1.4476 0.1401 0.0718 0 +M V30 2 C 0.7508 -1.1814 -0.1322 0 +M V30 3 C -0.6195 -1.2233 0.4780 0 +M V30 4 C -1.4381 -0.1163 -0.1433 0 +M V30 5 C -0.7724 1.1861 0.2886 0 +M V30 6 C 0.5483 1.2349 -0.4715 0 +M V30 7 H 2.3546 0.1094 -0.5875 0 +M V30 8 H 1.7498 0.3200 1.1151 0 +M V30 9 H 1.4142 -1.9567 0.2760 0 +M V30 10 H 0.6618 -1.3148 -1.2354 0 +M V30 11 H -0.5866 -1.0475 1.5616 0 +M V30 12 H -1.0336 -2.2238 0.3118 0 +M V30 13 H -1.3878 -0.1279 -1.2615 0 M V30 14 H -2.4870 -0.1148 0.2243 0 -M V30 15 H -1.4000 2.0629 0.1012 0 +M V30 15 H -1.4014 2.0642 0.1019 0 M V30 16 H -0.5245 1.0832 1.3568 0 -M V30 17 H 1.0065 2.2319 -0.4289 0 -M V30 18 H 0.3161 0.9372 -1.5272 0 +M V30 17 H 1.0066 2.2324 -0.4289 0 +M V30 18 H 0.3172 0.9365 -1.5256 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 1 1 2 diff --git a/examples/aligner_directory/unaligned_5.mol b/examples/aligner_directory/unaligned_5.mol index 20809ea..1bdfcfd 100644 --- a/examples/aligner_directory/unaligned_5.mol +++ b/examples/aligner_directory/unaligned_5.mol @@ -5,86 +5,86 @@ M V30 BEGIN CTAB M V30 COUNTS 80 82 0 0 0 M V30 BEGIN ATOM -M V30 1 C -1.2090 -0.3680 3.8328 0 -M V30 2 C 0.0068 0.3520 4.2939 0 -M V30 3 C 1.2333 -0.3802 3.8328 0 -M V30 4 C -0.0111 1.7459 3.8328 0 -M V30 5 H -1.4063 -0.5335 2.7874 0 -M V30 6 H 0.0272 0.3654 5.4047 0 -M V30 7 H 1.3823 -0.5182 2.7565 0 -M V30 8 H 0.7740 2.4597 4.0500 0 -M V30 9 C -3.7452 -1.9815 -0.2564 0 -M V30 10 C -3.7060 -1.9769 -1.7422 0 -M V30 11 C -3.7522 -0.5633 -2.2448 0 -M V30 12 C -2.5247 -2.6991 -2.2310 0 -M V30 13 H -2.9871 -1.4923 0.3311 0 -M V30 14 H -4.6052 -2.4977 -2.1354 0 -M V30 15 H -2.9531 0.1221 -1.9426 0 -M V30 16 H -2.2900 -2.8241 -3.2809 0 -M V30 17 C 3.7117 -1.7544 -0.4931 0 -M V30 18 C 3.6881 -1.7227 -1.9790 0 -M V30 19 C 2.4870 -2.4696 -2.4815 0 -M V30 20 C 3.7230 -0.3386 -2.4677 0 -M V30 21 H 2.9090 -1.3426 0.0944 0 -M V30 22 H 4.5887 -2.2411 -2.3721 0 -M V30 23 H 1.4939 -2.1202 -2.1793 0 -M V30 24 H 3.7138 -0.0729 -3.5176 0 -M V30 25 C 0.0651 4.6915 -0.6293 0 -M V30 26 C 0.0495 4.6552 -2.1152 0 -M V30 27 C 1.2969 3.9885 -2.6177 0 -M V30 28 C -1.1666 3.9933 -2.6040 0 -M V30 29 H 0.1098 3.7904 -0.0418 0 -M V30 30 H 0.0481 5.6943 -2.5084 0 -M V30 31 H 1.4909 2.9537 -2.3156 0 -M V30 32 H -1.3922 3.8525 -3.6538 0 -M V30 33 N -2.4872 -1.3883 3.7609 0 -M V30 34 C -3.8745 -1.7619 3.7839 0 -M V30 35 C -4.1984 -2.7385 2.6570 0 -M V30 36 N -3.9502 -2.2330 1.3718 0 -M V30 37 H -4.5171 -0.8606 3.7069 0 -M V30 38 H -4.0478 -2.3136 4.7329 0 -M V30 39 H -3.5082 -3.6137 2.8302 0 -M V30 40 H -5.2397 -3.0822 2.7630 0 -M V30 41 N 2.5665 -1.5172 3.4762 0 -M V30 42 C 3.5834 -2.5321 3.4992 0 -M V30 43 C 4.5913 -2.3243 2.3724 0 -M V30 44 N 4.0295 -2.3619 1.0871 0 -M V30 45 H 3.1240 -3.5391 3.4220 0 -M V30 46 H 4.1479 -2.4065 4.4482 0 -M V30 47 H 5.0044 -1.2891 2.5457 0 -M V30 48 H 5.4094 -3.0544 2.4783 0 -M V30 49 N -0.0146 3.3139 3.2663 0 -M V30 50 C 0.3539 4.7025 3.2896 0 -M V30 51 C -0.3299 5.4706 2.1622 0 -M V30 52 N -0.0146 5.0032 0.8772 0 -M V30 53 H 1.4557 4.8097 3.2135 0 -M V30 54 H -0.0385 5.1281 4.2383 0 -M V30 55 H -1.4329 5.3092 2.3345 0 -M V30 56 H -0.1082 6.5445 2.2683 0 -M V30 57 N -1.3051 -3.8526 -2.7493 0 -M V30 58 C -0.5224 -4.5768 -3.7124 0 -M V30 59 C 0.8415 -4.9520 -3.1403 0 -M V30 60 N 1.6209 -3.8526 -2.7493 0 -M V30 61 H -0.3984 -3.9764 -4.6373 0 -M V30 62 H -1.0513 -5.5343 -3.9086 0 -M V30 63 H 0.6077 -5.5622 -2.2209 0 -M V30 64 H 1.3749 -5.5901 -3.8627 0 -M V30 65 N -4.1159 0.9096 -2.8953 0 -M V30 66 C -4.7210 2.1628 -3.2533 0 -M V30 67 C -3.6817 3.1377 -3.7990 0 -M V30 68 N -2.6529 3.4436 -2.8953 0 -M V30 69 H -5.2384 2.6046 -2.3767 0 -M V30 70 H -5.4245 1.9581 -4.0890 0 -M V30 71 H -3.2266 2.6049 -4.6830 0 -M V30 72 H -4.1902 4.0471 -4.1570 0 -M V30 73 N 4.2963 1.2636 -2.9418 0 -M V30 74 C 4.5321 2.3035 -3.9049 0 -M V30 75 C 4.1750 3.6723 -3.3328 0 -M V30 76 N 2.8333 3.7976 -2.9418 0 -M V30 77 H 3.9502 2.1107 -4.8298 0 -M V30 78 H 5.6258 2.3242 -4.1011 0 -M V30 79 H 4.8204 3.7749 -2.4134 0 -M V30 80 H 4.4610 4.4533 -4.0552 0 +M V30 1 C -1.0797 -0.5278 3.7809 0 +M V30 2 C 0.1475 0.1796 4.2633 0 +M V30 3 C 1.3632 -0.5405 3.7809 0 +M V30 4 C 0.1143 1.5846 3.7809 0 +M V30 5 H -1.2049 -0.6212 2.6970 0 +M V30 6 H 0.1536 0.2010 5.3630 0 +M V30 7 H 1.4763 -0.6292 2.6961 0 +M V30 8 H 0.9383 2.2539 4.0408 0 +M V30 9 C -3.6747 -1.9085 -0.0989 0 +M V30 10 C -3.6601 -1.8989 -1.5952 0 +M V30 11 C -3.6820 -0.4896 -2.0875 0 +M V30 12 C -2.4551 -2.6274 -2.0696 0 +M V30 13 H -2.8436 -1.4075 0.4087 0 +M V30 14 H -4.5457 -2.4281 -1.9768 0 +M V30 15 H -2.8475 0.1462 -1.7764 0 +M V30 16 H -2.2808 -2.7204 -3.1445 0 +M V30 17 C 3.9436 -1.8414 -0.4703 0 +M V30 18 C 3.9281 -1.8335 -1.9666 0 +M V30 19 C 2.7185 -2.5571 -2.4589 0 +M V30 20 C 3.9564 -0.4257 -2.4410 0 +M V30 21 H 3.0942 -1.3721 0.0373 0 +M V30 22 H 4.8291 -2.3358 -2.3482 0 +M V30 23 H 1.7506 -2.1523 -2.1478 0 +M V30 24 H 3.9498 -0.2283 -3.5160 0 +M V30 25 C -0.1104 4.6319 -0.4994 0 +M V30 26 C -0.1094 4.6145 -1.9958 0 +M V30 27 C 1.1220 3.9288 -2.4881 0 +M V30 28 C -1.3428 3.9351 -2.4702 0 +M V30 29 H -0.0921 3.6616 0.0081 0 +M V30 30 H -0.1250 5.6460 -2.3774 0 +M V30 31 H 1.2554 2.8882 -2.1770 0 +M V30 32 H -1.5105 3.8307 -3.5451 0 +M V30 33 N -2.5804 -1.4498 3.8731 0 +M V30 34 C -3.9680 -1.8222 3.8942 0 +M V30 35 C -4.2934 -2.7985 2.7697 0 +M V30 36 N -4.0438 -2.2947 1.4834 0 +M V30 37 H -4.6090 -0.9233 3.8209 0 +M V30 38 H -4.1401 -2.3744 4.8459 0 +M V30 39 H -3.5919 -3.6602 2.9393 0 +M V30 40 H -5.3280 -3.1524 2.8764 0 +M V30 41 N 2.7588 -1.5558 3.4828 0 +M V30 42 C 3.7750 -2.5714 3.5038 0 +M V30 43 C 4.7833 -2.3651 2.3794 0 +M V30 44 N 4.2223 -2.4007 1.0930 0 +M V30 45 H 3.3169 -3.5759 3.4305 0 +M V30 46 H 4.3392 -2.4445 4.4556 0 +M V30 47 H 5.1789 -1.3267 2.5491 0 +M V30 48 H 5.6069 -3.0842 2.4861 0 +M V30 49 N -0.0698 3.3608 3.4514 0 +M V30 50 C 0.2997 4.7492 3.4728 0 +M V30 51 C -0.3831 5.5182 2.3477 0 +M V30 52 N -0.0698 5.0506 1.0617 0 +M V30 53 H 1.3986 4.8563 3.4006 0 +M V30 54 H -0.0939 5.1738 4.4242 0 +M V30 55 H -1.4801 5.3400 2.5163 0 +M V30 56 H -0.1739 6.5914 2.4547 0 +M V30 57 N -1.2572 -3.7018 -2.6569 0 +M V30 58 C -0.4731 -4.4244 -3.6200 0 +M V30 59 C 0.8896 -4.8008 -3.0500 0 +M V30 60 N 1.6696 -3.7018 -2.6569 0 +M V30 61 H -0.3523 -3.8275 -4.5438 0 +M V30 62 H -1.0047 -5.3832 -3.8158 0 +M V30 63 H 0.6491 -5.3947 -2.1264 0 +M V30 64 H 1.4219 -5.4459 -3.7622 0 +M V30 65 N -4.2750 0.7592 -2.7997 0 +M V30 66 C -4.8791 2.0134 -3.1557 0 +M V30 67 C -3.8427 2.9885 -3.7021 0 +M V30 68 N -2.8116 3.2939 -2.7997 0 +M V30 69 H -5.3979 2.4524 -2.2826 0 +M V30 70 H -5.5841 1.8065 -3.9926 0 +M V30 71 H -3.3830 2.4453 -4.5723 0 +M V30 72 H -4.3455 3.8934 -4.0697 0 +M V30 73 N 4.0219 1.1723 -2.8690 0 +M V30 74 C 4.2556 2.2126 -3.8321 0 +M V30 75 C 3.9002 3.5809 -3.2621 0 +M V30 76 N 2.5585 3.7070 -2.8690 0 +M V30 77 H 3.6783 2.0188 -4.7559 0 +M V30 78 H 5.3518 2.2316 -4.0279 0 +M V30 79 H 4.5348 3.6696 -2.3385 0 +M V30 80 H 4.1928 4.3645 -3.9744 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 1 1 2 From 839629382d3be3d89b860de6983b2d0d09704ac9 Mon Sep 17 00:00:00 2001 From: Andrew Tarzia Date: Sat, 6 Dec 2025 19:58:30 +0000 Subject: [PATCH 05/33] Update example output. --- examples/cage_output/apdcage.mol | 732 ++++++++++++++-------------- examples/cage_output/apdcage_0.mol | 60 +-- examples/cage_output/apdcage_1.mol | 60 +-- examples/cage_output/apdcage_10.mol | 60 +-- examples/cage_output/apdcage_11.mol | 60 +-- examples/cage_output/apdcage_2.mol | 60 +-- examples/cage_output/apdcage_3.mol | 60 +-- examples/cage_output/apdcage_4.mol | 60 +-- examples/cage_output/apdcage_5.mol | 60 +-- examples/cage_output/apdcage_6.mol | 60 +-- examples/cage_output/apdcage_7.mol | 60 +-- examples/cage_output/apdcage_8.mol | 60 +-- examples/cage_output/apdcage_9.mol | 60 +-- 13 files changed, 726 insertions(+), 726 deletions(-) diff --git a/examples/cage_output/apdcage.mol b/examples/cage_output/apdcage.mol index 8fd7035..585fdc1 100644 --- a/examples/cage_output/apdcage.mol +++ b/examples/cage_output/apdcage.mol @@ -5,372 +5,372 @@ M V30 BEGIN CTAB M V30 COUNTS 366 408 0 0 0 M V30 BEGIN ATOM -M V30 1 Pd 9.1503 0.2089 0.4563 0 CHG=2 -M V30 2 Pd 0.4451 9.3952 0.2720 0 CHG=2 -M V30 3 Pd -8.7700 0.0632 -0.1645 0 CHG=2 -M V30 4 Pd 0.0683 -8.6065 0.7341 0 CHG=2 -M V30 5 Pd 0.1907 0.4259 9.4613 0 CHG=2 -M V30 6 Pd 0.5213 0.5884 -8.5871 0 CHG=2 -M V30 7 C 9.9449 2.8186 1.0197 0 -M V30 8 N 9.1674 1.8922 0.4130 0 -M V30 9 C 8.0328 2.3049 -0.1802 0 -M V30 10 C 7.6455 3.6313 -0.1866 0 -M V30 11 C 8.4342 4.5793 0.4302 0 -M V30 12 C 8.0225 5.9809 0.4220 0 -M V30 13 C 8.9515 6.9996 0.4207 0 -M V30 14 C 8.5783 8.3421 0.4126 0 -M V30 15 C 7.2427 8.6895 0.4055 0 -M V30 16 C 6.2894 7.6916 0.4066 0 -M V30 17 C 4.8897 8.0613 0.3984 0 -M V30 18 C 3.9521 7.2626 -0.2104 0 -M V30 19 C 2.6376 7.6701 -0.1836 0 -M V30 20 N 2.2472 8.8124 0.4130 0 -M V30 21 C 3.1504 9.6056 1.0133 0 -M V30 22 C 4.4561 9.2233 0.9997 0 -M V30 23 C 6.6883 6.3537 0.4149 0 -M V30 24 C 9.5970 4.1531 1.0376 0 -M V30 25 H 10.8549 2.4421 1.4881 0 -M V30 26 H 7.3651 1.5911 -0.6878 0 -M V30 27 H 6.7328 3.9742 -0.6611 0 -M V30 28 H 10.0072 6.7403 0.4262 0 -M V30 29 H 9.3252 9.1202 0.4118 0 -M V30 30 H 6.9262 9.7338 0.3991 0 -M V30 31 H 4.2119 6.3255 -0.7094 0 -M V30 32 H 1.8795 7.0441 -0.6641 0 -M V30 33 H 2.8161 10.5336 1.4950 0 -M V30 34 H 5.1616 9.8958 1.4988 0 -M V30 35 H 5.9522 5.5794 0.4157 0 -M V30 36 H 10.2510 4.8407 1.5325 0 -M V30 37 C 9.8467 -2.8185 -0.0805 0 -M V30 38 N 9.0691 -1.8922 0.5261 0 -M V30 39 C 7.9346 -2.3048 1.1193 0 -M V30 40 C 7.5473 -3.6313 1.1257 0 -M V30 41 C 8.3360 -4.5792 0.5090 0 -M V30 42 C 7.9243 -5.9809 0.5171 0 -M V30 43 C 8.8532 -6.9995 0.5184 0 -M V30 44 C 8.4801 -8.3421 0.5265 0 -M V30 45 C 7.1445 -8.6895 0.5336 0 -M V30 46 C 6.1912 -7.6915 0.5325 0 -M V30 47 C 4.7915 -8.0612 0.5407 0 -M V30 48 C 3.8539 -7.2626 1.1496 0 -M V30 49 C 2.5394 -7.6701 1.1228 0 -M V30 50 N 2.1490 -8.8124 0.5261 0 -M V30 51 C 3.0521 -9.6055 -0.0742 0 -M V30 52 C 4.3579 -9.2232 -0.0605 0 -M V30 53 C 6.5901 -6.3537 0.5243 0 -M V30 54 C 9.4988 -4.1531 -0.0985 0 -M V30 55 H 10.7567 -2.4421 -0.5489 0 -M V30 56 H 7.2669 -1.5910 1.6270 0 -M V30 57 H 6.6346 -3.9742 1.6003 0 -M V30 58 H 9.9090 -6.7402 0.5129 0 -M V30 59 H 9.2270 -9.1202 0.5273 0 -M V30 60 H 6.8280 -9.7337 0.5400 0 -M V30 61 H 4.1137 -6.3255 1.6486 0 -M V30 62 H 1.7813 -7.0441 1.6033 0 -M V30 63 H 2.7178 -10.5335 -0.5559 0 -M V30 64 H 5.0633 -9.8957 -0.5597 0 -M V30 65 H 5.8539 -5.5794 0.5235 0 -M V30 66 H 10.1527 -4.8406 -0.5934 0 -M V30 67 C 9.7847 -0.5290 3.5671 0 -M V30 68 N 9.0072 0.0776 2.6407 0 -M V30 69 C 7.8726 0.6709 3.0534 0 -M V30 70 C 7.4853 0.6773 4.3798 0 -M V30 71 C 8.2740 0.0605 5.3278 0 -M V30 72 C 7.8623 0.0687 6.7294 0 -M V30 73 C 8.7913 0.0700 7.7481 0 -M V30 74 C 8.4181 0.0781 9.0906 0 -M V30 75 C 7.0825 0.0852 9.4380 0 -M V30 76 C 6.1292 0.0841 8.4401 0 -M V30 77 C 4.7295 0.0923 8.8098 0 -M V30 78 C 3.7919 0.7011 8.0111 0 -M V30 79 C 2.4774 0.6743 8.4186 0 -M V30 80 N 2.0870 0.0776 9.5609 0 -M V30 81 C 2.9902 -0.5226 10.3541 0 -M V30 82 C 4.2959 -0.5090 9.9718 0 -M V30 83 C 6.5281 0.0758 7.1022 0 -M V30 84 C 9.4368 -0.5469 4.9016 0 -M V30 85 H 10.6947 -0.9974 3.1907 0 -M V30 86 H 7.2049 1.1785 2.3396 0 -M V30 87 H 6.5726 1.1518 4.7227 0 -M V30 88 H 9.8470 0.0645 7.4888 0 -M V30 89 H 9.1650 0.0789 9.8687 0 -M V30 90 H 6.7660 0.0916 10.4823 0 -M V30 91 H 4.0517 1.2001 7.0740 0 -M V30 92 H 1.7193 1.1548 7.7926 0 -M V30 93 H 2.6558 -1.0043 11.2821 0 -M V30 94 H 5.0014 -1.0081 10.6443 0 -M V30 95 H 5.7919 0.0750 6.3279 0 -M V30 96 H 10.0907 -1.0418 5.5892 0 -M V30 97 C 10.2957 0.9008 -2.1911 0 -M V30 98 N 9.5182 0.2942 -1.2648 0 -M V30 99 C 8.3836 -0.2990 -1.6774 0 -M V30 100 C 7.9963 -0.3054 -3.0039 0 -M V30 101 C 8.7850 0.3113 -3.9518 0 -M V30 102 C 8.3733 0.3032 -5.3535 0 -M V30 103 C 9.3023 0.3019 -6.3721 0 -M V30 104 C 8.9291 0.2938 -7.7147 0 -M V30 105 C 7.5935 0.2867 -8.0621 0 -M V30 106 C 6.6402 0.2878 -7.0641 0 -M V30 107 C 5.2405 0.2796 -7.4338 0 -M V30 108 C 4.3029 -0.3293 -6.6352 0 -M V30 109 C 2.9884 -0.3025 -7.0427 0 -M V30 110 N 2.5980 0.2942 -8.1850 0 -M V30 111 C 3.5012 0.8945 -8.9781 0 -M V30 112 C 4.8069 0.8808 -8.5958 0 -M V30 113 C 7.0391 0.2960 -5.7263 0 -M V30 114 C 9.9478 0.9188 -3.5257 0 -M V30 115 H 11.2057 1.3692 -1.8147 0 -M V30 116 H 7.7159 -0.8067 -0.9636 0 -M V30 117 H 7.0836 -0.7800 -3.3468 0 -M V30 118 H 10.3580 0.3074 -6.1128 0 -M V30 119 H 9.6760 0.2930 -8.4928 0 -M V30 120 H 7.2770 0.2803 -9.1063 0 -M V30 121 H 4.5627 -0.8283 -5.6981 0 -M V30 122 H 2.2303 -0.7830 -6.4167 0 -M V30 123 H 3.1668 1.3762 -9.9061 0 -M V30 124 H 5.5124 1.3800 -9.2683 0 -M V30 125 H 6.3029 0.2968 -4.9520 0 -M V30 126 H 10.6017 1.4137 -4.2132 0 -M V30 127 C -2.4551 9.8000 0.8236 0 -M V30 128 N -1.5288 9.0224 0.2169 0 -M V30 129 C -1.9414 7.8879 -0.3763 0 -M V30 130 C -3.2679 7.5005 -0.3827 0 -M V30 131 C -4.2158 8.2893 0.2341 0 -M V30 132 C -5.6175 7.8776 0.2259 0 -M V30 133 C -6.6362 8.8065 0.2246 0 -M V30 134 C -7.9787 8.4334 0.2165 0 -M V30 135 C -8.3261 7.0978 0.2094 0 -M V30 136 C -7.3281 6.1445 0.2105 0 -M V30 137 C -7.6978 4.7448 0.2023 0 -M V30 138 C -6.8992 3.8072 -0.4065 0 -M V30 139 C -7.3067 2.4926 -0.3797 0 -M V30 140 N -8.4490 2.1022 0.2169 0 -M V30 141 C -9.2421 3.0054 0.8172 0 -M V30 142 C -8.8599 4.3111 0.8036 0 -M V30 143 C -5.9903 6.5434 0.2188 0 -M V30 144 C -3.7897 9.4521 0.8415 0 -M V30 145 H -2.0787 10.7099 1.2920 0 -M V30 146 H -1.2276 7.2202 -0.8839 0 -M V30 147 H -3.6108 6.5879 -0.8572 0 -M V30 148 H -6.3769 9.8622 0.2301 0 -M V30 149 H -8.7568 9.1803 0.2157 0 -M V30 150 H -9.3704 6.7812 0.2030 0 -M V30 151 H -5.9621 4.0670 -0.9055 0 -M V30 152 H -6.6807 1.7346 -0.8602 0 -M V30 153 H -10.1702 2.6711 1.2989 0 -M V30 154 H -9.5324 5.0166 1.3027 0 -M V30 155 H -5.2160 5.8072 0.2196 0 -M V30 156 H -4.4772 10.1060 1.3364 0 -M V30 157 C -9.7652 -3.0596 0.8266 0 -M V30 158 N -8.9876 -2.1332 0.2200 0 -M V30 159 C -7.8530 -2.5459 -0.3732 0 -M V30 160 C -7.4657 -3.8723 -0.3796 0 -M V30 161 C -8.2545 -4.8203 0.2371 0 -M V30 162 C -7.8427 -6.2219 0.2290 0 -M V30 163 C -8.7717 -7.2406 0.2277 0 -M V30 164 C -8.3985 -8.5831 0.2196 0 -M V30 165 C -7.0630 -8.9305 0.2125 0 -M V30 166 C -6.1096 -7.9326 0.2136 0 -M V30 167 C -4.7099 -8.3023 0.2054 0 -M V30 168 C -3.7723 -7.5036 -0.4034 0 -M V30 169 C -2.4578 -7.9112 -0.3767 0 -M V30 170 N -2.0674 -9.0534 0.2200 0 -M V30 171 C -2.9706 -9.8466 0.8203 0 -M V30 172 C -4.2763 -9.4643 0.8066 0 -M V30 173 C -6.5085 -6.5947 0.2218 0 -M V30 174 C -9.4172 -4.3941 0.8446 0 -M V30 175 H -10.6751 -2.6832 1.2951 0 -M V30 176 H -7.1853 -1.8321 -0.8809 0 -M V30 177 H -6.5531 -4.2152 -0.8541 0 -M V30 178 H -9.8274 -6.9813 0.2332 0 -M V30 179 H -9.1454 -9.3612 0.2188 0 -M V30 180 H -6.7464 -9.9748 0.2061 0 -M V30 181 H -4.0322 -6.5665 -0.9025 0 -M V30 182 H -1.6998 -7.2851 -0.8572 0 -M V30 183 H -2.6363 -10.7746 1.3020 0 -M V30 184 H -4.9818 -10.1368 1.3058 0 -M V30 185 H -5.7724 -5.8204 0.2226 0 -M V30 186 H -10.0712 -5.0817 1.3395 0 -M V30 187 C -9.1827 0.5562 2.7000 0 -M V30 188 N -8.4051 -0.0504 1.7737 0 -M V30 189 C -7.2706 -0.6436 2.1863 0 -M V30 190 C -6.8833 -0.6500 3.5128 0 -M V30 191 C -7.6720 -0.0333 4.4607 0 -M V30 192 C -7.2603 -0.0415 5.8624 0 -M V30 193 C -8.1893 -0.0427 6.8810 0 -M V30 194 C -7.8161 -0.0508 8.2236 0 -M V30 195 C -6.4805 -0.0579 8.5710 0 -M V30 196 C -5.5272 -0.0568 7.5730 0 -M V30 197 C -4.1275 -0.0650 7.9427 0 -M V30 198 C -3.1899 -0.6739 7.1441 0 -M V30 199 C -1.8754 -0.6471 7.5516 0 -M V30 200 N -1.4850 -0.0504 8.6938 0 -M V30 201 C -2.3882 0.5499 9.4870 0 -M V30 202 C -3.6939 0.5362 9.1047 0 -M V30 203 C -5.9261 -0.0486 6.2352 0 -M V30 204 C -8.8348 0.5742 4.0346 0 -M V30 205 H -10.0927 1.0246 2.3236 0 -M V30 206 H -6.6029 -1.1513 1.4725 0 -M V30 207 H -5.9706 -1.1246 3.8557 0 -M V30 208 H -9.2450 -0.0372 6.6217 0 -M V30 209 H -8.5630 -0.0517 9.0017 0 -M V30 210 H -6.1640 -0.0643 9.6152 0 -M V30 211 H -3.4497 -1.1729 6.2069 0 -M V30 212 H -1.1173 -1.1276 6.9256 0 -M V30 213 H -2.0538 1.0315 10.4150 0 -M V30 214 H -4.3993 1.0354 9.7772 0 -M V30 215 H -5.1899 -0.0478 5.4609 0 -M V30 216 H -9.4887 1.0691 4.7221 0 -M V30 217 C -9.1563 -0.4534 -3.3433 0 -M V30 218 N -8.3787 0.1532 -2.4169 0 -M V30 219 C -7.2442 0.7464 -2.8296 0 -M V30 220 C -6.8568 0.7528 -4.1560 0 -M V30 221 C -7.6456 0.1361 -5.1040 0 -M V30 222 C -7.2339 0.1442 -6.5056 0 -M V30 223 C -8.1628 0.1455 -7.5243 0 -M V30 224 C -7.7897 0.1536 -8.8668 0 -M V30 225 C -6.4541 0.1607 -9.2142 0 -M V30 226 C -5.5008 0.1596 -8.2163 0 -M V30 227 C -4.1011 0.1678 -8.5860 0 -M V30 228 C -3.1635 0.7767 -7.7873 0 -M V30 229 C -1.8489 0.7499 -8.1949 0 -M V30 230 N -1.4585 0.1532 -9.3371 0 -M V30 231 C -2.3617 -0.4471 -10.1303 0 -M V30 232 C -3.6674 -0.4334 -9.7480 0 -M V30 233 C -5.8997 0.1514 -6.8785 0 -M V30 234 C -8.8083 -0.4714 -4.6778 0 -M V30 235 H -10.0662 -0.9218 -2.9669 0 -M V30 236 H -6.5765 1.2541 -2.1158 0 -M V30 237 H -5.9442 1.2274 -4.4989 0 -M V30 238 H -9.2185 0.1400 -7.2650 0 -M V30 239 H -8.5366 0.1544 -9.6449 0 -M V30 240 H -6.1375 0.1671 -10.2585 0 -M V30 241 H -3.4233 1.2757 -6.8502 0 -M V30 242 H -1.0909 1.2304 -7.5689 0 -M V30 243 H -2.0274 -0.9288 -11.0583 0 -M V30 244 H -4.3729 -0.9326 -10.4205 0 -M V30 245 H -5.1635 0.1506 -6.1041 0 -M V30 246 H -9.4623 -0.9663 -5.3654 0 -M V30 247 C 0.6569 10.0349 3.1107 0 -M V30 248 N 0.0503 9.2573 2.1844 0 -M V30 249 C -0.5430 8.1227 2.5970 0 -M V30 250 C -0.5494 7.7354 3.9235 0 -M V30 251 C 0.0674 8.5241 4.8714 0 -M V30 252 C 0.0592 8.1124 6.2731 0 -M V30 253 C 0.0579 9.0414 7.2918 0 -M V30 254 C 0.0498 8.6682 8.6343 0 -M V30 255 C 0.0428 7.3327 8.9817 0 -M V30 256 C 0.0439 6.3793 7.9837 0 -M V30 257 C 0.0356 4.9796 8.3534 0 -M V30 258 C -0.5732 4.0420 7.5548 0 -M V30 259 C -0.5464 2.7275 7.9623 0 -M V30 260 N 0.0503 2.3371 9.1046 0 -M V30 261 C 0.6506 3.2403 9.8977 0 -M V30 262 C 0.6369 4.5460 9.5154 0 -M V30 263 C 0.0521 6.7782 6.6459 0 -M V30 264 C 0.6748 9.6869 4.4453 0 -M V30 265 H 1.1253 10.9448 2.7343 0 -M V30 266 H -1.0506 7.4550 1.8832 0 -M V30 267 H -1.0239 6.8227 4.2664 0 -M V30 268 H 0.0634 10.0971 7.0325 0 -M V30 269 H 0.0490 9.4151 9.4124 0 -M V30 270 H 0.0363 7.0161 10.0259 0 -M V30 271 H -1.0722 4.3018 6.6177 0 -M V30 272 H -1.0269 1.9695 7.3363 0 -M V30 273 H 1.1322 2.9060 10.8258 0 -M V30 274 H 1.1361 5.2515 10.1880 0 -M V30 275 H 0.0529 6.0421 5.8716 0 -M V30 276 H 1.1697 10.3409 5.1328 0 -M V30 277 C -0.4414 10.4236 -2.7332 0 -M V30 278 N 0.1653 9.6460 -1.8069 0 -M V30 279 C 0.7585 8.5114 -2.2195 0 -M V30 280 C 0.7649 8.1241 -3.5460 0 -M V30 281 C 0.1482 8.9128 -4.4939 0 -M V30 282 C 0.1563 8.5011 -5.8955 0 -M V30 283 C 0.1576 9.4301 -6.9142 0 -M V30 284 C 0.1657 9.0569 -8.2568 0 -M V30 285 C 0.1728 7.7214 -8.6042 0 -M V30 286 C 0.1717 6.7680 -7.6062 0 -M V30 287 C 0.1799 5.3683 -7.9759 0 -M V30 288 C 0.7887 4.4307 -7.1773 0 -M V30 289 C 0.7619 3.1162 -7.5848 0 -M V30 290 N 0.1653 2.7258 -8.7270 0 -M V30 291 C -0.4350 3.6290 -9.5202 0 -M V30 292 C -0.4214 4.9347 -9.1379 0 -M V30 293 C 0.1635 7.1669 -6.2684 0 -M V30 294 C -0.4593 10.0756 -4.0678 0 -M V30 295 H -0.9098 11.3335 -2.3568 0 -M V30 296 H 1.2661 7.8437 -1.5057 0 -M V30 297 H 1.2394 7.2115 -3.8889 0 -M V30 298 H 0.1521 10.4858 -6.6549 0 -M V30 299 H 0.1665 9.8038 -9.0349 0 -M V30 300 H 0.1792 7.4048 -9.6484 0 -M V30 301 H 1.2878 4.6905 -6.2401 0 -M V30 302 H 1.2424 2.3582 -6.9588 0 -M V30 303 H -0.9167 3.2947 -10.4482 0 -M V30 304 H -0.9205 5.6402 -9.8104 0 -M V30 305 H 0.1626 6.4308 -5.4941 0 -M V30 306 H -0.9542 10.7296 -4.7553 0 -M V30 307 C -0.3437 -9.2594 3.8355 0 -M V30 308 N 0.2629 -8.4818 2.9091 0 -M V30 309 C 0.8561 -7.3473 3.3218 0 -M V30 310 C 0.8625 -6.9600 4.6482 0 -M V30 311 C 0.2458 -7.7487 5.5962 0 -M V30 312 C 0.2539 -7.3370 6.9978 0 -M V30 313 C 0.2552 -8.2660 8.0165 0 -M V30 314 C 0.2633 -7.8928 9.3590 0 -M V30 315 C 0.2704 -6.5572 9.7065 0 -M V30 316 C 0.2693 -5.6039 8.7085 0 -M V30 317 C 0.2775 -4.2042 9.0782 0 -M V30 318 C 0.8864 -3.2666 8.2796 0 -M V30 319 C 0.8596 -1.9521 8.6871 0 -M V30 320 N 0.2629 -1.5617 9.8293 0 -M V30 321 C -0.3374 -2.4649 10.6225 0 -M V30 322 C -0.3237 -3.7706 10.2402 0 -M V30 323 C 0.2611 -6.0028 7.3707 0 -M V30 324 C -0.3617 -8.9115 5.1701 0 -M V30 325 H -0.8121 -10.1694 3.4591 0 -M V30 326 H 1.3638 -6.6796 2.6080 0 -M V30 327 H 1.3371 -6.0473 4.9911 0 -M V30 328 H 0.2497 -9.3217 7.7572 0 -M V30 329 H 0.2641 -8.6397 10.1372 0 -M V30 330 H 0.2768 -6.2407 10.7507 0 -M V30 331 H 1.3854 -3.5264 7.3424 0 -M V30 332 H 1.3401 -1.1940 8.0611 0 -M V30 333 H -0.8191 -2.1305 11.5505 0 -M V30 334 H -0.8229 -4.4760 10.9127 0 -M V30 335 H 0.2603 -5.2666 6.5963 0 -M V30 336 H -0.8566 -9.5654 5.8576 0 -M V30 337 C 0.6186 -8.6679 -2.2291 0 -M V30 338 N 0.0120 -7.8903 -1.3028 0 -M V30 339 C -0.5812 -6.7558 -1.7154 0 -M V30 340 C -0.5876 -6.3684 -3.0419 0 -M V30 341 C 0.0291 -7.1572 -3.9898 0 -M V30 342 C 0.0209 -6.7455 -5.3915 0 -M V30 343 C 0.0196 -7.6744 -6.4102 0 -M V30 344 C 0.0116 -7.3013 -7.7527 0 -M V30 345 C 0.0045 -5.9657 -8.1001 0 -M V30 346 C 0.0056 -5.0124 -7.1021 0 -M V30 347 C -0.0026 -3.6127 -7.4718 0 -M V30 348 C -0.6115 -2.6751 -6.6732 0 -M V30 349 C -0.5847 -1.3605 -7.0807 0 -M V30 350 N 0.0120 -0.9701 -8.2230 0 -M V30 351 C 0.6123 -1.8733 -9.0161 0 -M V30 352 C 0.5986 -3.1790 -8.6338 0 -M V30 353 C 0.0138 -5.4113 -5.7643 0 -M V30 354 C 0.6366 -8.3199 -3.5637 0 -M V30 355 H 1.0870 -9.5778 -1.8527 0 -M V30 356 H -1.0889 -6.0881 -1.0016 0 -M V30 357 H -1.0622 -5.4558 -3.3848 0 -M V30 358 H 0.0252 -8.7301 -6.1509 0 -M V30 359 H 0.0107 -8.0482 -8.5308 0 -M V30 360 H -0.0019 -5.6491 -9.1443 0 -M V30 361 H -1.1105 -2.9349 -5.7361 0 -M V30 362 H -1.0652 -0.6025 -6.4547 0 -M V30 363 H 1.0939 -1.5390 -9.9442 0 -M V30 364 H 1.0978 -3.8845 -9.3063 0 -M V30 365 H 0.0146 -4.6751 -4.9900 0 -M V30 366 H 1.1314 -8.9739 -4.2512 0 +M V30 1 Pd 9.2809 0.0361 0.7189 0 CHG=2 +M V30 2 Pd 0.2036 9.1632 -0.0340 0 CHG=2 +M V30 3 Pd -8.6166 0.1725 -0.0093 0 CHG=2 +M V30 4 Pd 0.1864 -8.4996 0.4481 0 CHG=2 +M V30 5 Pd 0.1945 0.2666 9.2132 0 CHG=2 +M V30 6 Pd 0.4004 0.9536 -8.6693 0 CHG=2 +M V30 7 C 9.9115 2.8217 0.8925 0 +M V30 8 N 9.1510 1.8816 0.3019 0 +M V30 9 C 8.0085 2.2725 -0.2911 0 +M V30 10 C 7.5994 3.6048 -0.3087 0 +M V30 11 C 8.3753 4.5818 0.2967 0 +M V30 12 C 7.9850 5.9896 0.3013 0 +M V30 13 C 8.9740 6.9508 0.2988 0 +M V30 14 C 8.6432 8.3101 0.3026 0 +M V30 15 C 7.2958 8.6081 0.3088 0 +M V30 16 C 6.3067 7.6463 0.3113 0 +M V30 17 C 4.9040 8.0492 0.3174 0 +M V30 18 C 3.9637 7.2310 -0.3109 0 +M V30 19 C 2.6222 7.6122 -0.3080 0 +M V30 20 N 2.2720 8.7606 0.3019 0 +M V30 21 C 3.1763 9.5450 0.9048 0 +M V30 22 C 4.5186 9.2350 0.9433 0 +M V30 23 C 6.6391 6.2933 0.3076 0 +M V30 24 C 9.5415 4.1523 0.8970 0 +M V30 25 H 10.8347 2.4734 1.3666 0 +M V30 26 H 7.3547 1.5478 -0.7855 0 +M V30 27 H 6.6643 3.8982 -0.7976 0 +M V30 28 H 10.0267 6.7094 0.2938 0 +M V30 29 H 9.4263 9.0359 0.3007 0 +M V30 30 H 7.0239 9.6577 0.3117 0 +M V30 31 H 4.2339 6.3135 -0.7990 0 +M V30 32 H 1.8812 6.9906 -0.7900 0 +M V30 33 H 2.8151 10.4630 1.3798 0 +M V30 34 H 5.2621 9.8605 1.4272 0 +M V30 35 H 5.8762 5.5489 0.3096 0 +M V30 36 H 10.1568 4.9010 1.3726 0 +M V30 37 C 10.2068 -2.9229 0.0994 0 +M V30 38 N 9.4463 -1.9828 0.6900 0 +M V30 39 C 8.3037 -2.3737 1.2830 0 +M V30 40 C 7.8947 -3.7061 1.3007 0 +M V30 41 C 8.6706 -4.6831 0.6952 0 +M V30 42 C 8.2803 -6.0909 0.6906 0 +M V30 43 C 9.2693 -7.0521 0.6931 0 +M V30 44 C 8.9385 -8.4114 0.6894 0 +M V30 45 C 7.5911 -8.7093 0.6831 0 +M V30 46 C 6.6019 -7.7475 0.6806 0 +M V30 47 C 5.1992 -8.1504 0.6746 0 +M V30 48 C 4.2590 -7.3322 1.3029 0 +M V30 49 C 2.9175 -7.7135 1.2999 0 +M V30 50 N 2.5673 -8.8618 0.6900 0 +M V30 51 C 3.4715 -9.6463 0.0872 0 +M V30 52 C 4.8139 -9.3362 0.0487 0 +M V30 53 C 6.9344 -6.3945 0.6844 0 +M V30 54 C 9.8368 -4.2536 0.0950 0 +M V30 55 H 11.1299 -2.5746 -0.3746 0 +M V30 56 H 7.6500 -1.6490 1.7774 0 +M V30 57 H 6.9596 -3.9994 1.7895 0 +M V30 58 H 10.3219 -6.8106 0.6982 0 +M V30 59 H 9.7216 -9.1371 0.6912 0 +M V30 60 H 7.3191 -9.7589 0.6803 0 +M V30 61 H 4.5292 -6.4147 1.7910 0 +M V30 62 H 2.1765 -7.0918 1.7820 0 +M V30 63 H 3.1104 -10.5642 -0.3879 0 +M V30 64 H 5.5573 -9.9617 -0.4352 0 +M V30 65 H 6.1714 -5.6501 0.6824 0 +M V30 66 H 10.4520 -5.0022 -0.3807 0 +M V30 67 C 9.9213 -0.5907 3.6064 0 +M V30 68 N 9.1609 -0.0001 2.6663 0 +M V30 69 C 8.0183 0.5929 3.0572 0 +M V30 70 C 7.6092 0.6105 4.3896 0 +M V30 71 C 8.3852 0.0051 5.3666 0 +M V30 72 C 7.9948 0.0005 6.7744 0 +M V30 73 C 8.9838 0.0030 7.7356 0 +M V30 74 C 8.6530 -0.0008 9.0949 0 +M V30 75 C 7.3056 -0.0070 9.3928 0 +M V30 76 C 6.3165 -0.0095 8.4310 0 +M V30 77 C 4.9138 -0.0156 8.8339 0 +M V30 78 C 3.9736 0.6127 8.0157 0 +M V30 79 C 2.6321 0.6098 8.3970 0 +M V30 80 N 2.2818 -0.0001 9.5454 0 +M V30 81 C 3.1861 -0.6030 10.3298 0 +M V30 82 C 4.5285 -0.6415 10.0197 0 +M V30 83 C 6.6489 -0.0058 7.0781 0 +M V30 84 C 9.5514 -0.5952 4.9371 0 +M V30 85 H 10.8445 -1.0648 3.2581 0 +M V30 86 H 7.3645 1.0873 2.3325 0 +M V30 87 H 6.6742 1.0994 4.6829 0 +M V30 88 H 10.0365 0.0080 7.4941 0 +M V30 89 H 9.4362 0.0011 9.8206 0 +M V30 90 H 7.0337 -0.0098 10.4424 0 +M V30 91 H 4.2438 1.1008 7.0982 0 +M V30 92 H 1.8910 1.0918 7.7753 0 +M V30 93 H 2.8249 -1.0780 11.2478 0 +M V30 94 H 5.2719 -1.1254 10.6452 0 +M V30 95 H 5.8860 -0.0078 6.3336 0 +M V30 96 H 10.1666 -1.0708 5.6857 0 +M V30 97 C 10.1028 0.8987 -2.2551 0 +M V30 98 N 9.3423 0.3081 -1.3150 0 +M V30 99 C 8.1998 -0.2849 -1.7059 0 +M V30 100 C 7.7907 -0.3026 -3.0383 0 +M V30 101 C 8.5666 0.3029 -4.0153 0 +M V30 102 C 8.1763 0.3075 -5.4231 0 +M V30 103 C 9.1653 0.3050 -6.3843 0 +M V30 104 C 8.8345 0.3087 -7.7436 0 +M V30 105 C 7.4871 0.3150 -8.0415 0 +M V30 106 C 6.4979 0.3175 -7.0797 0 +M V30 107 C 5.0953 0.3235 -7.4826 0 +M V30 108 C 4.1550 -0.3047 -6.6644 0 +M V30 109 C 2.8135 -0.3018 -7.0457 0 +M V30 110 N 2.4633 0.3081 -8.1941 0 +M V30 111 C 3.3675 0.9109 -8.9785 0 +M V30 112 C 4.7099 0.9494 -8.6684 0 +M V30 113 C 6.8304 0.3137 -5.7268 0 +M V30 114 C 9.7328 0.9031 -3.5858 0 +M V30 115 H 11.0260 1.3727 -1.9068 0 +M V30 116 H 7.5460 -0.7793 -0.9812 0 +M V30 117 H 6.8556 -0.7914 -3.3316 0 +M V30 118 H 10.2179 0.2999 -6.1428 0 +M V30 119 H 9.6176 0.3069 -8.4693 0 +M V30 120 H 7.2151 0.3178 -9.0911 0 +M V30 121 H 4.4252 -0.7929 -5.7469 0 +M V30 122 H 2.0725 -0.7839 -6.4240 0 +M V30 123 H 3.0064 1.3860 -9.8965 0 +M V30 124 H 5.4534 1.4334 -9.2939 0 +M V30 125 H 6.0675 0.3157 -4.9823 0 +M V30 126 H 10.3480 1.3788 -4.3344 0 +M V30 127 C -2.7676 9.8452 0.8807 0 +M V30 128 N -1.8275 9.0848 0.2901 0 +M V30 129 C -2.2184 7.9422 -0.3029 0 +M V30 130 C -3.5508 7.5331 -0.3205 0 +M V30 131 C -4.5278 8.3091 0.2849 0 +M V30 132 C -5.9356 7.9187 0.2895 0 +M V30 133 C -6.8968 8.9077 0.2870 0 +M V30 134 C -8.2561 8.5769 0.2908 0 +M V30 135 C -8.5540 7.2295 0.2970 0 +M V30 136 C -7.5922 6.2404 0.2995 0 +M V30 137 C -7.9951 4.8377 0.3056 0 +M V30 138 C -7.1769 3.8975 -0.3227 0 +M V30 139 C -7.5582 2.5560 -0.3198 0 +M V30 140 N -8.7065 2.2057 0.2901 0 +M V30 141 C -9.4910 3.1100 0.8929 0 +M V30 142 C -9.1809 4.4524 0.9314 0 +M V30 143 C -6.2392 6.5728 0.2958 0 +M V30 144 C -4.0983 9.4753 0.8852 0 +M V30 145 H -2.4193 10.7684 1.3548 0 +M V30 146 H -1.4937 7.2884 -0.7973 0 +M V30 147 H -3.8441 6.5981 -0.8094 0 +M V30 148 H -6.6553 9.9604 0.2820 0 +M V30 149 H -8.9818 9.3601 0.2889 0 +M V30 150 H -9.6036 6.9576 0.2998 0 +M V30 151 H -6.2594 4.1677 -0.8108 0 +M V30 152 H -6.9365 1.8149 -0.8018 0 +M V30 153 H -10.4089 2.7488 1.3680 0 +M V30 154 H -9.8064 5.1958 1.4154 0 +M V30 155 H -5.4948 5.8099 0.2978 0 +M V30 156 H -4.8469 10.0905 1.3608 0 +M V30 157 C -9.7489 -2.8127 0.7592 0 +M V30 158 N -8.9884 -1.8726 0.1686 0 +M V30 159 C -7.8459 -2.2635 -0.4244 0 +M V30 160 C -7.4368 -3.5959 -0.4420 0 +M V30 161 C -8.2127 -4.5729 0.1635 0 +M V30 162 C -7.8224 -5.9807 0.1681 0 +M V30 163 C -8.8114 -6.9419 0.1655 0 +M V30 164 C -8.4806 -8.3012 0.1693 0 +M V30 165 C -7.1332 -8.5991 0.1755 0 +M V30 166 C -6.1440 -7.6373 0.1781 0 +M V30 167 C -4.7414 -8.0402 0.1841 0 +M V30 168 C -3.8011 -7.2220 -0.4442 0 +M V30 169 C -2.4596 -7.6033 -0.4413 0 +M V30 170 N -2.1094 -8.7516 0.1686 0 +M V30 171 C -3.0136 -9.5361 0.7715 0 +M V30 172 C -4.3560 -9.2260 0.8100 0 +M V30 173 C -6.4765 -6.2843 0.1743 0 +M V30 174 C -9.3789 -4.1434 0.7637 0 +M V30 175 H -10.6721 -2.4644 1.2333 0 +M V30 176 H -7.1921 -1.5388 -0.9187 0 +M V30 177 H -6.5017 -3.8892 -0.9309 0 +M V30 178 H -9.8640 -6.7004 0.1605 0 +M V30 179 H -9.2637 -9.0269 0.1674 0 +M V30 180 H -6.8612 -9.6487 0.1784 0 +M V30 181 H -4.0713 -6.3045 -0.9323 0 +M V30 182 H -1.7186 -6.9816 -0.9233 0 +M V30 183 H -2.6525 -10.4541 1.2465 0 +M V30 184 H -5.0995 -9.8515 1.2939 0 +M V30 185 H -5.7136 -5.5399 0.1763 0 +M V30 186 H -9.9941 -4.8920 1.2394 0 +M V30 187 C -9.3639 0.5872 2.9742 0 +M V30 188 N -8.6035 -0.0034 2.0340 0 +M V30 189 C -7.4609 -0.5964 2.4250 0 +M V30 190 C -7.0518 -0.6140 3.7573 0 +M V30 191 C -7.8278 -0.0086 4.7343 0 +M V30 192 C -7.4374 -0.0040 6.1421 0 +M V30 193 C -8.4264 -0.0065 7.1033 0 +M V30 194 C -8.0957 -0.0027 8.4626 0 +M V30 195 C -6.7482 0.0035 8.7605 0 +M V30 196 C -5.7591 0.0060 7.7988 0 +M V30 197 C -4.3564 0.0121 8.2016 0 +M V30 198 C -3.4162 -0.6162 7.3835 0 +M V30 199 C -2.0747 -0.6133 7.7647 0 +M V30 200 N -1.7244 -0.0034 8.9131 0 +M V30 201 C -2.6287 0.5995 9.6975 0 +M V30 202 C -3.9711 0.6380 9.3875 0 +M V30 203 C -6.0915 0.0023 6.4458 0 +M V30 204 C -8.9940 0.5917 4.3048 0 +M V30 205 H -10.2871 1.0613 2.6259 0 +M V30 206 H -6.8071 -1.0908 1.7002 0 +M V30 207 H -6.1168 -1.1029 4.0506 0 +M V30 208 H -9.4791 -0.0115 6.8619 0 +M V30 209 H -8.8788 -0.0046 9.1883 0 +M V30 210 H -6.4763 0.0063 9.8101 0 +M V30 211 H -3.6864 -1.1043 6.4660 0 +M V30 212 H -1.3337 -1.0953 7.1431 0 +M V30 213 H -2.2675 1.0745 10.6155 0 +M V30 214 H -4.7145 1.1219 10.0129 0 +M V30 215 H -5.3286 0.0043 5.7013 0 +M V30 216 H -9.6092 1.0673 5.0535 0 +M V30 217 C -9.0680 -0.4277 -3.2471 0 +M V30 218 N -8.3075 0.1629 -2.3070 0 +M V30 219 C -7.1649 0.7559 -2.6979 0 +M V30 220 C -6.7559 0.7735 -4.0303 0 +M V30 221 C -7.5318 0.1681 -5.0073 0 +M V30 222 C -7.1415 0.1635 -6.4151 0 +M V30 223 C -8.1305 0.1660 -7.3763 0 +M V30 224 C -7.7997 0.1622 -8.7356 0 +M V30 225 C -6.4523 0.1560 -9.0335 0 +M V30 226 C -5.4631 0.1535 -8.0717 0 +M V30 227 C -4.0604 0.1474 -8.4746 0 +M V30 228 C -3.1202 0.7757 -7.6564 0 +M V30 229 C -1.7787 0.7728 -8.0377 0 +M V30 230 N -1.4285 0.1629 -9.1860 0 +M V30 231 C -2.3327 -0.4400 -9.9705 0 +M V30 232 C -3.6751 -0.4785 -9.6604 0 +M V30 233 C -5.7956 0.1572 -6.7187 0 +M V30 234 C -8.6980 -0.4322 -4.5778 0 +M V30 235 H -9.9911 -0.9018 -2.8988 0 +M V30 236 H -6.5111 1.2503 -1.9732 0 +M V30 237 H -5.8208 1.2624 -4.3236 0 +M V30 238 H -9.1831 0.1710 -7.1348 0 +M V30 239 H -8.5828 0.1641 -9.4613 0 +M V30 240 H -6.1803 0.1532 -10.0831 0 +M V30 241 H -3.3904 1.2638 -6.7389 0 +M V30 242 H -1.0377 1.2548 -7.4160 0 +M V30 243 H -1.9716 -0.9150 -10.8884 0 +M V30 244 H -4.4185 -0.9624 -10.2859 0 +M V30 245 H -5.0326 0.1552 -5.9743 0 +M V30 246 H -9.3132 -0.9078 -5.3264 0 +M V30 247 C 0.4896 9.8024 2.8715 0 +M V30 248 N -0.1010 9.0419 1.9314 0 +M V30 249 C -0.6939 7.8993 2.3223 0 +M V30 250 C -0.7116 7.4902 3.6547 0 +M V30 251 C -0.1061 8.2662 4.6317 0 +M V30 252 C -0.1015 7.8759 6.0395 0 +M V30 253 C -0.1041 8.8648 7.0007 0 +M V30 254 C -0.1003 8.5341 8.3600 0 +M V30 255 C -0.0940 7.1866 8.6579 0 +M V30 256 C -0.0915 6.1975 7.6961 0 +M V30 257 C -0.0855 4.7948 8.0990 0 +M V30 258 C -0.7138 3.8546 7.2808 0 +M V30 259 C -0.7109 2.5131 7.6621 0 +M V30 260 N -0.1010 2.1628 8.8105 0 +M V30 261 C 0.5019 3.0671 9.5949 0 +M V30 262 C 0.5404 4.4095 9.2848 0 +M V30 263 C -0.0953 6.5300 6.3432 0 +M V30 264 C 0.4941 9.4324 4.2022 0 +M V30 265 H 0.9637 10.7255 2.5232 0 +M V30 266 H -1.1883 7.2455 1.5976 0 +M V30 267 H -1.2004 6.5552 3.9480 0 +M V30 268 H -0.1091 9.9175 6.7592 0 +M V30 269 H -0.1021 9.3172 9.0857 0 +M V30 270 H -0.0912 6.9147 9.7075 0 +M V30 271 H -1.2019 4.1248 6.3633 0 +M V30 272 H -1.1929 1.7721 7.0404 0 +M V30 273 H 0.9770 2.7059 10.5129 0 +M V30 274 H 1.0243 5.1529 9.9103 0 +M V30 275 H -0.0933 5.7670 5.5987 0 +M V30 276 H 0.9698 10.0476 4.9508 0 +M V30 277 C -0.5982 10.5682 -2.9455 0 +M V30 278 N -0.0076 9.8078 -2.0053 0 +M V30 279 C 0.5854 8.6652 -2.3962 0 +M V30 280 C 0.6031 8.2561 -3.7286 0 +M V30 281 C -0.0024 9.0321 -4.7056 0 +M V30 282 C -0.0070 8.6418 -6.1134 0 +M V30 283 C -0.0045 9.6307 -7.0746 0 +M V30 284 C -0.0082 9.3000 -8.4339 0 +M V30 285 C -0.0145 7.9525 -8.7318 0 +M V30 286 C -0.0170 6.9634 -7.7700 0 +M V30 287 C -0.0230 5.5607 -8.1729 0 +M V30 288 C 0.6053 4.6205 -7.3548 0 +M V30 289 C 0.6023 3.2790 -7.7360 0 +M V30 290 N -0.0076 2.9287 -8.8844 0 +M V30 291 C -0.6104 3.8330 -9.6688 0 +M V30 292 C -0.6489 5.1754 -9.3588 0 +M V30 293 C -0.0132 7.2959 -6.4171 0 +M V30 294 C -0.6026 10.1983 -4.2761 0 +M V30 295 H -1.0722 11.4914 -2.5972 0 +M V30 296 H 1.0798 8.0114 -1.6715 0 +M V30 297 H 1.0919 7.3211 -4.0219 0 +M V30 298 H 0.0006 10.6834 -6.8332 0 +M V30 299 H -0.0064 10.0831 -9.1596 0 +M V30 300 H -0.0173 7.6806 -9.7814 0 +M V30 301 H 1.0934 4.8907 -6.4373 0 +M V30 302 H 1.0844 2.5380 -7.1144 0 +M V30 303 H -1.0855 3.4718 -10.5868 0 +M V30 304 H -1.1328 5.9188 -9.9842 0 +M V30 305 H -0.0152 6.5329 -5.6726 0 +M V30 306 H -1.0783 10.8135 -5.0248 0 +M V30 307 C -0.4529 -9.2982 3.5729 0 +M V30 308 N 0.1377 -8.5377 2.6328 0 +M V30 309 C 0.7307 -7.3951 3.0237 0 +M V30 310 C 0.7483 -6.9861 4.3561 0 +M V30 311 C 0.1429 -7.7620 5.3330 0 +M V30 312 C 0.1383 -7.3717 6.7409 0 +M V30 313 C 0.1408 -8.3607 7.7020 0 +M V30 314 C 0.1370 -8.0299 9.0613 0 +M V30 315 C 0.1308 -6.6825 9.3593 0 +M V30 316 C 0.1283 -5.6933 8.3975 0 +M V30 317 C 0.1222 -4.2906 8.8004 0 +M V30 318 C 0.7505 -3.3504 7.9822 0 +M V30 319 C 0.7476 -2.0089 8.3634 0 +M V30 320 N 0.1377 -1.6587 9.5118 0 +M V30 321 C -0.4651 -2.5629 10.2962 0 +M V30 322 C -0.5036 -3.9053 9.9862 0 +M V30 323 C 0.1320 -6.0258 7.0445 0 +M V30 324 C -0.4574 -8.9282 4.9035 0 +M V30 325 H -0.9270 -10.2213 3.2246 0 +M V30 326 H 1.2251 -6.7413 2.2990 0 +M V30 327 H 1.2372 -6.0510 4.6494 0 +M V30 328 H 0.1458 -9.4133 7.4606 0 +M V30 329 H 0.1389 -8.8130 9.7871 0 +M V30 330 H 0.1280 -6.4105 10.4089 0 +M V30 331 H 1.2386 -3.6206 7.0647 0 +M V30 332 H 1.2297 -1.2679 7.7418 0 +M V30 333 H -0.9402 -2.2018 11.2142 0 +M V30 334 H -0.9876 -4.6487 10.6117 0 +M V30 335 H 0.1300 -5.2628 6.3001 0 +M V30 336 H -0.9330 -9.5434 5.6522 0 +M V30 337 C 0.5851 -8.3623 -2.1853 0 +M V30 338 N -0.0055 -7.6019 -1.2452 0 +M V30 339 C -0.5985 -6.4593 -1.6361 0 +M V30 340 C -0.6162 -6.0502 -2.9685 0 +M V30 341 C -0.0107 -6.8262 -3.9455 0 +M V30 342 C -0.0061 -6.4359 -5.3533 0 +M V30 343 C -0.0086 -7.4248 -6.3145 0 +M V30 344 C -0.0048 -7.0941 -7.6738 0 +M V30 345 C 0.0014 -5.7466 -7.9717 0 +M V30 346 C 0.0039 -4.7575 -7.0099 0 +M V30 347 C 0.0100 -3.3548 -7.4128 0 +M V30 348 C -0.6183 -2.4146 -6.5946 0 +M V30 349 C -0.6154 -1.0731 -6.9759 0 +M V30 350 N -0.0055 -0.7228 -8.1243 0 +M V30 351 C 0.5973 -1.6271 -8.9087 0 +M V30 352 C 0.6358 -2.9695 -8.5986 0 +M V30 353 C 0.0001 -5.0900 -5.6570 0 +M V30 354 C 0.5896 -7.9924 -3.5160 0 +M V30 355 H 1.0592 -9.2855 -1.8370 0 +M V30 356 H -1.0929 -5.8055 -0.9114 0 +M V30 357 H -1.1050 -5.1152 -3.2618 0 +M V30 358 H -0.0136 -8.4775 -6.0731 0 +M V30 359 H -0.0067 -7.8772 -8.3995 0 +M V30 360 H 0.0042 -5.4747 -9.0213 0 +M V30 361 H -1.1064 -2.6848 -5.6771 0 +M V30 362 H -1.0975 -0.3321 -6.3542 0 +M V30 363 H 1.0724 -1.2659 -9.8267 0 +M V30 364 H 1.1198 -3.7129 -9.2241 0 +M V30 365 H 0.0022 -4.3270 -4.9125 0 +M V30 366 H 1.0652 -8.6076 -4.2646 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 2 7 8 diff --git a/examples/cage_output/apdcage_0.mol b/examples/cage_output/apdcage_0.mol index d75a71a..de49b3f 100644 --- a/examples/cage_output/apdcage_0.mol +++ b/examples/cage_output/apdcage_0.mol @@ -5,36 +5,36 @@ M V30 BEGIN CTAB M V30 COUNTS 30 32 0 0 0 M V30 BEGIN ATOM -M V30 1 C 9.9449 2.8186 1.0197 0 -M V30 2 N 9.1674 1.8922 0.4130 0 -M V30 3 C 8.0328 2.3049 -0.1802 0 -M V30 4 C 7.6455 3.6313 -0.1866 0 -M V30 5 C 8.4342 4.5793 0.4302 0 -M V30 6 C 8.0225 5.9809 0.4220 0 -M V30 7 C 8.9515 6.9996 0.4207 0 -M V30 8 C 8.5783 8.3421 0.4126 0 -M V30 9 C 7.2427 8.6895 0.4055 0 -M V30 10 C 6.2894 7.6916 0.4066 0 -M V30 11 C 4.8897 8.0613 0.3984 0 -M V30 12 C 3.9521 7.2626 -0.2104 0 -M V30 13 C 2.6376 7.6701 -0.1836 0 -M V30 14 N 2.2472 8.8124 0.4130 0 -M V30 15 C 3.1504 9.6056 1.0133 0 -M V30 16 C 4.4561 9.2233 0.9997 0 -M V30 17 C 6.6883 6.3537 0.4149 0 -M V30 18 C 9.5970 4.1531 1.0376 0 -M V30 19 H 10.8549 2.4421 1.4881 0 -M V30 20 H 7.3651 1.5911 -0.6878 0 -M V30 21 H 6.7328 3.9742 -0.6611 0 -M V30 22 H 10.0072 6.7403 0.4262 0 -M V30 23 H 9.3252 9.1202 0.4118 0 -M V30 24 H 6.9262 9.7338 0.3991 0 -M V30 25 H 4.2119 6.3255 -0.7094 0 -M V30 26 H 1.8795 7.0441 -0.6641 0 -M V30 27 H 2.8161 10.5336 1.4950 0 -M V30 28 H 5.1616 9.8958 1.4988 0 -M V30 29 H 5.9522 5.5794 0.4157 0 -M V30 30 H 10.2510 4.8407 1.5325 0 +M V30 1 C 9.9115 2.8217 0.8925 0 +M V30 2 N 9.1510 1.8816 0.3019 0 +M V30 3 C 8.0085 2.2725 -0.2911 0 +M V30 4 C 7.5994 3.6048 -0.3087 0 +M V30 5 C 8.3753 4.5818 0.2967 0 +M V30 6 C 7.9850 5.9896 0.3013 0 +M V30 7 C 8.9740 6.9508 0.2988 0 +M V30 8 C 8.6432 8.3101 0.3026 0 +M V30 9 C 7.2958 8.6081 0.3088 0 +M V30 10 C 6.3067 7.6463 0.3113 0 +M V30 11 C 4.9040 8.0492 0.3174 0 +M V30 12 C 3.9637 7.2310 -0.3109 0 +M V30 13 C 2.6222 7.6122 -0.3080 0 +M V30 14 N 2.2720 8.7606 0.3019 0 +M V30 15 C 3.1763 9.5450 0.9048 0 +M V30 16 C 4.5186 9.2350 0.9433 0 +M V30 17 C 6.6391 6.2933 0.3076 0 +M V30 18 C 9.5415 4.1523 0.8970 0 +M V30 19 H 10.8347 2.4734 1.3666 0 +M V30 20 H 7.3547 1.5478 -0.7855 0 +M V30 21 H 6.6643 3.8982 -0.7976 0 +M V30 22 H 10.0267 6.7094 0.2938 0 +M V30 23 H 9.4263 9.0359 0.3007 0 +M V30 24 H 7.0239 9.6577 0.3117 0 +M V30 25 H 4.2339 6.3135 -0.7990 0 +M V30 26 H 1.8812 6.9906 -0.7900 0 +M V30 27 H 2.8151 10.4630 1.3798 0 +M V30 28 H 5.2621 9.8605 1.4272 0 +M V30 29 H 5.8762 5.5489 0.3096 0 +M V30 30 H 10.1568 4.9010 1.3726 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 2 1 2 diff --git a/examples/cage_output/apdcage_1.mol b/examples/cage_output/apdcage_1.mol index 29eee19..cdcdc49 100644 --- a/examples/cage_output/apdcage_1.mol +++ b/examples/cage_output/apdcage_1.mol @@ -5,36 +5,36 @@ M V30 BEGIN CTAB M V30 COUNTS 30 32 0 0 0 M V30 BEGIN ATOM -M V30 1 C 9.8467 -2.8185 -0.0805 0 -M V30 2 N 9.0691 -1.8922 0.5261 0 -M V30 3 C 7.9346 -2.3048 1.1193 0 -M V30 4 C 7.5473 -3.6313 1.1257 0 -M V30 5 C 8.3360 -4.5792 0.5090 0 -M V30 6 C 7.9243 -5.9809 0.5171 0 -M V30 7 C 8.8532 -6.9995 0.5184 0 -M V30 8 C 8.4801 -8.3421 0.5265 0 -M V30 9 C 7.1445 -8.6895 0.5336 0 -M V30 10 C 6.1912 -7.6915 0.5325 0 -M V30 11 C 4.7915 -8.0612 0.5407 0 -M V30 12 C 3.8539 -7.2626 1.1496 0 -M V30 13 C 2.5394 -7.6701 1.1228 0 -M V30 14 N 2.1490 -8.8124 0.5261 0 -M V30 15 C 3.0521 -9.6055 -0.0742 0 -M V30 16 C 4.3579 -9.2232 -0.0605 0 -M V30 17 C 6.5901 -6.3537 0.5243 0 -M V30 18 C 9.4988 -4.1531 -0.0985 0 -M V30 19 H 10.7567 -2.4421 -0.5489 0 -M V30 20 H 7.2669 -1.5910 1.6270 0 -M V30 21 H 6.6346 -3.9742 1.6003 0 -M V30 22 H 9.9090 -6.7402 0.5129 0 -M V30 23 H 9.2270 -9.1202 0.5273 0 -M V30 24 H 6.8280 -9.7337 0.5400 0 -M V30 25 H 4.1137 -6.3255 1.6486 0 -M V30 26 H 1.7813 -7.0441 1.6033 0 -M V30 27 H 2.7178 -10.5335 -0.5559 0 -M V30 28 H 5.0633 -9.8957 -0.5597 0 -M V30 29 H 5.8539 -5.5794 0.5235 0 -M V30 30 H 10.1527 -4.8406 -0.5934 0 +M V30 1 C 10.2068 -2.9229 0.0994 0 +M V30 2 N 9.4463 -1.9828 0.6900 0 +M V30 3 C 8.3037 -2.3737 1.2830 0 +M V30 4 C 7.8947 -3.7061 1.3007 0 +M V30 5 C 8.6706 -4.6831 0.6952 0 +M V30 6 C 8.2803 -6.0909 0.6906 0 +M V30 7 C 9.2693 -7.0521 0.6931 0 +M V30 8 C 8.9385 -8.4114 0.6894 0 +M V30 9 C 7.5911 -8.7093 0.6831 0 +M V30 10 C 6.6019 -7.7475 0.6806 0 +M V30 11 C 5.1992 -8.1504 0.6746 0 +M V30 12 C 4.2590 -7.3322 1.3029 0 +M V30 13 C 2.9175 -7.7135 1.2999 0 +M V30 14 N 2.5673 -8.8618 0.6900 0 +M V30 15 C 3.4715 -9.6463 0.0872 0 +M V30 16 C 4.8139 -9.3362 0.0487 0 +M V30 17 C 6.9344 -6.3945 0.6844 0 +M V30 18 C 9.8368 -4.2536 0.0950 0 +M V30 19 H 11.1299 -2.5746 -0.3746 0 +M V30 20 H 7.6500 -1.6490 1.7774 0 +M V30 21 H 6.9596 -3.9994 1.7895 0 +M V30 22 H 10.3219 -6.8106 0.6982 0 +M V30 23 H 9.7216 -9.1371 0.6912 0 +M V30 24 H 7.3191 -9.7589 0.6803 0 +M V30 25 H 4.5292 -6.4147 1.7910 0 +M V30 26 H 2.1765 -7.0918 1.7820 0 +M V30 27 H 3.1104 -10.5642 -0.3879 0 +M V30 28 H 5.5573 -9.9617 -0.4352 0 +M V30 29 H 6.1714 -5.6501 0.6824 0 +M V30 30 H 10.4520 -5.0022 -0.3807 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 2 1 2 diff --git a/examples/cage_output/apdcage_10.mol b/examples/cage_output/apdcage_10.mol index 28ed672..5c51b24 100644 --- a/examples/cage_output/apdcage_10.mol +++ b/examples/cage_output/apdcage_10.mol @@ -5,36 +5,36 @@ M V30 BEGIN CTAB M V30 COUNTS 30 32 0 0 0 M V30 BEGIN ATOM -M V30 1 C -0.3437 -9.2594 3.8355 0 -M V30 2 N 0.2629 -8.4818 2.9091 0 -M V30 3 C 0.8561 -7.3473 3.3218 0 -M V30 4 C 0.8625 -6.9600 4.6482 0 -M V30 5 C 0.2458 -7.7487 5.5962 0 -M V30 6 C 0.2539 -7.3370 6.9978 0 -M V30 7 C 0.2552 -8.2660 8.0165 0 -M V30 8 C 0.2633 -7.8928 9.3590 0 -M V30 9 C 0.2704 -6.5572 9.7065 0 -M V30 10 C 0.2693 -5.6039 8.7085 0 -M V30 11 C 0.2775 -4.2042 9.0782 0 -M V30 12 C 0.8864 -3.2666 8.2796 0 -M V30 13 C 0.8596 -1.9521 8.6871 0 -M V30 14 N 0.2629 -1.5617 9.8293 0 -M V30 15 C -0.3374 -2.4649 10.6225 0 -M V30 16 C -0.3237 -3.7706 10.2402 0 -M V30 17 C 0.2611 -6.0028 7.3707 0 -M V30 18 C -0.3617 -8.9115 5.1701 0 -M V30 19 H -0.8121 -10.1694 3.4591 0 -M V30 20 H 1.3638 -6.6796 2.6080 0 -M V30 21 H 1.3371 -6.0473 4.9911 0 -M V30 22 H 0.2497 -9.3217 7.7572 0 -M V30 23 H 0.2641 -8.6397 10.1372 0 -M V30 24 H 0.2768 -6.2407 10.7507 0 -M V30 25 H 1.3854 -3.5264 7.3424 0 -M V30 26 H 1.3401 -1.1940 8.0611 0 -M V30 27 H -0.8191 -2.1305 11.5505 0 -M V30 28 H -0.8229 -4.4760 10.9127 0 -M V30 29 H 0.2603 -5.2666 6.5963 0 -M V30 30 H -0.8566 -9.5654 5.8576 0 +M V30 1 C -0.4529 -9.2982 3.5729 0 +M V30 2 N 0.1377 -8.5377 2.6328 0 +M V30 3 C 0.7307 -7.3951 3.0237 0 +M V30 4 C 0.7483 -6.9861 4.3561 0 +M V30 5 C 0.1429 -7.7620 5.3330 0 +M V30 6 C 0.1383 -7.3717 6.7409 0 +M V30 7 C 0.1408 -8.3607 7.7020 0 +M V30 8 C 0.1370 -8.0299 9.0613 0 +M V30 9 C 0.1308 -6.6825 9.3593 0 +M V30 10 C 0.1283 -5.6933 8.3975 0 +M V30 11 C 0.1222 -4.2906 8.8004 0 +M V30 12 C 0.7505 -3.3504 7.9822 0 +M V30 13 C 0.7476 -2.0089 8.3634 0 +M V30 14 N 0.1377 -1.6587 9.5118 0 +M V30 15 C -0.4651 -2.5629 10.2962 0 +M V30 16 C -0.5036 -3.9053 9.9862 0 +M V30 17 C 0.1320 -6.0258 7.0445 0 +M V30 18 C -0.4574 -8.9282 4.9035 0 +M V30 19 H -0.9270 -10.2213 3.2246 0 +M V30 20 H 1.2251 -6.7413 2.2990 0 +M V30 21 H 1.2372 -6.0510 4.6494 0 +M V30 22 H 0.1458 -9.4133 7.4606 0 +M V30 23 H 0.1389 -8.8130 9.7871 0 +M V30 24 H 0.1280 -6.4105 10.4089 0 +M V30 25 H 1.2386 -3.6206 7.0647 0 +M V30 26 H 1.2297 -1.2679 7.7418 0 +M V30 27 H -0.9402 -2.2018 11.2142 0 +M V30 28 H -0.9876 -4.6487 10.6117 0 +M V30 29 H 0.1300 -5.2628 6.3001 0 +M V30 30 H -0.9330 -9.5434 5.6522 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 2 1 2 diff --git a/examples/cage_output/apdcage_11.mol b/examples/cage_output/apdcage_11.mol index eb298a5..3638d1e 100644 --- a/examples/cage_output/apdcage_11.mol +++ b/examples/cage_output/apdcage_11.mol @@ -5,36 +5,36 @@ M V30 BEGIN CTAB M V30 COUNTS 30 32 0 0 0 M V30 BEGIN ATOM -M V30 1 C 0.6186 -8.6679 -2.2291 0 -M V30 2 N 0.0120 -7.8903 -1.3028 0 -M V30 3 C -0.5812 -6.7558 -1.7154 0 -M V30 4 C -0.5876 -6.3684 -3.0419 0 -M V30 5 C 0.0291 -7.1572 -3.9898 0 -M V30 6 C 0.0209 -6.7455 -5.3915 0 -M V30 7 C 0.0196 -7.6744 -6.4102 0 -M V30 8 C 0.0116 -7.3013 -7.7527 0 -M V30 9 C 0.0045 -5.9657 -8.1001 0 -M V30 10 C 0.0056 -5.0124 -7.1021 0 -M V30 11 C -0.0026 -3.6127 -7.4718 0 -M V30 12 C -0.6115 -2.6751 -6.6732 0 -M V30 13 C -0.5847 -1.3605 -7.0807 0 -M V30 14 N 0.0120 -0.9701 -8.2230 0 -M V30 15 C 0.6123 -1.8733 -9.0161 0 -M V30 16 C 0.5986 -3.1790 -8.6338 0 -M V30 17 C 0.0138 -5.4113 -5.7643 0 -M V30 18 C 0.6366 -8.3199 -3.5637 0 -M V30 19 H 1.0870 -9.5778 -1.8527 0 -M V30 20 H -1.0889 -6.0881 -1.0016 0 -M V30 21 H -1.0622 -5.4558 -3.3848 0 -M V30 22 H 0.0252 -8.7301 -6.1509 0 -M V30 23 H 0.0107 -8.0482 -8.5308 0 -M V30 24 H -0.0019 -5.6491 -9.1443 0 -M V30 25 H -1.1105 -2.9349 -5.7361 0 -M V30 26 H -1.0652 -0.6025 -6.4547 0 -M V30 27 H 1.0939 -1.5390 -9.9442 0 -M V30 28 H 1.0978 -3.8845 -9.3063 0 -M V30 29 H 0.0146 -4.6751 -4.9900 0 -M V30 30 H 1.1314 -8.9739 -4.2512 0 +M V30 1 C 0.5851 -8.3623 -2.1853 0 +M V30 2 N -0.0055 -7.6019 -1.2452 0 +M V30 3 C -0.5985 -6.4593 -1.6361 0 +M V30 4 C -0.6162 -6.0502 -2.9685 0 +M V30 5 C -0.0107 -6.8262 -3.9455 0 +M V30 6 C -0.0061 -6.4359 -5.3533 0 +M V30 7 C -0.0086 -7.4248 -6.3145 0 +M V30 8 C -0.0048 -7.0941 -7.6738 0 +M V30 9 C 0.0014 -5.7466 -7.9717 0 +M V30 10 C 0.0039 -4.7575 -7.0099 0 +M V30 11 C 0.0100 -3.3548 -7.4128 0 +M V30 12 C -0.6183 -2.4146 -6.5946 0 +M V30 13 C -0.6154 -1.0731 -6.9759 0 +M V30 14 N -0.0055 -0.7228 -8.1243 0 +M V30 15 C 0.5973 -1.6271 -8.9087 0 +M V30 16 C 0.6358 -2.9695 -8.5986 0 +M V30 17 C 0.0001 -5.0900 -5.6570 0 +M V30 18 C 0.5896 -7.9924 -3.5160 0 +M V30 19 H 1.0592 -9.2855 -1.8370 0 +M V30 20 H -1.0929 -5.8055 -0.9114 0 +M V30 21 H -1.1050 -5.1152 -3.2618 0 +M V30 22 H -0.0136 -8.4775 -6.0731 0 +M V30 23 H -0.0067 -7.8772 -8.3995 0 +M V30 24 H 0.0042 -5.4747 -9.0213 0 +M V30 25 H -1.1064 -2.6848 -5.6771 0 +M V30 26 H -1.0975 -0.3321 -6.3542 0 +M V30 27 H 1.0724 -1.2659 -9.8267 0 +M V30 28 H 1.1198 -3.7129 -9.2241 0 +M V30 29 H 0.0022 -4.3270 -4.9125 0 +M V30 30 H 1.0652 -8.6076 -4.2646 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 2 1 2 diff --git a/examples/cage_output/apdcage_2.mol b/examples/cage_output/apdcage_2.mol index 398a6da..1f6c669 100644 --- a/examples/cage_output/apdcage_2.mol +++ b/examples/cage_output/apdcage_2.mol @@ -5,36 +5,36 @@ M V30 BEGIN CTAB M V30 COUNTS 30 32 0 0 0 M V30 BEGIN ATOM -M V30 1 C 9.7847 -0.5290 3.5671 0 -M V30 2 N 9.0072 0.0776 2.6407 0 -M V30 3 C 7.8726 0.6709 3.0534 0 -M V30 4 C 7.4853 0.6773 4.3798 0 -M V30 5 C 8.2740 0.0605 5.3278 0 -M V30 6 C 7.8623 0.0687 6.7294 0 -M V30 7 C 8.7913 0.0700 7.7481 0 -M V30 8 C 8.4181 0.0781 9.0906 0 -M V30 9 C 7.0825 0.0852 9.4380 0 -M V30 10 C 6.1292 0.0841 8.4401 0 -M V30 11 C 4.7295 0.0923 8.8098 0 -M V30 12 C 3.7919 0.7011 8.0111 0 -M V30 13 C 2.4774 0.6743 8.4186 0 -M V30 14 N 2.0870 0.0776 9.5609 0 -M V30 15 C 2.9902 -0.5226 10.3541 0 -M V30 16 C 4.2959 -0.5090 9.9718 0 -M V30 17 C 6.5281 0.0758 7.1022 0 -M V30 18 C 9.4368 -0.5469 4.9016 0 -M V30 19 H 10.6947 -0.9974 3.1907 0 -M V30 20 H 7.2049 1.1785 2.3396 0 -M V30 21 H 6.5726 1.1518 4.7227 0 -M V30 22 H 9.8470 0.0645 7.4888 0 -M V30 23 H 9.1650 0.0789 9.8687 0 -M V30 24 H 6.7660 0.0916 10.4823 0 -M V30 25 H 4.0517 1.2001 7.0740 0 -M V30 26 H 1.7193 1.1548 7.7926 0 -M V30 27 H 2.6558 -1.0043 11.2821 0 -M V30 28 H 5.0014 -1.0081 10.6443 0 -M V30 29 H 5.7919 0.0750 6.3279 0 -M V30 30 H 10.0907 -1.0418 5.5892 0 +M V30 1 C 9.9213 -0.5907 3.6064 0 +M V30 2 N 9.1609 -0.0001 2.6663 0 +M V30 3 C 8.0183 0.5929 3.0572 0 +M V30 4 C 7.6092 0.6105 4.3896 0 +M V30 5 C 8.3852 0.0051 5.3666 0 +M V30 6 C 7.9948 0.0005 6.7744 0 +M V30 7 C 8.9838 0.0030 7.7356 0 +M V30 8 C 8.6530 -0.0008 9.0949 0 +M V30 9 C 7.3056 -0.0070 9.3928 0 +M V30 10 C 6.3165 -0.0095 8.4310 0 +M V30 11 C 4.9138 -0.0156 8.8339 0 +M V30 12 C 3.9736 0.6127 8.0157 0 +M V30 13 C 2.6321 0.6098 8.3970 0 +M V30 14 N 2.2818 -0.0001 9.5454 0 +M V30 15 C 3.1861 -0.6030 10.3298 0 +M V30 16 C 4.5285 -0.6415 10.0197 0 +M V30 17 C 6.6489 -0.0058 7.0781 0 +M V30 18 C 9.5514 -0.5952 4.9371 0 +M V30 19 H 10.8445 -1.0648 3.2581 0 +M V30 20 H 7.3645 1.0873 2.3325 0 +M V30 21 H 6.6742 1.0994 4.6829 0 +M V30 22 H 10.0365 0.0080 7.4941 0 +M V30 23 H 9.4362 0.0011 9.8206 0 +M V30 24 H 7.0337 -0.0098 10.4424 0 +M V30 25 H 4.2438 1.1008 7.0982 0 +M V30 26 H 1.8910 1.0918 7.7753 0 +M V30 27 H 2.8249 -1.0780 11.2478 0 +M V30 28 H 5.2719 -1.1254 10.6452 0 +M V30 29 H 5.8860 -0.0078 6.3336 0 +M V30 30 H 10.1666 -1.0708 5.6857 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 2 1 2 diff --git a/examples/cage_output/apdcage_3.mol b/examples/cage_output/apdcage_3.mol index a9b102b..caed37a 100644 --- a/examples/cage_output/apdcage_3.mol +++ b/examples/cage_output/apdcage_3.mol @@ -5,36 +5,36 @@ M V30 BEGIN CTAB M V30 COUNTS 30 32 0 0 0 M V30 BEGIN ATOM -M V30 1 C 10.2957 0.9008 -2.1911 0 -M V30 2 N 9.5182 0.2942 -1.2648 0 -M V30 3 C 8.3836 -0.2990 -1.6774 0 -M V30 4 C 7.9963 -0.3054 -3.0039 0 -M V30 5 C 8.7850 0.3113 -3.9518 0 -M V30 6 C 8.3733 0.3032 -5.3535 0 -M V30 7 C 9.3023 0.3019 -6.3721 0 -M V30 8 C 8.9291 0.2938 -7.7147 0 -M V30 9 C 7.5935 0.2867 -8.0621 0 -M V30 10 C 6.6402 0.2878 -7.0641 0 -M V30 11 C 5.2405 0.2796 -7.4338 0 -M V30 12 C 4.3029 -0.3293 -6.6352 0 -M V30 13 C 2.9884 -0.3025 -7.0427 0 -M V30 14 N 2.5980 0.2942 -8.1850 0 -M V30 15 C 3.5012 0.8945 -8.9781 0 -M V30 16 C 4.8069 0.8808 -8.5958 0 -M V30 17 C 7.0391 0.2960 -5.7263 0 -M V30 18 C 9.9478 0.9188 -3.5257 0 -M V30 19 H 11.2057 1.3692 -1.8147 0 -M V30 20 H 7.7159 -0.8067 -0.9636 0 -M V30 21 H 7.0836 -0.7800 -3.3468 0 -M V30 22 H 10.3580 0.3074 -6.1128 0 -M V30 23 H 9.6760 0.2930 -8.4928 0 -M V30 24 H 7.2770 0.2803 -9.1063 0 -M V30 25 H 4.5627 -0.8283 -5.6981 0 -M V30 26 H 2.2303 -0.7830 -6.4167 0 -M V30 27 H 3.1668 1.3762 -9.9061 0 -M V30 28 H 5.5124 1.3800 -9.2683 0 -M V30 29 H 6.3029 0.2968 -4.9520 0 -M V30 30 H 10.6017 1.4137 -4.2132 0 +M V30 1 C 10.1028 0.8987 -2.2551 0 +M V30 2 N 9.3423 0.3081 -1.3150 0 +M V30 3 C 8.1998 -0.2849 -1.7059 0 +M V30 4 C 7.7907 -0.3026 -3.0383 0 +M V30 5 C 8.5666 0.3029 -4.0153 0 +M V30 6 C 8.1763 0.3075 -5.4231 0 +M V30 7 C 9.1653 0.3050 -6.3843 0 +M V30 8 C 8.8345 0.3087 -7.7436 0 +M V30 9 C 7.4871 0.3150 -8.0415 0 +M V30 10 C 6.4979 0.3175 -7.0797 0 +M V30 11 C 5.0953 0.3235 -7.4826 0 +M V30 12 C 4.1550 -0.3047 -6.6644 0 +M V30 13 C 2.8135 -0.3018 -7.0457 0 +M V30 14 N 2.4633 0.3081 -8.1941 0 +M V30 15 C 3.3675 0.9109 -8.9785 0 +M V30 16 C 4.7099 0.9494 -8.6684 0 +M V30 17 C 6.8304 0.3137 -5.7268 0 +M V30 18 C 9.7328 0.9031 -3.5858 0 +M V30 19 H 11.0260 1.3727 -1.9068 0 +M V30 20 H 7.5460 -0.7793 -0.9812 0 +M V30 21 H 6.8556 -0.7914 -3.3316 0 +M V30 22 H 10.2179 0.2999 -6.1428 0 +M V30 23 H 9.6176 0.3069 -8.4693 0 +M V30 24 H 7.2151 0.3178 -9.0911 0 +M V30 25 H 4.4252 -0.7929 -5.7469 0 +M V30 26 H 2.0725 -0.7839 -6.4240 0 +M V30 27 H 3.0064 1.3860 -9.8965 0 +M V30 28 H 5.4534 1.4334 -9.2939 0 +M V30 29 H 6.0675 0.3157 -4.9823 0 +M V30 30 H 10.3480 1.3788 -4.3344 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 2 1 2 diff --git a/examples/cage_output/apdcage_4.mol b/examples/cage_output/apdcage_4.mol index 2906c37..839e9b6 100644 --- a/examples/cage_output/apdcage_4.mol +++ b/examples/cage_output/apdcage_4.mol @@ -5,36 +5,36 @@ M V30 BEGIN CTAB M V30 COUNTS 30 32 0 0 0 M V30 BEGIN ATOM -M V30 1 C -2.4551 9.8000 0.8236 0 -M V30 2 N -1.5288 9.0224 0.2169 0 -M V30 3 C -1.9414 7.8879 -0.3763 0 -M V30 4 C -3.2679 7.5005 -0.3827 0 -M V30 5 C -4.2158 8.2893 0.2341 0 -M V30 6 C -5.6175 7.8776 0.2259 0 -M V30 7 C -6.6362 8.8065 0.2246 0 -M V30 8 C -7.9787 8.4334 0.2165 0 -M V30 9 C -8.3261 7.0978 0.2094 0 -M V30 10 C -7.3281 6.1445 0.2105 0 -M V30 11 C -7.6978 4.7448 0.2023 0 -M V30 12 C -6.8992 3.8072 -0.4065 0 -M V30 13 C -7.3067 2.4926 -0.3797 0 -M V30 14 N -8.4490 2.1022 0.2169 0 -M V30 15 C -9.2421 3.0054 0.8172 0 -M V30 16 C -8.8599 4.3111 0.8036 0 -M V30 17 C -5.9903 6.5434 0.2188 0 -M V30 18 C -3.7897 9.4521 0.8415 0 -M V30 19 H -2.0787 10.7099 1.2920 0 -M V30 20 H -1.2276 7.2202 -0.8839 0 -M V30 21 H -3.6108 6.5879 -0.8572 0 -M V30 22 H -6.3769 9.8622 0.2301 0 -M V30 23 H -8.7568 9.1803 0.2157 0 -M V30 24 H -9.3704 6.7812 0.2030 0 -M V30 25 H -5.9621 4.0670 -0.9055 0 -M V30 26 H -6.6807 1.7346 -0.8602 0 -M V30 27 H -10.1702 2.6711 1.2989 0 -M V30 28 H -9.5324 5.0166 1.3027 0 -M V30 29 H -5.2160 5.8072 0.2196 0 -M V30 30 H -4.4772 10.1060 1.3364 0 +M V30 1 C -2.7676 9.8452 0.8807 0 +M V30 2 N -1.8275 9.0848 0.2901 0 +M V30 3 C -2.2184 7.9422 -0.3029 0 +M V30 4 C -3.5508 7.5331 -0.3205 0 +M V30 5 C -4.5278 8.3091 0.2849 0 +M V30 6 C -5.9356 7.9187 0.2895 0 +M V30 7 C -6.8968 8.9077 0.2870 0 +M V30 8 C -8.2561 8.5769 0.2908 0 +M V30 9 C -8.5540 7.2295 0.2970 0 +M V30 10 C -7.5922 6.2404 0.2995 0 +M V30 11 C -7.9951 4.8377 0.3056 0 +M V30 12 C -7.1769 3.8975 -0.3227 0 +M V30 13 C -7.5582 2.5560 -0.3198 0 +M V30 14 N -8.7065 2.2057 0.2901 0 +M V30 15 C -9.4910 3.1100 0.8929 0 +M V30 16 C -9.1809 4.4524 0.9314 0 +M V30 17 C -6.2392 6.5728 0.2958 0 +M V30 18 C -4.0983 9.4753 0.8852 0 +M V30 19 H -2.4193 10.7684 1.3548 0 +M V30 20 H -1.4937 7.2884 -0.7973 0 +M V30 21 H -3.8441 6.5981 -0.8094 0 +M V30 22 H -6.6553 9.9604 0.2820 0 +M V30 23 H -8.9818 9.3601 0.2889 0 +M V30 24 H -9.6036 6.9576 0.2998 0 +M V30 25 H -6.2594 4.1677 -0.8108 0 +M V30 26 H -6.9365 1.8149 -0.8018 0 +M V30 27 H -10.4089 2.7488 1.3680 0 +M V30 28 H -9.8064 5.1958 1.4154 0 +M V30 29 H -5.4948 5.8099 0.2978 0 +M V30 30 H -4.8469 10.0905 1.3608 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 2 1 2 diff --git a/examples/cage_output/apdcage_5.mol b/examples/cage_output/apdcage_5.mol index 8466819..5f312f6 100644 --- a/examples/cage_output/apdcage_5.mol +++ b/examples/cage_output/apdcage_5.mol @@ -5,36 +5,36 @@ M V30 BEGIN CTAB M V30 COUNTS 30 32 0 0 0 M V30 BEGIN ATOM -M V30 1 C -9.7652 -3.0596 0.8266 0 -M V30 2 N -8.9876 -2.1332 0.2200 0 -M V30 3 C -7.8530 -2.5459 -0.3732 0 -M V30 4 C -7.4657 -3.8723 -0.3796 0 -M V30 5 C -8.2545 -4.8203 0.2371 0 -M V30 6 C -7.8427 -6.2219 0.2290 0 -M V30 7 C -8.7717 -7.2406 0.2277 0 -M V30 8 C -8.3985 -8.5831 0.2196 0 -M V30 9 C -7.0630 -8.9305 0.2125 0 -M V30 10 C -6.1096 -7.9326 0.2136 0 -M V30 11 C -4.7099 -8.3023 0.2054 0 -M V30 12 C -3.7723 -7.5036 -0.4034 0 -M V30 13 C -2.4578 -7.9112 -0.3767 0 -M V30 14 N -2.0674 -9.0534 0.2200 0 -M V30 15 C -2.9706 -9.8466 0.8203 0 -M V30 16 C -4.2763 -9.4643 0.8066 0 -M V30 17 C -6.5085 -6.5947 0.2218 0 -M V30 18 C -9.4172 -4.3941 0.8446 0 -M V30 19 H -10.6751 -2.6832 1.2951 0 -M V30 20 H -7.1853 -1.8321 -0.8809 0 -M V30 21 H -6.5531 -4.2152 -0.8541 0 -M V30 22 H -9.8274 -6.9813 0.2332 0 -M V30 23 H -9.1454 -9.3612 0.2188 0 -M V30 24 H -6.7464 -9.9748 0.2061 0 -M V30 25 H -4.0322 -6.5665 -0.9025 0 -M V30 26 H -1.6998 -7.2851 -0.8572 0 -M V30 27 H -2.6363 -10.7746 1.3020 0 -M V30 28 H -4.9818 -10.1368 1.3058 0 -M V30 29 H -5.7724 -5.8204 0.2226 0 -M V30 30 H -10.0712 -5.0817 1.3395 0 +M V30 1 C -9.7489 -2.8127 0.7592 0 +M V30 2 N -8.9884 -1.8726 0.1686 0 +M V30 3 C -7.8459 -2.2635 -0.4244 0 +M V30 4 C -7.4368 -3.5959 -0.4420 0 +M V30 5 C -8.2127 -4.5729 0.1635 0 +M V30 6 C -7.8224 -5.9807 0.1681 0 +M V30 7 C -8.8114 -6.9419 0.1655 0 +M V30 8 C -8.4806 -8.3012 0.1693 0 +M V30 9 C -7.1332 -8.5991 0.1755 0 +M V30 10 C -6.1440 -7.6373 0.1781 0 +M V30 11 C -4.7414 -8.0402 0.1841 0 +M V30 12 C -3.8011 -7.2220 -0.4442 0 +M V30 13 C -2.4596 -7.6033 -0.4413 0 +M V30 14 N -2.1094 -8.7516 0.1686 0 +M V30 15 C -3.0136 -9.5361 0.7715 0 +M V30 16 C -4.3560 -9.2260 0.8100 0 +M V30 17 C -6.4765 -6.2843 0.1743 0 +M V30 18 C -9.3789 -4.1434 0.7637 0 +M V30 19 H -10.6721 -2.4644 1.2333 0 +M V30 20 H -7.1921 -1.5388 -0.9187 0 +M V30 21 H -6.5017 -3.8892 -0.9309 0 +M V30 22 H -9.8640 -6.7004 0.1605 0 +M V30 23 H -9.2637 -9.0269 0.1674 0 +M V30 24 H -6.8612 -9.6487 0.1784 0 +M V30 25 H -4.0713 -6.3045 -0.9323 0 +M V30 26 H -1.7186 -6.9816 -0.9233 0 +M V30 27 H -2.6525 -10.4541 1.2465 0 +M V30 28 H -5.0995 -9.8515 1.2939 0 +M V30 29 H -5.7136 -5.5399 0.1763 0 +M V30 30 H -9.9941 -4.8920 1.2394 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 2 1 2 diff --git a/examples/cage_output/apdcage_6.mol b/examples/cage_output/apdcage_6.mol index 5a55f81..d00a90e 100644 --- a/examples/cage_output/apdcage_6.mol +++ b/examples/cage_output/apdcage_6.mol @@ -5,36 +5,36 @@ M V30 BEGIN CTAB M V30 COUNTS 30 32 0 0 0 M V30 BEGIN ATOM -M V30 1 C -9.1827 0.5562 2.7000 0 -M V30 2 N -8.4051 -0.0504 1.7737 0 -M V30 3 C -7.2706 -0.6436 2.1863 0 -M V30 4 C -6.8833 -0.6500 3.5128 0 -M V30 5 C -7.6720 -0.0333 4.4607 0 -M V30 6 C -7.2603 -0.0415 5.8624 0 -M V30 7 C -8.1893 -0.0427 6.8810 0 -M V30 8 C -7.8161 -0.0508 8.2236 0 -M V30 9 C -6.4805 -0.0579 8.5710 0 -M V30 10 C -5.5272 -0.0568 7.5730 0 -M V30 11 C -4.1275 -0.0650 7.9427 0 -M V30 12 C -3.1899 -0.6739 7.1441 0 -M V30 13 C -1.8754 -0.6471 7.5516 0 -M V30 14 N -1.4850 -0.0504 8.6938 0 -M V30 15 C -2.3882 0.5499 9.4870 0 -M V30 16 C -3.6939 0.5362 9.1047 0 -M V30 17 C -5.9261 -0.0486 6.2352 0 -M V30 18 C -8.8348 0.5742 4.0346 0 -M V30 19 H -10.0927 1.0246 2.3236 0 -M V30 20 H -6.6029 -1.1513 1.4725 0 -M V30 21 H -5.9706 -1.1246 3.8557 0 -M V30 22 H -9.2450 -0.0372 6.6217 0 -M V30 23 H -8.5630 -0.0517 9.0017 0 -M V30 24 H -6.1640 -0.0643 9.6152 0 -M V30 25 H -3.4497 -1.1729 6.2069 0 -M V30 26 H -1.1173 -1.1276 6.9256 0 -M V30 27 H -2.0538 1.0315 10.4150 0 -M V30 28 H -4.3993 1.0354 9.7772 0 -M V30 29 H -5.1899 -0.0478 5.4609 0 -M V30 30 H -9.4887 1.0691 4.7221 0 +M V30 1 C -9.3639 0.5872 2.9742 0 +M V30 2 N -8.6035 -0.0034 2.0340 0 +M V30 3 C -7.4609 -0.5964 2.4250 0 +M V30 4 C -7.0518 -0.6140 3.7573 0 +M V30 5 C -7.8278 -0.0086 4.7343 0 +M V30 6 C -7.4374 -0.0040 6.1421 0 +M V30 7 C -8.4264 -0.0065 7.1033 0 +M V30 8 C -8.0957 -0.0027 8.4626 0 +M V30 9 C -6.7482 0.0035 8.7605 0 +M V30 10 C -5.7591 0.0060 7.7988 0 +M V30 11 C -4.3564 0.0121 8.2016 0 +M V30 12 C -3.4162 -0.6162 7.3835 0 +M V30 13 C -2.0747 -0.6133 7.7647 0 +M V30 14 N -1.7244 -0.0034 8.9131 0 +M V30 15 C -2.6287 0.5995 9.6975 0 +M V30 16 C -3.9711 0.6380 9.3875 0 +M V30 17 C -6.0915 0.0023 6.4458 0 +M V30 18 C -8.9940 0.5917 4.3048 0 +M V30 19 H -10.2871 1.0613 2.6259 0 +M V30 20 H -6.8071 -1.0908 1.7002 0 +M V30 21 H -6.1168 -1.1029 4.0506 0 +M V30 22 H -9.4791 -0.0115 6.8619 0 +M V30 23 H -8.8788 -0.0046 9.1883 0 +M V30 24 H -6.4763 0.0063 9.8101 0 +M V30 25 H -3.6864 -1.1043 6.4660 0 +M V30 26 H -1.3337 -1.0953 7.1431 0 +M V30 27 H -2.2675 1.0745 10.6155 0 +M V30 28 H -4.7145 1.1219 10.0129 0 +M V30 29 H -5.3286 0.0043 5.7013 0 +M V30 30 H -9.6092 1.0673 5.0535 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 2 1 2 diff --git a/examples/cage_output/apdcage_7.mol b/examples/cage_output/apdcage_7.mol index 125e1f4..edda687 100644 --- a/examples/cage_output/apdcage_7.mol +++ b/examples/cage_output/apdcage_7.mol @@ -5,36 +5,36 @@ M V30 BEGIN CTAB M V30 COUNTS 30 32 0 0 0 M V30 BEGIN ATOM -M V30 1 C -9.1563 -0.4534 -3.3433 0 -M V30 2 N -8.3787 0.1532 -2.4169 0 -M V30 3 C -7.2442 0.7464 -2.8296 0 -M V30 4 C -6.8568 0.7528 -4.1560 0 -M V30 5 C -7.6456 0.1361 -5.1040 0 -M V30 6 C -7.2339 0.1442 -6.5056 0 -M V30 7 C -8.1628 0.1455 -7.5243 0 -M V30 8 C -7.7897 0.1536 -8.8668 0 -M V30 9 C -6.4541 0.1607 -9.2142 0 -M V30 10 C -5.5008 0.1596 -8.2163 0 -M V30 11 C -4.1011 0.1678 -8.5860 0 -M V30 12 C -3.1635 0.7767 -7.7873 0 -M V30 13 C -1.8489 0.7499 -8.1949 0 -M V30 14 N -1.4585 0.1532 -9.3371 0 -M V30 15 C -2.3617 -0.4471 -10.1303 0 -M V30 16 C -3.6674 -0.4334 -9.7480 0 -M V30 17 C -5.8997 0.1514 -6.8785 0 -M V30 18 C -8.8083 -0.4714 -4.6778 0 -M V30 19 H -10.0662 -0.9218 -2.9669 0 -M V30 20 H -6.5765 1.2541 -2.1158 0 -M V30 21 H -5.9442 1.2274 -4.4989 0 -M V30 22 H -9.2185 0.1400 -7.2650 0 -M V30 23 H -8.5366 0.1544 -9.6449 0 -M V30 24 H -6.1375 0.1671 -10.2585 0 -M V30 25 H -3.4233 1.2757 -6.8502 0 -M V30 26 H -1.0909 1.2304 -7.5689 0 -M V30 27 H -2.0274 -0.9288 -11.0583 0 -M V30 28 H -4.3729 -0.9326 -10.4205 0 -M V30 29 H -5.1635 0.1506 -6.1041 0 -M V30 30 H -9.4623 -0.9663 -5.3654 0 +M V30 1 C -9.0680 -0.4277 -3.2471 0 +M V30 2 N -8.3075 0.1629 -2.3070 0 +M V30 3 C -7.1649 0.7559 -2.6979 0 +M V30 4 C -6.7559 0.7735 -4.0303 0 +M V30 5 C -7.5318 0.1681 -5.0073 0 +M V30 6 C -7.1415 0.1635 -6.4151 0 +M V30 7 C -8.1305 0.1660 -7.3763 0 +M V30 8 C -7.7997 0.1622 -8.7356 0 +M V30 9 C -6.4523 0.1560 -9.0335 0 +M V30 10 C -5.4631 0.1535 -8.0717 0 +M V30 11 C -4.0604 0.1474 -8.4746 0 +M V30 12 C -3.1202 0.7757 -7.6564 0 +M V30 13 C -1.7787 0.7728 -8.0377 0 +M V30 14 N -1.4285 0.1629 -9.1860 0 +M V30 15 C -2.3327 -0.4400 -9.9705 0 +M V30 16 C -3.6751 -0.4785 -9.6604 0 +M V30 17 C -5.7956 0.1572 -6.7187 0 +M V30 18 C -8.6980 -0.4322 -4.5778 0 +M V30 19 H -9.9911 -0.9018 -2.8988 0 +M V30 20 H -6.5111 1.2503 -1.9732 0 +M V30 21 H -5.8208 1.2624 -4.3236 0 +M V30 22 H -9.1831 0.1710 -7.1348 0 +M V30 23 H -8.5828 0.1641 -9.4613 0 +M V30 24 H -6.1803 0.1532 -10.0831 0 +M V30 25 H -3.3904 1.2638 -6.7389 0 +M V30 26 H -1.0377 1.2548 -7.4160 0 +M V30 27 H -1.9716 -0.9150 -10.8884 0 +M V30 28 H -4.4185 -0.9624 -10.2859 0 +M V30 29 H -5.0326 0.1552 -5.9743 0 +M V30 30 H -9.3132 -0.9078 -5.3264 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 2 1 2 diff --git a/examples/cage_output/apdcage_8.mol b/examples/cage_output/apdcage_8.mol index b4980df..ab81b1e 100644 --- a/examples/cage_output/apdcage_8.mol +++ b/examples/cage_output/apdcage_8.mol @@ -5,36 +5,36 @@ M V30 BEGIN CTAB M V30 COUNTS 30 32 0 0 0 M V30 BEGIN ATOM -M V30 1 C 0.6569 10.0349 3.1107 0 -M V30 2 N 0.0503 9.2573 2.1844 0 -M V30 3 C -0.5430 8.1227 2.5970 0 -M V30 4 C -0.5494 7.7354 3.9235 0 -M V30 5 C 0.0674 8.5241 4.8714 0 -M V30 6 C 0.0592 8.1124 6.2731 0 -M V30 7 C 0.0579 9.0414 7.2918 0 -M V30 8 C 0.0498 8.6682 8.6343 0 -M V30 9 C 0.0428 7.3327 8.9817 0 -M V30 10 C 0.0439 6.3793 7.9837 0 -M V30 11 C 0.0356 4.9796 8.3534 0 -M V30 12 C -0.5732 4.0420 7.5548 0 -M V30 13 C -0.5464 2.7275 7.9623 0 -M V30 14 N 0.0503 2.3371 9.1046 0 -M V30 15 C 0.6506 3.2403 9.8977 0 -M V30 16 C 0.6369 4.5460 9.5154 0 -M V30 17 C 0.0521 6.7782 6.6459 0 -M V30 18 C 0.6748 9.6869 4.4453 0 -M V30 19 H 1.1253 10.9448 2.7343 0 -M V30 20 H -1.0506 7.4550 1.8832 0 -M V30 21 H -1.0239 6.8227 4.2664 0 -M V30 22 H 0.0634 10.0971 7.0325 0 -M V30 23 H 0.0490 9.4151 9.4124 0 -M V30 24 H 0.0363 7.0161 10.0259 0 -M V30 25 H -1.0722 4.3018 6.6177 0 -M V30 26 H -1.0269 1.9695 7.3363 0 -M V30 27 H 1.1322 2.9060 10.8258 0 -M V30 28 H 1.1361 5.2515 10.1880 0 -M V30 29 H 0.0529 6.0421 5.8716 0 -M V30 30 H 1.1697 10.3409 5.1328 0 +M V30 1 C 0.4896 9.8024 2.8715 0 +M V30 2 N -0.1010 9.0419 1.9314 0 +M V30 3 C -0.6939 7.8993 2.3223 0 +M V30 4 C -0.7116 7.4902 3.6547 0 +M V30 5 C -0.1061 8.2662 4.6317 0 +M V30 6 C -0.1015 7.8759 6.0395 0 +M V30 7 C -0.1041 8.8648 7.0007 0 +M V30 8 C -0.1003 8.5341 8.3600 0 +M V30 9 C -0.0940 7.1866 8.6579 0 +M V30 10 C -0.0915 6.1975 7.6961 0 +M V30 11 C -0.0855 4.7948 8.0990 0 +M V30 12 C -0.7138 3.8546 7.2808 0 +M V30 13 C -0.7109 2.5131 7.6621 0 +M V30 14 N -0.1010 2.1628 8.8105 0 +M V30 15 C 0.5019 3.0671 9.5949 0 +M V30 16 C 0.5404 4.4095 9.2848 0 +M V30 17 C -0.0953 6.5300 6.3432 0 +M V30 18 C 0.4941 9.4324 4.2022 0 +M V30 19 H 0.9637 10.7255 2.5232 0 +M V30 20 H -1.1883 7.2455 1.5976 0 +M V30 21 H -1.2004 6.5552 3.9480 0 +M V30 22 H -0.1091 9.9175 6.7592 0 +M V30 23 H -0.1021 9.3172 9.0857 0 +M V30 24 H -0.0912 6.9147 9.7075 0 +M V30 25 H -1.2019 4.1248 6.3633 0 +M V30 26 H -1.1929 1.7721 7.0404 0 +M V30 27 H 0.9770 2.7059 10.5129 0 +M V30 28 H 1.0243 5.1529 9.9103 0 +M V30 29 H -0.0933 5.7670 5.5987 0 +M V30 30 H 0.9698 10.0476 4.9508 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 2 1 2 diff --git a/examples/cage_output/apdcage_9.mol b/examples/cage_output/apdcage_9.mol index f9d8810..556089a 100644 --- a/examples/cage_output/apdcage_9.mol +++ b/examples/cage_output/apdcage_9.mol @@ -5,36 +5,36 @@ M V30 BEGIN CTAB M V30 COUNTS 30 32 0 0 0 M V30 BEGIN ATOM -M V30 1 C -0.4414 10.4236 -2.7332 0 -M V30 2 N 0.1653 9.6460 -1.8069 0 -M V30 3 C 0.7585 8.5114 -2.2195 0 -M V30 4 C 0.7649 8.1241 -3.5460 0 -M V30 5 C 0.1482 8.9128 -4.4939 0 -M V30 6 C 0.1563 8.5011 -5.8955 0 -M V30 7 C 0.1576 9.4301 -6.9142 0 -M V30 8 C 0.1657 9.0569 -8.2568 0 -M V30 9 C 0.1728 7.7214 -8.6042 0 -M V30 10 C 0.1717 6.7680 -7.6062 0 -M V30 11 C 0.1799 5.3683 -7.9759 0 -M V30 12 C 0.7887 4.4307 -7.1773 0 -M V30 13 C 0.7619 3.1162 -7.5848 0 -M V30 14 N 0.1653 2.7258 -8.7270 0 -M V30 15 C -0.4350 3.6290 -9.5202 0 -M V30 16 C -0.4214 4.9347 -9.1379 0 -M V30 17 C 0.1635 7.1669 -6.2684 0 -M V30 18 C -0.4593 10.0756 -4.0678 0 -M V30 19 H -0.9098 11.3335 -2.3568 0 -M V30 20 H 1.2661 7.8437 -1.5057 0 -M V30 21 H 1.2394 7.2115 -3.8889 0 -M V30 22 H 0.1521 10.4858 -6.6549 0 -M V30 23 H 0.1665 9.8038 -9.0349 0 -M V30 24 H 0.1792 7.4048 -9.6484 0 -M V30 25 H 1.2878 4.6905 -6.2401 0 -M V30 26 H 1.2424 2.3582 -6.9588 0 -M V30 27 H -0.9167 3.2947 -10.4482 0 -M V30 28 H -0.9205 5.6402 -9.8104 0 -M V30 29 H 0.1626 6.4308 -5.4941 0 -M V30 30 H -0.9542 10.7296 -4.7553 0 +M V30 1 C -0.5982 10.5682 -2.9455 0 +M V30 2 N -0.0076 9.8078 -2.0053 0 +M V30 3 C 0.5854 8.6652 -2.3962 0 +M V30 4 C 0.6031 8.2561 -3.7286 0 +M V30 5 C -0.0024 9.0321 -4.7056 0 +M V30 6 C -0.0070 8.6418 -6.1134 0 +M V30 7 C -0.0045 9.6307 -7.0746 0 +M V30 8 C -0.0082 9.3000 -8.4339 0 +M V30 9 C -0.0145 7.9525 -8.7318 0 +M V30 10 C -0.0170 6.9634 -7.7700 0 +M V30 11 C -0.0230 5.5607 -8.1729 0 +M V30 12 C 0.6053 4.6205 -7.3548 0 +M V30 13 C 0.6023 3.2790 -7.7360 0 +M V30 14 N -0.0076 2.9287 -8.8844 0 +M V30 15 C -0.6104 3.8330 -9.6688 0 +M V30 16 C -0.6489 5.1754 -9.3588 0 +M V30 17 C -0.0132 7.2959 -6.4171 0 +M V30 18 C -0.6026 10.1983 -4.2761 0 +M V30 19 H -1.0722 11.4914 -2.5972 0 +M V30 20 H 1.0798 8.0114 -1.6715 0 +M V30 21 H 1.0919 7.3211 -4.0219 0 +M V30 22 H 0.0006 10.6834 -6.8332 0 +M V30 23 H -0.0064 10.0831 -9.1596 0 +M V30 24 H -0.0173 7.6806 -9.7814 0 +M V30 25 H 1.0934 4.8907 -6.4373 0 +M V30 26 H 1.0844 2.5380 -7.1144 0 +M V30 27 H -1.0855 3.4718 -10.5868 0 +M V30 28 H -1.1328 5.9188 -9.9842 0 +M V30 29 H -0.0152 6.5329 -5.6726 0 +M V30 30 H -1.0783 10.8135 -5.0248 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 2 1 2 From c30dee36305b511113ea30f721ad76d69362c33f Mon Sep 17 00:00:00 2001 From: Andrew Tarzia Date: Sat, 6 Dec 2025 19:58:44 +0000 Subject: [PATCH 06/33] Change charge method. --- examples/cage_openmm_example.py | 16 +++++++--------- examples/openmm_example.py | 18 +++++++++--------- 2 files changed, 16 insertions(+), 18 deletions(-) diff --git a/examples/cage_openmm_example.py b/examples/cage_openmm_example.py index 1f74553..968797e 100644 --- a/examples/cage_openmm_example.py +++ b/examples/cage_openmm_example.py @@ -1,5 +1,3 @@ -# ruff: noqa: T201 - import logging import time from pathlib import Path @@ -56,7 +54,7 @@ def main() -> None: stko.OpenMMForceField( force_field=force_field, restricted=True, - partial_charges_method="espaloma-am1bcc", + partial_charges_method="mmff94", ), # Unrestricted optimisation. stko.OpenMMForceField( @@ -64,7 +62,7 @@ def main() -> None: # vacuum calculations (without constraints) force_field=force_field, restricted=False, - partial_charges_method="espaloma-am1bcc", + partial_charges_method="mmff94", ), # Molecular dynamics, short for equilibration. stko.OpenMMMD( @@ -76,7 +74,7 @@ def main() -> None: time_step=time_step, ), random_seed=275, - partial_charges_method="espaloma-am1bcc", + partial_charges_method="mmff94", # Frequency here is not related to the num confs tested. reporting_freq=100, trajectory_freq=100, @@ -89,7 +87,7 @@ def main() -> None: conformer_optimiser=stko.OpenMMForceField( force_field=force_field, restricted=False, - partial_charges_method="espaloma-am1bcc", + partial_charges_method="mmff94", ), ), # Long MD, for collecting lowest energy conformers. @@ -102,7 +100,7 @@ def main() -> None: time_step=time_step, ), random_seed=275, - partial_charges_method="espaloma-am1bcc", + partial_charges_method="mmff94", # Frequency here is not related to the num confs tested. reporting_freq=100, trajectory_freq=100, @@ -116,7 +114,7 @@ def main() -> None: conformer_optimiser=stko.OpenMMForceField( force_field=force_field, restricted=False, - partial_charges_method="espaloma-am1bcc", + partial_charges_method="mmff94", ), ), ) @@ -131,7 +129,7 @@ def main() -> None: "cage energy: %s kJmol-1 in %s s", stko.OpenMMEnergy( force_field=ForceField("openff_unconstrained-2.1.0.offxml"), - partial_charges_method="espaloma-am1bcc", + partial_charges_method="mmff94", ).get_energy(optimised_cage), round(et - st, 2), ) diff --git a/examples/openmm_example.py b/examples/openmm_example.py index 8f3a853..d5c64be 100644 --- a/examples/openmm_example.py +++ b/examples/openmm_example.py @@ -23,7 +23,7 @@ def main() -> None: # Load the openff-2.1.0 force field appropriate for # vacuum calculations (without constraints) force_field=ForceField("openff_unconstrained-2.1.0.offxml"), - partial_charges_method="espaloma-am1bcc", + partial_charges_method="mmff94", max_iterations=10, ) ff_cage = ff_optimizer.optimize(cage) @@ -32,7 +32,7 @@ def main() -> None: "ff_opt_cage", stko.OpenMMEnergy( force_field=ForceField("openff_unconstrained-2.1.0.offxml"), - partial_charges_method="espaloma-am1bcc", + partial_charges_method="mmff94", ).get_energy(ff_cage), ) @@ -41,7 +41,7 @@ def main() -> None: # vacuum calculations (without constraints) force_field=ForceField("openff_unconstrained-2.1.0.offxml"), restricted=False, - partial_charges_method="espaloma-am1bcc", + partial_charges_method="mmff94", ) ff_cage = ff_optimizer.optimize(cage) ff_cage.write(output / "ffunrest_opt_cage.mol") @@ -49,7 +49,7 @@ def main() -> None: "ffunrest_opt_cage", stko.OpenMMEnergy( force_field=ForceField("openff_unconstrained-2.1.0.offxml"), - partial_charges_method="espaloma-am1bcc", + partial_charges_method="mmff94", ).get_energy(ff_cage), ) @@ -58,7 +58,7 @@ def main() -> None: # vacuum calculations (without constraints) force_field=ForceField("openff_unconstrained-2.1.0.offxml"), restricted=True, - partial_charges_method="espaloma-am1bcc", + partial_charges_method="mmff94", ) ff_cage = ff_optimizer.optimize(cage) ff_cage.write(output / "ffrest_opt_cage.mol") @@ -66,7 +66,7 @@ def main() -> None: "ffrest_opt_cage", stko.OpenMMEnergy( force_field=ForceField("openff_unconstrained-2.1.0.offxml"), - partial_charges_method="espaloma-am1bcc", + partial_charges_method="mmff94", ).get_energy(ff_cage), ) @@ -80,7 +80,7 @@ def main() -> None: output_directory=output / "md_optimisation", integrator=integrator, random_seed=275, - partial_charges_method="espaloma-am1bcc", + partial_charges_method="mmff94", reporting_freq=5, trajectory_freq=5, num_steps=10000, @@ -90,7 +90,7 @@ def main() -> None: # vacuum calculations (without constraints) force_field=ForceField("openff_unconstrained-2.1.0.offxml"), restricted=False, - partial_charges_method="espaloma-am1bcc", + partial_charges_method="mmff94", ), ) md_cage = md_optimizer.optimize(cage) @@ -99,7 +99,7 @@ def main() -> None: "md_opt_cage", stko.OpenMMEnergy( force_field=ForceField("openff_unconstrained-2.1.0.offxml"), - partial_charges_method="espaloma-am1bcc", + partial_charges_method="mmff94", ).get_energy(md_cage), ) From a43fc6ae113d2ecb6bbf1900fb5ab3c60328f6e6 Mon Sep 17 00:00:00 2001 From: Andrew Tarzia Date: Sat, 6 Dec 2025 19:58:57 +0000 Subject: [PATCH 07/33] Update example output. --- .../openmm_example_directory/ff_opt_cage.mol | 352 +++++++++--------- .../ffrest_opt_cage.mol | 352 +++++++++--------- .../ffunrest_opt_cage.mol | 352 +++++++++--------- .../openmm_example_directory/md_opt_cage.mol | 352 +++++++++--------- .../openmm_example_directory/unopt_cage.mol | 352 +++++++++--------- 5 files changed, 880 insertions(+), 880 deletions(-) diff --git a/examples/openmm_example_directory/ff_opt_cage.mol b/examples/openmm_example_directory/ff_opt_cage.mol index 0500399..1154e83 100644 --- a/examples/openmm_example_directory/ff_opt_cage.mol +++ b/examples/openmm_example_directory/ff_opt_cage.mol @@ -5,174 +5,174 @@ M V30 BEGIN CTAB M V30 COUNTS 168 180 0 0 0 M V30 BEGIN ATOM -M V30 1 C 0.0084 -1.4735 8.8001 0 -M V30 2 C -1.5979 -1.0592 8.6363 0 -M V30 3 C -1.2248 0.6469 8.7507 0 -M V30 4 C -0.1637 1.7734 8.6542 0 -M V30 5 C 1.2113 0.7051 8.7731 0 -M V30 6 C 1.5917 -0.9896 8.6009 0 -M V30 7 C 3.3939 -2.0082 8.0750 0 -M V30 8 C -0.0798 4.0103 7.9211 0 -M V30 9 C -3.4583 -2.1411 7.9989 0 -M V30 10 H 0.0173 -1.6839 9.8296 0 -M V30 11 H -1.5896 0.7008 9.7493 0 -M V30 12 H 1.5457 0.8823 9.6083 0 -M V30 13 H 3.9302 -2.6188 8.8130 0 -M V30 14 H -0.3677 4.7562 8.8453 0 -M V30 15 H -3.9769 -2.7175 8.8426 0 -M V30 16 C -7.9492 -3.2336 -2.2542 0 -M V30 17 C -7.4859 -4.3521 -1.1078 0 -M V30 18 C -6.6899 -5.3758 -2.2793 0 -M V30 19 C -6.0188 -5.4014 -3.6207 0 -M V30 20 C -6.7341 -3.9339 -4.2553 0 -M V30 21 C -7.5674 -2.5043 -3.6850 0 -M V30 22 C -7.7559 -0.5180 -4.4855 0 -M V30 23 C -4.1441 -6.4788 -4.4918 0 -M V30 24 C -7.6715 -4.5015 1.0109 0 -M V30 25 H -8.9318 -3.5553 -2.4244 0 -M V30 26 H -7.5390 -6.0456 -2.3634 0 -M V30 27 H -7.3475 -4.2095 -4.8812 0 -M V30 28 H -8.7120 -0.1427 -4.8944 0 -M V30 29 H -4.4804 -7.5713 -4.9076 0 -M V30 30 H -8.3772 -4.9566 1.6111 0 -M V30 31 C 6.8010 -5.3116 -2.1079 0 -M V30 32 C 7.5405 -4.3139 -1.0518 0 -M V30 33 C 8.0148 -3.1190 -2.2490 0 -M V30 34 C 7.6664 -2.5411 -3.5953 0 -M V30 35 C 6.7354 -3.9302 -4.1171 0 -M V30 36 C 5.9740 -5.3037 -3.4847 0 -M V30 37 C 4.3446 -6.5211 -4.2516 0 -M V30 38 C 7.6747 -0.3694 -4.4966 0 -M V30 39 C 7.7483 -4.3920 1.0468 0 -M V30 40 H 7.5906 -5.9532 -2.3732 0 -M V30 41 H 9.0095 -3.4995 -2.3719 0 -M V30 42 H 7.2347 -4.3107 -4.8108 0 -M V30 43 H 4.4573 -7.4960 -4.6583 0 -M V30 44 H 8.7837 -0.1067 -4.9071 0 -M V30 45 H 8.5010 -4.7919 1.6132 0 -M V30 46 C 1.2149 8.5333 -2.1210 0 -M V30 47 C -0.0216 8.6557 -1.0895 0 -M V30 48 C -1.2356 8.4448 -2.3138 0 -M V30 49 C -1.4839 7.7771 -3.6505 0 -M V30 50 C 0.1505 7.7639 -4.1995 0 -M V30 51 C 1.6710 7.8187 -3.5147 0 -M V30 52 C 3.5087 7.0212 -4.2450 0 -M V30 53 C -3.3106 6.8754 -4.6011 0 -M V30 54 C -0.1156 8.8901 1.0267 0 -M V30 55 H 1.3515 9.5508 -2.3672 0 -M V30 56 H -1.4859 9.4590 -2.4496 0 -M V30 57 H 0.2077 8.4630 -4.8438 0 -M V30 58 H 4.2843 7.6150 -4.6605 0 -M V30 59 H -4.0092 7.3394 -5.2092 0 -M V30 60 H -0.1264 9.7268 1.6068 0 -M V30 61 C -9.2375 -5.0979 6.0462 0 -M V30 62 C -8.5183 -4.4215 7.3646 0 -M V30 63 C -7.3644 -3.2282 7.1265 0 -M V30 64 C -5.9985 -3.5049 6.1069 0 -M V30 65 C -6.9771 -4.3927 4.1771 0 -M V30 66 C -8.4285 -5.4646 4.7062 0 -M V30 67 N -6.8334 -4.0646 2.3436 0 -M V30 68 N -4.3038 -2.4393 6.7336 0 -M V30 69 H -10.1286 -4.5423 5.7699 0 -M V30 70 H -9.7619 -5.9871 6.4133 0 -M V30 71 H -8.2963 -5.1738 8.1547 0 -M V30 72 H -9.3715 -3.9690 7.8766 0 -M V30 73 H -7.5459 -2.3752 7.8975 0 -M V30 74 H -7.7449 -2.6494 6.3381 0 -M V30 75 H -5.4447 -4.1296 6.9067 0 -M V30 76 H -6.5107 -5.1705 3.5034 0 -M V30 77 H -7.7691 -6.2194 5.0233 0 -M V30 78 H -9.1808 -6.0850 4.0886 0 -M V30 79 C 9.0382 -5.4515 6.0533 0 -M V30 80 C 8.0861 -5.1752 7.3664 0 -M V30 81 C 6.4668 -4.8411 7.1370 0 -M V30 82 C 5.9878 -3.4531 6.1134 0 -M V30 83 C 7.2901 -3.8718 4.1667 0 -M V30 84 C 8.9408 -4.5703 4.7038 0 -M V30 85 N 6.9206 -3.9163 2.3399 0 -M V30 86 N 4.3985 -2.3714 6.6342 0 -M V30 87 H 9.0226 -6.5031 5.7713 0 -M V30 88 H 10.0783 -5.4525 6.4140 0 -M V30 89 H 8.6131 -4.5920 8.1511 0 -M V30 90 H 8.1671 -6.1353 7.8935 0 -M V30 91 H 5.8267 -5.4343 7.9016 0 -M V30 92 H 6.1772 -5.4946 6.3768 0 -M V30 93 H 6.3268 -2.7385 6.9011 0 -M V30 94 H 7.7062 -3.0545 3.5099 0 -M V30 95 H 9.2545 -3.6191 5.0206 0 -M V30 96 H 9.8652 -4.9023 4.0988 0 -M V30 97 C 0.1802 10.5477 6.0466 0 -M V30 98 C 0.4054 9.5834 7.3660 0 -M V30 99 C 0.8652 7.9877 7.1315 0 -M V30 100 C -0.0443 6.9221 6.0951 0 -M V30 101 C -0.3279 8.2315 4.1810 0 -M V30 102 C -0.5362 10.0244 4.7063 0 -M V30 103 N -0.1262 7.9422 2.3405 0 -M V30 104 N 0.0333 4.8946 6.7750 0 -M V30 105 H 1.1064 11.0434 5.7725 0 -M V30 106 H -0.3302 11.4448 6.4127 0 -M V30 107 H -0.3585 9.7701 8.1549 0 -M V30 108 H 1.2223 10.0994 7.8781 0 -M V30 109 H 1.6976 7.7229 7.9025 0 -M V30 110 H 1.5539 8.0285 6.3417 0 -M V30 111 H -0.8686 6.7585 6.9124 0 -M V30 112 H -1.2316 8.2167 3.5012 0 -M V30 113 H -1.5201 9.8301 5.0212 0 -M V30 114 H -0.7007 10.9893 4.0884 0 -M V30 115 C 1.1364 -9.7752 -7.1193 0 -M V30 116 C -0.4918 -9.6283 -7.3108 0 -M V30 117 C -1.2077 -8.1874 -6.8420 0 -M V30 118 C -0.9966 -7.5477 -5.2218 0 -M V30 119 C 1.3262 -7.6819 -4.9155 0 -M V30 120 C 1.9190 -9.2324 -5.8023 0 -M V30 121 N 2.7372 -6.4364 -4.4886 0 -M V30 122 N -2.7086 -6.4766 -4.5775 0 -M V30 123 H 1.6541 -9.4291 -8.0080 0 -M V30 124 H 1.3551 -10.8425 -7.2843 0 -M V30 125 H -1.0301 -10.5640 -7.0479 0 -M V30 126 H -0.6044 -9.7308 -8.3923 0 -M V30 127 H -2.0004 -7.8939 -7.6519 0 -M V30 128 H -0.5418 -7.4420 -7.1534 0 -M V30 129 H -1.7892 -8.3245 -4.8024 0 -M V30 130 H 1.8820 -7.9330 -3.9514 0 -M V30 131 H 1.5888 -9.9228 -5.0628 0 -M V30 132 H 2.9876 -9.6585 -5.9511 0 -M V30 133 C -8.0971 6.0066 -6.8058 0 -M V30 134 C -9.0116 4.6525 -6.5972 0 -M V30 135 C -8.6256 3.6019 -5.3597 0 -M V30 136 C -6.9894 2.8813 -5.2827 0 -M V30 137 C -5.6261 4.8347 -5.4944 0 -M V30 138 C -6.4864 6.0017 -6.6919 0 -M V30 139 N -4.1168 5.5240 -4.5794 0 -M V30 140 N -6.7970 0.9900 -4.6628 0 -M V30 141 H -8.4766 6.8306 -6.2025 0 -M V30 142 H -8.3956 6.4378 -7.7738 0 -M V30 143 H -9.3181 4.2005 -7.5646 0 -M V30 144 H -9.9958 5.0906 -6.3836 0 -M V30 145 H -9.5928 3.2643 -4.8110 0 -M V30 146 H -8.3836 4.2271 -4.5609 0 -M V30 147 H -7.2183 2.2359 -6.1621 0 -M V30 148 H -4.6320 4.8452 -6.0069 0 -M V30 149 H -6.1970 5.3982 -7.5029 0 -M V30 150 H -6.1863 7.0426 -7.0925 0 -M V30 151 C 7.8973 5.8719 -7.1192 0 -M V30 152 C 8.5842 4.3885 -7.3108 0 -M V30 153 C 7.6942 3.0480 -6.8421 0 -M V30 154 C 7.0362 2.9072 -5.2232 0 -M V30 155 C 5.9930 4.9869 -4.9149 0 -M V30 156 C 7.0361 6.2782 -5.8024 0 -M V30 157 N 4.2243 5.5837 -4.4852 0 -M V30 158 N 6.9587 0.8774 -4.5817 0 -M V30 159 H 7.3388 6.1471 -8.0081 0 -M V30 160 H 8.7123 6.5948 -7.2841 0 -M V30 161 H 9.6637 4.3900 -7.0478 0 -M V30 162 H 8.7294 4.3421 -8.3923 0 -M V30 163 H 7.8367 2.2149 -7.6517 0 -M V30 164 H 6.7158 3.2521 -7.1534 0 -M V30 165 H 8.1034 2.6132 -4.8020 0 -M V30 166 H 5.9293 5.5966 -3.9513 0 -M V30 167 H 7.7986 6.3372 -5.0627 0 -M V30 168 H 6.8707 7.4168 -5.9510 0 +M V30 1 C -1.3074 0.7052 8.7433 0 +M V30 2 C -1.6814 -0.9276 8.5712 0 +M V30 3 C -0.0093 -1.3871 8.7042 0 +M V30 4 C 1.5243 -0.9507 8.5651 0 +M V30 5 C 1.1571 0.7506 8.6863 0 +M V30 6 C -0.1401 1.8483 8.5513 0 +M V30 7 C -0.1746 4.0383 8.0306 0 +M V30 8 C 3.4639 -1.9776 8.0015 0 +M V30 9 C -3.5235 -2.0401 8.0011 0 +M V30 10 H -1.4519 0.8153 9.7334 0 +M V30 11 H -0.1225 -1.7118 9.6436 0 +M V30 12 H 1.4811 0.9140 9.5100 0 +M V30 13 H -0.2837 4.6992 8.8053 0 +M V30 14 H 3.9198 -2.6093 8.7173 0 +M V30 15 H -4.2937 -2.1124 8.7222 0 +M V30 16 C -6.6343 -5.4463 -2.2272 0 +M V30 17 C -7.3666 -4.5278 -1.1413 0 +M V30 18 C -7.7970 -3.2778 -2.2187 0 +M V30 19 C -7.5167 -2.5657 -3.6164 0 +M V30 20 C -6.6434 -3.9479 -4.2126 0 +M V30 21 C -5.8656 -5.3850 -3.6480 0 +M V30 22 C -4.1940 -6.5782 -4.4671 0 +M V30 23 C -7.6550 -0.4334 -4.5292 0 +M V30 24 C -7.4425 -4.6150 1.1377 0 +M V30 25 H -7.4511 -6.0037 -2.4987 0 +M V30 26 H -8.7635 -3.5296 -2.2393 0 +M V30 27 H -7.2359 -4.2263 -4.8030 0 +M V30 28 H -4.4649 -7.4435 -4.9233 0 +M V30 29 H -8.6273 -0.1140 -4.8676 0 +M V30 30 H -8.1375 -5.3246 1.5566 0 +M V30 31 C 8.0466 -3.0269 -2.2015 0 +M V30 32 C 7.6151 -4.1204 -1.0752 0 +M V30 33 C 6.7523 -5.1308 -2.0546 0 +M V30 34 C 5.9928 -5.2519 -3.3904 0 +M V30 35 C 6.7070 -3.8260 -4.0822 0 +M V30 36 C 7.5627 -2.4321 -3.6199 0 +M V30 37 C 7.7864 -0.3574 -4.4746 0 +M V30 38 C 4.1606 -6.4431 -4.2146 0 +M V30 39 C 7.7231 -4.1088 1.1751 0 +M V30 40 H 8.9164 -3.4477 -2.5051 0 +M V30 41 H 7.4919 -5.8214 -2.1945 0 +M V30 42 H 7.1903 -4.2069 -4.7256 0 +M V30 43 H 8.6636 -0.1565 -4.9209 0 +M V30 44 H 4.3767 -7.4619 -4.6263 0 +M V30 45 H 8.6779 -4.3764 1.5667 0 +M V30 46 C -1.3277 8.3885 -2.3174 0 +M V30 47 C -0.2299 8.6359 -1.0979 0 +M V30 48 C 1.0928 8.4011 -2.0826 0 +M V30 49 C 1.6172 7.8187 -3.3951 0 +M V30 50 C 0.0924 7.6796 -4.1960 0 +M V30 51 C -1.5040 7.6733 -3.6227 0 +M V30 52 C -3.4144 6.8775 -4.5606 0 +M V30 53 C 3.5385 6.8208 -4.2109 0 +M V30 54 C -0.3225 8.7237 1.1616 0 +M V30 55 H -1.4680 9.3704 -2.5773 0 +M V30 56 H 1.2950 9.4049 -2.1877 0 +M V30 57 H 0.1341 8.3586 -4.7405 0 +M V30 58 H -3.9977 7.2174 -5.1290 0 +M V30 59 H 4.2954 7.5273 -4.6289 0 +M V30 60 H -0.5571 9.7063 1.5574 0 +M V30 61 C -9.1897 -5.1118 6.0933 0 +M V30 62 C -8.4849 -4.4159 7.4037 0 +M V30 63 C -7.4085 -3.1869 7.1368 0 +M V30 64 C -5.9805 -3.5162 6.0977 0 +M V30 65 C -6.8953 -4.4234 4.1935 0 +M V30 66 C -8.4018 -5.4624 4.7167 0 +M V30 67 N -6.9589 -3.9908 2.2602 0 +M V30 68 N -4.2511 -2.5511 6.6030 0 +M V30 69 H -10.1041 -4.5925 5.8372 0 +M V30 70 H -9.6996 -6.0107 6.4648 0 +M V30 71 H -8.2403 -5.1447 8.1960 0 +M V30 72 H -9.3540 -3.9967 7.9075 0 +M V30 73 H -7.5867 -2.3381 7.9213 0 +M V30 74 H -7.8485 -2.6032 6.3973 0 +M V30 75 H -5.5153 -4.1021 6.9679 0 +M V30 76 H -6.4959 -5.2421 3.5024 0 +M V30 77 H -7.8300 -6.3007 5.0371 0 +M V30 78 H -9.2019 -6.0523 4.1276 0 +M V30 79 C 9.0116 -5.3901 6.0935 0 +M V30 80 C 8.0542 -5.1250 7.4038 0 +M V30 81 C 6.4523 -4.8058 7.1359 0 +M V30 82 C 6.0043 -3.3966 6.1048 0 +M V30 83 C 7.2672 -3.7453 4.1947 0 +M V30 84 C 8.9197 -4.5328 4.7175 0 +M V30 85 N 6.9264 -4.0163 2.2678 0 +M V30 86 N 4.3182 -2.3719 6.5915 0 +M V30 87 H 9.0188 -6.4417 5.8385 0 +M V30 88 H 10.0440 -5.3824 6.4657 0 +M V30 89 H 8.5653 -4.5505 8.1964 0 +M V30 90 H 8.1255 -6.0883 7.9075 0 +M V30 91 H 5.8050 -5.3854 7.9222 0 +M V30 92 H 6.1656 -5.4778 6.3990 0 +M V30 93 H 6.2906 -2.7090 6.9677 0 +M V30 94 H 7.7783 -2.9945 3.5002 0 +M V30 95 H 9.3611 -3.6190 5.0376 0 +M V30 96 H 9.8336 -4.9314 4.1285 0 +M V30 97 C 0.1713 10.5150 6.0879 0 +M V30 98 C 0.4091 9.5606 7.3978 0 +M V30 99 C 0.8728 7.9898 7.1243 0 +M V30 100 C -0.0805 6.9326 6.1191 0 +M V30 101 C -0.4239 8.1836 4.2021 0 +M V30 102 C -0.5407 10.0185 4.7106 0 +M V30 103 N -0.0335 8.0265 2.2537 0 +M V30 104 N 0.0211 4.9717 6.6167 0 +M V30 105 H 1.0845 11.0292 5.8337 0 +M V30 106 H -0.3427 11.4046 6.4632 0 +M V30 107 H -0.3383 9.7311 8.1993 0 +M V30 108 H 1.2360 10.0669 7.8908 0 +M V30 109 H 1.6888 7.7047 7.9195 0 +M V30 110 H 1.5832 8.0454 6.3535 0 +M V30 111 H -0.8535 6.7612 6.9586 0 +M V30 112 H -1.3242 8.2772 3.4896 0 +M V30 113 H -1.5536 9.9556 5.0405 0 +M V30 114 H -0.6338 10.9996 4.1161 0 +M V30 115 C 1.1107 -9.7652 -7.1225 0 +M V30 116 C -0.5119 -9.6114 -7.3040 0 +M V30 117 C -1.1946 -8.1681 -6.8491 0 +M V30 118 C -0.9831 -7.5431 -5.2404 0 +M V30 119 C 1.3263 -7.6500 -4.9028 0 +M V30 120 C 1.9470 -9.1965 -5.8504 0 +M V30 121 N 2.8181 -6.3962 -4.5027 0 +M V30 122 N -2.5100 -6.4095 -4.5724 0 +M V30 123 H 1.6134 -9.4630 -8.0276 0 +M V30 124 H 1.3173 -10.8327 -7.2467 0 +M V30 125 H -1.0668 -10.5351 -7.0422 0 +M V30 126 H -0.6215 -9.7038 -8.3820 0 +M V30 127 H -2.0098 -7.8815 -7.6478 0 +M V30 128 H -0.5354 -7.4321 -7.1988 0 +M V30 129 H -1.7662 -8.2665 -4.8063 0 +M V30 130 H 1.9441 -7.9079 -3.9832 0 +M V30 131 H 1.6432 -9.8900 -5.1015 0 +M V30 132 H 3.0015 -9.6238 -6.0374 0 +M V30 133 C -8.0993 5.9406 -6.8436 0 +M V30 134 C -8.9980 4.5855 -6.6345 0 +M V30 135 C -8.6200 3.5600 -5.3781 0 +M V30 136 C -6.9656 2.8880 -5.2932 0 +M V30 137 C -5.6213 4.8006 -5.5105 0 +M V30 138 C -6.4990 5.9934 -6.7004 0 +M V30 139 N -4.1135 5.4457 -4.5907 0 +M V30 140 N -6.7685 0.9608 -4.5442 0 +M V30 141 H -8.5131 6.7699 -6.2828 0 +M V30 142 H -8.3660 6.3437 -7.8268 0 +M V30 143 H -9.3046 4.1162 -7.5896 0 +M V30 144 H -9.9739 5.0222 -6.4156 0 +M V30 145 H -9.5901 3.2218 -4.8397 0 +M V30 146 H -8.4065 4.2018 -4.5862 0 +M V30 147 H -7.1994 2.1658 -6.1267 0 +M V30 148 H -4.6124 4.8354 -6.0534 0 +M V30 149 H -6.1890 5.4085 -7.5032 0 +M V30 150 H -6.2331 7.0459 -7.0749 0 +M V30 151 C 7.9015 5.8446 -7.1224 0 +M V30 152 C 8.5797 4.3627 -7.3040 0 +M V30 153 C 7.6709 3.0497 -6.8491 0 +M V30 154 C 7.0257 2.9172 -5.2423 0 +M V30 155 C 5.9653 4.9708 -4.9023 0 +M V30 156 C 6.9910 6.2845 -5.8506 0 +M V30 157 N 4.1465 5.6358 -4.5012 0 +M V30 158 N 6.7996 1.0123 -4.5778 0 +M V30 159 H 7.3885 6.1287 -8.0276 0 +M V30 160 H 8.7226 6.5572 -7.2467 0 +M V30 161 H 9.6571 4.3438 -7.0422 0 +M V30 162 H 8.7145 4.3137 -8.3820 0 +M V30 163 H 7.8306 2.2005 -7.6476 0 +M V30 164 H 6.7039 3.2526 -7.1990 0 +M V30 165 H 8.0419 2.6042 -4.8059 0 +M V30 166 H 5.8765 5.6378 -3.9833 0 +M V30 167 H 7.7431 6.3680 -5.1015 0 +M V30 168 H 6.8335 7.4116 -6.0374 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 2 1 2 @@ -345,16 +345,16 @@ M V30 167 1 156 167 M V30 168 1 156 168 M V30 169 2 9 68 M V30 170 2 24 67 -M V30 171 2 7 86 +M V30 171 2 8 86 M V30 172 2 39 85 -M V30 173 2 8 104 +M V30 173 2 7 104 M V30 174 2 54 103 -M V30 175 2 23 122 -M V30 176 2 37 121 -M V30 177 2 22 140 -M V30 178 2 53 139 -M V30 179 2 38 158 -M V30 180 2 52 157 +M V30 175 2 22 122 +M V30 176 2 38 121 +M V30 177 2 23 140 +M V30 178 2 52 139 +M V30 179 2 37 158 +M V30 180 2 53 157 M V30 END BOND M V30 END CTAB M END diff --git a/examples/openmm_example_directory/ffrest_opt_cage.mol b/examples/openmm_example_directory/ffrest_opt_cage.mol index d23244c..12dab97 100644 --- a/examples/openmm_example_directory/ffrest_opt_cage.mol +++ b/examples/openmm_example_directory/ffrest_opt_cage.mol @@ -5,174 +5,174 @@ M V30 BEGIN CTAB M V30 COUNTS 168 180 0 0 0 M V30 BEGIN ATOM -M V30 1 C -0.1531 -0.6298 3.9840 0 -M V30 2 C -1.2147 0.2402 3.8604 0 -M V30 3 C -0.9670 1.5928 3.7582 0 -M V30 4 C 0.3415 2.0753 3.7459 0 -M V30 5 C 1.3890 1.1759 3.8378 0 -M V30 6 C 1.1527 -0.1736 3.9713 0 -M V30 7 C 2.2833 -1.0990 4.0865 0 -M V30 8 C 0.6181 3.4868 3.5737 0 -M V30 9 C -2.5791 -0.2494 3.7701 0 -M V30 10 H -0.3483 -1.6904 4.0527 0 -M V30 11 H -1.7735 2.2965 3.6537 0 -M V30 12 H 2.4254 1.5523 3.7999 0 -M V30 13 H 3.2592 -0.6759 4.1962 0 -M V30 14 H 1.4453 3.7403 2.9503 0 -M V30 15 H -3.2841 0.3837 3.2597 0 -M V30 16 C -3.6915 -1.8890 -0.8084 0 -M V30 17 C -3.0206 -2.9084 -0.1683 0 -M V30 18 C -2.1229 -3.6720 -0.8840 0 -M V30 19 C -1.8730 -3.4028 -2.2295 0 -M V30 20 C -2.5478 -2.3619 -2.8425 0 -M V30 21 C -3.4649 -1.6097 -2.1441 0 -M V30 22 C -4.1680 -0.5157 -2.8200 0 -M V30 23 C -0.8768 -4.1573 -2.9621 0 -M V30 24 C -3.2084 -3.1730 1.2474 0 -M V30 25 H -4.3828 -1.2803 -0.2433 0 -M V30 26 H -1.5695 -4.4624 -0.4092 0 -M V30 27 H -2.3427 -2.1351 -3.9026 0 -M V30 28 H -4.0351 -0.4124 -3.8760 0 -M V30 29 H -0.3014 -3.6246 -3.6849 0 -M V30 30 H -2.5127 -3.8366 1.7310 0 -M V30 31 C 3.3909 -3.0833 -0.8453 0 -M V30 32 C 3.9158 -1.9861 -0.1975 0 -M V30 33 C 4.2232 -0.8616 -0.9339 0 -M V30 34 C 4.0242 -0.8319 -2.3140 0 -M V30 35 C 3.4901 -1.9471 -2.9352 0 -M V30 36 C 3.1601 -3.0691 -2.2092 0 -M V30 37 C 2.5243 -4.2141 -2.8669 0 -M V30 38 C 4.3168 0.3633 -3.0783 0 -M V30 39 C 4.1130 -1.9768 1.2415 0 -M V30 40 H 3.1140 -3.9477 -0.2590 0 -M V30 41 H 4.6038 0.0120 -0.4356 0 -M V30 42 H 3.2984 -1.9266 -4.0214 0 -M V30 43 H 2.3582 -4.1504 -3.9213 0 -M V30 44 H 4.0689 0.3587 -4.1155 0 -M V30 45 H 4.2888 -1.0307 1.7234 0 -M V30 46 C 0.6623 4.3786 -0.6538 0 -M V30 47 C -0.6437 4.5948 -0.2711 0 -M V30 48 C -1.6631 4.0075 -0.9903 0 -M V30 49 C -1.3820 3.1415 -2.0469 0 -M V30 50 C -0.0599 2.8731 -2.3549 0 -M V30 51 C 0.9623 3.5043 -1.6830 0 -M V30 52 C 2.3522 3.1753 -2.0114 0 -M V30 53 C -2.4443 2.4872 -2.7829 0 -M V30 54 C -0.9724 5.3112 0.9488 0 -M V30 55 H 1.4693 4.8299 -0.0943 0 -M V30 56 H -2.6910 4.1565 -0.7117 0 -M V30 57 H 0.1788 2.1419 -3.1458 0 -M V30 58 H 2.5207 2.2059 -2.4300 0 -M V30 59 H -2.1980 1.6380 -3.3792 0 -M V30 60 H -1.9920 5.2647 1.2900 0 -M V30 61 C -6.8317 -2.7329 3.2563 0 -M V30 62 C -6.7456 -1.5291 4.1224 0 -M V30 63 C -5.3682 -0.8630 3.9957 0 -M V30 64 C -4.2825 -1.8773 4.2657 0 -M V30 65 C -4.3912 -3.0423 3.3503 0 -M V30 66 C -5.7202 -3.6684 3.4888 0 -M V30 67 N -4.2237 -2.6842 1.9304 0 -M V30 68 N -2.9494 -1.3871 4.3308 0 -M V30 69 H -6.8240 -2.4122 2.1768 0 -M V30 70 H -7.8182 -3.2595 3.4268 0 -M V30 71 H -6.9227 -1.8160 5.1805 0 -M V30 72 H -7.5303 -0.8130 3.8457 0 -M V30 73 H -5.2886 -0.0378 4.6980 0 -M V30 74 H -5.2560 -0.4524 2.9673 0 -M V30 75 H -4.4796 -2.2777 5.2990 0 -M V30 76 H -3.6092 -3.8005 3.6555 0 -M V30 77 H -5.8146 -4.1163 4.5231 0 -M V30 78 H -5.7981 -4.5301 2.7590 0 -M V30 79 C 4.9860 -5.4406 3.4425 0 -M V30 80 C 3.7615 -5.7497 4.2248 0 -M V30 81 C 2.6770 -4.6917 3.9769 0 -M V30 82 C 3.2157 -3.3037 4.2295 0 -M V30 83 C 4.4175 -3.0433 3.3959 0 -M V30 84 C 5.4499 -4.0625 3.6661 0 -M V30 85 N 4.1539 -3.0875 1.9464 0 -M V30 86 N 2.1231 -2.4067 4.0763 0 -M V30 87 H 4.7700 -5.5870 2.3470 0 -M V30 88 H 5.8073 -6.1717 3.7078 0 -M V30 89 H 4.0062 -5.7813 5.3075 0 -M V30 90 H 3.3810 -6.7416 3.9484 0 -M V30 91 H 1.8211 -4.8763 4.6201 0 -M V30 92 H 2.3121 -4.7570 2.9276 0 -M V30 93 H 3.5263 -3.2617 5.3106 0 -M V30 94 H 4.8557 -2.0395 3.6783 0 -M V30 95 H 5.8096 -3.9558 4.7331 0 -M V30 96 H 6.3459 -3.8611 3.0045 0 -M V30 97 C 1.2266 8.2569 2.9759 0 -M V30 98 C 1.9629 7.6233 4.0999 0 -M V30 99 C 1.7374 6.1048 4.0957 0 -M V30 100 C 0.2591 5.7969 4.1146 0 -M V30 101 C -0.4628 6.4626 2.9999 0 -M V30 102 C -0.2043 7.9154 2.9949 0 -M V30 103 N -0.0686 5.9172 1.6885 0 -M V30 104 N -0.0578 4.4155 4.2294 0 -M V30 105 H 1.6744 7.9181 1.9997 0 -M V30 106 H 1.3537 9.3801 3.0172 0 -M V30 107 H 1.6186 8.0501 5.0656 0 -M V30 108 H 3.0358 7.8390 4.0128 0 -M V30 109 H 2.2190 5.6506 4.9572 0 -M V30 110 H 2.2077 5.6810 3.1803 0 -M V30 111 H -0.1434 6.2582 5.0591 0 -M V30 112 H -1.5704 6.3059 3.1676 0 -M V30 113 H -0.6880 8.3798 3.9058 0 -M V30 114 H -0.7111 8.3759 2.0937 0 -M V30 115 C 2.6521 -6.9024 -4.9084 0 -M V30 116 C 1.3716 -6.8114 -5.6562 0 -M V30 117 C 0.3937 -5.8521 -4.9632 0 -M V30 118 C 0.2159 -6.2298 -3.5120 0 -M V30 119 C 1.4825 -6.4459 -2.7664 0 -M V30 120 C 2.4406 -7.2907 -3.5052 0 -M V30 121 N 2.1597 -5.2757 -2.1794 0 -M V30 122 N -0.7377 -5.4587 -2.7925 0 -M V30 123 H 3.1966 -5.9178 -4.9555 0 -M V30 124 H 3.3293 -7.6583 -5.4078 0 -M V30 125 H 0.9111 -7.8194 -5.7270 0 -M V30 126 H 1.5601 -6.4736 -6.6835 0 -M V30 127 H -0.5709 -5.8886 -5.4620 0 -M V30 128 H 0.7682 -4.8093 -5.0677 0 -M V30 129 H -0.2556 -7.2514 -3.5428 0 -M V30 130 H 1.1823 -7.0582 -1.8640 0 -M V30 131 H 2.0667 -8.3579 -3.4782 0 -M V30 132 H 3.4302 -7.2973 -2.9559 0 -M V30 133 C -6.2925 4.1701 -3.2471 0 -M V30 134 C -7.1749 3.3030 -2.4247 0 -M V30 135 C -6.3710 2.1620 -1.7853 0 -M V30 136 C -5.5948 1.4019 -2.8342 0 -M V30 137 C -4.7143 2.3131 -3.6097 0 -M V30 138 C -5.5111 3.3936 -4.2222 0 -M V30 139 N -3.6722 2.9637 -2.7954 0 -M V30 140 N -4.9297 0.3368 -2.1671 0 -M V30 141 H -5.5890 4.7305 -2.5694 0 -M V30 142 H -6.9109 4.9508 -3.7835 0 -M V30 143 H -7.9800 2.8774 -3.0603 0 -M V30 144 H -7.6608 3.8990 -1.6412 0 -M V30 145 H -7.0369 1.4841 -1.2586 0 -M V30 146 H -5.6621 2.5707 -1.0309 0 -M V30 147 H -6.3435 0.9466 -3.5406 0 -M V30 148 H -4.2308 1.7329 -4.4518 0 -M V30 149 H -6.2082 2.9511 -4.9952 0 -M V30 150 H -4.8155 4.0908 -4.7800 0 -M V30 151 C 4.6616 5.3349 -4.1334 0 -M V30 152 C 4.9137 4.2266 -5.0899 0 -M V30 153 C 4.4663 2.8734 -4.5192 0 -M V30 154 C 5.0575 2.6704 -3.1445 0 -M V30 155 C 4.7236 3.7910 -2.2283 0 -M V30 156 C 5.2238 5.0547 -2.8031 0 -M V30 157 N 3.3184 4.0634 -1.8763 0 -M V30 158 N 4.8225 1.4310 -2.4884 0 -M V30 159 H 3.5519 5.5029 -4.0409 0 -M V30 160 H 5.0965 6.2980 -4.5371 0 -M V30 161 H 5.9983 4.1851 -5.3246 0 -M V30 162 H 4.3898 4.4237 -6.0343 0 -M V30 163 H 4.7977 2.0867 -5.1913 0 -M V30 164 H 3.3550 2.8347 -4.4752 0 -M V30 165 H 6.1747 2.7084 -3.2770 0 -M V30 166 H 5.2811 3.6202 -1.2590 0 -M V30 167 H 6.3527 5.0210 -2.8651 0 -M V30 168 H 4.9712 5.9061 -2.1014 0 +M V30 1 C -0.7479 0.9817 4.3160 0 +M V30 2 C -0.7623 -0.4108 4.3799 0 +M V30 3 C 0.4435 -1.0964 4.4907 0 +M V30 4 C 1.6455 -0.4096 4.5137 0 +M V30 5 C 1.6395 0.9808 4.4086 0 +M V30 6 C 0.4488 1.6750 4.3237 0 +M V30 7 C 0.4809 3.1301 4.2251 0 +M V30 8 C 2.9344 -1.1105 4.6520 0 +M V30 9 C -2.0138 -1.1588 4.3351 0 +M V30 10 H -1.6937 1.5393 4.2443 0 +M V30 11 H 0.4497 -2.1756 4.5551 0 +M V30 12 H 2.5748 1.5285 4.4213 0 +M V30 13 H 1.2842 3.5689 3.6704 0 +M V30 14 H 3.8330 -0.5142 4.7453 0 +M V30 15 H -1.9932 -2.2328 4.5769 0 +M V30 16 C -2.4396 -3.4581 -1.3026 0 +M V30 17 C -3.2635 -2.6208 -0.5520 0 +M V30 18 C -3.8319 -1.5055 -1.1597 0 +M V30 19 C -3.5802 -1.2245 -2.4919 0 +M V30 20 C -2.7156 -2.0487 -3.2114 0 +M V30 21 C -2.1502 -3.1623 -2.6223 0 +M V30 22 C -1.2267 -3.9829 -3.3982 0 +M V30 23 C -4.2015 -0.0794 -3.1807 0 +M V30 24 C -3.5023 -2.9329 0.8528 0 +M V30 25 H -1.9853 -4.3492 -0.8444 0 +M V30 26 H -4.4816 -0.8568 -0.5889 0 +M V30 27 H -2.4989 -1.8245 -4.2495 0 +M V30 28 H -0.7012 -3.4961 -4.1934 0 +M V30 29 H -4.0224 0.0370 -4.2418 0 +M V30 30 H -3.0910 -3.8700 1.2592 0 +M V30 31 C 4.3879 -1.0511 -0.7727 0 +M V30 32 C 4.2974 -2.0818 0.1615 0 +M V30 33 C 3.6331 -3.2534 -0.1883 0 +M V30 34 C 3.0643 -3.3945 -1.4427 0 +M V30 35 C 3.1536 -2.3448 -2.3563 0 +M V30 36 C 3.8149 -1.1786 -2.0251 0 +M V30 37 C 3.8896 -0.0893 -2.9924 0 +M V30 38 C 2.3707 -4.6555 -1.7598 0 +M V30 39 C 4.8615 -1.9119 1.4960 0 +M V30 40 H 4.9101 -0.1191 -0.5100 0 +M V30 41 H 3.5564 -4.0562 0.5317 0 +M V30 42 H 2.7040 -2.4626 -3.3355 0 +M V30 43 H 3.2470 -0.1439 -3.8465 0 +M V30 44 H 2.2950 -5.3975 -0.9753 0 +M V30 45 H 5.3098 -0.9433 1.7664 0 +M V30 46 C -1.7129 3.9796 -0.9002 0 +M V30 47 C -0.7918 4.3956 0.0599 0 +M V30 48 C 0.5679 4.3169 -0.2250 0 +M V30 49 C 1.0010 3.8162 -1.4410 0 +M V30 50 C 0.0628 3.3962 -2.3833 0 +M V30 51 C -1.2900 3.4859 -2.1210 0 +M V30 52 C -2.2605 3.0386 -3.1141 0 +M V30 53 C 2.4453 3.7487 -1.7260 0 +M V30 54 C -1.2906 4.8872 1.3396 0 +M V30 55 H -2.7898 4.0332 -0.6818 0 +M V30 56 H 1.2801 4.6498 0.5172 0 +M V30 57 H 0.4053 3.0094 -3.3362 0 +M V30 58 H -1.9221 2.4591 -3.9479 0 +M V30 59 H 3.1360 4.1201 -0.9798 0 +M V30 60 H -2.3767 4.8477 1.5160 0 +M V30 61 C -6.8585 -2.2918 2.8937 0 +M V30 62 C -6.8388 -1.0762 3.7528 0 +M V30 63 C -5.4952 -0.3586 3.6752 0 +M V30 64 C -4.3702 -1.3093 3.9690 0 +M V30 65 C -4.4006 -2.4799 3.0454 0 +M V30 66 C -5.7064 -3.1738 3.1642 0 +M V30 67 N -4.1802 -2.1280 1.6381 0 +M V30 68 N -3.1437 -0.5777 4.0003 0 +M V30 69 H -6.8566 -1.9856 1.8184 0 +M V30 70 H -7.8142 -2.8577 3.0678 0 +M V30 71 H -7.0375 -1.3712 4.8140 0 +M V30 72 H -7.6419 -0.3946 3.4511 0 +M V30 73 H -5.4864 0.4647 4.3965 0 +M V30 74 H -5.3671 0.0899 2.6653 0 +M V30 75 H -4.5369 -1.6931 5.0077 0 +M V30 76 H -3.6029 -3.2054 3.3706 0 +M V30 77 H -5.8061 -3.5992 4.2072 0 +M V30 78 H -5.7373 -4.0545 2.4615 0 +M V30 79 C 6.3421 -4.9145 3.9195 0 +M V30 80 C 5.3280 -5.3380 4.9236 0 +M V30 81 C 4.0244 -4.5654 4.7507 0 +M V30 82 C 4.2697 -3.0837 4.7677 0 +M V30 83 C 5.2825 -2.6875 3.7470 0 +M V30 84 C 6.5401 -3.4519 3.9328 0 +M V30 85 N 4.7972 -2.8841 2.3764 0 +M V30 86 N 3.0094 -2.4212 4.6532 0 +M V30 87 H 6.0181 -5.2438 2.9014 0 +M V30 88 H 7.3191 -5.4282 4.1331 0 +M V30 89 H 5.7290 -5.1614 5.9536 0 +M V30 90 H 5.1379 -6.4129 4.8290 0 +M V30 91 H 3.3363 -4.8379 5.5572 0 +M V30 92 H 3.5404 -4.8631 3.7944 0 +M V30 93 H 4.6830 -2.8312 5.7773 0 +M V30 94 H 5.5348 -1.6004 3.8986 0 +M V30 95 H 7.0092 -3.1543 4.9179 0 +M V30 96 H 7.2799 -3.1673 3.1315 0 +M V30 97 C 0.1647 7.9322 3.6955 0 +M V30 98 C 0.8956 7.4373 4.8943 0 +M V30 99 C 0.9947 5.9154 4.8846 0 +M V30 100 C -0.3696 5.3035 4.7427 0 +M V30 101 C -1.0921 5.8089 3.5398 0 +M V30 102 C -1.1575 7.2908 3.5586 0 +M V30 103 N -0.4987 5.3629 2.2743 0 +M V30 104 N -0.4058 3.8791 4.8428 0 +M V30 105 H 0.7759 7.7360 2.7801 0 +M V30 106 H 0.0355 9.0466 3.7689 0 +M V30 107 H 0.3625 7.7705 5.8204 0 +M V30 108 H 1.9001 7.8739 4.9228 0 +M V30 109 H 1.4629 5.5751 5.8137 0 +M V30 110 H 1.6570 5.6114 4.0441 0 +M V30 111 H -0.9587 5.6601 5.6258 0 +M V30 112 H -2.1502 5.4287 3.6048 0 +M V30 113 H -1.8136 7.6193 4.4191 0 +M V30 114 H -1.6593 7.6626 2.6204 0 +M V30 115 C 2.2928 -6.7946 -5.2625 0 +M V30 116 C 1.0080 -6.6699 -6.0041 0 +M V30 117 C 0.0804 -5.6741 -5.3154 0 +M V30 118 C -0.1256 -6.0556 -3.8774 0 +M V30 119 C 1.1665 -6.1902 -3.1449 0 +M V30 120 C 2.0705 -7.1361 -3.8440 0 +M V30 121 N 1.8521 -4.9093 -2.9398 0 +M V30 122 N -1.0628 -5.2638 -3.1458 0 +M V30 123 H 2.8593 -5.8334 -5.3348 0 +M V30 124 H 2.9290 -7.5863 -5.7447 0 +M V30 125 H 0.5086 -7.6700 -6.0602 0 +M V30 126 H 1.2030 -6.3448 -7.0321 0 +M V30 127 H -0.8808 -5.6500 -5.8386 0 +M V30 128 H 0.5362 -4.6626 -5.3965 0 +M V30 129 H -0.5771 -7.0802 -3.8925 0 +M V30 130 H 0.9295 -6.6417 -2.1407 0 +M V30 131 H 1.6307 -8.1762 -3.7843 0 +M V30 132 H 3.0619 -7.1827 -3.3099 0 +M V30 133 C -6.0719 4.7107 -3.6605 0 +M V30 134 C -7.0589 3.8477 -2.9553 0 +M V30 135 C -6.3737 2.6724 -2.2657 0 +M V30 136 C -5.5206 1.9049 -3.2346 0 +M V30 137 C -4.5314 2.7936 -3.9100 0 +M V30 138 C -5.2196 3.9268 -4.5756 0 +M V30 139 N -3.5341 3.3234 -2.9733 0 +M V30 140 N -4.9461 0.7932 -2.5459 0 +M V30 141 H -5.4349 5.2384 -2.9084 0 +M V30 142 H -6.6156 5.5052 -4.2412 0 +M V30 143 H -7.8056 3.4591 -3.6931 0 +M V30 144 H -7.6102 4.4410 -2.2173 0 +M V30 145 H -7.1355 2.0135 -1.8370 0 +M V30 146 H -5.7539 3.0468 -1.4213 0 +M V30 147 H -6.2045 1.4908 -4.0187 0 +M V30 148 H -4.0106 2.2064 -4.7177 0 +M V30 149 H -5.8579 3.5259 -5.4186 0 +M V30 150 H -4.4572 4.6069 -5.0517 0 +M V30 151 C 4.1530 4.2707 -5.3701 0 +M V30 152 C 4.5830 2.9914 -5.9984 0 +M V30 153 C 4.2593 1.7970 -5.1067 0 +M V30 154 C 4.8340 2.0011 -3.7342 0 +M V30 155 C 4.3473 3.2704 -3.1206 0 +M V30 156 C 4.6821 4.4171 -4.0001 0 +M V30 157 N 2.9026 3.2762 -2.8645 0 +M V30 158 N 4.7362 0.9069 -2.8212 0 +M V30 159 H 3.0361 4.3160 -5.3503 0 +M V30 160 H 4.5010 5.1334 -6.0015 0 +M V30 161 H 5.6857 3.0240 -6.1878 0 +M V30 162 H 4.0918 2.8720 -6.9705 0 +M V30 163 H 4.6752 0.8906 -5.5579 0 +M V30 164 H 3.1550 1.6734 -5.0549 0 +M V30 165 H 5.9359 2.1359 -3.8809 0 +M V30 166 H 4.8982 3.4144 -2.1488 0 +M V30 167 H 5.8063 4.5297 -4.0507 0 +M V30 168 H 4.2902 5.3722 -3.5480 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 2 1 2 @@ -345,16 +345,16 @@ M V30 167 1 156 167 M V30 168 1 156 168 M V30 169 2 9 68 M V30 170 2 24 67 -M V30 171 2 7 86 +M V30 171 2 8 86 M V30 172 2 39 85 -M V30 173 2 8 104 +M V30 173 2 7 104 M V30 174 2 54 103 -M V30 175 2 23 122 -M V30 176 2 37 121 -M V30 177 2 22 140 -M V30 178 2 53 139 -M V30 179 2 38 158 -M V30 180 2 52 157 +M V30 175 2 22 122 +M V30 176 2 38 121 +M V30 177 2 23 140 +M V30 178 2 52 139 +M V30 179 2 37 158 +M V30 180 2 53 157 M V30 END BOND M V30 END CTAB M END diff --git a/examples/openmm_example_directory/ffunrest_opt_cage.mol b/examples/openmm_example_directory/ffunrest_opt_cage.mol index 2310d9c..6d27e67 100644 --- a/examples/openmm_example_directory/ffunrest_opt_cage.mol +++ b/examples/openmm_example_directory/ffunrest_opt_cage.mol @@ -5,174 +5,174 @@ M V30 BEGIN CTAB M V30 COUNTS 168 180 0 0 0 M V30 BEGIN ATOM -M V30 1 C -0.0276 -1.2207 4.6576 0 -M V30 2 C -1.3052 -0.6360 4.5286 0 -M V30 3 C -1.4189 0.7688 4.5489 0 -M V30 4 C -0.2817 1.5860 4.6957 0 -M V30 5 C 0.9835 0.9845 4.8336 0 -M V30 6 C 1.1220 -0.4165 4.8083 0 -M V30 7 C 2.4792 -1.0051 4.8963 0 -M V30 8 C -0.4340 3.0587 4.6485 0 -M V30 9 C -2.5028 -1.4972 4.3399 0 -M V30 10 H 0.0968 -2.2945 4.6116 0 -M V30 11 H -2.3981 1.2080 4.4126 0 -M V30 12 H 1.8516 1.6245 4.9200 0 -M V30 13 H 3.3159 -0.3270 4.9933 0 -M V30 14 H -1.4294 3.4520 4.4993 0 -M V30 15 H -2.3545 -2.5665 4.2877 0 -M V30 16 C -3.8913 -1.6762 -0.9948 0 -M V30 17 C -3.3637 -2.8504 -0.4167 0 -M V30 18 C -2.4722 -3.6442 -1.1665 0 -M V30 19 C -2.0539 -3.2398 -2.4470 0 -M V30 20 C -2.5585 -2.0455 -2.9937 0 -M V30 21 C -3.5013 -1.2719 -2.2887 0 -M V30 22 C -4.0367 -0.0399 -2.9172 0 -M V30 23 C -1.0428 -4.0149 -3.1978 0 -M V30 24 C -3.6822 -3.2428 0.9775 0 -M V30 25 H -4.5721 -1.0572 -0.4232 0 -M V30 26 H -2.0504 -4.5500 -0.7521 0 -M V30 27 H -2.2203 -1.7251 -3.9684 0 -M V30 28 H -3.6159 0.2475 -3.8695 0 -M V30 29 H -0.3819 -3.4622 -3.8498 0 -M V30 30 H -3.1945 -4.1230 1.3751 0 -M V30 31 C 3.4687 -2.9930 -0.1258 0 -M V30 32 C 4.1322 -1.7979 0.2075 0 -M V30 33 C 4.3234 -0.8193 -0.7882 0 -M V30 34 C 3.8442 -1.0240 -2.0988 0 -M V30 35 C 3.1882 -2.2323 -2.4149 0 -M V30 36 C 3.0002 -3.2227 -1.4318 0 -M V30 37 C 2.2880 -4.4874 -1.7167 0 -M V30 38 C 3.9649 0.0317 -3.1304 0 -M V30 39 C 4.5811 -1.5458 1.5981 0 -M V30 40 H 3.3004 -3.7232 0.6553 0 -M V30 41 H 4.8048 0.1209 -0.5536 0 -M V30 42 H 2.7987 -2.4094 -3.4078 0 -M V30 43 H 2.0134 -5.1044 -0.8710 0 -M V30 44 H 3.2953 -0.0374 -3.9753 0 -M V30 45 H 4.9226 -0.5534 1.8608 0 -M V30 46 C 0.8757 4.2207 -0.3457 0 -M V30 47 C -0.4778 4.3209 0.0278 0 -M V30 48 C -1.4726 3.9415 -0.8907 0 -M V30 49 C -1.1329 3.4725 -2.1744 0 -M V30 50 C 0.2265 3.3876 -2.5383 0 -M V30 51 C 1.2369 3.7548 -1.6264 0 -M V30 52 C 2.6722 3.6298 -1.9698 0 -M V30 53 C -2.1849 3.0176 -3.1129 0 -M V30 54 C -0.8792 4.7672 1.3812 0 -M V30 55 H 1.6307 4.4797 0.3853 0 -M V30 56 H -2.5172 3.9712 -0.6095 0 -M V30 57 H 0.5203 3.0067 -3.5068 0 -M V30 58 H 3.3924 3.7287 -1.1682 0 -M V30 59 H -1.8859 2.4855 -4.0062 0 -M V30 60 H -1.9089 4.6159 1.6772 0 -M V30 61 C -7.3334 -2.8466 2.7110 0 -M V30 62 C -7.4189 -1.6404 3.6674 0 -M V30 63 C -6.0728 -0.8871 3.7285 0 -M V30 64 C -4.9208 -1.8266 4.1269 0 -M V30 65 C -4.8071 -3.0198 3.1144 0 -M V30 66 C -6.1533 -3.7800 3.0801 0 -M V30 67 N -4.5278 -2.5709 1.7296 0 -M V30 68 N -3.7133 -0.9793 4.2802 0 -M V30 69 H -7.1985 -2.4841 1.6885 0 -M V30 70 H -8.2703 -3.4055 2.7294 0 -M V30 71 H -7.6900 -1.9834 4.6673 0 -M V30 72 H -8.2043 -0.9594 3.3338 0 -M V30 73 H -6.1361 -0.0682 4.4457 0 -M V30 74 H -5.8479 -0.4432 2.7564 0 -M V30 75 H -5.1576 -2.2366 5.1101 0 -M V30 76 H -4.0286 -3.7030 3.4575 0 -M V30 77 H -6.3367 -4.2343 4.0541 0 -M V30 78 H -6.0913 -4.5915 2.3536 0 -M V30 79 C 6.3437 -4.4580 3.9097 0 -M V30 80 C 5.3362 -5.0469 4.9189 0 -M V30 81 C 3.9538 -4.3736 4.7787 0 -M V30 82 C 4.0603 -2.8475 4.9365 0 -M V30 83 C 5.0485 -2.2486 3.8764 0 -M V30 84 C 6.4327 -2.9164 4.0315 0 -M V30 85 N 4.5954 -2.5113 2.4929 0 -M V30 86 N 2.6865 -2.3035 4.8636 0 -M V30 87 H 6.0310 -4.7197 2.8954 0 -M V30 88 H 7.3290 -4.9010 4.0623 0 -M V30 89 H 5.7090 -4.9044 5.9348 0 -M V30 90 H 5.2375 -6.1219 4.7576 0 -M V30 91 H 3.2664 -4.7680 5.5277 0 -M V30 92 H 3.5241 -4.6000 3.8008 0 -M V30 93 H 4.4532 -2.6412 5.9337 0 -M V30 94 H 5.1526 -1.1759 4.0477 0 -M V30 95 H 6.8581 -2.6487 4.9990 0 -M V30 96 H 7.1056 -2.5292 3.2650 0 -M V30 97 C 0.8656 7.9765 3.3669 0 -M V30 98 C 1.7990 7.4777 4.4877 0 -M V30 99 C 1.8414 5.9347 4.5209 0 -M V30 100 C 0.4324 5.3376 4.6825 0 -M V30 101 C -0.5120 5.8254 3.5297 0 -M V30 102 C -0.5495 7.3683 3.5075 0 -M V30 103 N -0.0452 5.3762 2.1968 0 -M V30 104 N 0.5970 3.8685 4.7732 0 -M V30 105 H 1.2829 7.6951 2.3964 0 -M V30 106 H 0.8061 9.0658 3.3858 0 -M V30 107 H 1.4503 7.8543 5.4513 0 -M V30 108 H 2.8059 7.8689 4.3312 0 -M V30 109 H 2.4743 5.5951 5.3413 0 -M V30 110 H 2.2830 5.5535 3.5978 0 -M V30 111 H 0.0280 5.6891 5.6333 0 -M V30 112 H -1.5233 5.4634 3.7216 0 -M V30 113 H -1.0135 7.7300 4.4256 0 -M V30 114 H -1.1744 7.7005 2.6771 0 -M V30 115 C 2.5444 -6.6422 -5.3545 0 -M V30 116 C 1.2035 -6.5109 -6.1082 0 -M V30 117 C 0.2390 -5.5815 -5.3420 0 -M V30 118 C 0.0226 -6.0962 -3.8983 0 -M V30 119 C 1.3621 -6.2166 -3.1221 0 -M V30 120 C 2.3303 -7.1321 -3.9012 0 -M V30 121 N 2.0344 -4.9069 -2.9384 0 -M V30 122 N -0.9848 -5.3296 -3.1238 0 -M V30 123 H 3.0446 -5.6705 -5.3340 0 -M V30 124 H 3.2056 -7.3295 -5.8843 0 -M V30 125 H 0.7486 -7.4963 -6.2263 0 -M V30 126 H 1.3800 -6.1134 -7.1093 0 -M V30 127 H -0.7205 -5.5267 -5.8579 0 -M V30 128 H 0.6646 -4.5783 -5.3191 0 -M V30 129 H -0.3786 -7.1078 -3.9799 0 -M V30 130 H 1.1511 -6.6751 -2.1531 0 -M V30 131 H 1.9351 -8.1484 -3.9115 0 -M V30 132 H 3.2884 -7.1657 -3.3803 0 -M V30 133 C -5.9602 4.8147 -3.3021 0 -M V30 134 C -6.9738 3.9305 -2.5490 0 -M V30 135 C -6.2873 2.6778 -1.9625 0 -M V30 136 C -5.5561 1.8698 -3.0496 0 -M V30 137 C -4.5038 2.7656 -3.7953 0 -M V30 138 C -5.2066 4.0072 -4.3857 0 -M V30 139 N -3.4570 3.2556 -2.8737 0 -M V30 140 N -5.0166 0.6576 -2.3836 0 -M V30 141 H -5.2381 5.2224 -2.5901 0 -M V30 142 H -6.4710 5.6640 -3.7582 0 -M V30 143 H -7.7710 3.6249 -3.2288 0 -M V30 144 H -7.4371 4.5039 -1.7442 0 -M V30 145 H -7.0259 2.0407 -1.4751 0 -M V30 146 H -5.5674 2.9709 -1.1959 0 -M V30 147 H -6.3018 1.5426 -3.7757 0 -M V30 148 H -4.0627 2.2003 -4.6174 0 -M V30 149 H -5.9072 3.6910 -5.1590 0 -M V30 150 H -4.4632 4.6460 -4.8649 0 -M V30 151 C 4.2145 4.2764 -5.8735 0 -M V30 152 C 4.6341 2.9012 -6.4343 0 -M V30 153 C 4.3097 1.7756 -5.4275 0 -M V30 154 C 4.9975 2.0549 -4.0675 0 -M V30 155 C 4.5460 3.4213 -3.4821 0 -M V30 156 C 4.8621 4.5446 -4.4927 0 -M V30 157 N 3.0894 3.4716 -3.2088 0 -M V30 158 N 4.8714 0.9854 -3.0403 0 -M V30 159 H 3.1268 4.3084 -5.7710 0 -M V30 160 H 4.4918 5.0665 -6.5730 0 -M V30 161 H 5.7050 2.9041 -6.6466 0 -M V30 162 H 4.1181 2.7133 -7.3777 0 -M V30 163 H 4.6501 0.8177 -5.8225 0 -M V30 164 H 3.2287 1.7195 -5.2879 0 -M V30 165 H 6.0667 2.1444 -4.2657 0 -M V30 166 H 5.1122 3.6056 -2.5664 0 -M V30 167 H 5.9429 4.6329 -4.6057 0 -M V30 168 H 4.5013 5.4950 -4.0965 0 +M V30 1 C -1.4349 0.7998 4.5554 0 +M V30 2 C -1.3108 -0.6051 4.5326 0 +M V30 3 C -0.0351 -1.1869 4.6523 0 +M V30 4 C 1.1107 -0.3782 4.7963 0 +M V30 5 C 0.9705 1.0199 4.8199 0 +M V30 6 C -0.2994 1.6174 4.6989 0 +M V30 7 C -0.4493 3.0916 4.7043 0 +M V30 8 C 2.4627 -0.9708 4.9112 0 +M V30 9 C -2.5027 -1.4740 4.3828 0 +M V30 10 H -2.4171 1.2461 4.4547 0 +M V30 11 H 0.0768 -2.2642 4.6339 0 +M V30 12 H 1.8442 1.6517 4.9238 0 +M V30 13 H -1.4441 3.5083 4.6219 0 +M V30 14 H 3.3068 -0.3080 5.0504 0 +M V30 15 H -2.3609 -2.5464 4.3775 0 +M V30 16 C -2.4642 -3.6587 -1.2077 0 +M V30 17 C -3.3437 -2.8655 -0.4477 0 +M V30 18 C -3.8634 -1.6794 -1.0083 0 +M V30 19 C -3.4970 -1.2829 -2.3116 0 +M V30 20 C -2.5792 -2.0629 -3.0377 0 +M V30 21 C -2.0697 -3.2558 -2.4970 0 +M V30 22 C -1.1174 -4.0611 -3.2891 0 +M V30 23 C -4.0738 -0.0763 -2.9505 0 +M V30 24 C -3.7024 -3.2963 0.9247 0 +M V30 25 H -2.0655 -4.5794 -0.7998 0 +M V30 26 H -4.5562 -1.0716 -0.4357 0 +M V30 27 H -2.2866 -1.7603 -4.0345 0 +M V30 28 H -0.5639 -3.5541 -4.0668 0 +M V30 29 H -3.7630 0.1630 -3.9584 0 +M V30 30 H -3.3332 -4.2493 1.2817 0 +M V30 31 C 4.3235 -0.8344 -0.8334 0 +M V30 32 C 4.1593 -1.8088 0.1667 0 +M V30 33 C 3.5145 -3.0197 -0.1512 0 +M V30 34 C 3.0432 -3.2651 -1.4508 0 +M V30 35 C 3.2028 -2.2779 -2.4434 0 +M V30 36 C 3.8435 -1.0605 -2.1407 0 +M V30 37 C 3.9983 -0.0308 -3.1941 0 +M V30 38 C 2.3959 -4.5635 -1.7386 0 +M V30 39 C 4.6551 -1.5577 1.5403 0 +M V30 40 H 4.8174 0.1020 -0.6046 0 +M V30 41 H 3.3887 -3.7717 0.6192 0 +M V30 42 H 2.8384 -2.4721 -3.4447 0 +M V30 43 H 3.4324 -0.1624 -4.1057 0 +M V30 44 H 2.2441 -5.2468 -0.9124 0 +M V30 45 H 5.1011 -0.6003 1.7779 0 +M V30 46 C -1.4977 4.0809 -0.8796 0 +M V30 47 C -0.5135 4.4788 0.0395 0 +M V30 48 C 0.8455 4.3901 -0.3216 0 +M V30 49 C 1.2184 3.9145 -1.5924 0 +M V30 50 C 0.2196 3.5227 -2.5071 0 +M V30 51 C -1.1404 3.6028 -2.1559 0 +M V30 52 C -2.1811 3.1697 -3.1162 0 +M V30 53 C 2.6538 3.8395 -1.9470 0 +M V30 54 C -0.9257 4.9757 1.3718 0 +M V30 55 H -2.5447 4.1375 -0.6062 0 +M V30 56 H 1.6025 4.6959 0.3909 0 +M V30 57 H 0.5111 3.1587 -3.4845 0 +M V30 58 H -1.8796 2.7383 -4.0619 0 +M V30 59 H 3.3852 4.1002 -1.1922 0 +M V30 60 H -1.9786 4.9723 1.6241 0 +M V30 61 C -7.2844 -2.9357 2.6964 0 +M V30 62 C -7.4127 -1.7413 3.6594 0 +M V30 63 C -6.1080 -0.9245 3.7286 0 +M V30 64 C -4.9091 -1.8203 4.1130 0 +M V30 65 C -4.7558 -3.0101 3.0930 0 +M V30 66 C -6.0733 -3.8205 3.0582 0 +M V30 67 N -4.4322 -2.5456 1.7148 0 +M V30 68 N -3.7024 -0.9527 4.2686 0 +M V30 69 H -7.1796 -2.5689 1.6744 0 +M V30 70 H -8.1964 -3.5328 2.7314 0 +M V30 71 H -7.6614 -2.1078 4.6566 0 +M V30 72 H -8.2323 -1.0976 3.3381 0 +M V30 73 H -6.2224 -0.1289 4.4662 0 +M V30 74 H -5.9227 -0.4472 2.7649 0 +M V30 75 H -5.1255 -2.2460 5.0945 0 +M V30 76 H -3.9643 -3.6727 3.4453 0 +M V30 77 H -6.2407 -4.2738 4.0365 0 +M V30 78 H -5.9889 -4.6379 2.3406 0 +M V30 79 C 6.3469 -4.4266 3.9274 0 +M V30 80 C 5.3414 -5.0105 4.9374 0 +M V30 81 C 3.9472 -4.3704 4.7884 0 +M V30 82 C 4.0276 -2.8323 4.9133 0 +M V30 83 C 5.0200 -2.2391 3.8467 0 +M V30 84 C 6.4121 -2.8873 4.0245 0 +M V30 85 N 4.5490 -2.4886 2.4587 0 +M V30 86 N 2.6494 -2.2671 4.8303 0 +M V30 87 H 6.0585 -4.7198 2.9170 0 +M V30 88 H 7.3363 -4.8465 4.1121 0 +M V30 89 H 5.7094 -4.8398 5.9502 0 +M V30 90 H 5.2669 -6.0896 4.7980 0 +M V30 91 H 3.2849 -4.7671 5.5591 0 +M V30 92 H 3.5191 -4.6453 3.8229 0 +M V30 93 H 4.4172 -2.6040 5.9070 0 +M V30 94 H 5.1188 -1.1655 4.0141 0 +M V30 95 H 6.8173 -2.6061 4.9977 0 +M V30 96 H 7.0993 -2.5015 3.2701 0 +M V30 97 C 0.8770 8.0438 3.4828 0 +M V30 98 C 1.8052 7.5192 4.5921 0 +M V30 99 C 1.8693 5.9803 4.5930 0 +M V30 100 C 0.4594 5.3603 4.7272 0 +M V30 101 C -0.4871 5.8778 3.5812 0 +M V30 102 C -0.5298 7.4228 3.5918 0 +M V30 103 N -0.0423 5.4110 2.2385 0 +M V30 104 N 0.6036 3.8741 4.7805 0 +M V30 105 H 1.3074 7.8112 2.5078 0 +M V30 106 H 0.8029 9.1297 3.5509 0 +M V30 107 H 1.4431 7.8666 5.5610 0 +M V30 108 H 2.8067 7.9285 4.4550 0 +M V30 109 H 2.4972 5.6476 5.4207 0 +M V30 110 H 2.3411 5.6347 3.6717 0 +M V30 111 H 0.0476 5.6854 5.6842 0 +M V30 112 H -1.4985 5.5180 3.7753 0 +M V30 113 H -0.9987 7.7607 4.5170 0 +M V30 114 H -1.1528 7.7811 2.7710 0 +M V30 115 C 2.4874 -6.7448 -5.4078 0 +M V30 116 C 1.1166 -6.6609 -6.1038 0 +M V30 117 C 0.1752 -5.7041 -5.3521 0 +M V30 118 C 0.0066 -6.1546 -3.8740 0 +M V30 119 C 1.3826 -6.2497 -3.1421 0 +M V30 120 C 2.3398 -7.1728 -3.9330 0 +M V30 121 N 2.0236 -4.9133 -2.9487 0 +M V30 122 N -0.9760 -5.3501 -3.0782 0 +M V30 123 H 2.9840 -5.7746 -5.4618 0 +M V30 124 H 3.1197 -7.4614 -5.9334 0 +M V30 125 H 0.6679 -7.6548 -6.1461 0 +M V30 126 H 1.2468 -6.3172 -7.1307 0 +M V30 127 H -0.7967 -5.6872 -5.8470 0 +M V30 128 H 0.5921 -4.6979 -5.4031 0 +M V30 129 H -0.3983 -7.1673 -3.9009 0 +M V30 130 H 1.2091 -6.7134 -2.1691 0 +M V30 131 H 1.9567 -8.1938 -3.8979 0 +M V30 132 H 3.3204 -7.1856 -3.4549 0 +M V30 133 C -6.0408 4.7960 -3.3152 0 +M V30 134 C -7.0415 3.8850 -2.5824 0 +M V30 135 C -6.3365 2.6731 -1.9462 0 +M V30 136 C -5.5453 1.8711 -3.0038 0 +M V30 137 C -4.5019 2.7928 -3.7405 0 +M V30 138 C -5.2281 4.0071 -4.3626 0 +M V30 139 N -3.4514 3.2845 -2.8105 0 +M V30 140 N -4.9590 0.6700 -2.3366 0 +M V30 141 H -5.3639 5.2489 -2.5895 0 +M V30 142 H -6.5770 5.6095 -3.8050 0 +M V30 143 H -7.7959 3.5345 -3.2884 0 +M V30 144 H -7.5601 4.4550 -1.8108 0 +M V30 145 H -7.0816 2.0284 -1.4777 0 +M V30 146 H -5.6641 3.0139 -1.1572 0 +M V30 147 H -6.2627 1.5127 -3.7439 0 +M V30 148 H -4.0413 2.2291 -4.5529 0 +M V30 149 H -5.8999 3.6582 -5.1483 0 +M V30 150 H -4.5018 4.6687 -4.8368 0 +M V30 151 C 4.1893 4.3200 -5.8480 0 +M V30 152 C 4.6003 2.9469 -6.4119 0 +M V30 153 C 4.2822 1.8096 -5.4222 0 +M V30 154 C 4.9573 2.0748 -4.0473 0 +M V30 155 C 4.5061 3.4507 -3.4598 0 +M V30 156 C 4.8300 4.5770 -4.4675 0 +M V30 157 N 3.0462 3.4893 -3.1504 0 +M V30 158 N 4.8042 0.9941 -3.0159 0 +M V30 159 H 3.1027 4.3669 -5.7631 0 +M V30 160 H 4.4906 5.1053 -6.5421 0 +M V30 161 H 5.6704 2.9506 -6.6248 0 +M V30 162 H 4.0835 2.7683 -7.3554 0 +M V30 163 H 4.6429 0.8672 -5.8370 0 +M V30 164 H 3.2006 1.7282 -5.3038 0 +M V30 165 H 6.0295 2.1557 -4.2328 0 +M V30 166 H 5.0807 3.6369 -2.5504 0 +M V30 167 H 5.9120 4.6540 -4.5834 0 +M V30 168 H 4.4836 5.5345 -4.0755 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 2 1 2 @@ -345,16 +345,16 @@ M V30 167 1 156 167 M V30 168 1 156 168 M V30 169 2 9 68 M V30 170 2 24 67 -M V30 171 2 7 86 +M V30 171 2 8 86 M V30 172 2 39 85 -M V30 173 2 8 104 +M V30 173 2 7 104 M V30 174 2 54 103 -M V30 175 2 23 122 -M V30 176 2 37 121 -M V30 177 2 22 140 -M V30 178 2 53 139 -M V30 179 2 38 158 -M V30 180 2 52 157 +M V30 175 2 22 122 +M V30 176 2 38 121 +M V30 177 2 23 140 +M V30 178 2 52 139 +M V30 179 2 37 158 +M V30 180 2 53 157 M V30 END BOND M V30 END CTAB M END diff --git a/examples/openmm_example_directory/md_opt_cage.mol b/examples/openmm_example_directory/md_opt_cage.mol index 35797ff..7da3efb 100644 --- a/examples/openmm_example_directory/md_opt_cage.mol +++ b/examples/openmm_example_directory/md_opt_cage.mol @@ -5,174 +5,174 @@ M V30 BEGIN CTAB M V30 COUNTS 168 180 0 0 0 M V30 BEGIN ATOM -M V30 1 C -0.6764 -1.4047 4.6374 0 -M V30 2 C -1.9223 -0.7491 4.5631 0 -M V30 3 C -1.9507 0.6517 4.4128 0 -M V30 4 C -0.7556 1.3945 4.3341 0 -M V30 5 C 0.4780 0.7292 4.4790 0 -M V30 6 C 0.5262 -0.6698 4.6269 0 -M V30 7 C 1.8224 -1.3775 4.7324 0 -M V30 8 C -0.8185 2.8432 4.0313 0 -M V30 9 C -3.1773 -1.5424 4.6113 0 -M V30 10 H -0.6391 -2.4814 4.7185 0 -M V30 11 H -2.9110 1.1377 4.3070 0 -M V30 12 H 1.4024 1.2910 4.4252 0 -M V30 13 H 1.8719 -2.3971 4.3761 0 -M V30 14 H -1.7951 3.3023 3.9728 0 -M V30 15 H -3.0867 -2.6139 4.5121 0 -M V30 16 C -4.6686 -3.1684 0.1023 0 -M V30 17 C -4.1342 -4.1313 0.9820 0 -M V30 18 C -3.1909 -5.0568 0.4948 0 -M V30 19 C -2.7295 -4.9800 -0.8332 0 -M V30 20 C -3.2454 -3.9857 -1.6884 0 -M V30 21 C -4.2397 -3.0944 -1.2374 0 -M V30 22 C -4.7926 -2.0743 -2.1626 0 -M V30 23 C -1.6744 -5.8962 -1.3224 0 -M V30 24 C -4.4935 -4.1370 2.4191 0 -M V30 25 H -5.3876 -2.4461 0.4699 0 -M V30 26 H -2.7624 -5.8080 1.1442 0 -M V30 27 H -2.8783 -3.9098 -2.7017 0 -M V30 28 H -4.3285 -1.9814 -3.1335 0 -M V30 29 H -1.0343 -5.5439 -2.1192 0 -M V30 30 H -4.0271 -4.8700 3.0639 0 -M V30 31 C 3.0643 -3.7711 0.9352 0 -M V30 32 C 3.6656 -2.5078 0.7763 0 -M V30 33 C 3.6946 -1.9168 -0.5003 0 -M V30 34 C 3.1146 -2.5629 -1.6081 0 -M V30 35 C 2.5069 -3.8229 -1.4319 0 -M V30 36 C 2.4830 -4.4360 -0.1631 0 -M V30 37 C 1.8317 -5.7480 0.0537 0 -M V30 38 C 3.0860 -1.9090 -2.9364 0 -M V30 39 C 4.2330 -1.7676 1.9264 0 -M V30 40 H 3.0375 -4.2086 1.9239 0 -M V30 41 H 4.1306 -0.9367 -0.6437 0 -M V30 42 H 2.0365 -4.3301 -2.2631 0 -M V30 43 H 1.6998 -6.0782 1.0757 0 -M V30 44 H 2.3416 -2.2612 -3.6354 0 -M V30 45 H 4.5408 -0.7427 1.7652 0 -M V30 46 C 0.1561 2.7951 -1.2549 0 -M V30 47 C -1.1574 2.9327 -0.7667 0 -M V30 48 C -2.2152 2.3073 -1.4552 0 -M V30 49 C -1.9714 1.5548 -2.6221 0 -M V30 50 C -0.6507 1.4287 -3.0965 0 -M V30 51 C 0.4197 2.0388 -2.4134 0 -M V30 52 C 1.8210 1.8547 -2.8553 0 -M V30 53 C -3.0702 0.8550 -3.3264 0 -M V30 54 C -1.4339 3.6782 0.4845 0 -M V30 55 H 0.9628 3.2511 -0.6955 0 -M V30 56 H -3.2279 2.3702 -1.0786 0 -M V30 57 H -0.4304 0.8330 -3.9715 0 -M V30 58 H 2.6110 2.1739 -2.1883 0 -M V30 59 H -2.8112 0.1585 -4.1126 0 -M V30 60 H -2.4009 3.5501 0.9528 0 -M V30 61 C -8.1102 -2.9967 3.8948 0 -M V30 62 C -8.0935 -1.5352 4.3872 0 -M V30 63 C -6.6941 -0.9047 4.2147 0 -M V30 64 C -5.6119 -1.7404 4.9216 0 -M V30 65 C -5.6036 -3.2112 4.3730 0 -M V30 66 C -7.0015 -3.8366 4.5760 0 -M V30 67 N -5.3162 -3.2436 2.9228 0 -M V30 68 N -4.3430 -0.9663 4.8326 0 -M V30 69 H -7.9591 -3.0128 2.8122 0 -M V30 70 H -9.0870 -3.4439 4.0850 0 -M V30 71 H -8.3807 -1.4995 5.4394 0 -M V30 72 H -8.8290 -0.9509 3.8315 0 -M V30 73 H -6.6897 0.1081 4.6184 0 -M V30 74 H -6.4463 -0.8247 3.1543 0 -M V30 75 H -5.8778 -1.7838 5.9785 0 -M V30 76 H -4.8708 -3.7979 4.9301 0 -M V30 77 H -7.2084 -3.9191 5.6434 0 -M V30 78 H -7.0073 -4.8478 4.1667 0 -M V30 79 C 6.2462 -3.5802 5.1065 0 -M V30 80 C 5.3335 -3.6090 6.3534 0 -M V30 81 C 3.9550 -2.9841 6.0449 0 -M V30 82 C 4.1317 -1.5500 5.4964 0 -M V30 83 C 4.9982 -1.5300 4.2077 0 -M V30 84 C 6.3771 -2.1489 4.5238 0 -M V30 85 N 4.4001 -2.3245 3.1072 0 -M V30 86 N 2.8567 -0.8178 5.3272 0 -M V30 87 H 5.8316 -4.2410 4.3410 0 -M V30 88 H 7.2339 -3.9688 5.3592 0 -M V30 89 H 5.8085 -3.0596 7.1685 0 -M V30 90 H 5.2034 -4.6382 6.6923 0 -M V30 91 H 3.3432 -2.9571 6.9475 0 -M V30 92 H 3.4360 -3.6022 5.3117 0 -M V30 93 H 4.6869 -0.9906 6.2513 0 -M V30 94 H 5.1332 -0.4894 3.9028 0 -M V30 95 H 6.9037 -1.5105 5.2339 0 -M V30 96 H 6.9754 -2.1774 3.6121 0 -M V30 97 C 0.5944 7.2189 1.4698 0 -M V30 98 C 1.6283 6.8954 2.5674 0 -M V30 99 C 1.5862 5.3989 2.9451 0 -M V30 100 C 0.1737 4.9682 3.3786 0 -M V30 101 C -0.8644 5.2592 2.2395 0 -M V30 102 C -0.8256 6.7617 1.8838 0 -M V30 103 N -0.5542 4.5131 0.9969 0 -M V30 104 N 0.2635 3.5469 3.7747 0 -M V30 105 H 0.8791 6.7123 0.5438 0 -M V30 106 H 0.5953 8.2895 1.2595 0 -M V30 107 H 1.4241 7.4994 3.4531 0 -M V30 108 H 2.6293 7.1573 2.2202 0 -M V30 109 H 2.2906 5.1956 3.7523 0 -M V30 110 H 1.8961 4.7896 2.0935 0 -M V30 111 H -0.1005 5.5493 4.2607 0 -M V30 112 H -1.8667 5.0140 2.5943 0 -M V30 113 H -1.1616 7.3446 2.7418 0 -M V30 114 H -1.5236 6.9551 1.0680 0 -M V30 115 C 1.9900 -8.9683 -2.6287 0 -M V30 116 C 0.6294 -9.1254 -3.3431 0 -M V30 117 C -0.3567 -8.0257 -2.8947 0 -M V30 118 C -0.5181 -8.0454 -1.3560 0 -M V30 119 C 0.8413 -7.8442 -0.6319 0 -M V30 120 C 1.8265 -8.9431 -1.0885 0 -M V30 121 N 1.4567 -6.5290 -0.9379 0 -M V30 122 N -1.5564 -7.1189 -0.8444 0 -M V30 123 H 2.4625 -8.0374 -2.9521 0 -M V30 124 H 2.6581 -9.7814 -2.9172 0 -M V30 125 H 0.2080 -10.1075 -3.1197 0 -M V30 126 H 0.7721 -9.0731 -4.4240 0 -M V30 127 H -1.3284 -8.1775 -3.3663 0 -M V30 128 H 0.0226 -7.0561 -3.2184 0 -M V30 129 H -0.8642 -9.0454 -1.0894 0 -M V30 130 H 0.6716 -7.9453 0.4426 0 -M V30 131 H 1.4682 -9.9136 -0.7437 0 -M V30 132 H 2.7972 -8.7744 -0.6197 0 -M V30 133 C -6.8844 2.4527 -3.7125 0 -M V30 134 C -7.8411 1.7815 -2.7062 0 -M V30 135 C -7.1036 0.7189 -1.8638 0 -M V30 136 C -6.4120 -0.3292 -2.7545 0 -M V30 137 C -5.4103 0.3580 -3.7465 0 -M V30 138 C -6.1665 1.4033 -4.5955 0 -M V30 139 N -4.3325 1.0763 -3.0294 0 -M V30 140 N -5.8371 -1.3417 -1.8344 0 -M V30 141 H -6.1366 3.0332 -3.1661 0 -M V30 142 H -7.4351 3.1545 -4.3408 0 -M V30 143 H -8.6672 1.3107 -3.2419 0 -M V30 144 H -8.2712 2.5370 -2.0461 0 -M V30 145 H -7.8065 0.2180 -1.1969 0 -M V30 146 H -6.3529 1.1975 -1.2315 0 -M V30 147 H -7.1870 -0.8238 -3.3423 0 -M V30 148 H -4.9957 -0.3952 -4.4186 0 -M V30 149 H -6.8962 0.8956 -5.2271 0 -M V30 150 H -5.4607 1.9065 -5.2580 0 -M V30 151 C 2.9165 1.2414 -6.9071 0 -M V30 152 C 3.2736 -0.2552 -7.0347 0 -M V30 153 C 3.0966 -0.9837 -5.6841 0 -M V30 154 C 3.9446 -0.2971 -4.5847 0 -M V30 155 C 3.5397 1.1952 -4.4246 0 -M V30 156 C 3.7211 1.9234 -5.7724 0 -M V30 157 N 2.1190 1.3473 -4.0326 0 -M V30 158 N 3.9570 -0.9714 -3.2578 0 -M V30 159 H 1.8486 1.3407 -6.6969 0 -M V30 160 H 3.1027 1.7523 -7.8530 0 -M V30 161 H 4.3070 -0.3573 -7.3716 0 -M V30 162 H 2.6394 -0.7220 -7.7905 0 -M V30 163 H 3.3985 -2.0267 -5.7847 0 -M V30 164 H 2.0429 -0.9630 -5.3995 0 -M V30 165 H 4.9804 -0.3028 -4.9285 0 -M V30 166 H 4.1956 1.6569 -3.6827 0 -M V30 167 H 4.7800 1.9419 -6.0319 0 -M V30 168 H 3.3965 2.9595 -5.6651 0 +M V30 1 C -1.0072 1.1438 4.2782 0 +M V30 2 C -1.5420 -0.1525 4.3718 0 +M V30 3 C -0.6786 -1.2635 4.2953 0 +M V30 4 C 0.7082 -1.0829 4.1188 0 +M V30 5 C 1.2264 0.2214 4.0083 0 +M V30 6 C 0.3752 1.3380 4.0988 0 +M V30 7 C 0.9409 2.7020 4.0187 0 +M V30 8 C 1.6347 -2.2383 4.0850 0 +M V30 9 C -3.0033 -0.3214 4.5316 0 +M V30 10 H -1.6562 2.0080 4.3512 0 +M V30 11 H -1.0846 -2.2648 4.3810 0 +M V30 12 H 2.2911 0.3672 3.8762 0 +M V30 13 H 1.9063 2.8244 3.5470 0 +M V30 14 H 2.6944 -2.0333 4.1572 0 +M V30 15 H -3.6203 0.5458 4.3423 0 +M V30 16 C -3.0883 -3.3716 -0.3128 0 +M V30 17 C -3.8776 -2.5130 0.4757 0 +M V30 18 C -4.3324 -1.2947 -0.0673 0 +M V30 19 C -4.0137 -0.9385 -1.3915 0 +M V30 20 C -3.2654 -1.8313 -2.1839 0 +M V30 21 C -2.7955 -3.0465 -1.6502 0 +M V30 22 C -1.9855 -3.9750 -2.4723 0 +M V30 23 C -4.4398 0.3788 -1.9203 0 +M V30 24 C -4.2104 -2.9040 1.8649 0 +M V30 25 H -2.7305 -4.3051 0.1021 0 +M V30 26 H -4.9252 -0.6310 0.5502 0 +M V30 27 H -3.0300 -1.5725 -3.2102 0 +M V30 28 H -1.4326 -4.7649 -1.9799 0 +M V30 29 H -4.8888 1.0715 -1.2219 0 +M V30 30 H -3.6514 -3.7122 2.3197 0 +M V30 31 C 4.1149 -1.8517 -0.1017 0 +M V30 32 C 3.2196 -2.9420 -0.0913 0 +M V30 33 C 2.5123 -3.2665 -1.2638 0 +M V30 34 C 2.7095 -2.5267 -2.4465 0 +M V30 35 C 3.6129 -1.4513 -2.4448 0 +M V30 36 C 4.3154 -1.1023 -1.2748 0 +M V30 37 C 5.2739 0.0274 -1.2782 0 +M V30 38 C 1.9849 -2.8568 -3.6943 0 +M V30 39 C 3.0360 -3.7708 1.1229 0 +M V30 40 H 4.6629 -1.6039 0.7992 0 +M V30 41 H 1.8201 -4.0996 -1.2701 0 +M V30 42 H 3.7764 -0.8831 -3.3521 0 +M V30 43 H 5.7824 0.2940 -0.3600 0 +M V30 44 H 2.2328 -2.2872 -4.5785 0 +M V30 45 H 2.3540 -4.6034 1.0628 0 +M V30 46 C -0.4572 3.6823 -1.1341 0 +M V30 47 C 0.5161 4.0519 -0.1885 0 +M V30 48 C 1.8773 3.8256 -0.4730 0 +M V30 49 C 2.2686 3.2488 -1.6983 0 +M V30 50 C 1.2818 2.8862 -2.6363 0 +M V30 51 C -0.0831 3.1004 -2.3610 0 +M V30 52 C -1.1041 2.7403 -3.3749 0 +M V30 53 C 3.7017 3.0611 -2.0324 0 +M V30 54 C 0.0884 4.7043 1.0701 0 +M V30 55 H -1.5068 3.8595 -0.9321 0 +M V30 56 H 2.6317 4.1238 0.2460 0 +M V30 57 H 1.5770 2.4537 -3.5835 0 +M V30 58 H -0.7916 2.1975 -4.2579 0 +M V30 59 H 3.9631 2.8025 -3.0497 0 +M V30 60 H -0.9727 4.8158 1.2540 0 +M V30 61 C -7.8281 -1.7977 4.0177 0 +M V30 62 C -7.3725 -0.7450 5.0433 0 +M V30 63 C -5.8808 -0.4060 4.8693 0 +M V30 64 C -5.0041 -1.6865 4.9815 0 +M V30 65 C -5.4507 -2.7595 3.9375 0 +M V30 66 C -6.9574 -3.0674 4.0992 0 +M V30 67 N -5.1766 -2.3200 2.5358 0 +M V30 68 N -3.5198 -1.4782 4.8842 0 +M V30 69 H -7.7716 -1.3766 3.0129 0 +M V30 70 H -8.8715 -2.0579 4.2004 0 +M V30 71 H -7.5430 -1.1241 6.0521 0 +M V30 72 H -7.9710 0.1598 4.9305 0 +M V30 73 H -5.5874 0.3134 5.6352 0 +M V30 74 H -5.7362 0.0656 3.8961 0 +M V30 75 H -5.1845 -2.1145 5.9688 0 +M V30 76 H -4.9060 -3.6831 4.1432 0 +M V30 77 H -7.1209 -3.5478 5.0652 0 +M V30 78 H -7.2728 -3.7782 3.3340 0 +M V30 79 C 3.6332 -6.7996 2.5765 0 +M V30 80 C 2.2953 -7.0896 3.2732 0 +M V30 81 C 1.4062 -5.8368 3.3359 0 +M V30 82 C 2.1239 -4.6371 4.0033 0 +M V30 83 C 3.5868 -4.3704 3.4483 0 +M V30 84 C 4.3985 -5.6816 3.3055 0 +M V30 85 N 3.7191 -3.5216 2.2168 0 +M V30 86 N 1.1882 -3.4711 3.9822 0 +M V30 87 H 3.4591 -6.5215 1.5374 0 +M V30 88 H 4.2402 -7.7058 2.5669 0 +M V30 89 H 2.4859 -7.4477 4.2860 0 +M V30 90 H 1.7697 -7.8844 2.7423 0 +M V30 91 H 0.5047 -6.0740 3.9029 0 +M V30 92 H 1.0717 -5.5740 2.3343 0 +M V30 93 H 2.2432 -4.9085 5.0533 0 +M V30 94 H 4.1010 -3.8065 4.2276 0 +M V30 95 H 4.6603 -6.0376 4.3032 0 +M V30 96 H 5.3392 -5.4818 2.7901 0 +M V30 97 C 2.5020 7.3693 3.4518 0 +M V30 98 C 2.8917 6.6288 4.7440 0 +M V30 99 C 2.4131 5.1674 4.7083 0 +M V30 100 C 0.8781 5.1041 4.4797 0 +M V30 101 C 0.4527 5.8474 3.1729 0 +M V30 102 C 0.9801 7.3019 3.2036 0 +M V30 103 N 0.9537 5.1724 1.9399 0 +M V30 104 N 0.3028 3.7237 4.5460 0 +M V30 105 H 3.0317 6.9277 2.6065 0 +M V30 106 H 2.8151 8.4118 3.5205 0 +M V30 107 H 2.4470 7.1360 5.6017 0 +M V30 108 H 3.9743 6.6582 4.8726 0 +M V30 109 H 2.6665 4.6794 5.6505 0 +M V30 110 H 2.9440 4.6457 3.9117 0 +M V30 111 H 0.4193 5.6501 5.3055 0 +M V30 112 H -0.6379 5.8925 3.1478 0 +M V30 113 H 0.4670 7.8505 3.9949 0 +M V30 114 H 0.7396 7.8023 2.2645 0 +M V30 115 C -0.7873 -3.2721 -7.1372 0 +M V30 116 C -2.0981 -3.9917 -6.7774 0 +M V30 117 C -1.8397 -5.1923 -5.8442 0 +M V30 118 C -1.0730 -4.7740 -4.5707 0 +M V30 119 C 0.2812 -4.0927 -4.9636 0 +M V30 120 C 0.0124 -2.8636 -5.8843 0 +M V30 121 N 1.0603 -3.7894 -3.7155 0 +M V30 122 N -1.9380 -3.8569 -3.7776 0 +M V30 123 H -1.0079 -2.3872 -7.7353 0 +M V30 124 H -0.1739 -3.9317 -7.7529 0 +M V30 125 H -2.5880 -4.3361 -7.6888 0 +M V30 126 H -2.7781 -3.2882 -6.2951 0 +M V30 127 H -1.2627 -5.9476 -6.3799 0 +M V30 128 H -2.7897 -5.6521 -5.5687 0 +M V30 129 H -0.8628 -5.6760 -3.9928 0 +M V30 130 H 0.8589 -4.8221 -5.5335 0 +M V30 131 H 0.9522 -2.4253 -6.2180 0 +M V30 132 H -0.5317 -2.0941 -5.3344 0 +M V30 133 C -4.5795 4.9860 -4.1262 0 +M V30 134 C -5.8038 4.2727 -3.5214 0 +M V30 135 C -5.4022 2.9781 -2.7885 0 +M V30 136 C -4.6154 2.0348 -3.7392 0 +M V30 137 C -3.3448 2.7484 -4.3056 0 +M V30 138 C -3.7685 4.0417 -5.0403 0 +M V30 139 N -2.3587 3.1035 -3.2400 0 +M V30 140 N -4.2522 0.6899 -3.1849 0 +M V30 141 H -3.9418 5.3559 -3.3221 0 +M V30 142 H -4.9088 5.8542 -4.6983 0 +M V30 143 H -6.5100 4.0318 -4.3176 0 +M V30 144 H -6.3138 4.9432 -2.8289 0 +M V30 145 H -6.3039 2.4784 -2.4314 0 +M V30 146 H -4.7940 3.2300 -1.9183 0 +M V30 147 H -5.2633 1.8351 -4.5942 0 +M V30 148 H -2.8762 2.0837 -5.0339 0 +M V30 149 H -4.3724 3.7792 -5.9103 0 +M V30 150 H -2.8850 4.5622 -5.4128 0 +M V30 151 C 7.9541 4.2452 -2.7540 0 +M V30 152 C 7.9268 3.2463 -3.9340 0 +M V30 153 C 6.7782 2.2169 -3.8368 0 +M V30 154 C 6.4995 1.8087 -2.3746 0 +M V30 155 C 6.0894 3.0670 -1.4896 0 +M V30 156 C 6.5654 4.4067 -2.1160 0 +M V30 157 N 4.6428 3.2054 -1.1251 0 +M V30 158 N 5.5181 0.6911 -2.3850 0 +M V30 159 H 8.3236 5.2114 -3.1001 0 +M V30 160 H 8.6517 3.8884 -1.9947 0 +M V30 161 H 8.8834 2.7236 -3.9733 0 +M V30 162 H 7.8270 3.7918 -4.8732 0 +M V30 163 H 7.0303 1.3387 -4.4333 0 +M V30 164 H 5.8732 2.6435 -4.2710 0 +M V30 165 H 7.4338 1.4109 -1.9736 0 +M V30 166 H 6.6326 2.9601 -0.5497 0 +M V30 167 H 6.6025 5.1764 -1.3438 0 +M V30 168 H 5.8594 4.7457 -2.8760 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 2 1 2 @@ -345,16 +345,16 @@ M V30 167 1 156 167 M V30 168 1 156 168 M V30 169 2 9 68 M V30 170 2 24 67 -M V30 171 2 7 86 +M V30 171 2 8 86 M V30 172 2 39 85 -M V30 173 2 8 104 +M V30 173 2 7 104 M V30 174 2 54 103 -M V30 175 2 23 122 -M V30 176 2 37 121 -M V30 177 2 22 140 -M V30 178 2 53 139 -M V30 179 2 38 158 -M V30 180 2 52 157 +M V30 175 2 22 122 +M V30 176 2 38 121 +M V30 177 2 23 140 +M V30 178 2 52 139 +M V30 179 2 37 158 +M V30 180 2 53 157 M V30 END BOND M V30 END CTAB M END diff --git a/examples/openmm_example_directory/unopt_cage.mol b/examples/openmm_example_directory/unopt_cage.mol index 38a751f..74de242 100644 --- a/examples/openmm_example_directory/unopt_cage.mol +++ b/examples/openmm_example_directory/unopt_cage.mol @@ -5,174 +5,174 @@ M V30 BEGIN CTAB M V30 COUNTS 168 180 0 0 0 M V30 BEGIN ATOM -M V30 1 C 0.0084 -1.4054 11.4777 0 -M V30 2 C -1.1863 -0.7188 11.4777 0 -M V30 3 C -1.2209 0.6596 11.4777 0 -M V30 4 C -0.0313 1.3877 11.4777 0 -M V30 5 C 1.1454 0.6595 11.4777 0 -M V30 6 C 1.2075 -0.7156 11.4777 0 -M V30 7 C 2.4944 -1.4168 11.4777 0 -M V30 8 C -0.0358 2.8362 11.4777 0 -M V30 9 C -2.4586 -1.4195 11.4777 0 -M V30 10 H 0.0520 -2.4852 11.4777 0 -M V30 11 H -2.1368 1.2231 11.4777 0 -M V30 12 H 2.0738 1.2555 11.4778 0 -M V30 13 H 2.5755 -2.4831 11.4778 0 -M V30 14 H -0.9686 3.3532 11.4777 0 -M V30 15 H -2.4430 -2.4956 11.4778 0 -M V30 16 C -10.1829 -4.4688 -3.1703 0 -M V30 17 C -9.7865 -5.6164 -2.5184 0 -M V30 18 C -8.9907 -6.5553 -3.1400 0 -M V30 19 C -8.5704 -6.3538 -4.4546 0 -M V30 20 C -8.9908 -5.1891 -5.0720 0 -M V30 21 C -9.7847 -4.2365 -4.4745 0 -M V30 22 C -10.1895 -3.0260 -5.1947 0 -M V30 23 C -7.7340 -7.3222 -5.1337 0 -M V30 24 C -10.1910 -5.8838 -1.1494 0 -M V30 25 H -10.8063 -3.7238 -2.6968 0 -M V30 26 H -8.6654 -7.4597 -2.6578 0 -M V30 27 H -8.6467 -5.0504 -6.1110 0 -M V30 28 H -10.8052 -2.2683 -4.7583 0 -M V30 29 H -7.4355 -8.2053 -4.6158 0 -M V30 30 H -10.8124 -5.1574 -0.6548 0 -M V30 31 C 8.9616 -6.5843 -3.1703 0 -M V30 32 C 9.7572 -5.6672 -2.5184 0 -M V30 33 C 10.1724 -4.5085 -3.1400 0 -M V30 34 C 9.7878 -4.2452 -4.4546 0 -M V30 35 C 8.9892 -5.1917 -5.0720 0 -M V30 36 C 8.5612 -6.3555 -4.4745 0 -M V30 37 C 7.7153 -7.3114 -5.1947 0 -M V30 38 C 10.2082 -3.0368 -5.1337 0 -M V30 39 C 10.1910 -5.8838 -1.1494 0 -M V30 40 H 8.6281 -7.4967 -2.6968 0 -M V30 41 H 10.7930 -3.7746 -2.6578 0 -M V30 42 H 8.6971 -4.9630 -6.1110 0 -M V30 43 H 7.3670 -8.2234 -4.7583 0 -M V30 44 H 10.8237 -2.3367 -4.6158 0 -M V30 45 H 9.8726 -6.7851 -0.6548 0 -M V30 46 C 1.2214 11.0531 -3.1703 0 -M V30 47 C 0.0293 11.2836 -2.5184 0 -M V30 48 C -1.1817 11.0638 -3.1400 0 -M V30 49 C -1.2174 10.5991 -4.4546 0 -M V30 50 C 0.0015 10.3808 -5.0720 0 -M V30 51 C 1.2234 10.5920 -4.4745 0 -M V30 52 C 2.4742 10.3374 -5.1947 0 -M V30 53 C -2.4742 10.3589 -5.1337 0 -M V30 54 C 0.0000 11.7676 -1.1494 0 -M V30 55 H 2.1783 11.2205 -2.6968 0 -M V30 56 H -2.1276 11.2343 -2.6578 0 -M V30 57 H -0.0504 10.0134 -6.1110 0 -M V30 58 H 3.4382 10.4917 -4.7583 0 -M V30 59 H -3.3882 10.5420 -4.6158 0 -M V30 60 H 0.9397 11.9425 -0.6548 0 -M V30 61 C -9.3721 -5.2936 6.2228 0 -M V30 62 C -8.9302 -4.5187 7.4107 0 -M V30 63 C -8.0184 -3.3866 6.9170 0 -M V30 64 C -6.7755 -4.1137 6.4618 0 -M V30 65 C -7.0724 -4.9180 5.2486 0 -M V30 66 C -8.3297 -5.6903 5.2634 0 -M V30 67 N -6.9962 -4.0393 4.0678 0 -M V30 68 N -5.6534 -3.2640 6.2606 0 -M V30 69 H -10.1811 -4.6973 5.7145 0 -M V30 70 H -9.9203 -6.2047 6.6087 0 -M V30 71 H -8.3336 -5.1827 8.0713 0 -M V30 72 H -9.8036 -4.1199 7.9429 0 -M V30 73 H -7.8508 -2.7113 7.7515 0 -M V30 74 H -8.5064 -2.8960 6.0454 0 -M V30 75 H -6.5153 -4.8265 7.2931 0 -M V30 76 H -6.2067 -5.6316 5.1041 0 -M V30 77 H -8.1172 -6.7940 5.3900 0 -M V30 78 H -8.7721 -5.6324 4.2232 0 -M V30 79 C 9.2904 -5.4651 6.2229 0 -M V30 80 C 8.3988 -5.4699 7.4111 0 -M V30 81 C 6.9620 -5.2479 6.9177 0 -M V30 82 C 6.9688 -3.8083 6.4616 0 -M V30 83 C 7.8133 -3.6631 5.2481 0 -M V30 84 C 9.1114 -4.3646 5.2629 0 -M V30 85 N 7.0141 -4.0379 4.0678 0 -M V30 86 N 5.6713 -3.2627 6.2606 0 -M V30 87 H 9.1792 -6.4642 5.7152 0 -M V30 88 H 10.3536 -5.4830 6.6084 0 -M V30 89 H 8.6749 -4.6206 8.0711 0 -M V30 90 H 8.4911 -6.4253 7.9438 0 -M V30 91 H 6.2938 -5.4406 7.7525 0 -M V30 92 H 6.7815 -5.9165 6.0465 0 -M V30 93 H 7.4557 -3.2256 7.2925 0 -M V30 94 H 7.9973 -2.5566 5.1029 0 -M V30 95 H 9.9604 -3.6279 5.3888 0 -M V30 96 H 9.2825 -4.7771 4.2229 0 -M V30 97 C 0.0769 10.7621 6.2229 0 -M V30 98 C 0.5268 9.9927 7.4114 0 -M V30 99 C 1.0542 8.6379 6.9182 0 -M V30 100 C -0.1952 7.9230 6.4616 0 -M V30 101 C -0.7430 8.5814 5.2478 0 -M V30 102 C -0.7856 10.0563 5.2625 0 -M V30 103 N -0.0179 8.0772 4.0678 0 -M V30 104 N -0.0179 6.5266 6.2606 0 -M V30 105 H 0.9977 11.1661 5.7157 0 -M V30 106 H -0.4401 11.6916 6.6082 0 -M V30 107 H -0.3469 9.8066 8.0710 0 -M V30 108 H 1.3074 10.5510 7.9445 0 -M V30 109 H 1.5550 8.1559 7.7533 0 -M V30 110 H 1.7238 8.8163 6.0474 0 -M V30 111 H -0.9438 8.0528 7.2921 0 -M V30 112 H -1.7930 8.1867 5.1020 0 -M V30 113 H -1.8485 10.4224 5.3879 0 -M V30 114 H -0.5137 10.4109 4.2227 0 -M V30 115 C 1.1240 -10.0656 -7.2288 0 -M V30 116 C -0.2906 -9.8527 -7.6294 0 -M V30 117 C -0.6702 -8.4129 -7.2552 0 -M V30 118 C -0.7101 -8.4441 -5.7459 0 -M V30 119 C 0.6611 -8.6278 -5.2046 0 -M V30 120 C 1.5006 -9.6418 -5.8712 0 -M V30 121 N 1.3335 -7.3168 -5.1642 0 -M V30 122 N -1.3522 -7.3168 -5.1642 0 -M V30 123 H 1.7713 -9.5633 -8.0014 0 -M V30 124 H 1.3460 -11.1651 -7.3745 0 -M V30 125 H -0.9367 -10.5446 -7.0488 0 -M V30 126 H -0.4036 -10.0243 -8.7078 0 -M V30 127 H -1.6303 -8.1956 -7.7150 0 -M V30 128 H 0.1439 -7.7344 -7.5950 0 -M V30 129 H -1.3132 -9.3546 -5.4737 0 -M V30 130 H 0.5523 -8.9034 -4.1130 0 -M V30 131 H 1.6096 -10.5594 -5.2188 0 -M V30 132 H 2.5544 -9.2310 -5.9133 0 -M V30 133 C -8.2473 6.0810 -7.0626 0 -M V30 134 C -9.2197 5.0090 -6.7278 0 -M V30 135 C -8.6865 4.2628 -5.4966 0 -M V30 136 C -7.4839 3.5225 -6.0315 0 -M V30 137 C -6.4099 4.4857 -6.3859 0 -M V30 138 C -6.8283 5.6966 -7.1181 0 -M V30 139 N -5.6604 4.8294 -5.1642 0 -M V30 140 N -7.0033 2.5035 -5.1642 0 -M V30 141 H -8.4084 6.9215 -6.3306 0 -M V30 142 H -8.5742 6.5261 -8.0498 0 -M V30 143 H -9.2698 4.2919 -7.5743 0 -M V30 144 H -10.2059 5.4480 -6.5282 0 -M V30 145 H -9.4787 3.6116 -5.1377 0 -M V30 146 H -8.3600 5.0143 -4.7434 0 -M V30 147 H -7.8276 3.0244 -6.9806 0 -M V30 148 H -5.6535 3.9233 -7.0113 0 -M V30 149 H -6.5076 5.6374 -8.2012 0 -M V30 150 H -6.2166 6.5602 -6.7169 0 -M V30 151 C 8.1551 6.0062 -7.2288 0 -M V30 152 C 8.6780 4.6746 -7.6294 0 -M V30 153 C 7.6209 3.6260 -7.2552 0 -M V30 154 C 7.6679 3.6071 -5.7459 0 -M V30 155 C 7.1413 4.8864 -5.2046 0 -M V30 156 C 7.5998 6.1205 -5.8712 0 -M V30 157 N 5.6698 4.8132 -5.1642 0 -M V30 158 N 7.0126 2.4874 -5.1642 0 -M V30 159 H 7.3964 6.3157 -8.0014 0 -M V30 160 H 8.9963 6.7482 -7.3745 0 -M V30 161 H 9.6003 4.4612 -7.0488 0 -M V30 162 H 8.8831 4.6626 -8.7078 0 -M V30 163 H 7.9127 2.6859 -7.7150 0 -M V30 164 H 6.6263 3.9918 -7.5950 0 -M V30 165 H 8.7580 3.5400 -5.4737 0 -M V30 166 H 7.4344 4.9300 -4.1130 0 -M V30 167 H 8.3399 6.6737 -5.2188 0 -M V30 168 H 6.7171 6.8277 -5.9133 0 +M V30 1 C -1.2288 0.7211 11.4698 0 +M V30 2 C -1.2340 -0.6729 11.4698 0 +M V30 3 C -0.0384 -1.3848 11.4698 0 +M V30 4 C 1.1657 -0.7014 11.4698 0 +M V30 5 C 1.1816 0.6929 11.4698 0 +M V30 6 C -0.0144 1.3831 11.4698 0 +M V30 7 C 0.0218 2.8414 11.4698 0 +M V30 8 C 2.4581 -1.4097 11.4698 0 +M V30 9 C -2.4799 -1.4317 11.4698 0 +M V30 10 H -2.1807 1.2727 11.4698 0 +M V30 11 H -0.0130 -2.4656 11.4698 0 +M V30 12 H 2.1145 1.2448 11.4698 0 +M V30 13 H -0.8576 3.4516 11.4699 0 +M V30 14 H 2.4425 -2.4920 11.4699 0 +M V30 15 H -3.4206 -0.8597 11.4699 0 +M V30 16 C -8.9487 -6.5971 -3.1599 0 +M V30 17 C -9.7535 -5.6708 -2.4985 0 +M V30 18 C -10.1646 -4.5059 -3.1391 0 +M V30 19 C -9.7700 -4.2663 -4.4444 0 +M V30 20 C -8.9650 -5.1867 -5.1147 0 +M V30 21 C -8.5665 -6.3374 -4.4635 0 +M V30 22 C -7.7246 -7.2886 -5.1805 0 +M V30 23 C -10.1789 -3.0480 -5.1658 0 +M V30 24 C -10.1917 -5.8842 -1.1235 0 +M V30 25 H -8.6303 -7.5144 -2.6427 0 +M V30 26 H -10.7886 -3.7707 -2.6504 0 +M V30 27 H -8.6464 -5.0160 -6.1366 0 +M V30 28 H -7.3724 -8.2031 -4.7502 0 +M V30 29 H -10.8039 -2.3355 -4.6428 0 +M V30 30 H -9.8614 -6.8087 -0.6251 0 +M V30 31 C 10.1876 -4.4513 -3.1599 0 +M V30 32 C 9.7878 -5.6114 -2.4985 0 +M V30 33 C 8.9845 -6.5498 -3.1391 0 +M V30 34 C 8.5797 -6.3280 -4.4444 0 +M V30 35 C 8.9743 -5.1706 -5.1147 0 +M V30 36 C 9.7716 -4.2501 -4.4635 0 +M V30 37 C 10.1744 -3.0454 -5.1805 0 +M V30 38 C 7.7291 -7.2912 -5.1658 0 +M V30 39 C 10.1917 -5.8842 -1.1235 0 +M V30 40 H 10.8228 -3.7168 -2.6427 0 +M V30 41 H 8.6598 -7.4578 -2.6504 0 +M V30 42 H 8.6671 -4.9800 -6.1366 0 +M V30 43 H 10.7903 -2.2831 -4.7502 0 +M V30 44 H 7.4246 -8.1887 -4.6428 0 +M V30 45 H 10.8273 -5.1359 -0.6251 0 +M V30 46 C -1.2389 11.0484 -3.1599 0 +M V30 47 C -0.0343 11.2822 -2.4985 0 +M V30 48 C 1.1800 11.0557 -3.1391 0 +M V30 49 C 1.1903 10.5942 -4.4444 0 +M V30 50 C -0.0093 10.3572 -5.1147 0 +M V30 51 C -1.2051 10.5875 -4.4635 0 +M V30 52 C -2.4499 10.3340 -5.1805 0 +M V30 53 C 2.4499 10.3392 -5.1658 0 +M V30 54 C 0.0000 11.7683 -1.1235 0 +M V30 55 H -2.1925 11.2313 -2.6427 0 +M V30 56 H 2.1288 11.2285 -2.6504 0 +M V30 57 H -0.0208 9.9960 -6.1366 0 +M V30 58 H -3.4179 10.4862 -4.7502 0 +M V30 59 H 3.3794 10.5242 -4.6428 0 +M V30 60 H -0.9658 11.9446 -0.6251 0 +M V30 61 C -9.3877 -5.3178 6.2771 0 +M V30 62 C -8.9305 -4.5223 7.4494 0 +M V30 63 C -8.0308 -3.3944 6.9547 0 +M V30 64 C -6.7987 -4.1143 6.4860 0 +M V30 65 C -7.1000 -4.9101 5.2611 0 +M V30 66 C -8.3619 -5.6898 5.2833 0 +M V30 67 N -7.0049 -4.0443 4.0804 0 +M V30 68 N -5.6666 -3.2716 6.2658 0 +M V30 69 H -10.2322 -4.7553 5.8077 0 +M V30 70 H -9.8822 -6.2378 6.6932 0 +M V30 71 H -8.3249 -5.2025 8.1002 0 +M V30 72 H -9.8019 -4.1534 8.0017 0 +M V30 73 H -7.8634 -2.7218 7.8019 0 +M V30 74 H -8.5282 -2.9013 6.0905 0 +M V30 75 H -6.5296 -4.8436 7.2922 0 +M V30 76 H -6.2385 -5.6240 5.1326 0 +M V30 77 H -8.1505 -6.7985 5.3540 0 +M V30 78 H -8.8204 -5.5900 4.2585 0 +M V30 79 C 9.2891 -5.4587 6.2771 0 +M V30 80 C 8.3717 -5.4606 7.4495 0 +M V30 81 C 6.9450 -5.2460 6.9550 0 +M V30 82 C 6.9518 -3.8192 6.4860 0 +M V30 83 C 7.7914 -3.6822 5.2609 0 +M V30 84 C 9.0978 -4.3846 5.2831 0 +M V30 85 N 6.9940 -4.0333 4.0804 0 +M V30 86 N 5.6557 -3.2606 6.2658 0 +M V30 87 H 9.2246 -6.4714 5.8079 0 +M V30 88 H 10.3332 -5.4264 6.6931 0 +M V30 89 H 8.6578 -4.5958 8.1001 0 +M V30 90 H 8.4884 -6.3995 8.0020 0 +M V30 91 H 6.2790 -5.4374 7.8023 0 +M V30 92 H 6.7668 -5.9236 6.0910 0 +M V30 93 H 7.4487 -3.2211 7.2919 0 +M V30 94 H 7.9785 -2.5790 5.1321 0 +M V30 95 H 9.9520 -3.6469 5.3536 0 +M V30 96 H 9.2408 -4.8318 4.2584 0 +M V30 97 C 0.1036 10.7778 6.2770 0 +M V30 98 C 0.5640 9.9836 7.4490 0 +M V30 99 C 1.0892 8.6399 6.9539 0 +M V30 100 C -0.1513 7.9342 6.4862 0 +M V30 101 C -0.6900 8.5935 5.2616 0 +M V30 102 C -0.7328 10.0762 5.2838 0 +M V30 103 N 0.0109 8.0775 4.0804 0 +M V30 104 N 0.0109 6.5322 6.2658 0 +M V30 105 H 1.0131 11.2270 5.8070 0 +M V30 106 H -0.4447 11.6665 6.6935 0 +M V30 107 H -0.3276 9.8001 8.1004 0 +M V30 108 H 1.3201 10.5531 8.0008 0 +M V30 109 H 1.5881 8.1582 7.8008 0 +M V30 110 H 1.7646 8.8235 6.0893 0 +M V30 111 H -0.9167 8.0665 7.2928 0 +M V30 112 H -1.7396 8.2054 5.1338 0 +M V30 113 H -1.7983 10.4485 5.3553 0 +M V30 114 H -0.4176 10.4231 4.2588 0 +M V30 115 C 1.1060 -10.0711 -7.2552 0 +M V30 116 C -0.3095 -9.8281 -7.6473 0 +M V30 117 C -0.6810 -8.3959 -7.2770 0 +M V30 118 C -0.7065 -8.4218 -5.7755 0 +M V30 119 C 0.6740 -8.5954 -5.2384 0 +M V30 120 C 1.5119 -9.6187 -5.9103 0 +M V30 121 N 1.3405 -7.2899 -5.1731 0 +M V30 122 N -1.3360 -7.2899 -5.1731 0 +M V30 123 H 1.7492 -9.6235 -8.0527 0 +M V30 124 H 1.2791 -11.1765 -7.3658 0 +M V30 125 H -0.9472 -10.5279 -7.0503 0 +M V30 126 H -0.4311 -10.0309 -8.7171 0 +M V30 127 H -1.6506 -8.1858 -7.7395 0 +M V30 128 H 0.1310 -7.7206 -7.6265 0 +M V30 129 H -1.2887 -9.3323 -5.4823 0 +M V30 130 H 0.5543 -8.8829 -4.1560 0 +M V30 131 H 1.6685 -10.5161 -5.2401 0 +M V30 132 H 2.5491 -9.1848 -5.9894 0 +M V30 133 C -8.2598 6.0406 -7.1109 0 +M V30 134 C -9.2185 4.9598 -6.7521 0 +M V30 135 C -8.6921 4.2269 -5.5225 0 +M V30 136 C -7.4849 3.5004 -6.0426 0 +M V30 137 C -6.4052 4.4711 -6.3838 0 +M V30 138 C -6.8280 5.6827 -7.1279 0 +M V30 139 N -5.6453 4.8020 -5.1731 0 +M V30 140 N -6.9835 2.4840 -5.1731 0 +M V30 141 H -8.4621 6.9001 -6.4251 0 +M V30 142 H -8.5797 6.4252 -8.1178 0 +M V30 143 H -9.2495 4.2412 -7.6097 0 +M V30 144 H -10.2119 5.3928 -6.5902 0 +M V30 145 H -9.4949 3.5707 -5.1714 0 +M V30 146 H -8.3787 4.9835 -4.7696 0 +M V30 147 H -7.7966 3.0080 -6.9989 0 +M V30 148 H -5.6624 3.9040 -7.0125 0 +M V30 149 H -6.4585 5.6502 -8.1962 0 +M V30 150 H -6.2500 6.5467 -6.6922 0 +M V30 151 C 8.1688 5.9934 -7.2552 0 +M V30 152 C 8.6661 4.6461 -7.6473 0 +M V30 153 C 7.6116 3.6082 -7.2770 0 +M V30 154 C 7.6467 3.5991 -5.7755 0 +M V30 155 C 7.1068 4.8814 -5.2384 0 +M V30 156 C 7.5741 6.1187 -5.9103 0 +M V30 157 N 5.6430 4.8059 -5.1731 0 +M V30 158 N 6.9813 2.4879 -5.1731 0 +M V30 159 H 7.4596 6.3266 -8.0527 0 +M V30 160 H 9.0396 6.6959 -7.3658 0 +M V30 161 H 9.5911 4.4436 -7.0503 0 +M V30 162 H 8.9025 4.6421 -8.7171 0 +M V30 163 H 7.9144 2.6634 -7.7395 0 +M V30 164 H 6.6207 3.9738 -7.6265 0 +M V30 165 H 8.7264 3.5501 -5.4823 0 +M V30 166 H 7.4156 4.9215 -4.1560 0 +M V30 167 H 8.2729 6.7030 -5.2401 0 +M V30 168 H 6.6797 6.8000 -5.9894 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 2 1 2 @@ -345,16 +345,16 @@ M V30 167 1 156 167 M V30 168 1 156 168 M V30 169 2 9 68 M V30 170 2 24 67 -M V30 171 2 7 86 +M V30 171 2 8 86 M V30 172 2 39 85 -M V30 173 2 8 104 +M V30 173 2 7 104 M V30 174 2 54 103 -M V30 175 2 23 122 -M V30 176 2 37 121 -M V30 177 2 22 140 -M V30 178 2 53 139 -M V30 179 2 38 158 -M V30 180 2 52 157 +M V30 175 2 22 122 +M V30 176 2 38 121 +M V30 177 2 23 140 +M V30 178 2 52 139 +M V30 179 2 37 158 +M V30 180 2 53 157 M V30 END BOND M V30 END CTAB M END From 7a2360bd39408b24bcbf8ff9adb4af660e703826 Mon Sep 17 00:00:00 2001 From: Andrew Tarzia Date: Sat, 6 Dec 2025 19:59:03 +0000 Subject: [PATCH 08/33] Change charge method. --- examples/openmm_hg_example.py | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/examples/openmm_hg_example.py b/examples/openmm_hg_example.py index b90af6e..7cf815a 100644 --- a/examples/openmm_hg_example.py +++ b/examples/openmm_hg_example.py @@ -1,5 +1,3 @@ -# ruff: noqa: T201 - import logging import time from pathlib import Path @@ -64,7 +62,7 @@ def main() -> None: # vacuum calculations (without constraints) force_field=force_field, restricted=False, - partial_charges_method="espaloma-am1bcc", + partial_charges_method="mmff94", ), # Molecular dynamics, short for equilibration. stko.OpenMMMD( @@ -76,7 +74,7 @@ def main() -> None: time_step=time_step, ), random_seed=275, - partial_charges_method="espaloma-am1bcc", + partial_charges_method="mmff94", # Frequency here is not related to the num confs tested. reporting_freq=100, trajectory_freq=100, @@ -89,7 +87,7 @@ def main() -> None: conformer_optimiser=stko.OpenMMForceField( force_field=force_field, restricted=False, - partial_charges_method="espaloma-am1bcc", + partial_charges_method="mmff94", ), ), # Long MD, for collecting lowest energy conformers. @@ -102,7 +100,7 @@ def main() -> None: time_step=time_step, ), random_seed=275, - partial_charges_method="espaloma-am1bcc", + partial_charges_method="mmff94", # Frequency here is not related to the num confs tested. reporting_freq=100, trajectory_freq=100, @@ -114,7 +112,7 @@ def main() -> None: conformer_optimiser=stko.OpenMMForceField( force_field=force_field, restricted=False, - partial_charges_method="espaloma-am1bcc", + partial_charges_method="mmff94", ), ), ) @@ -129,7 +127,7 @@ def main() -> None: "hgcomplex energy: %s kJmol-1 in %s s", stko.OpenMMEnergy( force_field=ForceField("openff_unconstrained-2.1.0.offxml"), - partial_charges_method="espaloma-am1bcc", + partial_charges_method="mmff94", ).get_energy(optimised_complex), round(et - st, 2), ) From 154ef27fdb10b54cbc7584e9c002319ab0912a5e Mon Sep 17 00:00:00 2001 From: Andrew Tarzia Date: Sat, 6 Dec 2025 19:59:18 +0000 Subject: [PATCH 09/33] Update example output. --- examples/optwrite_example.py | 2 - .../out_intermediates/idx0_3x3FG+2x2FG.mol | 90 +++++++++--------- examples/out_intermediates/idx1_1x3FG.mol | 22 ++--- examples/out_intermediates/idx2_1x2FG.mol | 24 ++--- .../out_intermediates/idx3_2x3FG+3x2FG.mol | 92 +++++++++---------- .../out_intermediates/idx4_2x3FG+2x2FG.mol | 74 +++++++-------- .../out_intermediates/idx5_1x3FG+1x2FG.mol | 40 ++++---- .../out_intermediates/idx6_2x3FG+3x2FG.mol | 92 +++++++++---------- .../out_intermediates/idx7_2x3FG+1x2FG.mol | 56 +++++------ .../out_intermediates/idx8_1x3FG+2x2FG.mol | 58 ++++++------ .../out_intermediates/idx9_1x3FG+3x2FG.mol | 76 +++++++-------- 11 files changed, 312 insertions(+), 314 deletions(-) diff --git a/examples/optwrite_example.py b/examples/optwrite_example.py index 45ce3d4..2356a9f 100644 --- a/examples/optwrite_example.py +++ b/examples/optwrite_example.py @@ -1,5 +1,3 @@ -# ruff: noqa: T201 - import logging from pathlib import Path diff --git a/examples/out_intermediates/idx0_3x3FG+2x2FG.mol b/examples/out_intermediates/idx0_3x3FG+2x2FG.mol index a183224..512054e 100644 --- a/examples/out_intermediates/idx0_3x3FG+2x2FG.mol +++ b/examples/out_intermediates/idx0_3x3FG+2x2FG.mol @@ -5,51 +5,51 @@ M V30 BEGIN CTAB M V30 COUNTS 45 44 0 0 0 M V30 BEGIN ATOM -M V30 1 C -1.2134 -0.7006 7.6921 0 -M V30 2 C 0.0024 0.0195 8.1532 0 -M V30 3 C 1.2289 -0.7128 7.6921 0 -M V30 4 C -0.0155 1.4134 7.6921 0 -M V30 5 O -0.9554 1.8112 7.0270 0 -M V30 6 H -1.4106 -0.8660 6.6467 0 -M V30 7 H 0.0228 0.0328 9.2640 0 -M V30 8 H 1.3779 -0.8508 6.6158 0 -M V30 9 H 0.7696 2.1271 7.9093 0 -M V30 10 C -6.6851 -3.8596 -1.2430 0 -M V30 11 C -6.6459 -3.8550 -2.7289 0 -M V30 12 C -6.6921 -2.4414 -3.2314 0 -M V30 13 O -7.5962 -2.0548 -3.9611 0 -M V30 14 C -5.4646 -4.5773 -3.2177 0 -M V30 15 O -4.6918 -5.0716 -2.4160 0 -M V30 16 H -5.9270 -3.3704 -0.6555 0 -M V30 17 H -7.5451 -4.3758 -3.1221 0 -M V30 18 H -5.8930 -1.7560 -2.9293 0 -M V30 19 H -5.2299 -4.7022 -4.2675 0 -M V30 20 C 6.6851 -3.8596 -1.2430 0 -M V30 21 C 6.6615 -3.8280 -2.7289 0 -M V30 22 C 5.4604 -4.5748 -3.2314 0 -M V30 23 O 5.5776 -5.5511 -3.9611 0 -M V30 24 C 6.6963 -2.4438 -3.2177 0 -M V30 25 O 6.7381 -1.5274 -2.4160 0 -M V30 26 H 5.8824 -3.4478 -0.6555 0 -M V30 27 H 7.5621 -4.3463 -3.1221 0 -M V30 28 H 4.4673 -4.2255 -2.9293 0 -M V30 29 H 6.6872 -2.1781 -4.2675 0 -M V30 30 N -3.2178 -1.8578 4.4191 0 -M V30 31 C -4.6051 -2.2313 4.4421 0 -M V30 32 C -4.9290 -3.2079 3.3152 0 -M V30 33 N -4.6808 -2.7024 2.0300 0 -M V30 34 H -5.2477 -1.3300 4.3651 0 -M V30 35 H -4.7784 -2.7831 5.3911 0 -M V30 36 H -4.2388 -4.0831 3.4884 0 -M V30 37 H -5.9702 -3.5517 3.4212 0 -M V30 38 N 3.2255 -1.8639 4.4191 0 -M V30 39 C 4.2425 -2.8787 4.4421 0 -M V30 40 C 5.2503 -2.6710 3.3153 0 -M V30 41 N 4.6885 -2.7085 2.0300 0 -M V30 42 H 3.7830 -3.8858 4.3649 0 -M V30 43 H 4.8069 -2.7532 5.3911 0 -M V30 44 H 5.6634 -1.6358 3.4886 0 -M V30 45 H 6.0684 -3.4011 3.4212 0 +M V30 1 C -1.2123 -0.6999 7.7098 0 +M V30 2 C 0.0149 0.0075 8.1922 0 +M V30 3 C 1.2306 -0.7126 7.7098 0 +M V30 4 C -0.0183 1.4125 7.7098 0 +M V30 5 O -0.9744 1.8008 7.0243 0 +M V30 6 H -1.3375 -0.7933 6.6259 0 +M V30 7 H 0.0210 0.0289 9.2919 0 +M V30 8 H 1.3437 -0.8013 6.6250 0 +M V30 9 H 0.8057 2.0819 7.9697 0 +M V30 10 C -6.6991 -3.8677 -1.2501 0 +M V30 11 C -6.6846 -3.8582 -2.7465 0 +M V30 12 C -6.7064 -2.4489 -3.2388 0 +M V30 13 O -7.6101 -2.0195 -3.9552 0 +M V30 14 C -5.4795 -4.5867 -3.2209 0 +M V30 15 O -4.6956 -5.0744 -2.3947 0 +M V30 16 H -5.8680 -3.3668 -0.7426 0 +M V30 17 H -7.5701 -4.3874 -3.1281 0 +M V30 18 H -5.8719 -1.8131 -2.9277 0 +M V30 19 H -5.3053 -4.6797 -4.2958 0 +M V30 20 C 6.6991 -3.8677 -1.2501 0 +M V30 21 C 6.6836 -3.8599 -2.7465 0 +M V30 22 C 5.4740 -4.5835 -3.2388 0 +M V30 23 O 5.5540 -5.5808 -3.9552 0 +M V30 24 C 6.7119 -2.4521 -3.2209 0 +M V30 25 O 6.7424 -1.5293 -2.3947 0 +M V30 26 H 5.8497 -3.3985 -0.7426 0 +M V30 27 H 7.5846 -4.3622 -3.1281 0 +M V30 28 H 4.5061 -4.1787 -2.9277 0 +M V30 29 H 6.7054 -2.2547 -4.2958 0 +M V30 30 N -3.2240 -1.8614 4.4247 0 +M V30 31 C -4.6116 -2.2338 4.4457 0 +M V30 32 C -4.9370 -3.2101 3.3213 0 +M V30 33 N -4.6874 -2.7063 2.0349 0 +M V30 34 H -5.2526 -1.3349 4.3725 0 +M V30 35 H -4.7837 -2.7859 5.3975 0 +M V30 36 H -4.2354 -4.0718 3.4909 0 +M V30 37 H -5.9715 -3.5640 3.4280 0 +M V30 38 N 3.2331 -1.8677 4.4247 0 +M V30 39 C 4.2493 -2.8834 4.4457 0 +M V30 40 C 5.2576 -2.6771 3.3213 0 +M V30 41 N 4.6966 -2.7126 2.0349 0 +M V30 42 H 3.7912 -3.8879 4.3724 0 +M V30 43 H 4.8135 -2.7565 5.3975 0 +M V30 44 H 5.6532 -1.6387 3.4910 0 +M V30 45 H 6.0812 -3.3962 3.4280 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 1 1 2 diff --git a/examples/out_intermediates/idx1_1x3FG.mol b/examples/out_intermediates/idx1_1x3FG.mol index b831ffb..e749f9a 100644 --- a/examples/out_intermediates/idx1_1x3FG.mol +++ b/examples/out_intermediates/idx1_1x3FG.mol @@ -5,17 +5,17 @@ M V30 BEGIN CTAB M V30 COUNTS 11 10 0 0 0 M V30 BEGIN ATOM -M V30 1 O -0.0380 8.7847 -0.6552 0 -M V30 2 C -0.0000 7.7193 -1.2430 0 -M V30 3 C -0.0156 7.6830 -2.7289 0 -M V30 4 C 1.2317 7.0162 -3.2314 0 -M V30 5 O 2.0186 7.6059 -3.9611 0 -M V30 6 C -1.2317 7.0211 -3.2177 0 -M V30 7 O -2.0463 6.5990 -2.4160 0 -M V30 8 H 0.0447 6.8181 -0.6555 0 -M V30 9 H -0.0170 8.7221 -3.1221 0 -M V30 10 H 1.4257 5.9815 -2.9293 0 -M V30 11 H -1.4573 6.8803 -4.2675 0 +M V30 1 O -0.0201 8.7774 -0.6089 0 +M V30 2 C -0.0000 7.7355 -1.2501 0 +M V30 3 C 0.0010 7.7181 -2.7465 0 +M V30 4 C 1.2324 7.0324 -3.2388 0 +M V30 5 O 2.0561 7.6003 -3.9552 0 +M V30 6 C -1.2324 7.0387 -3.2209 0 +M V30 7 O -2.0468 6.6037 -2.3947 0 +M V30 8 H 0.0183 6.7652 -0.7426 0 +M V30 9 H -0.0145 8.7496 -3.1281 0 +M V30 10 H 1.3658 5.9918 -2.9277 0 +M V30 11 H -1.4001 6.9343 -4.2958 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 2 1 2 diff --git a/examples/out_intermediates/idx2_1x2FG.mol b/examples/out_intermediates/idx2_1x2FG.mol index 59b85b8..b7b5763 100644 --- a/examples/out_intermediates/idx2_1x2FG.mol +++ b/examples/out_intermediates/idx2_1x2FG.mol @@ -5,18 +5,18 @@ M V30 BEGIN CTAB M V30 COUNTS 12 11 0 0 0 M V30 BEGIN ATOM -M V30 1 N -0.0077 3.7216 4.4191 0 -M V30 2 C 0.3608 5.1103 4.4424 0 -M V30 3 C -0.3230 5.8783 3.3150 0 -M V30 4 N -0.0077 5.4110 2.0300 0 -M V30 5 H -1.0144 3.6048 4.6657 0 -M V30 6 H 0.1808 3.2703 3.4869 0 -M V30 7 H 1.4626 5.2174 4.3663 0 -M V30 8 H -0.0316 5.5358 5.3911 0 -M V30 9 H -1.4260 5.7170 3.4873 0 -M V30 10 H -0.1013 6.9522 3.4211 0 -M V30 11 H -0.6584 4.8111 1.5438 0 -M V30 12 H 0.8893 5.6239 1.6259 0 +M V30 1 N -0.0091 3.7291 4.4247 0 +M V30 2 C 0.3603 5.1175 4.4461 0 +M V30 3 C -0.3225 5.8865 3.3210 0 +M V30 4 N -0.0091 5.4189 2.0349 0 +M V30 5 H -1.0151 3.6095 4.6581 0 +M V30 6 H 0.1788 3.3005 3.4802 0 +M V30 7 H 1.4592 5.2246 4.3739 0 +M V30 8 H -0.0333 5.5421 5.3975 0 +M V30 9 H -1.4195 5.7084 3.4896 0 +M V30 10 H -0.1132 6.9597 3.4279 0 +M V30 11 H -0.6700 4.8245 1.5362 0 +M V30 12 H 0.8840 5.6493 1.6291 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 1 1 2 diff --git a/examples/out_intermediates/idx3_2x3FG+3x2FG.mol b/examples/out_intermediates/idx3_2x3FG+3x2FG.mol index 4fab24c..117e306 100644 --- a/examples/out_intermediates/idx3_2x3FG+3x2FG.mol +++ b/examples/out_intermediates/idx3_2x3FG+3x2FG.mol @@ -5,52 +5,52 @@ M V30 BEGIN CTAB M V30 COUNTS 46 45 0 0 0 M V30 BEGIN ATOM -M V30 1 C -1.2134 -0.7006 7.6921 0 -M V30 2 C 0.0024 0.0195 8.1532 0 -M V30 3 C 1.2289 -0.7128 7.6921 0 -M V30 4 C -0.0155 1.4134 7.6921 0 -M V30 5 H -1.4106 -0.8660 6.6467 0 -M V30 6 H 0.0228 0.0328 9.2640 0 -M V30 7 H 1.3779 -0.8508 6.6158 0 -M V30 8 H 0.7696 2.1271 7.9093 0 -M V30 9 C -6.6851 -3.8596 -1.2430 0 -M V30 10 C -6.6459 -3.8550 -2.7289 0 -M V30 11 C -6.6921 -2.4414 -3.2314 0 -M V30 12 O -7.5962 -2.0548 -3.9611 0 -M V30 13 C -5.4646 -4.5773 -3.2177 0 -M V30 14 O -4.6918 -5.0716 -2.4160 0 -M V30 15 H -5.9270 -3.3704 -0.6555 0 -M V30 16 H -7.5451 -4.3758 -3.1221 0 -M V30 17 H -5.8930 -1.7560 -2.9293 0 -M V30 18 H -5.2299 -4.7022 -4.2675 0 -M V30 19 N -3.2178 -1.8578 4.4191 0 -M V30 20 C -4.6051 -2.2313 4.4421 0 -M V30 21 C -4.9290 -3.2079 3.3152 0 -M V30 22 N -4.6808 -2.7024 2.0300 0 -M V30 23 H -5.2477 -1.3300 4.3651 0 -M V30 24 H -4.7784 -2.7831 5.3911 0 -M V30 25 H -4.2388 -4.0831 3.4884 0 -M V30 26 H -5.9702 -3.5517 3.4212 0 -M V30 27 N 3.2255 -1.8639 4.4191 0 -M V30 28 C 4.2425 -2.8787 4.4421 0 -M V30 29 C 5.2503 -2.6710 3.3153 0 -M V30 30 N 4.6885 -2.7085 2.0300 0 -M V30 31 H 3.7830 -3.8858 4.3649 0 -M V30 32 H 4.8069 -2.7532 5.3911 0 -M V30 33 H 5.6634 -1.6358 3.4886 0 -M V30 34 H 6.0684 -3.4011 3.4212 0 -M V30 35 H 4.4957 -1.8445 1.5445 0 -M V30 36 H 4.4234 -3.5912 1.6250 0 -M V30 37 N -0.0077 3.7216 4.4191 0 -M V30 38 C 0.3608 5.1103 4.4424 0 -M V30 39 C -0.3230 5.8783 3.3150 0 -M V30 40 N -0.0077 5.4110 2.0300 0 -M V30 41 H 1.4626 5.2174 4.3663 0 -M V30 42 H -0.0316 5.5358 5.3911 0 -M V30 43 H -1.4260 5.7170 3.4873 0 -M V30 44 H -0.1013 6.9522 3.4211 0 -M V30 45 H -0.6584 4.8111 1.5438 0 -M V30 46 H 0.8893 5.6239 1.6259 0 +M V30 1 C -1.2123 -0.6999 7.7098 0 +M V30 2 C 0.0149 0.0075 8.1922 0 +M V30 3 C 1.2306 -0.7126 7.7098 0 +M V30 4 C -0.0183 1.4125 7.7098 0 +M V30 5 H -1.3375 -0.7933 6.6259 0 +M V30 6 H 0.0210 0.0289 9.2919 0 +M V30 7 H 1.3437 -0.8013 6.6250 0 +M V30 8 H 0.8057 2.0819 7.9697 0 +M V30 9 C -6.6991 -3.8677 -1.2501 0 +M V30 10 C -6.6846 -3.8582 -2.7465 0 +M V30 11 C -6.7064 -2.4489 -3.2388 0 +M V30 12 O -7.6101 -2.0195 -3.9552 0 +M V30 13 C -5.4795 -4.5867 -3.2209 0 +M V30 14 O -4.6956 -5.0744 -2.3947 0 +M V30 15 H -5.8680 -3.3668 -0.7426 0 +M V30 16 H -7.5701 -4.3874 -3.1281 0 +M V30 17 H -5.8719 -1.8131 -2.9277 0 +M V30 18 H -5.3053 -4.6797 -4.2958 0 +M V30 19 N -3.2240 -1.8614 4.4247 0 +M V30 20 C -4.6116 -2.2338 4.4457 0 +M V30 21 C -4.9370 -3.2101 3.3213 0 +M V30 22 N -4.6874 -2.7063 2.0349 0 +M V30 23 H -5.2526 -1.3349 4.3725 0 +M V30 24 H -4.7837 -2.7859 5.3975 0 +M V30 25 H -4.2354 -4.0718 3.4909 0 +M V30 26 H -5.9715 -3.5640 3.4280 0 +M V30 27 N 3.2331 -1.8677 4.4247 0 +M V30 28 C 4.2493 -2.8834 4.4457 0 +M V30 29 C 5.2576 -2.6771 3.3213 0 +M V30 30 N 4.6966 -2.7126 2.0349 0 +M V30 31 H 3.7912 -3.8879 4.3724 0 +M V30 32 H 4.8135 -2.7565 5.3975 0 +M V30 33 H 5.6532 -1.6387 3.4910 0 +M V30 34 H 6.0812 -3.3962 3.4280 0 +M V30 35 H 4.5138 -1.8424 1.5369 0 +M V30 36 H 4.4485 -3.6005 1.6282 0 +M V30 37 N -0.0091 3.7291 4.4247 0 +M V30 38 C 0.3603 5.1175 4.4461 0 +M V30 39 C -0.3225 5.8865 3.3210 0 +M V30 40 N -0.0091 5.4189 2.0349 0 +M V30 41 H 1.4592 5.2246 4.3739 0 +M V30 42 H -0.0333 5.5421 5.3975 0 +M V30 43 H -1.4195 5.7084 3.4896 0 +M V30 44 H -0.1132 6.9597 3.4279 0 +M V30 45 H -0.6700 4.8245 1.5362 0 +M V30 46 H 0.8840 5.6493 1.6291 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 1 1 2 diff --git a/examples/out_intermediates/idx4_2x3FG+2x2FG.mol b/examples/out_intermediates/idx4_2x3FG+2x2FG.mol index 326d917..bdd2b55 100644 --- a/examples/out_intermediates/idx4_2x3FG+2x2FG.mol +++ b/examples/out_intermediates/idx4_2x3FG+2x2FG.mol @@ -5,43 +5,43 @@ M V30 BEGIN CTAB M V30 COUNTS 37 36 0 0 0 M V30 BEGIN ATOM -M V30 1 C -1.2134 -0.7006 7.6921 0 -M V30 2 C 0.0024 0.0195 8.1532 0 -M V30 3 C 1.2289 -0.7128 7.6921 0 -M V30 4 C -0.0155 1.4134 7.6921 0 -M V30 5 O -0.9554 1.8112 7.0270 0 -M V30 6 H -1.4106 -0.8660 6.6467 0 -M V30 7 H 0.0228 0.0328 9.2640 0 -M V30 8 H 1.3779 -0.8508 6.6158 0 -M V30 9 H 0.7696 2.1271 7.9093 0 -M V30 10 C -6.6851 -3.8596 -1.2430 0 -M V30 11 C -6.6459 -3.8550 -2.7289 0 -M V30 12 C -6.6921 -2.4414 -3.2314 0 -M V30 13 O -7.5962 -2.0548 -3.9611 0 -M V30 14 C -5.4646 -4.5773 -3.2177 0 -M V30 15 O -4.6918 -5.0716 -2.4160 0 -M V30 16 H -5.9270 -3.3704 -0.6555 0 -M V30 17 H -7.5451 -4.3758 -3.1221 0 -M V30 18 H -5.8930 -1.7560 -2.9293 0 -M V30 19 H -5.2299 -4.7022 -4.2675 0 -M V30 20 N -3.2178 -1.8578 4.4191 0 -M V30 21 C -4.6051 -2.2313 4.4421 0 -M V30 22 C -4.9290 -3.2079 3.3152 0 -M V30 23 N -4.6808 -2.7024 2.0300 0 -M V30 24 H -5.2477 -1.3300 4.3651 0 -M V30 25 H -4.7784 -2.7831 5.3911 0 -M V30 26 H -4.2388 -4.0831 3.4884 0 -M V30 27 H -5.9702 -3.5517 3.4212 0 -M V30 28 N 3.2255 -1.8639 4.4191 0 -M V30 29 C 4.2425 -2.8787 4.4421 0 -M V30 30 C 5.2503 -2.6710 3.3153 0 -M V30 31 N 4.6885 -2.7085 2.0300 0 -M V30 32 H 3.7830 -3.8858 4.3649 0 -M V30 33 H 4.8069 -2.7532 5.3911 0 -M V30 34 H 5.6634 -1.6358 3.4886 0 -M V30 35 H 6.0684 -3.4011 3.4212 0 -M V30 36 H 4.4957 -1.8445 1.5445 0 -M V30 37 H 4.4234 -3.5912 1.6250 0 +M V30 1 C -1.2123 -0.6999 7.7098 0 +M V30 2 C 0.0149 0.0075 8.1922 0 +M V30 3 C 1.2306 -0.7126 7.7098 0 +M V30 4 C -0.0183 1.4125 7.7098 0 +M V30 5 O -0.9744 1.8008 7.0243 0 +M V30 6 H -1.3375 -0.7933 6.6259 0 +M V30 7 H 0.0210 0.0289 9.2919 0 +M V30 8 H 1.3437 -0.8013 6.6250 0 +M V30 9 H 0.8057 2.0819 7.9697 0 +M V30 10 C -6.6991 -3.8677 -1.2501 0 +M V30 11 C -6.6846 -3.8582 -2.7465 0 +M V30 12 C -6.7064 -2.4489 -3.2388 0 +M V30 13 O -7.6101 -2.0195 -3.9552 0 +M V30 14 C -5.4795 -4.5867 -3.2209 0 +M V30 15 O -4.6956 -5.0744 -2.3947 0 +M V30 16 H -5.8680 -3.3668 -0.7426 0 +M V30 17 H -7.5701 -4.3874 -3.1281 0 +M V30 18 H -5.8719 -1.8131 -2.9277 0 +M V30 19 H -5.3053 -4.6797 -4.2958 0 +M V30 20 N -3.2240 -1.8614 4.4247 0 +M V30 21 C -4.6116 -2.2338 4.4457 0 +M V30 22 C -4.9370 -3.2101 3.3213 0 +M V30 23 N -4.6874 -2.7063 2.0349 0 +M V30 24 H -5.2526 -1.3349 4.3725 0 +M V30 25 H -4.7837 -2.7859 5.3975 0 +M V30 26 H -4.2354 -4.0718 3.4909 0 +M V30 27 H -5.9715 -3.5640 3.4280 0 +M V30 28 N 3.2331 -1.8677 4.4247 0 +M V30 29 C 4.2493 -2.8834 4.4457 0 +M V30 30 C 5.2576 -2.6771 3.3213 0 +M V30 31 N 4.6966 -2.7126 2.0349 0 +M V30 32 H 3.7912 -3.8879 4.3724 0 +M V30 33 H 4.8135 -2.7565 5.3975 0 +M V30 34 H 5.6532 -1.6387 3.4910 0 +M V30 35 H 6.0812 -3.3962 3.4280 0 +M V30 36 H 4.5138 -1.8424 1.5369 0 +M V30 37 H 4.4485 -3.6005 1.6282 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 1 1 2 diff --git a/examples/out_intermediates/idx5_1x3FG+1x2FG.mol b/examples/out_intermediates/idx5_1x3FG+1x2FG.mol index 39b7282..e347bab 100644 --- a/examples/out_intermediates/idx5_1x3FG+1x2FG.mol +++ b/examples/out_intermediates/idx5_1x3FG+1x2FG.mol @@ -5,26 +5,26 @@ M V30 BEGIN CTAB M V30 COUNTS 20 19 0 0 0 M V30 BEGIN ATOM -M V30 1 C -0.0000 7.7193 -1.2430 0 -M V30 2 C -0.0156 7.6830 -2.7289 0 -M V30 3 C 1.2317 7.0162 -3.2314 0 -M V30 4 O 2.0186 7.6059 -3.9611 0 -M V30 5 C -1.2317 7.0211 -3.2177 0 -M V30 6 O -2.0463 6.5990 -2.4160 0 -M V30 7 H 0.0447 6.8181 -0.6555 0 -M V30 8 H -0.0170 8.7221 -3.1221 0 -M V30 9 H 1.4257 5.9815 -2.9293 0 -M V30 10 H -1.4573 6.8803 -4.2675 0 -M V30 11 N -0.0077 3.7216 4.4191 0 -M V30 12 C 0.3608 5.1103 4.4424 0 -M V30 13 C -0.3230 5.8783 3.3150 0 -M V30 14 N -0.0077 5.4110 2.0300 0 -M V30 15 H -1.0144 3.6048 4.6657 0 -M V30 16 H 0.1808 3.2703 3.4869 0 -M V30 17 H 1.4626 5.2174 4.3663 0 -M V30 18 H -0.0316 5.5358 5.3911 0 -M V30 19 H -1.4260 5.7170 3.4873 0 -M V30 20 H -0.1013 6.9522 3.4211 0 +M V30 1 C -0.0000 7.7355 -1.2501 0 +M V30 2 C 0.0010 7.7181 -2.7465 0 +M V30 3 C 1.2324 7.0324 -3.2388 0 +M V30 4 O 2.0561 7.6003 -3.9552 0 +M V30 5 C -1.2324 7.0387 -3.2209 0 +M V30 6 O -2.0468 6.6037 -2.3947 0 +M V30 7 H 0.0183 6.7652 -0.7426 0 +M V30 8 H -0.0145 8.7496 -3.1281 0 +M V30 9 H 1.3658 5.9918 -2.9277 0 +M V30 10 H -1.4001 6.9343 -4.2958 0 +M V30 11 N -0.0091 3.7291 4.4247 0 +M V30 12 C 0.3603 5.1175 4.4461 0 +M V30 13 C -0.3225 5.8865 3.3210 0 +M V30 14 N -0.0091 5.4189 2.0349 0 +M V30 15 H -1.0151 3.6095 4.6581 0 +M V30 16 H 0.1788 3.3005 3.4802 0 +M V30 17 H 1.4592 5.2246 4.3739 0 +M V30 18 H -0.0333 5.5421 5.3975 0 +M V30 19 H -1.4195 5.7084 3.4896 0 +M V30 20 H -0.1132 6.9597 3.4279 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 1 1 2 diff --git a/examples/out_intermediates/idx6_2x3FG+3x2FG.mol b/examples/out_intermediates/idx6_2x3FG+3x2FG.mol index 06bf059..61c01bc 100644 --- a/examples/out_intermediates/idx6_2x3FG+3x2FG.mol +++ b/examples/out_intermediates/idx6_2x3FG+3x2FG.mol @@ -5,52 +5,52 @@ M V30 BEGIN CTAB M V30 COUNTS 46 45 0 0 0 M V30 BEGIN ATOM -M V30 1 C -1.2134 -0.7006 7.6921 0 -M V30 2 C 0.0024 0.0195 8.1532 0 -M V30 3 C 1.2289 -0.7128 7.6921 0 -M V30 4 C -0.0155 1.4134 7.6921 0 -M V30 5 O -0.9554 1.8112 7.0270 0 -M V30 6 H -1.4106 -0.8660 6.6467 0 -M V30 7 H 0.0228 0.0328 9.2640 0 -M V30 8 H 1.3779 -0.8508 6.6158 0 -M V30 9 H 0.7696 2.1271 7.9093 0 -M V30 10 C -6.6851 -3.8596 -1.2430 0 -M V30 11 C -6.6459 -3.8550 -2.7289 0 -M V30 12 C -6.6921 -2.4414 -3.2314 0 -M V30 13 O -7.5962 -2.0548 -3.9611 0 -M V30 14 C -5.4646 -4.5773 -3.2177 0 -M V30 15 H -5.9270 -3.3704 -0.6555 0 -M V30 16 H -7.5451 -4.3758 -3.1221 0 -M V30 17 H -5.8930 -1.7560 -2.9293 0 -M V30 18 H -5.2299 -4.7022 -4.2675 0 -M V30 19 N -3.2178 -1.8578 4.4191 0 -M V30 20 C -4.6051 -2.2313 4.4421 0 -M V30 21 C -4.9290 -3.2079 3.3152 0 -M V30 22 N -4.6808 -2.7024 2.0300 0 -M V30 23 H -5.2477 -1.3300 4.3651 0 -M V30 24 H -4.7784 -2.7831 5.3911 0 -M V30 25 H -4.2388 -4.0831 3.4884 0 -M V30 26 H -5.9702 -3.5517 3.4212 0 -M V30 27 N 3.2255 -1.8639 4.4191 0 -M V30 28 C 4.2425 -2.8787 4.4421 0 -M V30 29 C 5.2503 -2.6710 3.3153 0 -M V30 30 N 4.6885 -2.7085 2.0300 0 -M V30 31 H 3.7830 -3.8858 4.3649 0 -M V30 32 H 4.8069 -2.7532 5.3911 0 -M V30 33 H 5.6634 -1.6358 3.4886 0 -M V30 34 H 6.0684 -3.4011 3.4212 0 -M V30 35 H 4.4957 -1.8445 1.5445 0 -M V30 36 H 4.4234 -3.5912 1.6250 0 -M V30 37 N -1.4651 -4.5761 -3.2246 0 -M V30 38 C -0.6824 -5.3003 -4.1877 0 -M V30 39 C 0.6815 -5.6755 -3.6155 0 -M V30 40 N 1.4609 -4.5761 -3.2246 0 -M V30 41 H -0.5584 -4.6999 -5.1126 0 -M V30 42 H -1.2113 -6.2578 -4.3839 0 -M V30 43 H 0.4477 -6.2857 -2.6961 0 -M V30 44 H 1.2149 -6.3136 -4.3380 0 -M V30 45 H 1.5115 -4.3224 -2.2486 0 -M V30 46 H 1.9138 -4.0098 -3.9228 0 +M V30 1 C -1.2123 -0.6999 7.7098 0 +M V30 2 C 0.0149 0.0075 8.1922 0 +M V30 3 C 1.2306 -0.7126 7.7098 0 +M V30 4 C -0.0183 1.4125 7.7098 0 +M V30 5 O -0.9744 1.8008 7.0243 0 +M V30 6 H -1.3375 -0.7933 6.6259 0 +M V30 7 H 0.0210 0.0289 9.2919 0 +M V30 8 H 1.3437 -0.8013 6.6250 0 +M V30 9 H 0.8057 2.0819 7.9697 0 +M V30 10 C -6.6991 -3.8677 -1.2501 0 +M V30 11 C -6.6846 -3.8582 -2.7465 0 +M V30 12 C -6.7064 -2.4489 -3.2388 0 +M V30 13 O -7.6101 -2.0195 -3.9552 0 +M V30 14 C -5.4795 -4.5867 -3.2209 0 +M V30 15 H -5.8680 -3.3668 -0.7426 0 +M V30 16 H -7.5701 -4.3874 -3.1281 0 +M V30 17 H -5.8719 -1.8131 -2.9277 0 +M V30 18 H -5.3053 -4.6797 -4.2958 0 +M V30 19 N -3.2240 -1.8614 4.4247 0 +M V30 20 C -4.6116 -2.2338 4.4457 0 +M V30 21 C -4.9370 -3.2101 3.3213 0 +M V30 22 N -4.6874 -2.7063 2.0349 0 +M V30 23 H -5.2526 -1.3349 4.3725 0 +M V30 24 H -4.7837 -2.7859 5.3975 0 +M V30 25 H -4.2354 -4.0718 3.4909 0 +M V30 26 H -5.9715 -3.5640 3.4280 0 +M V30 27 N 3.2331 -1.8677 4.4247 0 +M V30 28 C 4.2493 -2.8834 4.4457 0 +M V30 29 C 5.2576 -2.6771 3.3213 0 +M V30 30 N 4.6966 -2.7126 2.0349 0 +M V30 31 H 3.7912 -3.8879 4.3724 0 +M V30 32 H 4.8135 -2.7565 5.3975 0 +M V30 33 H 5.6532 -1.6387 3.4910 0 +M V30 34 H 6.0812 -3.3962 3.4280 0 +M V30 35 H 4.5138 -1.8424 1.5369 0 +M V30 36 H 4.4485 -3.6005 1.6282 0 +M V30 37 N -1.4662 -4.5851 -3.2298 0 +M V30 38 C -0.6820 -5.3076 -4.1930 0 +M V30 39 C 0.6806 -5.6840 -3.6230 0 +M V30 40 N 1.4607 -4.5851 -3.2298 0 +M V30 41 H -0.5612 -4.7107 -5.1168 0 +M V30 42 H -1.2137 -6.2664 -4.3887 0 +M V30 43 H 0.4401 -6.2779 -2.6993 0 +M V30 44 H 1.2129 -6.3292 -4.3352 0 +M V30 45 H 1.5247 -4.3351 -2.2438 0 +M V30 46 H 1.9251 -4.0319 -3.9325 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 1 1 2 diff --git a/examples/out_intermediates/idx7_2x3FG+1x2FG.mol b/examples/out_intermediates/idx7_2x3FG+1x2FG.mol index 21de149..648ee4f 100644 --- a/examples/out_intermediates/idx7_2x3FG+1x2FG.mol +++ b/examples/out_intermediates/idx7_2x3FG+1x2FG.mol @@ -5,34 +5,34 @@ M V30 BEGIN CTAB M V30 COUNTS 28 27 0 0 0 M V30 BEGIN ATOM -M V30 1 C -1.2134 -0.7006 7.6921 0 -M V30 2 C 0.0024 0.0195 8.1532 0 -M V30 3 C 1.2289 -0.7128 7.6921 0 -M V30 4 O 2.0479 -1.1485 8.4913 0 -M V30 5 C -0.0155 1.4134 7.6921 0 -M V30 6 O -0.9554 1.8112 7.0270 0 -M V30 7 H -1.4106 -0.8660 6.6467 0 -M V30 8 H 0.0228 0.0328 9.2640 0 -M V30 9 H 1.3779 -0.8508 6.6158 0 -M V30 10 H 0.7696 2.1271 7.9093 0 -M V30 11 C -6.6851 -3.8596 -1.2430 0 -M V30 12 C -6.6459 -3.8550 -2.7289 0 -M V30 13 C -6.6921 -2.4414 -3.2314 0 -M V30 14 O -7.5962 -2.0548 -3.9611 0 -M V30 15 C -5.4646 -4.5773 -3.2177 0 -M V30 16 O -4.6918 -5.0716 -2.4160 0 -M V30 17 H -5.9270 -3.3704 -0.6555 0 -M V30 18 H -7.5451 -4.3758 -3.1221 0 -M V30 19 H -5.8930 -1.7560 -2.9293 0 -M V30 20 H -5.2299 -4.7022 -4.2675 0 -M V30 21 N -3.2178 -1.8578 4.4191 0 -M V30 22 C -4.6051 -2.2313 4.4421 0 -M V30 23 C -4.9290 -3.2079 3.3152 0 -M V30 24 N -4.6808 -2.7024 2.0300 0 -M V30 25 H -5.2477 -1.3300 4.3651 0 -M V30 26 H -4.7784 -2.7831 5.3911 0 -M V30 27 H -4.2388 -4.0831 3.4884 0 -M V30 28 H -5.9702 -3.5517 3.4212 0 +M V30 1 C -1.2123 -0.6999 7.7098 0 +M V30 2 C 0.0149 0.0075 8.1922 0 +M V30 3 C 1.2306 -0.7126 7.7098 0 +M V30 4 O 2.0634 -1.1828 8.4840 0 +M V30 5 C -0.0183 1.4125 7.7098 0 +M V30 6 O -0.9744 1.8008 7.0243 0 +M V30 7 H -1.3375 -0.7933 6.6259 0 +M V30 8 H 0.0210 0.0289 9.2919 0 +M V30 9 H 1.3437 -0.8013 6.6250 0 +M V30 10 H 0.8057 2.0819 7.9697 0 +M V30 11 C -6.6991 -3.8677 -1.2501 0 +M V30 12 C -6.6846 -3.8582 -2.7465 0 +M V30 13 C -6.7064 -2.4489 -3.2388 0 +M V30 14 O -7.6101 -2.0195 -3.9552 0 +M V30 15 C -5.4795 -4.5867 -3.2209 0 +M V30 16 O -4.6956 -5.0744 -2.3947 0 +M V30 17 H -5.8680 -3.3668 -0.7426 0 +M V30 18 H -7.5701 -4.3874 -3.1281 0 +M V30 19 H -5.8719 -1.8131 -2.9277 0 +M V30 20 H -5.3053 -4.6797 -4.2958 0 +M V30 21 N -3.2240 -1.8614 4.4247 0 +M V30 22 C -4.6116 -2.2338 4.4457 0 +M V30 23 C -4.9370 -3.2101 3.3213 0 +M V30 24 N -4.6874 -2.7063 2.0349 0 +M V30 25 H -5.2526 -1.3349 4.3725 0 +M V30 26 H -4.7837 -2.7859 5.3975 0 +M V30 27 H -4.2354 -4.0718 3.4909 0 +M V30 28 H -5.9715 -3.5640 3.4280 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 1 1 2 diff --git a/examples/out_intermediates/idx8_1x3FG+2x2FG.mol b/examples/out_intermediates/idx8_1x3FG+2x2FG.mol index 752000b..df6c809 100644 --- a/examples/out_intermediates/idx8_1x3FG+2x2FG.mol +++ b/examples/out_intermediates/idx8_1x3FG+2x2FG.mol @@ -5,35 +5,35 @@ M V30 BEGIN CTAB M V30 COUNTS 29 28 0 0 0 M V30 BEGIN ATOM -M V30 1 C 6.6851 -3.8596 -1.2430 0 -M V30 2 C 6.6615 -3.8280 -2.7289 0 -M V30 3 C 5.4604 -4.5748 -3.2314 0 -M V30 4 C 6.6963 -2.4438 -3.2177 0 -M V30 5 O 6.7381 -1.5274 -2.4160 0 -M V30 6 H 5.8824 -3.4478 -0.6555 0 -M V30 7 H 7.5621 -4.3463 -3.1221 0 -M V30 8 H 4.4673 -4.2255 -2.9293 0 -M V30 9 H 6.6872 -2.1781 -4.2675 0 -M V30 10 N 3.2255 -1.8639 4.4191 0 -M V30 11 C 4.2425 -2.8787 4.4421 0 -M V30 12 C 5.2503 -2.6710 3.3153 0 -M V30 13 N 4.6885 -2.7085 2.0300 0 -M V30 14 H 3.6287 -0.9344 4.6667 0 -M V30 15 H 2.7409 -1.8001 3.4867 0 -M V30 16 H 3.7830 -3.8858 4.3649 0 -M V30 17 H 4.8069 -2.7532 5.3911 0 -M V30 18 H 5.6634 -1.6358 3.4886 0 -M V30 19 H 6.0684 -3.4011 3.4212 0 -M V30 20 N -1.4651 -4.5761 -3.2246 0 -M V30 21 C -0.6824 -5.3003 -4.1877 0 -M V30 22 C 0.6815 -5.6755 -3.6155 0 -M V30 23 N 1.4609 -4.5761 -3.2246 0 -M V30 24 H -1.7340 -5.1954 -2.4296 0 -M V30 25 H -0.9645 -3.7268 -2.8552 0 -M V30 26 H -0.5584 -4.6999 -5.1126 0 -M V30 27 H -1.2113 -6.2578 -4.3839 0 -M V30 28 H 0.4477 -6.2857 -2.6961 0 -M V30 29 H 1.2149 -6.3136 -4.3380 0 +M V30 1 C 6.6991 -3.8677 -1.2501 0 +M V30 2 C 6.6836 -3.8599 -2.7465 0 +M V30 3 C 5.4740 -4.5835 -3.2388 0 +M V30 4 C 6.7119 -2.4521 -3.2209 0 +M V30 5 O 6.7424 -1.5293 -2.3947 0 +M V30 6 H 5.8497 -3.3985 -0.7426 0 +M V30 7 H 7.5846 -4.3622 -3.1281 0 +M V30 8 H 4.5061 -4.1787 -2.9277 0 +M V30 9 H 6.7054 -2.2547 -4.2958 0 +M V30 10 N 3.2331 -1.8677 4.4247 0 +M V30 11 C 4.2493 -2.8834 4.4457 0 +M V30 12 C 5.2576 -2.6771 3.3213 0 +M V30 13 N 4.6966 -2.7126 2.0349 0 +M V30 14 H 3.6338 -0.9375 4.6592 0 +M V30 15 H 2.7685 -1.8147 3.4800 0 +M V30 16 H 3.7912 -3.8879 4.3724 0 +M V30 17 H 4.8135 -2.7565 5.3975 0 +M V30 18 H 5.6532 -1.6387 3.4910 0 +M V30 19 H 6.0812 -3.3962 3.4280 0 +M V30 20 N -1.4662 -4.5851 -3.2298 0 +M V30 21 C -0.6820 -5.3076 -4.1930 0 +M V30 22 C 0.6806 -5.6840 -3.6230 0 +M V30 23 N 1.4607 -4.5851 -3.2298 0 +M V30 24 H -1.7258 -5.1961 -2.4298 0 +M V30 25 H -0.9424 -3.7455 -2.8666 0 +M V30 26 H -0.5612 -4.7107 -5.1168 0 +M V30 27 H -1.2137 -6.2664 -4.3887 0 +M V30 28 H 0.4401 -6.2779 -2.6993 0 +M V30 29 H 1.2129 -6.3292 -4.3352 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 1 1 2 diff --git a/examples/out_intermediates/idx9_1x3FG+3x2FG.mol b/examples/out_intermediates/idx9_1x3FG+3x2FG.mol index 14013ef..4341fc9 100644 --- a/examples/out_intermediates/idx9_1x3FG+3x2FG.mol +++ b/examples/out_intermediates/idx9_1x3FG+3x2FG.mol @@ -5,44 +5,44 @@ M V30 BEGIN CTAB M V30 COUNTS 38 37 0 0 0 M V30 BEGIN ATOM -M V30 1 C -1.2134 -0.7006 7.6921 0 -M V30 2 C 0.0024 0.0195 8.1532 0 -M V30 3 C 1.2289 -0.7128 7.6921 0 -M V30 4 C -0.0155 1.4134 7.6921 0 -M V30 5 H -1.4106 -0.8660 6.6467 0 -M V30 6 H 0.0228 0.0328 9.2640 0 -M V30 7 H 1.3779 -0.8508 6.6158 0 -M V30 8 H 0.7696 2.1271 7.9093 0 -M V30 9 N -3.2178 -1.8578 4.4191 0 -M V30 10 C -4.6051 -2.2313 4.4421 0 -M V30 11 C -4.9290 -3.2079 3.3152 0 -M V30 12 N -4.6808 -2.7024 2.0300 0 -M V30 13 H -5.2477 -1.3300 4.3651 0 -M V30 14 H -4.7784 -2.7831 5.3911 0 -M V30 15 H -4.2388 -4.0831 3.4884 0 -M V30 16 H -5.9702 -3.5517 3.4212 0 -M V30 17 H -3.8361 -2.9673 1.5444 0 -M V30 18 H -5.3128 -2.0316 1.6252 0 -M V30 19 N 3.2255 -1.8639 4.4191 0 -M V30 20 C 4.2425 -2.8787 4.4421 0 -M V30 21 C 5.2503 -2.6710 3.3153 0 -M V30 22 N 4.6885 -2.7085 2.0300 0 -M V30 23 H 3.7830 -3.8858 4.3649 0 -M V30 24 H 4.8069 -2.7532 5.3911 0 -M V30 25 H 5.6634 -1.6358 3.4886 0 -M V30 26 H 6.0684 -3.4011 3.4212 0 -M V30 27 H 4.4957 -1.8445 1.5445 0 -M V30 28 H 4.4234 -3.5912 1.6250 0 -M V30 29 N -0.0077 3.7216 4.4191 0 -M V30 30 C 0.3608 5.1103 4.4424 0 -M V30 31 C -0.3230 5.8783 3.3150 0 -M V30 32 N -0.0077 5.4110 2.0300 0 -M V30 33 H 1.4626 5.2174 4.3663 0 -M V30 34 H -0.0316 5.5358 5.3911 0 -M V30 35 H -1.4260 5.7170 3.4873 0 -M V30 36 H -0.1013 6.9522 3.4211 0 -M V30 37 H -0.6584 4.8111 1.5438 0 -M V30 38 H 0.8893 5.6239 1.6259 0 +M V30 1 C -1.2123 -0.6999 7.7098 0 +M V30 2 C 0.0149 0.0075 8.1922 0 +M V30 3 C 1.2306 -0.7126 7.7098 0 +M V30 4 C -0.0183 1.4125 7.7098 0 +M V30 5 H -1.3375 -0.7933 6.6259 0 +M V30 6 H 0.0210 0.0289 9.2919 0 +M V30 7 H 1.3437 -0.8013 6.6250 0 +M V30 8 H 0.8057 2.0819 7.9697 0 +M V30 9 N -3.2240 -1.8614 4.4247 0 +M V30 10 C -4.6116 -2.2338 4.4457 0 +M V30 11 C -4.9370 -3.2101 3.3213 0 +M V30 12 N -4.6874 -2.7063 2.0349 0 +M V30 13 H -5.2526 -1.3349 4.3725 0 +M V30 14 H -4.7837 -2.7859 5.3975 0 +M V30 15 H -4.2354 -4.0718 3.4909 0 +M V30 16 H -5.9715 -3.5640 3.4280 0 +M V30 17 H -3.8423 -2.9830 1.5368 0 +M V30 18 H -5.3324 -2.0475 1.6283 0 +M V30 19 N 3.2331 -1.8677 4.4247 0 +M V30 20 C 4.2493 -2.8834 4.4457 0 +M V30 21 C 5.2576 -2.6771 3.3213 0 +M V30 22 N 4.6966 -2.7126 2.0349 0 +M V30 23 H 3.7912 -3.8879 4.3724 0 +M V30 24 H 4.8135 -2.7565 5.3975 0 +M V30 25 H 5.6532 -1.6387 3.4910 0 +M V30 26 H 6.0812 -3.3962 3.4280 0 +M V30 27 H 4.5138 -1.8424 1.5369 0 +M V30 28 H 4.4485 -3.6005 1.6282 0 +M V30 29 N -0.0091 3.7291 4.4247 0 +M V30 30 C 0.3603 5.1175 4.4461 0 +M V30 31 C -0.3225 5.8865 3.3210 0 +M V30 32 N -0.0091 5.4189 2.0349 0 +M V30 33 H 1.4592 5.2246 4.3739 0 +M V30 34 H -0.0333 5.5421 5.3975 0 +M V30 35 H -1.4195 5.7084 3.4896 0 +M V30 36 H -0.1132 6.9597 3.4279 0 +M V30 37 H -0.6700 4.8245 1.5362 0 +M V30 38 H 0.8840 5.6493 1.6291 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 1 1 2 From 84af469018166d563e271fd6f25826b7835a0256 Mon Sep 17 00:00:00 2001 From: Andrew Tarzia Date: Sat, 6 Dec 2025 19:59:29 +0000 Subject: [PATCH 10/33] Update example output. --- examples/output_directory/bb1.mol | 40 ++--- examples/output_directory/bb2.mol | 24 +-- examples/output_directory/poly_etkdg.mol | 58 +++---- examples/output_directory/poly_mmff.mol | 58 +++---- examples/output_directory/poly_uff.mol | 58 +++---- examples/output_directory/polymer.mol | 58 +++---- examples/output_directory/tg_cage.mol | 160 +++++++++--------- examples/output_directory/tg_info.pdb | 20 +-- examples/output_directory/tors_test_bb1.mol | 40 ++--- .../output_directory/tors_test_polymer.mol | 58 +++---- 10 files changed, 287 insertions(+), 287 deletions(-) diff --git a/examples/output_directory/bb1.mol b/examples/output_directory/bb1.mol index eb9f7cf..1da5dd2 100644 --- a/examples/output_directory/bb1.mol +++ b/examples/output_directory/bb1.mol @@ -5,26 +5,26 @@ M V30 BEGIN CTAB M V30 COUNTS 20 19 0 0 0 M V30 BEGIN ATOM -M V30 1 N 2.5205 1.1082 -1.0118 0 -M V30 2 C 2.4869 -0.3216 -0.6384 0 -M V30 3 C 1.3217 -0.4629 0.3612 0 -M V30 4 N 0.1245 -0.1114 -0.3496 0 -M V30 5 C -1.0415 0.0164 0.4388 0 -M V30 6 C -2.2504 0.0295 -0.4700 0 -M V30 7 N -3.4597 0.1735 0.3320 0 -M V30 8 H 3.4899 1.4535 -0.8680 0 -M V30 9 H 1.9339 1.6857 -0.3276 0 -M V30 10 H 3.4314 -0.6783 -0.2033 0 -M V30 11 H 2.2923 -0.9067 -1.5567 0 -M V30 12 H 1.4627 0.2374 1.2070 0 -M V30 13 H 1.2535 -1.5165 0.7342 0 -M V30 14 H 0.0892 -0.4900 -1.2794 0 -M V30 15 H -1.0829 -0.7497 1.2467 0 -M V30 16 H -0.9787 1.0543 0.9372 0 -M V30 17 H -2.2426 -0.9790 -0.9943 0 -M V30 18 H -2.1245 0.8135 -1.2209 0 -M V30 19 H -3.9816 -0.7560 0.3774 0 -M V30 20 H -3.2446 0.4002 1.3145 0 +M V30 1 N 2.5474 1.1288 -0.9878 0 +M V30 2 C 2.4776 -0.3182 -0.6336 0 +M V30 3 C 1.2979 -0.4742 0.3000 0 +M V30 4 N 0.1088 -0.0771 -0.3939 0 +M V30 5 C -1.0263 0.0410 0.4517 0 +M V30 6 C -2.2740 0.0281 -0.4570 0 +M V30 7 N -3.4531 0.1728 0.3472 0 +M V30 8 H 3.5384 1.4417 -0.7445 0 +M V30 9 H 1.9598 1.6802 -0.2860 0 +M V30 10 H 3.4428 -0.6657 -0.2032 0 +M V30 11 H 2.3476 -0.8896 -1.5525 0 +M V30 12 H 1.3970 0.1641 1.2014 0 +M V30 13 H 1.2022 -1.5476 0.6132 0 +M V30 14 H 0.0264 -0.4692 -1.3103 0 +M V30 15 H -1.0434 -0.6804 1.2499 0 +M V30 16 H -0.9767 1.0895 0.9080 0 +M V30 17 H -2.2534 -1.0156 -0.9443 0 +M V30 18 H -2.1208 0.7624 -1.2511 0 +M V30 19 H -3.9740 -0.7567 0.3817 0 +M V30 20 H -3.2243 0.3855 1.3403 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 1 1 2 diff --git a/examples/output_directory/bb2.mol b/examples/output_directory/bb2.mol index 9393640..d84dba3 100644 --- a/examples/output_directory/bb2.mol +++ b/examples/output_directory/bb2.mol @@ -5,18 +5,18 @@ M V30 BEGIN CTAB M V30 COUNTS 12 11 0 0 0 M V30 BEGIN ATOM -M V30 1 O 0.7048 1.4547 -1.1531 0 -M V30 2 C 1.3494 0.7711 -0.3876 0 -M V30 3 C 0.8060 -0.4333 0.2498 0 -M V30 4 C -0.6195 -0.7256 -0.1423 0 -M V30 5 C -1.5164 0.3771 0.2261 0 -M V30 6 O -1.0916 1.3572 0.7710 0 -M V30 7 H 2.3625 1.0706 -0.1741 0 -M V30 8 H 1.4444 -1.3209 0.0340 0 -M V30 9 H 0.7844 -0.2442 1.3640 0 -M V30 10 H -0.9159 -1.6496 0.4295 0 -M V30 11 H -0.7326 -0.9526 -1.2161 0 -M V30 12 H -2.5755 0.2954 -0.0013 0 +M V30 1 O 0.7202 1.4329 -1.1804 0 +M V30 2 C 1.3608 0.7510 -0.3996 0 +M V30 3 C 0.8074 -0.4627 0.2718 0 +M V30 4 C -0.6195 -0.7284 -0.1349 0 +M V30 5 C -1.4949 0.4056 0.2168 0 +M V30 6 O -1.1453 1.4237 0.7582 0 +M V30 7 H 2.3864 1.0055 -0.1548 0 +M V30 8 H 1.4397 -1.3343 0.0735 0 +M V30 9 H 0.7581 -0.1965 1.3652 0 +M V30 10 H -0.9296 -1.6328 0.4403 0 +M V30 11 H -0.7223 -0.9632 -1.2115 0 +M V30 12 H -2.5610 0.2991 -0.0445 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 2 1 2 diff --git a/examples/output_directory/poly_etkdg.mol b/examples/output_directory/poly_etkdg.mol index f8ef59f..e438dd3 100644 --- a/examples/output_directory/poly_etkdg.mol +++ b/examples/output_directory/poly_etkdg.mol @@ -5,35 +5,35 @@ M V30 BEGIN CTAB M V30 COUNTS 29 28 0 0 0 M V30 BEGIN ATOM -M V30 1 N 4.8543 0.6842 0.6785 0 -M V30 2 C 3.9861 -0.4091 0.9129 0 -M V30 3 C 2.5131 0.0184 0.9644 0 -M V30 4 N 2.1489 0.5933 -0.2621 0 -M V30 5 C 0.7515 0.7721 -0.5563 0 -M V30 6 C 0.2258 -0.6183 -0.8269 0 -M V30 7 N -1.1326 -0.6718 -1.1620 0 -M V30 8 H 5.4205 0.6815 -0.1737 0 -M V30 9 H 4.6609 1.5742 1.1052 0 -M V30 10 H 4.2129 -0.8777 1.9000 0 -M V30 11 H 4.1231 -1.1727 0.1094 0 -M V30 12 H 1.9022 -0.8685 1.1920 0 -M V30 13 H 2.3728 0.7858 1.7711 0 -M V30 14 H 2.7610 1.3460 -0.6215 0 -M V30 15 H 0.6583 1.4384 -1.4196 0 -M V30 16 H 0.1783 1.2299 0.2980 0 -M V30 17 H 0.8621 -1.0068 -1.6749 0 -M V30 18 H 0.4367 -1.3160 0.0165 0 -M V30 19 C -2.0607 -0.9474 -0.3836 0 -M V30 20 C -3.4652 -0.9888 -0.8218 0 -M V30 21 C -4.2152 0.2974 -0.6574 0 -M V30 22 C -4.2388 0.7565 0.7616 0 -M V30 23 O -3.6303 0.1341 1.6496 0 -M V30 24 H -1.8289 -1.1514 0.6715 0 -M V30 25 H -4.0590 -1.7796 -0.2926 0 -M V30 26 H -3.5336 -1.3078 -1.9137 0 -M V30 27 H -3.8474 1.1036 -1.3276 0 -M V30 28 H -5.2799 0.0722 -0.9890 0 -M V30 29 H -4.7770 1.6281 1.0520 0 +M V30 1 N 4.6725 0.7514 0.8479 0 +M V30 2 C 3.4998 1.3300 0.2361 0 +M V30 3 C 2.8841 0.4102 -0.8027 0 +M V30 4 N 2.4715 -0.8421 -0.2987 0 +M V30 5 C 1.3833 -0.9049 0.5796 0 +M V30 6 C 0.0299 -0.5769 -0.0717 0 +M V30 7 N -0.9881 -0.6597 0.8925 0 +M V30 8 H 5.2429 0.1634 0.2146 0 +M V30 9 H 4.5465 0.4283 1.8158 0 +M V30 10 H 2.7867 1.6057 1.0295 0 +M V30 11 H 3.8096 2.2660 -0.2691 0 +M V30 12 H 2.0737 1.0223 -1.2831 0 +M V30 13 H 3.6913 0.2443 -1.5629 0 +M V30 14 H 2.7095 -1.6999 -0.7645 0 +M V30 15 H 1.5149 -0.3243 1.5161 0 +M V30 16 H 1.2791 -1.9807 0.9107 0 +M V30 17 H 0.0379 0.4536 -0.4982 0 +M V30 18 H -0.1102 -1.3827 -0.8264 0 +M V30 19 C -2.2326 -0.7206 0.7457 0 +M V30 20 C -3.0209 -0.7209 -0.4837 0 +M V30 21 C -3.9373 0.4805 -0.6148 0 +M V30 22 C -4.9198 0.5644 0.5150 0 +M V30 23 O -5.7443 1.4839 0.5607 0 +M V30 24 H -2.8183 -0.7784 1.6976 0 +M V30 25 H -3.6910 -1.6124 -0.5687 0 +M V30 26 H -2.3530 -0.7340 -1.3556 0 +M V30 27 H -4.5099 0.4557 -1.5560 0 +M V30 28 H -3.3605 1.4438 -0.5723 0 +M V30 29 H -4.9472 -0.1662 1.3263 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 1 1 2 diff --git a/examples/output_directory/poly_mmff.mol b/examples/output_directory/poly_mmff.mol index 99a7e4e..dcab405 100644 --- a/examples/output_directory/poly_mmff.mol +++ b/examples/output_directory/poly_mmff.mol @@ -5,35 +5,35 @@ M V30 BEGIN CTAB M V30 COUNTS 29 28 0 0 0 M V30 BEGIN ATOM -M V30 1 N -1.5965 -1.9565 -0.0562 0 -M V30 2 C -1.8600 -0.7020 -0.7738 0 -M V30 3 C -0.6055 -0.1485 -1.4799 0 -M V30 4 N 0.5738 -0.1983 -0.5996 0 -M V30 5 C 1.7504 0.3513 -1.2859 0 -M V30 6 C 2.9903 0.2948 -0.3809 0 -M V30 7 N 4.1496 0.8103 -1.1264 0 -M V30 8 H -2.4544 -2.2513 0.4086 0 -M V30 9 H -0.9416 -1.7380 0.6969 0 -M V30 10 H -2.2286 0.0378 -0.0536 0 -M V30 11 H -2.6510 -0.8657 -1.5132 0 -M V30 12 H -0.8064 0.8822 -1.7944 0 -M V30 13 H -0.4149 -0.7466 -2.3798 0 -M V30 14 H 0.7460 -1.1852 -0.3960 0 -M V30 15 H 1.9498 -0.2110 -2.2068 0 -M V30 16 H 1.5660 1.3946 -1.5703 0 -M V30 17 H 3.1788 -0.7426 -0.0768 0 -M V30 18 H 2.8133 0.8960 0.5203 0 -M V30 19 C 5.2065 0.9067 -0.3953 0 -M V30 20 C 6.4978 1.3985 -0.9922 0 -M V30 21 C 7.3563 0.2208 -1.4279 0 -M V30 22 C 8.0140 -0.4832 -0.2671 0 -M V30 23 O 7.8011 -0.2186 0.9117 0 -M V30 24 H 5.2289 0.6029 0.6675 0 -M V30 25 H 6.2628 2.0182 -1.8648 0 -M V30 26 H 7.0060 2.0259 -0.2529 0 -M V30 27 H 8.1622 0.5792 -2.0776 0 -M V30 28 H 6.7719 -0.5206 -1.9830 0 -M V30 29 H 8.7110 -1.2929 -0.5442 0 +M V30 1 N -2.1270 -0.5894 -0.5304 0 +M V30 2 C -1.8886 0.4734 -1.5162 0 +M V30 3 C -0.4343 0.4896 -2.0294 0 +M V30 4 N 0.5286 0.3460 -0.9243 0 +M V30 5 C 1.9048 0.3750 -1.4363 0 +M V30 6 C 2.9178 0.2240 -0.2917 0 +M V30 7 N 4.2777 0.2154 -0.8539 0 +M V30 8 H -3.0961 -0.5325 -0.2192 0 +M V30 9 H -1.5643 -0.3663 0.2924 0 +M V30 10 H -2.1207 1.4374 -1.0486 0 +M V30 11 H -2.5713 0.3439 -2.3625 0 +M V30 12 H -0.2628 1.4285 -2.5684 0 +M V30 13 H -0.3021 -0.3374 -2.7383 0 +M V30 14 H 0.3549 -0.5700 -0.5045 0 +M V30 15 H 2.0572 -0.4328 -2.1630 0 +M V30 16 H 2.0933 1.3238 -1.9538 0 +M V30 17 H 2.7348 -0.7169 0.2425 0 +M V30 18 H 2.7976 1.0551 0.4152 0 +M V30 19 C 5.1937 0.2405 0.0503 0 +M V30 20 C 6.6427 0.2229 -0.3435 0 +M V30 21 C 7.2219 -1.1536 -0.0739 0 +M V30 22 C 8.6533 -1.2010 -0.5278 0 +M V30 23 O 9.5910 -1.4087 0.2355 0 +M V30 24 H 4.9687 0.2456 1.1326 0 +M V30 25 H 6.7396 0.4856 -1.4031 0 +M V30 26 H 7.1676 0.9862 0.2410 0 +M V30 27 H 6.6689 -1.9295 -0.6146 0 +M V30 28 H 7.1739 -1.3962 0.9935 0 +M V30 29 H 8.8232 -1.0476 -1.6075 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 1 1 2 diff --git a/examples/output_directory/poly_uff.mol b/examples/output_directory/poly_uff.mol index 8c81e85..de9699e 100644 --- a/examples/output_directory/poly_uff.mol +++ b/examples/output_directory/poly_uff.mol @@ -5,35 +5,35 @@ M V30 BEGIN CTAB M V30 COUNTS 29 28 0 0 0 M V30 BEGIN ATOM -M V30 1 N -1.7987 -0.7653 0.8647 0 -M V30 2 C -1.9058 -0.5215 -0.5709 0 -M V30 3 C -0.6961 0.2685 -1.0747 0 -M V30 4 N 0.5423 -0.4828 -0.8349 0 -M V30 5 C 1.7068 0.3123 -1.2407 0 -M V30 6 C 2.9940 -0.4368 -0.9044 0 -M V30 7 N 4.1353 0.3649 -1.2804 0 -M V30 8 H -2.6075 -1.3653 1.1462 0 -M V30 9 H -1.9194 0.1475 1.3614 0 -M V30 10 H -2.8361 0.0492 -0.7888 0 -M V30 11 H -1.9627 -1.4932 -1.1089 0 -M V30 12 H -0.6638 1.2460 -0.5435 0 -M V30 13 H -0.8229 0.4641 -2.1636 0 -M V30 14 H 0.5161 -1.3418 -1.4345 0 -M V30 15 H 1.6737 0.5144 -2.3357 0 -M V30 16 H 1.7125 1.2834 -0.6962 0 -M V30 17 H 3.0183 -1.4020 -1.4572 0 -M V30 18 H 3.0260 -0.6435 0.1884 0 -M V30 19 C 5.3422 -0.0414 -1.0983 0 -M V30 20 C 6.4913 0.8354 -1.5085 0 -M V30 21 C 7.8494 0.1900 -1.2057 0 -M V30 22 C 8.0861 0.0481 0.2700 0 -M V30 23 O 8.1867 1.0367 0.9791 0 -M V30 24 H 5.5308 -1.0150 -0.6496 0 -M V30 25 H 6.4219 1.0212 -2.6019 0 -M V30 26 H 6.4141 1.8156 -0.9895 0 -M V30 27 H 8.6570 0.8188 -1.6386 0 -M V30 28 H 7.9047 -0.8104 -1.6875 0 -M V30 29 H 8.1814 -0.9390 0.7103 0 +M V30 1 N -1.9062 0.7980 0.0686 0 +M V30 2 C -1.6903 0.6917 -1.3716 0 +M V30 3 C -0.2042 0.8385 -1.7055 0 +M V30 4 N 0.5747 -0.2207 -1.0521 0 +M V30 5 C 2.0074 -0.0287 -1.3043 0 +M V30 6 C 2.8182 -1.0832 -0.5453 0 +M V30 7 N 4.2330 -0.9296 -0.8062 0 +M V30 8 H -2.9205 0.6214 0.2516 0 +M V30 9 H -1.7208 1.7869 0.3550 0 +M V30 10 H -2.2672 1.4836 -1.8995 0 +M V30 11 H -2.0535 -0.2968 -1.7291 0 +M V30 12 H 0.1400 1.8394 -1.3613 0 +M V30 13 H -0.0771 0.7839 -2.8104 0 +M V30 14 H 0.2935 -1.1346 -1.4808 0 +M V30 15 H 2.2221 -0.1143 -2.3940 0 +M V30 16 H 2.3198 0.9810 -0.9562 0 +M V30 17 H 2.5080 -2.0943 -0.8847 0 +M V30 18 H 2.6193 -1.0110 0.5472 0 +M V30 19 C 4.9353 0.0181 -0.2882 0 +M V30 20 C 6.3952 0.1386 -0.6088 0 +M V30 21 C 7.1824 -1.0451 -0.0378 0 +M V30 22 C 8.6478 -0.9146 -0.3310 0 +M V30 23 O 9.4244 -1.7729 0.0556 0 +M V30 24 H 4.4761 0.7519 0.3701 0 +M V30 25 H 6.5234 0.1865 -1.7124 0 +M V30 26 H 6.7801 1.0851 -0.1702 0 +M V30 27 H 6.8120 -1.9932 -0.4850 0 +M V30 28 H 7.0392 -1.0909 1.0639 0 +M V30 29 H 9.0319 -0.0634 -0.8855 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 1 1 2 diff --git a/examples/output_directory/polymer.mol b/examples/output_directory/polymer.mol index eec2cc7..962ce8e 100644 --- a/examples/output_directory/polymer.mol +++ b/examples/output_directory/polymer.mol @@ -5,35 +5,35 @@ M V30 BEGIN CTAB M V30 COUNTS 29 28 0 0 0 M V30 BEGIN ATOM -M V30 1 N -3.1001 -0.0000 0.0000 0 -M V30 2 C -2.7712 -0.1752 -1.4304 0 -M V30 3 C -1.4093 0.5189 -1.6318 0 -M V30 4 N -0.4617 -0.1898 -0.8183 0 -M V30 5 C 0.8146 0.4064 -0.7034 0 -M V30 6 C 1.7816 -0.6081 -0.1349 0 -M V30 7 N 3.1001 0.0000 -0.0000 0 -M V30 8 H -4.0560 0.4027 0.0612 0 -M V30 9 H -2.4731 0.7493 0.4373 0 -M V30 10 H -3.5340 0.2396 -2.1045 0 -M V30 11 H -2.6943 -1.2605 -1.6294 0 -M V30 12 H -1.4676 1.5708 -1.2915 0 -M V30 13 H -1.1039 0.4733 -2.7081 0 -M V30 14 H -0.5721 -1.1875 -0.8581 0 -M V30 15 H 1.1450 0.8687 -1.6617 0 -M V30 16 H 0.7056 1.2479 0.0773 0 -M V30 17 H 1.8125 -1.4522 -0.8954 0 -M V30 18 H 1.3793 -0.9987 0.8032 0 -M V30 19 C 7.1424 0.0000 -0.0000 0 -M V30 20 C 7.9618 -0.0138 -1.2168 0 -M V30 21 C 9.3008 -0.6792 -1.0280 0 -M V30 22 C 10.0995 0.0000 -0.0000 0 -M V30 23 O 9.6703 0.9611 0.5744 0 -M V30 24 H 6.1649 0.4535 -0.0263 0 -M V30 25 H 7.4166 -0.4994 -2.0588 0 -M V30 26 H 8.1888 1.0611 -1.4823 0 -M V30 27 H 9.8298 -0.5996 -2.0192 0 -M V30 28 H 9.2178 -1.7520 -0.7845 0 -M V30 29 H 11.0896 -0.3795 0.2364 0 +M V30 1 N -3.1106 -0.0000 0.0000 0 +M V30 2 C -2.7448 -0.1648 -1.4364 0 +M V30 3 C -1.3827 0.4700 -1.6071 0 +M V30 4 N -0.4456 -0.2254 -0.7754 0 +M V30 5 C 0.8125 0.4261 -0.6745 0 +M V30 6 C 1.8229 -0.6151 -0.1474 0 +M V30 7 N 3.1106 0.0000 -0.0000 0 +M V30 8 H -4.0623 0.4830 0.0056 0 +M V30 9 H -2.4779 0.7465 0.4293 0 +M V30 10 H -3.5300 0.2678 -2.0952 0 +M V30 11 H -2.7289 -1.2301 -1.6655 0 +M V30 12 H -1.3829 1.5367 -1.3039 0 +M V30 13 H -1.0582 0.3880 -2.6783 0 +M V30 14 H -0.5026 -1.2212 -0.8488 0 +M V30 15 H 1.1111 0.9247 -1.5801 0 +M V30 16 H 0.7015 1.2082 0.1536 0 +M V30 17 H 1.8589 -1.4137 -0.9770 0 +M V30 18 H 1.3920 -1.0847 0.7397 0 +M V30 19 C 7.2022 0.0000 -0.0000 0 +M V30 20 C 8.0226 -0.1429 -1.2396 0 +M V30 21 C 9.3538 -0.7928 -0.9606 0 +M V30 22 C 10.1441 0.0000 0.0000 0 +M V30 23 O 9.7986 1.0348 0.5116 0 +M V30 24 H 6.2281 0.4608 -0.1234 0 +M V30 25 H 7.4696 -0.6966 -2.0055 0 +M V30 26 H 8.2683 0.9109 -1.5522 0 +M V30 27 H 9.8814 -0.8244 -1.9432 0 +M V30 28 H 9.2556 -1.8339 -0.5982 0 +M V30 29 H 11.1367 -0.4011 0.2645 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 1 1 2 diff --git a/examples/output_directory/tg_cage.mol b/examples/output_directory/tg_cage.mol index d61446e..2386d3a 100644 --- a/examples/output_directory/tg_cage.mol +++ b/examples/output_directory/tg_cage.mol @@ -5,86 +5,86 @@ M V30 BEGIN CTAB M V30 COUNTS 80 82 0 0 0 M V30 BEGIN ATOM -M V30 1 C -1.2134 -0.7006 7.6921 0 -M V30 2 C 0.0024 0.0195 8.1532 0 -M V30 3 C 1.2289 -0.7128 7.6921 0 -M V30 4 C -0.0155 1.4134 7.6921 0 -M V30 5 H -1.4106 -0.8660 6.6467 0 -M V30 6 H 0.0228 0.0328 9.2640 0 -M V30 7 H 1.3779 -0.8508 6.6158 0 -M V30 8 H 0.7696 2.1271 7.9093 0 -M V30 9 C -6.6851 -3.8596 -1.2430 0 -M V30 10 C -6.6459 -3.8550 -2.7289 0 -M V30 11 C -6.6921 -2.4414 -3.2314 0 -M V30 12 C -5.4646 -4.5773 -3.2177 0 -M V30 13 H -5.9270 -3.3704 -0.6555 0 -M V30 14 H -7.5451 -4.3758 -3.1221 0 -M V30 15 H -5.8930 -1.7560 -2.9293 0 -M V30 16 H -5.2299 -4.7022 -4.2675 0 -M V30 17 C 6.6851 -3.8596 -1.2430 0 -M V30 18 C 6.6615 -3.8280 -2.7289 0 -M V30 19 C 5.4604 -4.5748 -3.2314 0 -M V30 20 C 6.6963 -2.4438 -3.2177 0 -M V30 21 H 5.8824 -3.4478 -0.6555 0 -M V30 22 H 7.5621 -4.3463 -3.1221 0 -M V30 23 H 4.4673 -4.2255 -2.9293 0 -M V30 24 H 6.6872 -2.1781 -4.2675 0 -M V30 25 C -0.0000 7.7193 -1.2430 0 -M V30 26 C -0.0156 7.6830 -2.7289 0 -M V30 27 C 1.2317 7.0162 -3.2314 0 -M V30 28 C -1.2317 7.0211 -3.2177 0 -M V30 29 H 0.0447 6.8181 -0.6555 0 -M V30 30 H -0.0170 8.7221 -3.1221 0 -M V30 31 H 1.4257 5.9815 -2.9293 0 -M V30 32 H -1.4573 6.8803 -4.2675 0 -M V30 33 N -3.2178 -1.8578 4.4191 0 -M V30 34 C -4.6051 -2.2313 4.4421 0 -M V30 35 C -4.9290 -3.2079 3.3152 0 -M V30 36 N -4.6808 -2.7024 2.0300 0 -M V30 37 H -5.2477 -1.3300 4.3651 0 -M V30 38 H -4.7784 -2.7831 5.3911 0 -M V30 39 H -4.2388 -4.0831 3.4884 0 -M V30 40 H -5.9702 -3.5517 3.4212 0 -M V30 41 N 3.2255 -1.8639 4.4191 0 -M V30 42 C 4.2425 -2.8787 4.4421 0 -M V30 43 C 5.2503 -2.6710 3.3153 0 -M V30 44 N 4.6885 -2.7085 2.0300 0 -M V30 45 H 3.7830 -3.8858 4.3649 0 -M V30 46 H 4.8069 -2.7532 5.3911 0 -M V30 47 H 5.6634 -1.6358 3.4886 0 -M V30 48 H 6.0684 -3.4011 3.4212 0 -M V30 49 N -0.0077 3.7216 4.4191 0 -M V30 50 C 0.3608 5.1103 4.4424 0 -M V30 51 C -0.3230 5.8783 3.3150 0 -M V30 52 N -0.0077 5.4110 2.0300 0 -M V30 53 H 1.4626 5.2174 4.3663 0 -M V30 54 H -0.0316 5.5358 5.3911 0 -M V30 55 H -1.4260 5.7170 3.4873 0 -M V30 56 H -0.1013 6.9522 3.4211 0 -M V30 57 N -1.4651 -4.5761 -3.2246 0 -M V30 58 C -0.6824 -5.3003 -4.1877 0 -M V30 59 C 0.6815 -5.6755 -3.6155 0 -M V30 60 N 1.4609 -4.5761 -3.2246 0 -M V30 61 H -0.5584 -4.6999 -5.1126 0 -M V30 62 H -1.2113 -6.2578 -4.3839 0 -M V30 63 H 0.4477 -6.2857 -2.6961 0 -M V30 64 H 1.2149 -6.3136 -4.3380 0 -M V30 65 N -4.6934 1.0229 -3.2246 0 -M V30 66 C -5.2985 2.2760 -3.5825 0 -M V30 67 C -4.2593 3.2509 -4.1283 0 -M V30 68 N -3.2304 3.5569 -3.2246 0 -M V30 69 H -5.8160 2.7179 -2.7060 0 -M V30 70 H -6.0020 2.0714 -4.4183 0 -M V30 71 H -3.8042 2.7182 -5.0123 0 -M V30 72 H -4.7677 4.1603 -4.4863 0 -M V30 73 N 4.6955 1.0192 -3.2246 0 -M V30 74 C 4.9314 2.0591 -4.1877 0 -M V30 75 C 4.5743 3.4280 -3.6155 0 -M V30 76 N 3.2325 3.5532 -3.2246 0 -M V30 77 H 4.3495 1.8663 -5.1126 0 -M V30 78 H 6.0251 2.0799 -4.3839 0 -M V30 79 H 5.2197 3.5306 -2.6961 0 -M V30 80 H 4.8603 4.2089 -4.3380 0 +M V30 1 C -1.2123 -0.6999 7.7098 0 +M V30 2 C 0.0149 0.0075 8.1922 0 +M V30 3 C 1.2306 -0.7126 7.7098 0 +M V30 4 C -0.0183 1.4125 7.7098 0 +M V30 5 H -1.3375 -0.7933 6.6259 0 +M V30 6 H 0.0210 0.0289 9.2919 0 +M V30 7 H 1.3437 -0.8013 6.6250 0 +M V30 8 H 0.8057 2.0819 7.9697 0 +M V30 9 C -6.6991 -3.8677 -1.2501 0 +M V30 10 C -6.6846 -3.8582 -2.7465 0 +M V30 11 C -6.7064 -2.4489 -3.2388 0 +M V30 12 C -5.4795 -4.5867 -3.2209 0 +M V30 13 H -5.8680 -3.3668 -0.7426 0 +M V30 14 H -7.5701 -4.3874 -3.1281 0 +M V30 15 H -5.8719 -1.8131 -2.9277 0 +M V30 16 H -5.3053 -4.6797 -4.2958 0 +M V30 17 C 6.6991 -3.8677 -1.2501 0 +M V30 18 C 6.6836 -3.8599 -2.7465 0 +M V30 19 C 5.4740 -4.5835 -3.2388 0 +M V30 20 C 6.7119 -2.4521 -3.2209 0 +M V30 21 H 5.8497 -3.3985 -0.7426 0 +M V30 22 H 7.5846 -4.3622 -3.1281 0 +M V30 23 H 4.5061 -4.1787 -2.9277 0 +M V30 24 H 6.7054 -2.2547 -4.2958 0 +M V30 25 C -0.0000 7.7355 -1.2501 0 +M V30 26 C 0.0010 7.7181 -2.7465 0 +M V30 27 C 1.2324 7.0324 -3.2388 0 +M V30 28 C -1.2324 7.0387 -3.2209 0 +M V30 29 H 0.0183 6.7652 -0.7426 0 +M V30 30 H -0.0145 8.7496 -3.1281 0 +M V30 31 H 1.3658 5.9918 -2.9277 0 +M V30 32 H -1.4001 6.9343 -4.2958 0 +M V30 33 N -3.2240 -1.8614 4.4247 0 +M V30 34 C -4.6116 -2.2338 4.4457 0 +M V30 35 C -4.9370 -3.2101 3.3213 0 +M V30 36 N -4.6874 -2.7063 2.0349 0 +M V30 37 H -5.2526 -1.3349 4.3725 0 +M V30 38 H -4.7837 -2.7859 5.3975 0 +M V30 39 H -4.2354 -4.0718 3.4909 0 +M V30 40 H -5.9715 -3.5640 3.4280 0 +M V30 41 N 3.2331 -1.8677 4.4247 0 +M V30 42 C 4.2493 -2.8834 4.4457 0 +M V30 43 C 5.2576 -2.6771 3.3213 0 +M V30 44 N 4.6966 -2.7126 2.0349 0 +M V30 45 H 3.7912 -3.8879 4.3724 0 +M V30 46 H 4.8135 -2.7565 5.3975 0 +M V30 47 H 5.6532 -1.6387 3.4910 0 +M V30 48 H 6.0812 -3.3962 3.4280 0 +M V30 49 N -0.0091 3.7291 4.4247 0 +M V30 50 C 0.3603 5.1175 4.4461 0 +M V30 51 C -0.3225 5.8865 3.3210 0 +M V30 52 N -0.0091 5.4189 2.0349 0 +M V30 53 H 1.4592 5.2246 4.3739 0 +M V30 54 H -0.0333 5.5421 5.3975 0 +M V30 55 H -1.4195 5.7084 3.4896 0 +M V30 56 H -0.1132 6.9597 3.4279 0 +M V30 57 N -1.4662 -4.5851 -3.2298 0 +M V30 58 C -0.6820 -5.3076 -4.1930 0 +M V30 59 C 0.6806 -5.6840 -3.6230 0 +M V30 60 N 1.4607 -4.5851 -3.2298 0 +M V30 61 H -0.5612 -4.7107 -5.1168 0 +M V30 62 H -1.2137 -6.2664 -4.3887 0 +M V30 63 H 0.4401 -6.2779 -2.6993 0 +M V30 64 H 1.2129 -6.3292 -4.3352 0 +M V30 65 N -4.7011 1.0276 -3.2298 0 +M V30 66 C -5.3052 2.2817 -3.5859 0 +M V30 67 C -4.2688 3.2568 -4.1322 0 +M V30 68 N -3.2377 3.5623 -3.2298 0 +M V30 69 H -5.8240 2.7208 -2.7128 0 +M V30 70 H -6.0102 2.0749 -4.4228 0 +M V30 71 H -3.8091 2.7137 -5.0024 0 +M V30 72 H -4.7716 4.1617 -4.4999 0 +M V30 73 N 4.7039 1.0228 -3.2298 0 +M V30 74 C 4.9375 2.0632 -4.1930 0 +M V30 75 C 4.5822 3.4314 -3.6230 0 +M V30 76 N 3.2405 3.5575 -3.2298 0 +M V30 77 H 4.3602 1.8693 -5.1168 0 +M V30 78 H 6.0337 2.0821 -4.3887 0 +M V30 79 H 5.2168 3.5201 -2.6993 0 +M V30 80 H 4.8748 4.2150 -4.3352 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 1 1 2 diff --git a/examples/output_directory/tg_info.pdb b/examples/output_directory/tg_info.pdb index 13daec8..c745ee2 100644 --- a/examples/output_directory/tg_info.pdb +++ b/examples/output_directory/tg_info.pdb @@ -1,13 +1,13 @@ -HETATM 1 P1 UNL 1 0.095 0.058 7.708 1.00 0.00 P 0 -HETATM 2 P2 UNL 1 -6.260 -3.617 -2.674 1.00 0.00 P 0 -HETATM 3 P3 UNL 1 6.263 -3.613 -2.674 1.00 0.00 P 0 -HETATM 4 P4 UNL 1 -0.002 7.230 -2.674 1.00 0.00 P 0 -HETATM 5 P5 UNL 1 -4.708 -2.718 3.859 1.00 0.00 P 0 -HETATM 6 P6 UNL 1 4.716 -2.725 3.859 1.00 0.00 P 0 -HETATM 7 P7 UNL 1 -0.009 5.443 3.859 1.00 0.00 P 0 -HETATM 8 P8 UNL 1 -0.014 -5.461 -3.848 1.00 0.00 P 0 -HETATM 9 P9 UNL 1 -4.734 2.722 -3.848 1.00 0.00 P 0 -HETATM 10 P10 UNL 1 4.736 2.718 -3.848 1.00 0.00 P 0 +HETATM 1 P1 UNL 1 0.106 0.065 7.729 1.00 0.00 P 0 +HETATM 2 P2 UNL 1 -6.273 -3.626 -2.694 1.00 0.00 P 0 +HETATM 3 P3 UNL 1 6.277 -3.620 -2.694 1.00 0.00 P 0 +HETATM 4 P4 UNL 1 -0.004 7.246 -2.694 1.00 0.00 P 0 +HETATM 5 P5 UNL 1 -4.713 -2.721 3.864 1.00 0.00 P 0 +HETATM 6 P6 UNL 1 4.722 -2.727 3.864 1.00 0.00 P 0 +HETATM 7 P7 UNL 1 -0.011 5.448 3.864 1.00 0.00 P 0 +HETATM 8 P8 UNL 1 -0.016 -5.468 -3.852 1.00 0.00 P 0 +HETATM 9 P9 UNL 1 -4.741 2.725 -3.852 1.00 0.00 P 0 +HETATM 10 P10 UNL 1 4.744 2.720 -3.852 1.00 0.00 P 0 CONECT 1 5 CONECT 2 5 CONECT 1 6 diff --git a/examples/output_directory/tors_test_bb1.mol b/examples/output_directory/tors_test_bb1.mol index eb9f7cf..1da5dd2 100644 --- a/examples/output_directory/tors_test_bb1.mol +++ b/examples/output_directory/tors_test_bb1.mol @@ -5,26 +5,26 @@ M V30 BEGIN CTAB M V30 COUNTS 20 19 0 0 0 M V30 BEGIN ATOM -M V30 1 N 2.5205 1.1082 -1.0118 0 -M V30 2 C 2.4869 -0.3216 -0.6384 0 -M V30 3 C 1.3217 -0.4629 0.3612 0 -M V30 4 N 0.1245 -0.1114 -0.3496 0 -M V30 5 C -1.0415 0.0164 0.4388 0 -M V30 6 C -2.2504 0.0295 -0.4700 0 -M V30 7 N -3.4597 0.1735 0.3320 0 -M V30 8 H 3.4899 1.4535 -0.8680 0 -M V30 9 H 1.9339 1.6857 -0.3276 0 -M V30 10 H 3.4314 -0.6783 -0.2033 0 -M V30 11 H 2.2923 -0.9067 -1.5567 0 -M V30 12 H 1.4627 0.2374 1.2070 0 -M V30 13 H 1.2535 -1.5165 0.7342 0 -M V30 14 H 0.0892 -0.4900 -1.2794 0 -M V30 15 H -1.0829 -0.7497 1.2467 0 -M V30 16 H -0.9787 1.0543 0.9372 0 -M V30 17 H -2.2426 -0.9790 -0.9943 0 -M V30 18 H -2.1245 0.8135 -1.2209 0 -M V30 19 H -3.9816 -0.7560 0.3774 0 -M V30 20 H -3.2446 0.4002 1.3145 0 +M V30 1 N 2.5474 1.1288 -0.9878 0 +M V30 2 C 2.4776 -0.3182 -0.6336 0 +M V30 3 C 1.2979 -0.4742 0.3000 0 +M V30 4 N 0.1088 -0.0771 -0.3939 0 +M V30 5 C -1.0263 0.0410 0.4517 0 +M V30 6 C -2.2740 0.0281 -0.4570 0 +M V30 7 N -3.4531 0.1728 0.3472 0 +M V30 8 H 3.5384 1.4417 -0.7445 0 +M V30 9 H 1.9598 1.6802 -0.2860 0 +M V30 10 H 3.4428 -0.6657 -0.2032 0 +M V30 11 H 2.3476 -0.8896 -1.5525 0 +M V30 12 H 1.3970 0.1641 1.2014 0 +M V30 13 H 1.2022 -1.5476 0.6132 0 +M V30 14 H 0.0264 -0.4692 -1.3103 0 +M V30 15 H -1.0434 -0.6804 1.2499 0 +M V30 16 H -0.9767 1.0895 0.9080 0 +M V30 17 H -2.2534 -1.0156 -0.9443 0 +M V30 18 H -2.1208 0.7624 -1.2511 0 +M V30 19 H -3.9740 -0.7567 0.3817 0 +M V30 20 H -3.2243 0.3855 1.3403 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 1 1 2 diff --git a/examples/output_directory/tors_test_polymer.mol b/examples/output_directory/tors_test_polymer.mol index eec2cc7..962ce8e 100644 --- a/examples/output_directory/tors_test_polymer.mol +++ b/examples/output_directory/tors_test_polymer.mol @@ -5,35 +5,35 @@ M V30 BEGIN CTAB M V30 COUNTS 29 28 0 0 0 M V30 BEGIN ATOM -M V30 1 N -3.1001 -0.0000 0.0000 0 -M V30 2 C -2.7712 -0.1752 -1.4304 0 -M V30 3 C -1.4093 0.5189 -1.6318 0 -M V30 4 N -0.4617 -0.1898 -0.8183 0 -M V30 5 C 0.8146 0.4064 -0.7034 0 -M V30 6 C 1.7816 -0.6081 -0.1349 0 -M V30 7 N 3.1001 0.0000 -0.0000 0 -M V30 8 H -4.0560 0.4027 0.0612 0 -M V30 9 H -2.4731 0.7493 0.4373 0 -M V30 10 H -3.5340 0.2396 -2.1045 0 -M V30 11 H -2.6943 -1.2605 -1.6294 0 -M V30 12 H -1.4676 1.5708 -1.2915 0 -M V30 13 H -1.1039 0.4733 -2.7081 0 -M V30 14 H -0.5721 -1.1875 -0.8581 0 -M V30 15 H 1.1450 0.8687 -1.6617 0 -M V30 16 H 0.7056 1.2479 0.0773 0 -M V30 17 H 1.8125 -1.4522 -0.8954 0 -M V30 18 H 1.3793 -0.9987 0.8032 0 -M V30 19 C 7.1424 0.0000 -0.0000 0 -M V30 20 C 7.9618 -0.0138 -1.2168 0 -M V30 21 C 9.3008 -0.6792 -1.0280 0 -M V30 22 C 10.0995 0.0000 -0.0000 0 -M V30 23 O 9.6703 0.9611 0.5744 0 -M V30 24 H 6.1649 0.4535 -0.0263 0 -M V30 25 H 7.4166 -0.4994 -2.0588 0 -M V30 26 H 8.1888 1.0611 -1.4823 0 -M V30 27 H 9.8298 -0.5996 -2.0192 0 -M V30 28 H 9.2178 -1.7520 -0.7845 0 -M V30 29 H 11.0896 -0.3795 0.2364 0 +M V30 1 N -3.1106 -0.0000 0.0000 0 +M V30 2 C -2.7448 -0.1648 -1.4364 0 +M V30 3 C -1.3827 0.4700 -1.6071 0 +M V30 4 N -0.4456 -0.2254 -0.7754 0 +M V30 5 C 0.8125 0.4261 -0.6745 0 +M V30 6 C 1.8229 -0.6151 -0.1474 0 +M V30 7 N 3.1106 0.0000 -0.0000 0 +M V30 8 H -4.0623 0.4830 0.0056 0 +M V30 9 H -2.4779 0.7465 0.4293 0 +M V30 10 H -3.5300 0.2678 -2.0952 0 +M V30 11 H -2.7289 -1.2301 -1.6655 0 +M V30 12 H -1.3829 1.5367 -1.3039 0 +M V30 13 H -1.0582 0.3880 -2.6783 0 +M V30 14 H -0.5026 -1.2212 -0.8488 0 +M V30 15 H 1.1111 0.9247 -1.5801 0 +M V30 16 H 0.7015 1.2082 0.1536 0 +M V30 17 H 1.8589 -1.4137 -0.9770 0 +M V30 18 H 1.3920 -1.0847 0.7397 0 +M V30 19 C 7.2022 0.0000 -0.0000 0 +M V30 20 C 8.0226 -0.1429 -1.2396 0 +M V30 21 C 9.3538 -0.7928 -0.9606 0 +M V30 22 C 10.1441 0.0000 0.0000 0 +M V30 23 O 9.7986 1.0348 0.5116 0 +M V30 24 H 6.2281 0.4608 -0.1234 0 +M V30 25 H 7.4696 -0.6966 -2.0055 0 +M V30 26 H 8.2683 0.9109 -1.5522 0 +M V30 27 H 9.8814 -0.8244 -1.9432 0 +M V30 28 H 9.2556 -1.8339 -0.5982 0 +M V30 29 H 11.1367 -0.4011 0.2645 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 1 1 2 From 2509e9eb5c1cb98798e377260c243198c29a8ea3 Mon Sep 17 00:00:00 2001 From: Andrew Tarzia Date: Sat, 6 Dec 2025 19:59:37 +0000 Subject: [PATCH 11/33] Update example output. --- .../splitter_output_directory/original.mol | 48 +++---- .../splitter_output_directory/original2.mol | 120 +++++++++--------- .../reconstructed.mol | 46 +++---- .../splitter_output_directory/splits2_0.xyz | 24 ++-- .../splitter_output_directory/splits2_1.xyz | 8 +- .../splitter_output_directory/splits2_2.xyz | 24 ++-- .../splitter_output_directory/splits2_3.xyz | 8 +- .../splitter_output_directory/splits2_4.xyz | 24 ++-- .../splitter_output_directory/splits2_5.xyz | 8 +- .../splitter_output_directory/splits2_6.xyz | 24 ++-- .../splitter_output_directory/splits2_7.xyz | 8 +- .../splitter_output_directory/splits2_8.xyz | 24 ++-- .../splitter_output_directory/splits_0.xyz | 28 ++-- .../splitter_output_directory/splits_1.xyz | 24 ++-- .../transform2_0.mol | 24 ++-- .../transform2_1.mol | 8 +- .../transform2_2.mol | 24 ++-- .../transform2_3.mol | 8 +- .../transform2_4.mol | 24 ++-- .../transform2_5.mol | 8 +- .../transform2_6.mol | 24 ++-- .../transform2_7.mol | 8 +- .../transform2_8.mol | 24 ++-- .../splitter_output_directory/transform_0.mol | 28 ++-- .../splitter_output_directory/transform_1.mol | 24 ++-- 25 files changed, 311 insertions(+), 311 deletions(-) diff --git a/examples/splitter_output_directory/original.mol b/examples/splitter_output_directory/original.mol index ea62c2c..4beee73 100644 --- a/examples/splitter_output_directory/original.mol +++ b/examples/splitter_output_directory/original.mol @@ -5,30 +5,30 @@ M V30 BEGIN CTAB M V30 COUNTS 24 25 0 0 0 M V30 BEGIN ATOM -M V30 1 C 4.0824 -1.3099 0.4629 0 -M V30 2 C 4.6658 -0.4511 -0.4379 0 -M V30 3 C 3.8411 0.4481 -1.1137 0 -M V30 4 N 2.5144 0.5002 -0.9148 0 -M V30 5 C 1.9204 -0.3263 -0.0419 0 -M V30 6 C 2.7224 -1.2276 0.6402 0 -M V30 7 C 0.4780 -0.2936 0.1966 0 -M V30 8 N -0.2590 0.5410 -0.4359 0 -M V30 9 C -1.6654 0.5662 -0.1974 0 -M V30 10 C -2.2443 1.4471 0.6927 0 -M V30 11 C -3.6090 1.4746 0.9269 0 -M V30 12 C -4.4468 0.5953 0.2553 0 -M V30 13 C -3.8757 -0.3046 -0.6508 0 -M V30 14 C -2.5045 -0.3048 -0.8612 0 -M V30 15 Br -6.3207 0.6099 0.5558 0 -M V30 16 H 4.6997 -2.0112 0.9948 0 -M V30 17 H 5.7451 -0.4793 -0.6128 0 -M V30 18 H 4.3430 1.1168 -1.8240 0 -M V30 19 H 2.2130 -1.8924 1.3483 0 -M V30 20 H 0.0609 -0.9857 0.9125 0 -M V30 21 H -1.6083 2.1310 1.2174 0 -M V30 22 H -4.0685 2.1725 1.6322 0 -M V30 23 H -4.5508 -0.9796 -1.1614 0 -M V30 24 H -2.1332 -1.0367 -1.5839 0 +M V30 1 C 4.1189 -1.0294 0.5840 0 +M V30 2 C 4.6778 -0.1271 -0.2990 0 +M V30 3 C 3.8268 0.7024 -1.0035 0 +M V30 4 N 2.4827 0.6624 -0.8606 0 +M V30 5 C 1.9271 -0.2053 -0.0100 0 +M V30 6 C 2.7451 -1.0600 0.7205 0 +M V30 7 C 0.4678 -0.2497 0.1460 0 +M V30 8 N -0.3186 0.5395 -0.5261 0 +M V30 9 C -1.7381 0.4330 -0.3154 0 +M V30 10 C -2.2493 1.1500 0.7487 0 +M V30 11 C -3.6189 1.0793 0.9939 0 +M V30 12 C -4.4552 0.3036 0.1855 0 +M V30 13 C -3.8975 -0.4078 -0.8826 0 +M V30 14 C -2.5278 -0.3445 -1.1375 0 +M V30 15 Br -6.3160 0.2421 0.5640 0 +M V30 16 H 4.7349 -1.7219 1.1796 0 +M V30 17 H 5.7563 -0.1037 -0.4056 0 +M V30 18 H 4.3082 1.4054 -1.6952 0 +M V30 19 H 2.3194 -1.7790 1.4227 0 +M V30 20 H 0.0491 -0.9764 0.8548 0 +M V30 21 H -1.6263 1.7509 1.3810 0 +M V30 22 H -4.0611 1.6359 1.8310 0 +M V30 23 H -4.5430 -1.0222 -1.5270 0 +M V30 24 H -2.0621 -0.8773 -1.9494 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 2 1 2 diff --git a/examples/splitter_output_directory/original2.mol b/examples/splitter_output_directory/original2.mol index 4e9aa64..3282c3a 100644 --- a/examples/splitter_output_directory/original2.mol +++ b/examples/splitter_output_directory/original2.mol @@ -5,66 +5,66 @@ M V30 BEGIN CTAB M V30 COUNTS 60 64 0 0 0 M V30 BEGIN ATOM -M V30 1 C 5.3176 -4.8890 3.6894 0 -M V30 2 C 4.0507 -4.4942 4.0824 0 -M V30 3 C 3.2803 -3.7516 3.2728 0 -M V30 4 C 3.7659 -3.3776 2.0028 0 -M V30 5 C 4.9876 -3.7598 1.5995 0 -M V30 6 C 5.7466 -4.5156 2.4715 0 -M V30 7 C 2.8770 -2.4429 1.2687 0 -M V30 8 C 2.1096 -1.6628 0.6501 0 -M V30 9 C 1.2842 -0.7998 -0.0414 0 -M V30 10 C -0.0954 -1.1207 0.2476 0 -M V30 11 C -1.0788 -0.1693 -0.0341 0 -M V30 12 C -0.8146 1.0687 -0.5541 0 -M V30 13 C 0.5163 1.3632 -0.8445 0 -M V30 14 C 1.5579 0.3730 -0.5697 0 -M V30 15 C 2.7482 0.6728 -1.0609 0 -M V30 16 C 3.9821 0.9772 -1.5896 0 -M V30 17 C 5.2184 1.3018 -2.1099 0 -M V30 18 C 5.3833 2.4980 -2.7732 0 -M V30 19 C 6.5735 2.8613 -3.3176 0 -M V30 20 C 7.6431 2.0292 -3.2030 0 -M V30 21 C 7.5287 0.8178 -2.5511 0 -M V30 22 C 6.3018 0.4797 -2.0092 0 -M V30 23 C -1.8713 1.9637 -0.5486 0 -M V30 24 C -2.8158 2.7790 -0.5590 0 -M V30 25 C -3.9313 3.7166 -0.5728 0 -M V30 26 C -4.2592 4.5244 -1.5770 0 -M V30 27 C -5.3374 5.4327 -1.5574 0 -M V30 28 C -6.0502 5.4113 -0.3415 0 -M V30 29 C -5.7615 4.6272 0.6792 0 -M V30 30 C -4.7011 3.7511 0.6161 0 -M V30 31 C -2.4168 -0.7168 0.1333 0 -M V30 32 C -3.5416 -1.1954 0.2872 0 -M V30 33 C -4.8266 -1.7485 0.4668 0 -M V30 34 C -5.6677 -1.8312 -0.6231 0 -M V30 35 C -6.9584 -2.2958 -0.5810 0 -M V30 36 C -7.4480 -2.7093 0.6067 0 -M V30 37 C -6.6691 -2.6637 1.7207 0 -M V30 38 C -5.3876 -2.1957 1.6645 0 -M V30 39 H 5.8631 -5.4653 4.4313 0 -M V30 40 H 3.6670 -4.7774 5.0745 0 -M V30 41 H 2.2839 -3.4309 3.5398 0 -M V30 42 H 5.3828 -3.4747 0.6149 0 -M V30 43 H 6.7543 -4.8054 2.1516 0 -M V30 44 H -0.3551 -2.0644 0.6681 0 -M V30 45 H 0.7508 2.3126 -1.2565 0 -M V30 46 H 4.5078 3.1510 -2.8407 0 -M V30 47 H 6.5819 3.8350 -3.8231 0 -M V30 48 H 8.5850 2.3369 -3.6440 0 -M V30 49 H 8.3824 0.1924 -2.4931 0 -M V30 50 H 6.2313 -0.4861 -1.4831 0 -M V30 51 H -3.6578 4.5132 -2.5123 0 -M V30 52 H -5.5743 6.0453 -2.3387 0 -M V30 53 H -6.8975 6.1158 -0.3474 0 -M V30 54 H -6.3493 4.6319 1.6122 0 -M V30 55 H -4.4096 3.0909 1.4171 0 -M V30 56 H -5.2496 -1.4903 -1.6050 0 -M V30 57 H -7.5331 -2.3115 -1.5208 0 -M V30 58 H -8.4744 -3.0931 0.6733 0 -M V30 59 H -7.0030 -2.9884 2.7140 0 -M V30 60 H -4.7271 -2.1461 2.5275 0 +M V30 1 C -7.2593 -3.8191 -0.2712 0 +M V30 2 C -6.3454 -4.1248 -1.2770 0 +M V30 3 C -5.0949 -3.5629 -1.3429 0 +M V30 4 C -4.7564 -2.6599 -0.3568 0 +M V30 5 C -5.6522 -2.3359 0.6618 0 +M V30 6 C -6.9066 -2.9107 0.7128 0 +M V30 7 C -3.4817 -1.9966 -0.3030 0 +M V30 8 C -2.4189 -1.4259 -0.2437 0 +M V30 9 C -1.1418 -0.7324 -0.1477 0 +M V30 10 C 0.0512 -1.3725 -0.4252 0 +M V30 11 C 1.2050 -0.6069 -0.2989 0 +M V30 12 C 1.1786 0.7184 0.0809 0 +M V30 13 C -0.0181 1.3600 0.3592 0 +M V30 14 C -1.1643 0.6115 0.2371 0 +M V30 15 C -2.4457 1.2391 0.5181 0 +M V30 16 C -3.5231 1.7444 0.7469 0 +M V30 17 C -4.8145 2.3244 1.0093 0 +M V30 18 C -5.3499 2.3661 2.2741 0 +M V30 19 C -6.5959 2.9298 2.5036 0 +M V30 20 C -7.3337 3.4678 1.4519 0 +M V30 21 C -6.7671 3.4094 0.1958 0 +M V30 22 C -5.5296 2.8533 -0.0537 0 +M V30 23 C 2.4429 1.4108 0.1775 0 +M V30 24 C 3.5219 1.9813 0.2709 0 +M V30 25 C 4.7955 2.6339 0.3975 0 +M V30 26 C 5.1442 3.1798 1.6124 0 +M V30 27 C 6.3773 3.8093 1.7273 0 +M V30 28 C 7.2581 3.9049 0.6720 0 +M V30 29 C 6.9007 3.3569 -0.5360 0 +M V30 30 C 5.6756 2.7288 -0.6588 0 +M V30 31 C 2.4749 -1.2402 -0.5806 0 +M V30 32 C 3.5391 -1.7520 -0.8262 0 +M V30 33 C 4.7973 -2.3681 -1.1400 0 +M V30 34 C 4.9048 -3.6805 -1.5692 0 +M V30 35 C 6.1239 -4.2356 -1.8599 0 +M V30 36 C 7.2600 -3.4991 -1.7305 0 +M V30 37 C 7.2077 -2.1864 -1.3064 0 +M V30 38 C 5.9738 -1.6598 -1.0234 0 +M V30 39 H -8.2445 -4.2651 -0.2237 0 +M V30 40 H -6.6482 -4.8384 -2.0334 0 +M V30 41 H -4.3643 -3.7748 -2.1037 0 +M V30 42 H -5.4085 -1.6313 1.4445 0 +M V30 43 H -7.5946 -2.6457 1.5168 0 +M V30 44 H 0.0563 -2.3943 -0.7169 0 +M V30 45 H -0.0022 2.3859 0.6503 0 +M V30 46 H -4.7657 1.9432 3.0889 0 +M V30 47 H -7.0300 2.9667 3.5112 0 +M V30 48 H -8.3223 3.9174 1.6202 0 +M V30 49 H -7.3506 3.8328 -0.6235 0 +M V30 50 H -5.1480 2.8419 -1.0618 0 +M V30 51 H 4.4851 3.1280 2.4653 0 +M V30 52 H 6.6172 4.2295 2.7064 0 +M V30 53 H 8.1920 4.3962 0.8058 0 +M V30 54 H 7.5461 3.3941 -1.4149 0 +M V30 55 H 5.3692 2.2896 -1.5960 0 +M V30 56 H 3.9697 -4.2243 -1.6558 0 +M V30 57 H 6.1212 -5.2712 -2.1904 0 +M V30 58 H 8.2243 -3.9048 -1.9498 0 +M V30 59 H 8.1231 -1.6068 -1.2065 0 +M V30 60 H 5.9414 -0.6295 -0.6913 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 2 1 2 diff --git a/examples/splitter_output_directory/reconstructed.mol b/examples/splitter_output_directory/reconstructed.mol index c44792a..585ba06 100644 --- a/examples/splitter_output_directory/reconstructed.mol +++ b/examples/splitter_output_directory/reconstructed.mol @@ -5,30 +5,30 @@ M V30 BEGIN CTAB M V30 COUNTS 24 25 0 0 0 M V30 BEGIN ATOM -M V30 1 C -4.7748 0.5299 0.0389 0 -M V30 2 C -4.9545 -0.8291 -0.0608 0 -M V30 3 C -3.8190 -1.6370 -0.1201 0 -M V30 4 N -2.5740 -1.1358 -0.0833 0 -M V30 5 C -2.3712 0.1860 0.0136 0 -M V30 6 C -3.4865 1.0064 0.0738 0 -M V30 7 C -1.0276 0.7619 0.0559 0 +M V30 1 C -4.8090 0.4739 -0.1850 0 +M V30 2 C -4.9716 -0.8033 0.3137 0 +M V30 3 C -3.8363 -1.5366 0.6001 0 +M V30 4 N -2.5873 -1.0540 0.4116 0 +M V30 5 C -2.4139 0.1801 -0.0703 0 +M V30 6 C -3.5282 0.9547 -0.3728 0 +M V30 7 C -1.0582 0.7052 -0.2754 0 M V30 8 N 0.0000 0.0000 0.0000 0 -M V30 9 H -5.6365 1.1711 0.0860 0 -M V30 10 H -5.9613 -1.2553 -0.0920 0 -M V30 11 H -4.0028 -2.7157 -0.1992 0 -M V30 12 H -3.2943 2.0832 0.1528 0 -M V30 13 H -0.9318 1.8344 0.1345 0 -M V30 14 C 7.2375 -0.0000 0.0000 0 -M V30 15 C 7.9608 0.7668 -0.8900 0 -M V30 16 C 9.3456 0.7783 -0.9034 0 -M V30 17 C 10.0556 -0.0000 0.0000 0 -M V30 18 C 9.3371 -0.7835 0.9094 0 -M V30 19 C 7.9501 -0.7711 0.8950 0 -M V30 20 Br 11.9535 -0.0043 0.0050 0 -M V30 21 H 7.4245 1.3720 -1.5925 0 -M V30 22 H 9.9197 1.3858 -1.6085 0 -M V30 23 H 9.9145 -1.3812 1.6032 0 -M V30 24 H 7.4599 -1.4092 1.6357 0 +M V30 9 H -5.6678 1.1166 -0.4361 0 +M V30 10 H -5.9773 -1.1800 0.4608 0 +M V30 11 H -4.0063 -2.5465 0.9945 0 +M V30 12 H -3.4172 1.9662 -0.7678 0 +M V30 13 H -0.9568 1.7238 -0.6732 0 +M V30 14 C 7.3364 0.0000 0.0000 0 +M V30 15 C 7.9978 1.1150 -0.4766 0 +M V30 16 C 9.3909 1.1066 -0.4731 0 +M V30 17 C 10.1023 0.0000 0.0000 0 +M V30 18 C 9.3944 -1.1098 0.4744 0 +M V30 19 C 7.9997 -1.1126 0.4756 0 +M V30 20 Br 12.0018 0.0408 -0.0174 0 +M V30 21 H 7.4721 1.9739 -0.8438 0 +M V30 22 H 9.9509 1.9753 -0.8444 0 +M V30 23 H 9.9404 -1.9875 0.8496 0 +M V30 24 H 7.4201 -1.9473 0.8324 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 1 1 2 diff --git a/examples/splitter_output_directory/splits2_0.xyz b/examples/splitter_output_directory/splits2_0.xyz index 24aca33..f4d0c1c 100644 --- a/examples/splitter_output_directory/splits2_0.xyz +++ b/examples/splitter_output_directory/splits2_0.xyz @@ -1,14 +1,14 @@ 12 -C 5.317606 -4.889049 3.689437 -C 4.050656 -4.494193 4.082356 -C 3.280315 -3.751623 3.272784 -C 3.765871 -3.377589 2.002755 -C 4.987648 -3.759818 1.599464 -C 5.746616 -4.515622 2.471484 -H 5.863102 -5.465330 4.431344 -H 3.666954 -4.777428 5.074523 -H 2.283888 -3.430895 3.539764 -H 5.382790 -3.474743 0.614929 -H 6.754329 -4.805408 2.151574 -Du 2.877042 -2.442922 1.268696 +C -7.259309 -3.819080 -0.271175 +C -6.345438 -4.124758 -1.277030 +C -5.094859 -3.562860 -1.342942 +C -4.756391 -2.659906 -0.356845 +C -5.652213 -2.335877 0.661752 +C -6.906605 -2.910741 0.712819 +H -8.244521 -4.265115 -0.223744 +H -6.648156 -4.838391 -2.033366 +H -4.364338 -3.774837 -2.103706 +H -5.408498 -1.631334 1.444485 +H -7.594562 -2.645655 1.516773 +Du -3.481715 -1.996625 -0.302964 diff --git a/examples/splitter_output_directory/splits2_1.xyz b/examples/splitter_output_directory/splits2_1.xyz index 1e34c89..2fd4f0c 100644 --- a/examples/splitter_output_directory/splits2_1.xyz +++ b/examples/splitter_output_directory/splits2_1.xyz @@ -1,6 +1,6 @@ 4 -C 2.877042 -2.442922 1.268696 -C 2.109611 -1.662794 0.650131 -Du 3.765871 -3.377589 2.002755 -Du 1.284216 -0.799807 -0.041398 +C -3.481715 -1.996625 -0.302964 +C -2.418868 -1.425882 -0.243657 +Du -4.756391 -2.659906 -0.356845 +Du -1.141799 -0.732377 -0.147710 diff --git a/examples/splitter_output_directory/splits2_2.xyz b/examples/splitter_output_directory/splits2_2.xyz index 94e2ec0..8436f68 100644 --- a/examples/splitter_output_directory/splits2_2.xyz +++ b/examples/splitter_output_directory/splits2_2.xyz @@ -1,14 +1,14 @@ 12 -C 1.284216 -0.799807 -0.041398 -C -0.095370 -1.120724 0.247612 -C -1.078796 -0.169268 -0.034072 -C -0.814583 1.068668 -0.554098 -C 0.516262 1.363249 -0.844494 -C 1.557921 0.373021 -0.569725 -H -0.355063 -2.064373 0.668118 -H 0.750841 2.312562 -1.256451 -Du 2.109611 -1.662794 0.650131 -Du 2.748231 0.672752 -1.060931 -Du -1.871267 1.963658 -0.548616 -Du -2.416773 -0.716829 0.133273 +C -1.141799 -0.732377 -0.147710 +C 0.051153 -1.372547 -0.425229 +C 1.205015 -0.606868 -0.298920 +C 1.178594 0.718423 0.080937 +C -0.018128 1.360040 0.359171 +C -1.164333 0.611457 0.237124 +H 0.056261 -2.394270 -0.716864 +H -0.002168 2.385928 0.650312 +Du -2.418868 -1.425882 -0.243657 +Du -2.445701 1.239143 0.518125 +Du 2.442877 1.410824 0.177548 +Du 2.474885 -1.240233 -0.580646 diff --git a/examples/splitter_output_directory/splits2_3.xyz b/examples/splitter_output_directory/splits2_3.xyz index ec94216..d1e518f 100644 --- a/examples/splitter_output_directory/splits2_3.xyz +++ b/examples/splitter_output_directory/splits2_3.xyz @@ -1,6 +1,6 @@ 4 -C 2.748231 0.672752 -1.060931 -C 3.982079 0.977168 -1.589580 -Du 1.557921 0.373021 -0.569725 -Du 5.218354 1.301794 -2.109892 +C -2.445701 1.239143 0.518125 +C -3.523143 1.744387 0.746894 +Du -1.164333 0.611457 0.237124 +Du -4.814476 2.324376 1.009290 diff --git a/examples/splitter_output_directory/splits2_4.xyz b/examples/splitter_output_directory/splits2_4.xyz index 8ffd4a3..9846cc2 100644 --- a/examples/splitter_output_directory/splits2_4.xyz +++ b/examples/splitter_output_directory/splits2_4.xyz @@ -1,14 +1,14 @@ 12 -C 5.218354 1.301794 -2.109892 -C 5.383277 2.498010 -2.773169 -C 6.573469 2.861264 -3.317564 -C 7.643138 2.029164 -3.202989 -C 7.528721 0.817756 -2.551149 -C 6.301777 0.479678 -2.009197 -H 4.507804 3.150954 -2.840747 -H 6.581938 3.834959 -3.823110 -H 8.584967 2.336920 -3.643990 -H 8.382376 0.192382 -2.493064 -H 6.231303 -0.486128 -1.483141 -Du 3.982079 0.977168 -1.589580 +C -4.814476 2.324376 1.009290 +C -5.349939 2.366119 2.274131 +C -6.595942 2.929825 2.503601 +C -7.333740 3.467783 1.451941 +C -6.767088 3.409448 0.195789 +C -5.529561 2.853295 -0.053747 +H -4.765714 1.943227 3.088931 +H -7.030012 2.966703 3.511243 +H -8.322254 3.917362 1.620217 +H -7.350609 3.832774 -0.623486 +H -5.147978 2.841886 -1.061781 +Du -3.523143 1.744387 0.746894 diff --git a/examples/splitter_output_directory/splits2_5.xyz b/examples/splitter_output_directory/splits2_5.xyz index 904edf8..968da23 100644 --- a/examples/splitter_output_directory/splits2_5.xyz +++ b/examples/splitter_output_directory/splits2_5.xyz @@ -1,6 +1,6 @@ 4 -C -1.871267 1.963658 -0.548616 -C -2.815817 2.778991 -0.558990 -Du -0.814583 1.068668 -0.554098 -Du -3.931280 3.716638 -0.572830 +C 2.442877 1.410824 0.177548 +C 3.521890 1.981266 0.270911 +Du 1.178594 0.718423 0.080937 +Du 4.795528 2.633865 0.397480 diff --git a/examples/splitter_output_directory/splits2_6.xyz b/examples/splitter_output_directory/splits2_6.xyz index cd0975c..7ea4e77 100644 --- a/examples/splitter_output_directory/splits2_6.xyz +++ b/examples/splitter_output_directory/splits2_6.xyz @@ -1,14 +1,14 @@ 12 -C -3.931280 3.716638 -0.572830 -C -4.259179 4.524398 -1.576979 -C -5.337405 5.432699 -1.557432 -C -6.050247 5.411306 -0.341532 -C -5.761515 4.627169 0.679210 -C -4.701138 3.751084 0.616145 -H -3.657813 4.513243 -2.512328 -H -5.574269 6.045320 -2.338735 -H -6.897479 6.115768 -0.347414 -H -6.349325 4.631879 1.612180 -H -4.409603 3.090879 1.417100 -Du -2.815817 2.778991 -0.558990 +C 4.795528 2.633865 0.397480 +C 5.144216 3.179846 1.612364 +C 6.377336 3.809304 1.727291 +C 7.258131 3.904935 0.672018 +C 6.900695 3.356888 -0.535967 +C 5.675635 2.728839 -0.658842 +H 4.485144 3.127976 2.465270 +H 6.617208 4.229523 2.706415 +H 8.192040 4.396213 0.805828 +H 7.546087 3.394064 -1.414881 +H 5.369164 2.289634 -1.595961 +Du 3.521890 1.981266 0.270911 diff --git a/examples/splitter_output_directory/splits2_7.xyz b/examples/splitter_output_directory/splits2_7.xyz index 6e0679b..ae3a4a9 100644 --- a/examples/splitter_output_directory/splits2_7.xyz +++ b/examples/splitter_output_directory/splits2_7.xyz @@ -1,6 +1,6 @@ 4 -C -2.416773 -0.716829 0.133273 -C -3.541617 -1.195352 0.287236 -Du -1.078796 -0.169268 -0.034072 -Du -4.826643 -1.748460 0.466831 +C 2.474885 -1.240233 -0.580646 +C 3.539066 -1.751968 -0.826178 +Du 1.205015 -0.606868 -0.298920 +Du 4.797288 -2.368091 -1.140040 diff --git a/examples/splitter_output_directory/splits2_8.xyz b/examples/splitter_output_directory/splits2_8.xyz index f31d683..0c9d267 100644 --- a/examples/splitter_output_directory/splits2_8.xyz +++ b/examples/splitter_output_directory/splits2_8.xyz @@ -1,14 +1,14 @@ 12 -C -4.826643 -1.748460 0.466831 -C -5.667653 -1.831175 -0.623134 -C -6.958379 -2.295777 -0.581014 -C -7.448034 -2.709251 0.606653 -C -6.669091 -2.663651 1.720674 -C -5.387585 -2.195739 1.664493 -H -5.249620 -1.490281 -1.604981 -H -7.533088 -2.311536 -1.520831 -H -8.474425 -3.093106 0.673317 -H -7.002965 -2.988375 2.713968 -H -4.727084 -2.146083 2.527528 -Du -3.541617 -1.195352 0.287236 +C 4.797288 -2.368091 -1.140040 +C 4.904775 -3.680550 -1.569187 +C 6.123868 -4.235572 -1.859907 +C 7.259961 -3.499096 -1.730451 +C 7.207730 -2.186431 -1.306381 +C 5.973846 -1.659795 -1.023351 +H 3.969742 -4.224337 -1.655816 +H 6.121208 -5.271167 -2.190388 +H 8.224254 -3.904769 -1.949756 +H 8.123066 -1.606753 -1.206455 +H 5.941398 -0.629464 -0.691285 +Du 3.539066 -1.751968 -0.826178 diff --git a/examples/splitter_output_directory/splits_0.xyz b/examples/splitter_output_directory/splits_0.xyz index fafa746..2d234b9 100644 --- a/examples/splitter_output_directory/splits_0.xyz +++ b/examples/splitter_output_directory/splits_0.xyz @@ -1,16 +1,16 @@ 14 -C 4.082411 -1.309904 0.462907 -C 4.665797 -0.451104 -0.437862 -C 3.841118 0.448053 -1.113697 -N 2.514351 0.500187 -0.914768 -C 1.920434 -0.326253 -0.041892 -C 2.722356 -1.227568 0.640178 -C 0.477961 -0.293566 0.196554 -N -0.259008 0.540954 -0.435909 -H 4.699656 -2.011158 0.994833 -H 5.745129 -0.479269 -0.612839 -H 4.343023 1.116780 -1.823979 -H 2.213020 -1.892405 1.348251 -H 0.060895 -0.985650 0.912540 -Du -1.665373 0.566250 -0.197360 +C 4.118932 -1.029375 0.584028 +C 4.677819 -0.127087 -0.299045 +C 3.826764 0.702385 -1.003529 +N 2.482705 0.662358 -0.860616 +C 1.927058 -0.205303 -0.010000 +C 2.745113 -1.060000 0.720540 +C 0.467783 -0.249681 0.146022 +N -0.318626 0.539497 -0.526068 +H 4.734882 -1.721889 1.179624 +H 5.756303 -0.103692 -0.405604 +H 4.308182 1.405362 -1.695154 +H 2.319392 -1.779048 1.422727 +H 0.049069 -0.976429 0.854827 +Du -1.738100 0.432953 -0.315364 diff --git a/examples/splitter_output_directory/splits_1.xyz b/examples/splitter_output_directory/splits_1.xyz index 1df47d4..f9d3e60 100644 --- a/examples/splitter_output_directory/splits_1.xyz +++ b/examples/splitter_output_directory/splits_1.xyz @@ -1,14 +1,14 @@ 12 -C -1.665373 0.566250 -0.197360 -C -2.244261 1.447139 0.692729 -C -3.608964 1.474583 0.926860 -C -4.446788 0.595270 0.255339 -C -3.875694 -0.304621 -0.650837 -C -2.504532 -0.304811 -0.861165 -Br -6.320696 0.609886 0.555842 -H -1.608277 2.131004 1.217378 -H -4.068512 2.172490 1.632189 -H -4.550839 -0.979550 -1.161353 -H -2.133207 -1.036735 -1.583940 -Du -0.259008 0.540954 -0.435909 +C -1.738100 0.432953 -0.315364 +C -2.249311 1.150034 0.748679 +C -3.618917 1.079286 0.993910 +C -4.455196 0.303596 0.185522 +C -3.897519 -0.407823 -0.882577 +C -2.527833 -0.344481 -1.137517 +Br -6.316050 0.242113 0.564034 +H -1.626275 1.750876 1.380959 +H -4.061082 1.635892 1.831011 +H -4.542952 -1.022208 -1.527040 +H -2.062143 -0.877337 -1.949370 +Du -0.318626 0.539497 -0.526068 diff --git a/examples/splitter_output_directory/transform2_0.mol b/examples/splitter_output_directory/transform2_0.mol index 8b8ddc8..0e75f77 100644 --- a/examples/splitter_output_directory/transform2_0.mol +++ b/examples/splitter_output_directory/transform2_0.mol @@ -5,18 +5,18 @@ M V30 BEGIN CTAB M V30 COUNTS 12 12 0 0 0 M V30 BEGIN ATOM -M V30 1 C 5.3176 -4.8890 3.6894 0 -M V30 2 C 4.0507 -4.4942 4.0824 0 -M V30 3 C 3.2803 -3.7516 3.2728 0 -M V30 4 C 3.7659 -3.3776 2.0028 0 -M V30 5 C 4.9876 -3.7598 1.5995 0 -M V30 6 C 5.7466 -4.5156 2.4715 0 -M V30 7 H 5.8631 -5.4653 4.4313 0 -M V30 8 H 3.6670 -4.7774 5.0745 0 -M V30 9 H 2.2839 -3.4309 3.5398 0 -M V30 10 H 5.3828 -3.4747 0.6149 0 -M V30 11 H 6.7543 -4.8054 2.1516 0 -M V30 12 Br 2.8770 -2.4429 1.2687 0 +M V30 1 C -7.2593 -3.8191 -0.2712 0 +M V30 2 C -6.3454 -4.1248 -1.2770 0 +M V30 3 C -5.0949 -3.5629 -1.3429 0 +M V30 4 C -4.7564 -2.6599 -0.3568 0 +M V30 5 C -5.6522 -2.3359 0.6618 0 +M V30 6 C -6.9066 -2.9107 0.7128 0 +M V30 7 H -8.2445 -4.2651 -0.2237 0 +M V30 8 H -6.6482 -4.8384 -2.0334 0 +M V30 9 H -4.3643 -3.7748 -2.1037 0 +M V30 10 H -5.4085 -1.6313 1.4445 0 +M V30 11 H -7.5946 -2.6457 1.5168 0 +M V30 12 Br -3.4817 -1.9966 -0.3030 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 1 1 2 diff --git a/examples/splitter_output_directory/transform2_1.mol b/examples/splitter_output_directory/transform2_1.mol index cf49910..ed0ed89 100644 --- a/examples/splitter_output_directory/transform2_1.mol +++ b/examples/splitter_output_directory/transform2_1.mol @@ -5,10 +5,10 @@ M V30 BEGIN CTAB M V30 COUNTS 4 3 0 0 0 M V30 BEGIN ATOM -M V30 1 C 2.8770 -2.4429 1.2687 0 -M V30 2 C 2.1096 -1.6628 0.6501 0 -M V30 3 Br 3.7659 -3.3776 2.0028 0 -M V30 4 Br 1.2842 -0.7998 -0.0414 0 +M V30 1 C -3.4817 -1.9966 -0.3030 0 +M V30 2 C -2.4189 -1.4259 -0.2437 0 +M V30 3 Br -4.7564 -2.6599 -0.3568 0 +M V30 4 Br -1.1418 -0.7324 -0.1477 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 3 1 2 diff --git a/examples/splitter_output_directory/transform2_2.mol b/examples/splitter_output_directory/transform2_2.mol index 7be7fd1..2dbe346 100644 --- a/examples/splitter_output_directory/transform2_2.mol +++ b/examples/splitter_output_directory/transform2_2.mol @@ -5,18 +5,18 @@ M V30 BEGIN CTAB M V30 COUNTS 12 12 0 0 0 M V30 BEGIN ATOM -M V30 1 C 1.2842 -0.7998 -0.0414 0 -M V30 2 C -0.0954 -1.1207 0.2476 0 -M V30 3 C -1.0788 -0.1693 -0.0341 0 -M V30 4 C -0.8146 1.0687 -0.5541 0 -M V30 5 C 0.5163 1.3632 -0.8445 0 -M V30 6 C 1.5579 0.3730 -0.5697 0 -M V30 7 H -0.3551 -2.0644 0.6681 0 -M V30 8 H 0.7508 2.3126 -1.2565 0 -M V30 9 Br 2.1096 -1.6628 0.6501 0 -M V30 10 Br 2.7482 0.6728 -1.0609 0 -M V30 11 Br -1.8713 1.9637 -0.5486 0 -M V30 12 Br -2.4168 -0.7168 0.1333 0 +M V30 1 C -1.1418 -0.7324 -0.1477 0 +M V30 2 C 0.0512 -1.3725 -0.4252 0 +M V30 3 C 1.2050 -0.6069 -0.2989 0 +M V30 4 C 1.1786 0.7184 0.0809 0 +M V30 5 C -0.0181 1.3600 0.3592 0 +M V30 6 C -1.1643 0.6115 0.2371 0 +M V30 7 H 0.0563 -2.3943 -0.7169 0 +M V30 8 H -0.0022 2.3859 0.6503 0 +M V30 9 Br -2.4189 -1.4259 -0.2437 0 +M V30 10 Br -2.4457 1.2391 0.5181 0 +M V30 11 Br 2.4429 1.4108 0.1775 0 +M V30 12 Br 2.4749 -1.2402 -0.5806 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 1 1 2 diff --git a/examples/splitter_output_directory/transform2_3.mol b/examples/splitter_output_directory/transform2_3.mol index 240b6f4..0359ec2 100644 --- a/examples/splitter_output_directory/transform2_3.mol +++ b/examples/splitter_output_directory/transform2_3.mol @@ -5,10 +5,10 @@ M V30 BEGIN CTAB M V30 COUNTS 4 3 0 0 0 M V30 BEGIN ATOM -M V30 1 C 2.7482 0.6728 -1.0609 0 -M V30 2 C 3.9821 0.9772 -1.5896 0 -M V30 3 Br 1.5579 0.3730 -0.5697 0 -M V30 4 Br 5.2184 1.3018 -2.1099 0 +M V30 1 C -2.4457 1.2391 0.5181 0 +M V30 2 C -3.5231 1.7444 0.7469 0 +M V30 3 Br -1.1643 0.6115 0.2371 0 +M V30 4 Br -4.8145 2.3244 1.0093 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 3 1 2 diff --git a/examples/splitter_output_directory/transform2_4.mol b/examples/splitter_output_directory/transform2_4.mol index eed5dbc..bfc67a0 100644 --- a/examples/splitter_output_directory/transform2_4.mol +++ b/examples/splitter_output_directory/transform2_4.mol @@ -5,18 +5,18 @@ M V30 BEGIN CTAB M V30 COUNTS 12 12 0 0 0 M V30 BEGIN ATOM -M V30 1 C 5.2184 1.3018 -2.1099 0 -M V30 2 C 5.3833 2.4980 -2.7732 0 -M V30 3 C 6.5735 2.8613 -3.3176 0 -M V30 4 C 7.6431 2.0292 -3.2030 0 -M V30 5 C 7.5287 0.8178 -2.5511 0 -M V30 6 C 6.3018 0.4797 -2.0092 0 -M V30 7 H 4.5078 3.1510 -2.8407 0 -M V30 8 H 6.5819 3.8350 -3.8231 0 -M V30 9 H 8.5850 2.3369 -3.6440 0 -M V30 10 H 8.3824 0.1924 -2.4931 0 -M V30 11 H 6.2313 -0.4861 -1.4831 0 -M V30 12 Br 3.9821 0.9772 -1.5896 0 +M V30 1 C -4.8145 2.3244 1.0093 0 +M V30 2 C -5.3499 2.3661 2.2741 0 +M V30 3 C -6.5959 2.9298 2.5036 0 +M V30 4 C -7.3337 3.4678 1.4519 0 +M V30 5 C -6.7671 3.4094 0.1958 0 +M V30 6 C -5.5296 2.8533 -0.0537 0 +M V30 7 H -4.7657 1.9432 3.0889 0 +M V30 8 H -7.0300 2.9667 3.5112 0 +M V30 9 H -8.3223 3.9174 1.6202 0 +M V30 10 H -7.3506 3.8328 -0.6235 0 +M V30 11 H -5.1480 2.8419 -1.0618 0 +M V30 12 Br -3.5231 1.7444 0.7469 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 1 1 2 diff --git a/examples/splitter_output_directory/transform2_5.mol b/examples/splitter_output_directory/transform2_5.mol index 39fa66e..76028dc 100644 --- a/examples/splitter_output_directory/transform2_5.mol +++ b/examples/splitter_output_directory/transform2_5.mol @@ -5,10 +5,10 @@ M V30 BEGIN CTAB M V30 COUNTS 4 3 0 0 0 M V30 BEGIN ATOM -M V30 1 C -1.8713 1.9637 -0.5486 0 -M V30 2 C -2.8158 2.7790 -0.5590 0 -M V30 3 Br -0.8146 1.0687 -0.5541 0 -M V30 4 Br -3.9313 3.7166 -0.5728 0 +M V30 1 C 2.4429 1.4108 0.1775 0 +M V30 2 C 3.5219 1.9813 0.2709 0 +M V30 3 Br 1.1786 0.7184 0.0809 0 +M V30 4 Br 4.7955 2.6339 0.3975 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 3 1 2 diff --git a/examples/splitter_output_directory/transform2_6.mol b/examples/splitter_output_directory/transform2_6.mol index 1fc8780..642ddc0 100644 --- a/examples/splitter_output_directory/transform2_6.mol +++ b/examples/splitter_output_directory/transform2_6.mol @@ -5,18 +5,18 @@ M V30 BEGIN CTAB M V30 COUNTS 12 12 0 0 0 M V30 BEGIN ATOM -M V30 1 C -3.9313 3.7166 -0.5728 0 -M V30 2 C -4.2592 4.5244 -1.5770 0 -M V30 3 C -5.3374 5.4327 -1.5574 0 -M V30 4 C -6.0502 5.4113 -0.3415 0 -M V30 5 C -5.7615 4.6272 0.6792 0 -M V30 6 C -4.7011 3.7511 0.6161 0 -M V30 7 H -3.6578 4.5132 -2.5123 0 -M V30 8 H -5.5743 6.0453 -2.3387 0 -M V30 9 H -6.8975 6.1158 -0.3474 0 -M V30 10 H -6.3493 4.6319 1.6122 0 -M V30 11 H -4.4096 3.0909 1.4171 0 -M V30 12 Br -2.8158 2.7790 -0.5590 0 +M V30 1 C 4.7955 2.6339 0.3975 0 +M V30 2 C 5.1442 3.1798 1.6124 0 +M V30 3 C 6.3773 3.8093 1.7273 0 +M V30 4 C 7.2581 3.9049 0.6720 0 +M V30 5 C 6.9007 3.3569 -0.5360 0 +M V30 6 C 5.6756 2.7288 -0.6588 0 +M V30 7 H 4.4851 3.1280 2.4653 0 +M V30 8 H 6.6172 4.2295 2.7064 0 +M V30 9 H 8.1920 4.3962 0.8058 0 +M V30 10 H 7.5461 3.3941 -1.4149 0 +M V30 11 H 5.3692 2.2896 -1.5960 0 +M V30 12 Br 3.5219 1.9813 0.2709 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 1 1 2 diff --git a/examples/splitter_output_directory/transform2_7.mol b/examples/splitter_output_directory/transform2_7.mol index 29f89a7..cea1dee 100644 --- a/examples/splitter_output_directory/transform2_7.mol +++ b/examples/splitter_output_directory/transform2_7.mol @@ -5,10 +5,10 @@ M V30 BEGIN CTAB M V30 COUNTS 4 3 0 0 0 M V30 BEGIN ATOM -M V30 1 C -2.4168 -0.7168 0.1333 0 -M V30 2 C -3.5416 -1.1954 0.2872 0 -M V30 3 Br -1.0788 -0.1693 -0.0341 0 -M V30 4 Br -4.8266 -1.7485 0.4668 0 +M V30 1 C 2.4749 -1.2402 -0.5806 0 +M V30 2 C 3.5391 -1.7520 -0.8262 0 +M V30 3 Br 1.2050 -0.6069 -0.2989 0 +M V30 4 Br 4.7973 -2.3681 -1.1400 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 3 1 2 diff --git a/examples/splitter_output_directory/transform2_8.mol b/examples/splitter_output_directory/transform2_8.mol index 640e055..f72b4b8 100644 --- a/examples/splitter_output_directory/transform2_8.mol +++ b/examples/splitter_output_directory/transform2_8.mol @@ -5,18 +5,18 @@ M V30 BEGIN CTAB M V30 COUNTS 12 12 0 0 0 M V30 BEGIN ATOM -M V30 1 C -4.8266 -1.7485 0.4668 0 -M V30 2 C -5.6677 -1.8312 -0.6231 0 -M V30 3 C -6.9584 -2.2958 -0.5810 0 -M V30 4 C -7.4480 -2.7093 0.6067 0 -M V30 5 C -6.6691 -2.6637 1.7207 0 -M V30 6 C -5.3876 -2.1957 1.6645 0 -M V30 7 H -5.2496 -1.4903 -1.6050 0 -M V30 8 H -7.5331 -2.3115 -1.5208 0 -M V30 9 H -8.4744 -3.0931 0.6733 0 -M V30 10 H -7.0030 -2.9884 2.7140 0 -M V30 11 H -4.7271 -2.1461 2.5275 0 -M V30 12 Br -3.5416 -1.1954 0.2872 0 +M V30 1 C 4.7973 -2.3681 -1.1400 0 +M V30 2 C 4.9048 -3.6805 -1.5692 0 +M V30 3 C 6.1239 -4.2356 -1.8599 0 +M V30 4 C 7.2600 -3.4991 -1.7305 0 +M V30 5 C 7.2077 -2.1864 -1.3064 0 +M V30 6 C 5.9738 -1.6598 -1.0234 0 +M V30 7 H 3.9697 -4.2243 -1.6558 0 +M V30 8 H 6.1212 -5.2712 -2.1904 0 +M V30 9 H 8.2243 -3.9048 -1.9498 0 +M V30 10 H 8.1231 -1.6068 -1.2065 0 +M V30 11 H 5.9414 -0.6295 -0.6913 0 +M V30 12 Br 3.5391 -1.7520 -0.8262 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 1 1 2 diff --git a/examples/splitter_output_directory/transform_0.mol b/examples/splitter_output_directory/transform_0.mol index 9569530..59168a8 100644 --- a/examples/splitter_output_directory/transform_0.mol +++ b/examples/splitter_output_directory/transform_0.mol @@ -5,20 +5,20 @@ M V30 BEGIN CTAB M V30 COUNTS 14 14 0 0 0 M V30 BEGIN ATOM -M V30 1 C 4.0824 -1.3099 0.4629 0 -M V30 2 C 4.6658 -0.4511 -0.4379 0 -M V30 3 C 3.8411 0.4481 -1.1137 0 -M V30 4 N 2.5144 0.5002 -0.9148 0 -M V30 5 C 1.9204 -0.3263 -0.0419 0 -M V30 6 C 2.7224 -1.2276 0.6402 0 -M V30 7 C 0.4780 -0.2936 0.1966 0 -M V30 8 N -0.2590 0.5410 -0.4359 0 -M V30 9 H 4.6997 -2.0112 0.9948 0 -M V30 10 H 5.7451 -0.4793 -0.6128 0 -M V30 11 H 4.3430 1.1168 -1.8240 0 -M V30 12 H 2.2130 -1.8924 1.3483 0 -M V30 13 H 0.0609 -0.9857 0.9125 0 -M V30 14 Br -1.6654 0.5662 -0.1974 0 +M V30 1 C 4.1189 -1.0294 0.5840 0 +M V30 2 C 4.6778 -0.1271 -0.2990 0 +M V30 3 C 3.8268 0.7024 -1.0035 0 +M V30 4 N 2.4827 0.6624 -0.8606 0 +M V30 5 C 1.9271 -0.2053 -0.0100 0 +M V30 6 C 2.7451 -1.0600 0.7205 0 +M V30 7 C 0.4678 -0.2497 0.1460 0 +M V30 8 N -0.3186 0.5395 -0.5261 0 +M V30 9 H 4.7349 -1.7219 1.1796 0 +M V30 10 H 5.7563 -0.1037 -0.4056 0 +M V30 11 H 4.3082 1.4054 -1.6952 0 +M V30 12 H 2.3194 -1.7790 1.4227 0 +M V30 13 H 0.0491 -0.9764 0.8548 0 +M V30 14 Br -1.7381 0.4330 -0.3154 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 1 1 2 diff --git a/examples/splitter_output_directory/transform_1.mol b/examples/splitter_output_directory/transform_1.mol index 2f192dc..0a1ee89 100644 --- a/examples/splitter_output_directory/transform_1.mol +++ b/examples/splitter_output_directory/transform_1.mol @@ -5,18 +5,18 @@ M V30 BEGIN CTAB M V30 COUNTS 12 12 0 0 0 M V30 BEGIN ATOM -M V30 1 C -1.6654 0.5662 -0.1974 0 -M V30 2 C -2.2443 1.4471 0.6927 0 -M V30 3 C -3.6090 1.4746 0.9269 0 -M V30 4 C -4.4468 0.5953 0.2553 0 -M V30 5 C -3.8757 -0.3046 -0.6508 0 -M V30 6 C -2.5045 -0.3048 -0.8612 0 -M V30 7 Br -6.3207 0.6099 0.5558 0 -M V30 8 H -1.6083 2.1310 1.2174 0 -M V30 9 H -4.0685 2.1725 1.6322 0 -M V30 10 H -4.5508 -0.9796 -1.1614 0 -M V30 11 H -2.1332 -1.0367 -1.5839 0 -M V30 12 Br -0.2590 0.5410 -0.4359 0 +M V30 1 C -1.7381 0.4330 -0.3154 0 +M V30 2 C -2.2493 1.1500 0.7487 0 +M V30 3 C -3.6189 1.0793 0.9939 0 +M V30 4 C -4.4552 0.3036 0.1855 0 +M V30 5 C -3.8975 -0.4078 -0.8826 0 +M V30 6 C -2.5278 -0.3445 -1.1375 0 +M V30 7 Br -6.3160 0.2421 0.5640 0 +M V30 8 H -1.6263 1.7509 1.3810 0 +M V30 9 H -4.0611 1.6359 1.8310 0 +M V30 10 H -4.5430 -1.0222 -1.5270 0 +M V30 11 H -2.0621 -0.8773 -1.9494 0 +M V30 12 Br -0.3186 0.5395 -0.5261 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 1 1 2 From 36fc20f5ebd0491619835cff11c079658670ac7d Mon Sep 17 00:00:00 2001 From: Andrew Tarzia Date: Sat, 6 Dec 2025 19:59:47 +0000 Subject: [PATCH 12/33] Update install. --- justfile | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/justfile b/justfile index 6579277..4c214d4 100644 --- a/justfile +++ b/justfile @@ -11,10 +11,8 @@ docs: # Install development environment. dev: pip install -e '.[dev]' - mamba install -y -c conda-forge pytorch==2.3.1 torchdata==0.7.1 openff-toolkit openmm openmmtools rdkit!=2024.3.5 dgl espaloma_charge + mamba install -y -c conda-forge openff-toolkit mamba install -y xtb - mamba install -y openbabel - mamba install -y mdanalysis # Run code checks. From 7fc2ee859db25bbd75399f14246d1bf14c62d195 Mon Sep 17 00:00:00 2001 From: Andrew Tarzia Date: Sat, 6 Dec 2025 20:00:13 +0000 Subject: [PATCH 13/33] Update dependancies. --- pyproject.toml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index c0e38ec..e18825e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,12 +9,16 @@ maintainers = [ { name = "Lukas Turcani", email = "lukasturcani93@gmail.com" }, ] dependencies = [ - "numpy<2", - # Avoid one version with bad changes to structure. - "rdkit != 2024.3.5", + "numpy", "stk", "networkx", "rmsd", + "mdanalysis", + "openmm[cuda12]", + # Added to handle uv issue with metadata. + # From https://github.com/astral-sh/uv/issues/15876 + "torch>=2.8.0", + "OpenMM-CUDA-12", ] requires-python = ">=3.11" dynamic = ["version"] @@ -33,9 +37,8 @@ dev = [ "pytest-cov", "sphinx", "sphinx-copybutton", - "sphinx-rtd-theme", + "sphinx-rtd-theme>0.5.1", "twine", - "build", ] [project.urls] From 065a9af9bab55ff206840989b2cf3da064e57f16 Mon Sep 17 00:00:00 2001 From: Andrew Tarzia Date: Sat, 6 Dec 2025 20:00:26 +0000 Subject: [PATCH 14/33] Make output floats. --- .../calculators/geometry_analysis/geometry.py | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/src/stko/_internal/calculators/geometry_analysis/geometry.py b/src/stko/_internal/calculators/geometry_analysis/geometry.py index 99f8b00..676cfd0 100644 --- a/src/stko/_internal/calculators/geometry_analysis/geometry.py +++ b/src/stko/_internal/calculators/geometry_analysis/geometry.py @@ -60,10 +60,12 @@ def get_metal_distances( distances = {} for a1id, a2id in it.combinations(metal_atom_ids, 2): - distances[(a1id, a2id)] = get_atom_distance( - position_matrix=position_matrix, - atom1_id=a1id, - atom2_id=a2id, + distances[(a1id, a2id)] = float( + get_atom_distance( + position_matrix=position_matrix, + atom1_id=a1id, + atom2_id=a2id, + ) ) return distances @@ -95,7 +97,9 @@ def get_metal_centroid_metal_angle( for a1id, a2id in it.combinations(metal_atom_ids, 2): vector1 = position_matrix[a1id] - centroid vector2 = position_matrix[a2id] - centroid - angles[(a1id, a2id)] = np.degrees(vector_angle(vector1, vector2)) + angles[(a1id, a2id)] = float( + np.degrees(vector_angle(vector1, vector2)) + ) return angles @@ -120,7 +124,7 @@ def get_min_centroid_distance( molecule.get_centroid().reshape(1, 3), ) - return np.min(pair_dists.flatten()) + return float(np.min(pair_dists.flatten())) def get_avg_centroid_distance( self, @@ -142,7 +146,7 @@ def get_avg_centroid_distance( ) flattened = pair_dists.flatten() - return (np.mean(flattened), np.std(flattened)) + return (float(np.mean(flattened)), float(np.std(flattened))) def _get_paths( self, @@ -170,7 +174,7 @@ def get_min_atom_atom_distance(self, molecule: stk.Molecule) -> float: """ pair_dists = pdist(molecule.get_position_matrix()) - return np.min(pair_dists.flatten()) + return float(np.min(pair_dists.flatten())) def get_radius_gyration(self, molecule: stk.Molecule) -> float: """Get the radius of gyration of the molecule. @@ -277,15 +281,15 @@ def calculate_angles( if angle_type_option1 in angles: angles[angle_type_option1].append( - np.degrees(vector_angle(vector1, vector2)) + float(np.degrees(vector_angle(vector1, vector2))) ) elif angle_type_option2 in angles: angles[angle_type_option2].append( - np.degrees(vector_angle(vector1, vector2)) + float(np.degrees(vector_angle(vector1, vector2))) ) else: angles[angle_type_option1].append( - np.degrees(vector_angle(vector1, vector2)) + float(np.degrees(vector_angle(vector1, vector2))) ) return angles From d3bd2f67332b134e60baa4bb46512d1cc3bbe566 Mon Sep 17 00:00:00 2001 From: Andrew Tarzia Date: Sat, 6 Dec 2025 20:00:35 +0000 Subject: [PATCH 15/33] Change charge method. --- docs/source/hg_optimisation.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/hg_optimisation.rst b/docs/source/hg_optimisation.rst index 27cb6f4..88bc5d9 100644 --- a/docs/source/hg_optimisation.rst +++ b/docs/source/hg_optimisation.rst @@ -92,7 +92,7 @@ Again, we define some settings, this time at lower temperature. # Settings. force_field = ForceField("openff_unconstrained-2.1.0.offxml") - partial_charges = "espaloma-am1bcc" + partial_charges = "mmff94" temperature = 300 * openmm.unit.kelvin friction = 10 / openmm.unit.picoseconds time_step = 1 * openmm.unit.femtoseconds From acdad3ae65b37da529b281be345f5544aeb1aa85 Mon Sep 17 00:00:00 2001 From: Andrew Tarzia Date: Sat, 6 Dec 2025 20:00:50 +0000 Subject: [PATCH 16/33] Add openbabel warning. --- src/stko/_internal/calculators/open_babel_calculators.py | 5 +++++ src/stko/_internal/optimizers/open_babel.py | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/src/stko/_internal/calculators/open_babel_calculators.py b/src/stko/_internal/calculators/open_babel_calculators.py index 491397c..7777399 100644 --- a/src/stko/_internal/calculators/open_babel_calculators.py +++ b/src/stko/_internal/calculators/open_babel_calculators.py @@ -22,6 +22,11 @@ class OpenBabelEnergy: """Uses OpenBabel to calculate forcefield energies. + .. warning:: + + This will not work for Python >= 3.13! See + https://github.com/JelfsMaterialsGroup/stko/issues/208 + Parameters: forcefield: Forcefield to use. Options include `uff`, `gaff`, diff --git a/src/stko/_internal/optimizers/open_babel.py b/src/stko/_internal/optimizers/open_babel.py index 40a93a2..900e0ae 100644 --- a/src/stko/_internal/optimizers/open_babel.py +++ b/src/stko/_internal/optimizers/open_babel.py @@ -21,6 +21,11 @@ class OpenBabel(Optimizer): """Use OpenBabel to optimize molecules with forcefields. + .. warning:: + + This will not work for Python >= 3.13! See + https://github.com/JelfsMaterialsGroup/stko/issues/208 + Parameters: forcefield: Forcefield to use. Options include `uff`, `gaff`, From 51a981fa117fb085903cff4ac7cd8699fffaa3f6 Mon Sep 17 00:00:00 2001 From: Andrew Tarzia Date: Sat, 6 Dec 2025 20:01:01 +0000 Subject: [PATCH 17/33] Handle no espaloma. --- src/stko/_internal/calculators/openmm_calculators.py | 6 +++++- src/stko/_internal/optimizers/openmm.py | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/stko/_internal/calculators/openmm_calculators.py b/src/stko/_internal/calculators/openmm_calculators.py index 79ec828..18ea4ec 100644 --- a/src/stko/_internal/calculators/openmm_calculators.py +++ b/src/stko/_internal/calculators/openmm_calculators.py @@ -5,7 +5,11 @@ import rdkit.Chem as rdkit # noqa: N813 import stk -from espaloma_charge.openff_wrapper import EspalomaChargeToolkitWrapper + +try: + from espaloma_charge.openff_wrapper import EspalomaChargeToolkitWrapper +except ImportError: + EspalomaChargeToolkitWrapper = None from openff.interchange import Interchange from openff.toolkit import ForceField, Molecule, RDKitToolkitWrapper, Topology from openmm import app, openmm diff --git a/src/stko/_internal/optimizers/openmm.py b/src/stko/_internal/optimizers/openmm.py index 1d3359c..0f0d136 100644 --- a/src/stko/_internal/optimizers/openmm.py +++ b/src/stko/_internal/optimizers/openmm.py @@ -5,7 +5,11 @@ import rdkit.Chem as rdkit # noqa: N813 import stk -from espaloma_charge.openff_wrapper import EspalomaChargeToolkitWrapper + +try: + from espaloma_charge.openff_wrapper import EspalomaChargeToolkitWrapper +except ImportError: + EspalomaChargeToolkitWrapper = None from openff.interchange import Interchange from openff.toolkit import ForceField, Molecule, RDKitToolkitWrapper, Topology from openmm import app, openmm From 9f1591ff1d2967d237ba06bcb6515863ce9cc03e Mon Sep 17 00:00:00 2001 From: Andrew Tarzia Date: Sat, 6 Dec 2025 20:01:12 +0000 Subject: [PATCH 18/33] Make plane accessible. --- src/stko/_internal/calculators/planarity_calculators.py | 1 + src/stko/_internal/calculators/results/planarity_results.py | 3 +++ 2 files changed, 4 insertions(+) diff --git a/src/stko/_internal/calculators/planarity_calculators.py b/src/stko/_internal/calculators/planarity_calculators.py index 29ac8bf..aab2369 100644 --- a/src/stko/_internal/calculators/planarity_calculators.py +++ b/src/stko/_internal/calculators/planarity_calculators.py @@ -145,6 +145,7 @@ def calculate( deviation_atom_ids=deviation_atom_ids, ) yield { + "atom_plane": atom_plane, "plane_deviation": (self._plane_deviation(deviations)), "plane_deviation_span": (self._plane_deviation_span(deviations)), "planarity_parameter": (self._planarity_parameter(deviations)), diff --git a/src/stko/_internal/calculators/results/planarity_results.py b/src/stko/_internal/calculators/results/planarity_results.py index 6ab420d..bce2dcb 100644 --- a/src/stko/_internal/calculators/results/planarity_results.py +++ b/src/stko/_internal/calculators/results/planarity_results.py @@ -7,6 +7,9 @@ class PlanarityResults: def __init__(self, generator: abc.Iterable) -> None: self._values = next(generator) # type: ignore[call-overload] + def get_atom_plane(self) -> float: + return self._values["atom_plane"] + def get_planarity_parameter(self) -> float: return self._values["planarity_parameter"] From 0e950705b1d5a7920f71958552c3a9e2a1e24443 Mon Sep 17 00:00:00 2001 From: Andrew Tarzia Date: Sat, 6 Dec 2025 20:01:17 +0000 Subject: [PATCH 19/33] Make output floats. --- .../subgroup_analysis/three_site_analysis.py | 38 +++++++++++-------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/src/stko/_internal/molecular/subgroup_analysis/three_site_analysis.py b/src/stko/_internal/molecular/subgroup_analysis/three_site_analysis.py index 2eb1b96..7e3afd8 100644 --- a/src/stko/_internal/molecular/subgroup_analysis/three_site_analysis.py +++ b/src/stko/_internal/molecular/subgroup_analysis/three_site_analysis.py @@ -56,10 +56,12 @@ def get_binder_distance(self, molecule: stk.BuildingBlock) -> float: fg.get_binder().get_id() # type: ignore[attr-defined] for fg in molecule.get_functional_groups() ] - return get_atom_distance( - position_matrix=molecule.get_position_matrix(), - atom1_id=binder_ids[0], - atom2_id=binder_ids[1], + return float( + get_atom_distance( + position_matrix=molecule.get_position_matrix(), + atom1_id=binder_ids[0], + atom2_id=binder_ids[1], + ) ) def get_adjacent_centroids( @@ -114,8 +116,10 @@ def get_binder_centroid_angle( fg_vectors = [i - centroid_position for i in binder_positions] # Calculate the angle between the two vectors. - return np.degrees( - vector_angle(vector1=fg_vectors[0], vector2=fg_vectors[1]) + return float( + np.degrees( + vector_angle(vector1=fg_vectors[0], vector2=fg_vectors[1]) + ) ) def get_binder_binder_angle(self, molecule: stk.BuildingBlock) -> float: @@ -135,7 +139,9 @@ def get_binder_binder_angle(self, molecule: stk.BuildingBlock) -> float: self._get_binder_adjacent_vector(molecule, fg, normalised=True) for fg in molecule.get_functional_groups() ] - return np.degrees(vector_angle(vector1=vectors[0], vector2=vectors[1])) + return float( + np.degrees(vector_angle(vector1=vectors[0], vector2=vectors[1])) + ) def get_binder_angles( self, @@ -169,8 +175,8 @@ def get_binder_angles( for fg in molecule.get_functional_groups() ] return ( - 180 - np.degrees(vector_angle(vectors[0], -binder_vector)), - 180 - np.degrees(vector_angle(vectors[1], binder_vector)), + float(180 - np.degrees(vector_angle(vectors[0], -binder_vector))), + float(180 - np.degrees(vector_angle(vectors[1], binder_vector))), ) def get_halfbite_angles( @@ -202,7 +208,7 @@ def get_halfbite_angles( """ binder_angles = self.get_binder_angles(molecule) - return (binder_angles[0] - 90, binder_angles[1] - 90) + return (float(binder_angles[0]) - 90, float(binder_angles[1]) - 90) def get_binder_adjacent_torsion( self, molecule: stk.BuildingBlock @@ -225,11 +231,13 @@ def get_binder_adjacent_torsion( binder_centroids.append(self._get_binder_centroid(molecule, fg)) adj_centroids.append(self._get_adj_centroid(molecule, fg)) - return calculate_dihedral( - pt1=binder_centroids[0], - pt2=adj_centroids[0], - pt3=adj_centroids[1], - pt4=binder_centroids[1], + return float( + calculate_dihedral( + pt1=binder_centroids[0], + pt2=adj_centroids[0], + pt3=adj_centroids[1], + pt4=binder_centroids[1], + ) ) def _get_binder_centroid( From 6bdf89d2a6d6bf443de8f7d823ef71f88f5b8942 Mon Sep 17 00:00:00 2001 From: Andrew Tarzia Date: Sat, 6 Dec 2025 20:01:27 +0000 Subject: [PATCH 20/33] Handle change in rdkit api. --- src/stko/_internal/optimizers/rdkit.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/stko/_internal/optimizers/rdkit.py b/src/stko/_internal/optimizers/rdkit.py index 6ee1890..4a6cb5b 100644 --- a/src/stko/_internal/optimizers/rdkit.py +++ b/src/stko/_internal/optimizers/rdkit.py @@ -147,7 +147,11 @@ def __init__(self, random_seed: int = 12) -> None: def optimize(self, mol: MoleculeT) -> MoleculeT: params = rdkit.ETKDGv2() params.clearConfs = True - params.random_seed = self._random_seed + try: + params.random_seed = self._random_seed + except AttributeError: + # Handle change in naming. + params.randomSeed = self._random_seed rdkit_mol = mol.to_rdkit_mol() rdkit.EmbedMolecule(rdkit_mol, params) @@ -339,7 +343,7 @@ def _apply_metal_centre_constraints( def optimize(self, mol: MoleculeT) -> MoleculeT: # Find all metal atoms and atoms they are bonded to. metal_atoms = get_metal_atoms(mol) - metal_bonds, ids_to_metals = get_metal_bonds( + metal_bonds, _ids_to_metals = get_metal_bonds( mol=mol, metal_atoms=metal_atoms ) From 1a29e26fe10e0b21702ba2edd798ff2cf42f92f3 Mon Sep 17 00:00:00 2001 From: Andrew Tarzia Date: Sat, 6 Dec 2025 20:02:11 +0000 Subject: [PATCH 21/33] Remove hardcoded test outputs. --- tests/calculators/geometry/case_data.py | 10 - tests/calculators/geometry/conftest.py | 2823 ----------------- .../geom_jsons/case_data0_angles.json | 158 + .../geometry/geom_jsons/case_data0_bonds.json | 90 + .../geom_jsons/case_data0_properties.json | 12 + .../geom_jsons/case_data0_torsions.json | 202 ++ .../geom_jsons/case_data1_angles.json | 580 ++++ .../geometry/geom_jsons/case_data1_bonds.json | 328 ++ .../geom_jsons/case_data1_properties.json | 26 + .../geom_jsons/case_data1_torsions.json | 1008 ++++++ .../geom_jsons/case_data2_angles.json | 700 ++++ .../geometry/geom_jsons/case_data2_bonds.json | 418 +++ .../geom_jsons/case_data2_properties.json | 44 + .../geom_jsons/case_data2_torsions.json | 1126 +++++++ .../geometry/test_calculate_angles.py | 25 +- .../geometry/test_calculate_bonds.py | 25 +- .../geometry/test_calculate_properties.py | 65 + .../geometry/test_calculate_torsions.py | 25 +- .../test_get_avg_centroid_distance.py | 17 - .../geometry/test_get_max_diamter.py | 12 - .../test_get_metal_centroid_metal_angle.py | 19 - .../geometry/test_get_metal_distances.py | 19 - .../geometry/test_get_min_atom_atom.py | 14 - .../test_get_min_centroid_distance.py | 14 - .../geometry/test_get_radius_gyration.py | 12 - 25 files changed, 4808 insertions(+), 2964 deletions(-) create mode 100644 tests/calculators/geometry/geom_jsons/case_data0_angles.json create mode 100644 tests/calculators/geometry/geom_jsons/case_data0_bonds.json create mode 100644 tests/calculators/geometry/geom_jsons/case_data0_properties.json create mode 100644 tests/calculators/geometry/geom_jsons/case_data0_torsions.json create mode 100644 tests/calculators/geometry/geom_jsons/case_data1_angles.json create mode 100644 tests/calculators/geometry/geom_jsons/case_data1_bonds.json create mode 100644 tests/calculators/geometry/geom_jsons/case_data1_properties.json create mode 100644 tests/calculators/geometry/geom_jsons/case_data1_torsions.json create mode 100644 tests/calculators/geometry/geom_jsons/case_data2_angles.json create mode 100644 tests/calculators/geometry/geom_jsons/case_data2_bonds.json create mode 100644 tests/calculators/geometry/geom_jsons/case_data2_properties.json create mode 100644 tests/calculators/geometry/geom_jsons/case_data2_torsions.json create mode 100644 tests/calculators/geometry/test_calculate_properties.py delete mode 100644 tests/calculators/geometry/test_get_avg_centroid_distance.py delete mode 100644 tests/calculators/geometry/test_get_max_diamter.py delete mode 100644 tests/calculators/geometry/test_get_metal_centroid_metal_angle.py delete mode 100644 tests/calculators/geometry/test_get_metal_distances.py delete mode 100644 tests/calculators/geometry/test_get_min_atom_atom.py delete mode 100644 tests/calculators/geometry/test_get_min_centroid_distance.py delete mode 100644 tests/calculators/geometry/test_get_radius_gyration.py diff --git a/tests/calculators/geometry/case_data.py b/tests/calculators/geometry/case_data.py index 94af4fb..5195411 100644 --- a/tests/calculators/geometry/case_data.py +++ b/tests/calculators/geometry/case_data.py @@ -6,14 +6,4 @@ @dataclass(frozen=True, slots=True) class CaseData: molecule: stk.Molecule - metal_atom_distances: dict[tuple[int, int], float] - metal_centroid_angles: dict[tuple[int, int], float] - min_centoid_distance: float - avg_centoid_distance: tuple[float, float] - radius_gyration: float - min_atom_atom_distance: float - max_diameter: float - bonds: dict[tuple[str, str], list[float]] - angles: dict[tuple[str, str, str], list[float]] - torsions: dict[tuple[str, str, str, str], list[float]] name: str diff --git a/tests/calculators/geometry/conftest.py b/tests/calculators/geometry/conftest.py index ed099ed..2b35abe 100644 --- a/tests/calculators/geometry/conftest.py +++ b/tests/calculators/geometry/conftest.py @@ -52,311 +52,6 @@ optimizer=stk.MCHammer(), ), ), - metal_atom_distances={}, - metal_centroid_angles={}, - min_centoid_distance=3.2503016359941537, - avg_centoid_distance=(5.375102295051954, 1.0292999378578707), - radius_gyration=5.472767402726612, - min_atom_atom_distance=1.0766369344893167, - max_diameter=19.258604184686856, - bonds={ - ("C", "N"): [ - 1.436896929428691, - 1.403176580562134, - 1.4368969294286889, - 1.403176580562135, - 1.436896929428689, - 1.4031765805621377, - 1.4368969294286882, - 1.4031765805621368, - 1.4368969294286884, - 1.4031765805621361, - 1.4368969294286882, - 1.4031765805621381, - 1.5902246281229657, - 1.6194515573867505, - 1.7061915836634536, - 1.6127976358950904, - 1.87542128153158, - 1.6672029255189698, - 1.819309222281951, - 1.5475374503448591, - 1.538740427772366, - 1.6493618746994871, - 1.8748048559156474, - 1.62165636998199, - ], - }, - angles={ - ("C", "N", "C"): [ - 155.8291350925575, - 164.1838583460421, - 164.33352446928768, - 175.2709718731384, - 152.88587580126188, - 163.52096227010736, - 163.96647416455838, - 170.0472949749414, - 153.00343469023233, - 159.12168687703831, - 161.3331758772922, - 154.28289869982567, - ], - ("C", "C", "N"): [ - 159.20540617729856, - 171.63256187136975, - 166.88244479617734, - 161.52135862514666, - 158.7288110225135, - 157.34792765939977, - 166.1344449918735, - 167.32205677849387, - 172.18088529713526, - 172.44024765163527, - 175.27146085376444, - 168.34482782671077, - 111.06913950132393, - 114.09759412296782, - 111.069139501324, - 114.097594122968, - 111.06913950132397, - 114.0975941229678, - 111.0691395013241, - 114.09759412296775, - 111.06913950132403, - 114.09759412296776, - 111.06913950132416, - 114.09759412296782, - ], - ("H", "C", "N"): [ - 77.08637313883762, - 65.94403831338589, - 49.94357621729925, - 73.13057709284602, - 79.51585381779873, - 49.01416813785448, - 71.97882664879151, - 70.2729680784005, - 60.69031555903245, - 64.85201503036426, - 66.38804095524253, - 52.17830343092516, - 110.2958531097986, - 107.05803628987213, - 108.17401982811982, - 111.57350243791369, - 110.2958531097985, - 107.05803628987222, - 108.17401982811974, - 111.57350243791355, - 110.29585310979853, - 107.05803628987218, - 108.17401982811987, - 111.57350243791355, - 110.29585310979863, - 107.05803628987215, - 108.1740198281198, - 111.57350243791365, - 110.29585310979863, - 107.05803628987215, - 108.17401982811985, - 111.57350243791356, - 110.29585310979837, - 107.05803628987218, - 108.17401982811981, - 111.57350243791369, - ], - ("H", "C", "H"): [ - 111.84941191236, - 108.75245084958551, - 111.84941191236004, - 108.75245084958533, - 111.84941191236013, - 108.75245084958546, - 111.84941191235995, - 108.75245084958546, - 111.84941191236008, - 108.75245084958547, - 111.84941191236018, - 108.75245084958537, - ], - }, - torsions={ - ("C", "C", "C", "N"): [ - -58.8264567977308, - 123.46510333924043, - 92.44090518825405, - -113.74319437749429, - -143.35746457534185, - 177.84151693924497, - -155.4445108941948, - 116.84405798772066, - 159.4570093266152, - -120.36423972901386, - -76.34136043698051, - 81.2234628427808, - -70.44705601119321, - 58.545038008638954, - 110.02901947104306, - -178.6632597080956, - -125.76935029255267, - 166.22091772578239, - -124.97539100919866, - -114.89973276906152, - 89.0214177186589, - 7.891969514204105, - -146.77695204493673, - 111.69258272777682, - ], - ("C", "N", "C", "C"): [ - 126.89570089838334, - 113.4393942122361, - -31.092419337821692, - 62.280235461277236, - -167.74724312219794, - 150.36882686768246, - -157.97057329227346, - -24.247569116958886, - 122.26875112043311, - 102.85544992966203, - 130.67670822902008, - 114.8022156564823, - 145.09998871879145, - 79.84427671383055, - -28.465576254300263, - 115.42152484687077, - -158.6927194486306, - 162.06794008708675, - 162.7225162766428, - 83.84442183680272, - 51.0654592694045, - -115.39515640605002, - 175.16428807126385, - -149.5217138616757, - ], - ("C", "N", "C", "H"): [ - 4.384880589859175, - -117.52209264377026, - 69.74193656927802, - -52.16503666435147, - 27.858006559158348, - -94.04896667447125, - -90.37939555043477, - -153.4700766246677, - -2.8865784173753277, - 85.99447247223941, - -33.5861864813812, - 8.165887920495951, - -113.74108531313365, - -7.7086046520419504, - -129.6155778856714, - -169.84549921663208, - -89.00873432046444, - 23.055513420233627, - 29.0650344833041, - -90.51562447031613, - 85.2723263158822, - -34.308332637738324, - 39.55711977856277, - -82.34985345506679, - -109.06744430679083, - -163.09663702951957, - -10.035590377713207, - 46.68756204115553, - -72.89309691246497, - 59.12933383577668, - -60.45132511784375, - 94.44333190283712, - -25.137327050783398, - -125.08780115089405, - -133.71605467214908, - -42.43664484908919, - ], - ("H", "C", "C", "H"): [ - -177.44155760053528, - 178.68085277466832, - 60.61297031314438, - -177.44155760053545, - 178.68085277466838, - 60.61297031314449, - -177.44155760053528, - 178.68085277466827, - 60.61297031314459, - -177.4415576005353, - 178.6808527746683, - 60.61297031314446, - -179.3941880369845, - -63.081302906596584, - -58.03054623521211, - 58.282338895175826, - -179.3941880369845, - -63.08130290659668, - -58.03054623521207, - 58.28233889517573, - -179.3941880369845, - -63.081302906596555, - -58.03054623521203, - 58.28233889517592, - -179.39418803698442, - -63.081302906596456, - -58.03054623521216, - 58.28233889517581, - -179.39418803698447, - -63.08130290659649, - -58.03054623521209, - 58.28233889517589, - -179.39418803698462, - -63.08130290659678, - -58.03054623521212, - 58.28233889517571, - ], - ("H", "C", "C", "N"): [ - -25.000478859710935, - 59.852270214291025, - 4.075629712851543, - 42.015625278650184, - -36.76578388217302, - -2.5454156386680244, - -7.41236457692188, - 48.23167100082843, - -60.84443561774971, - -28.419966329305968, - -6.29666399717691, - 125.71079360454975, - 58.05348764092604, - 174.36637277131396, - 62.54996497822907, - -176.08639321999854, - 58.05348764092621, - 174.366372771314, - 62.549964978229006, - -176.0863932199986, - 58.053487640926114, - 174.36637277131408, - 62.549964978228964, - -176.08639321999857, - 58.053487640926015, - 174.36637277131396, - 62.54996497822917, - -176.0863932199986, - 58.053487640926065, - 174.36637277131402, - 62.549964978229056, - -176.0863932199986, - 58.05348764092616, - 174.366372771314, - 62.549964978228964, - -176.08639321999857, - ], - ("N", "C", "C", "N"): [ - -60.002359343860384, - -60.002359343860334, - -60.0023593438604, - -60.00235934386041, - -60.00235934386043, - -60.002359343860284, - ], - }, name=name, ), lambda name: CaseData( @@ -375,1943 +70,6 @@ optimizer=stk.MCHammer(), ), ), - metal_atom_distances={ - (0, 40): 14.496255156029374, - (0, 80): 14.307002353533244, - (0, 120): 14.038436435377056, - (40, 80): 14.884618345466887, - (40, 120): 15.61630115867283, - (80, 120): 14.55076063437277, - }, - metal_centroid_angles={ - (0, 40): 107.6286801648586, - (0, 80): 110.75873900673137, - (0, 120): 107.13254641909572, - (40, 80): 107.6718474455571, - (40, 120): 115.18531816062348, - (80, 120): 108.47202937098922, - }, - min_centoid_distance=3.725088482208902, - avg_centoid_distance=(8.90970162696734, 2.5231311926122526), - radius_gyration=9.260074194989876, - min_atom_atom_distance=1.0694746499945305, - max_diameter=39.95166595631727, - bonds={ - ("C", "N"): [ - 1.3483660995252742, - 1.3429161748830707, - 1.290134284490675, - 1.3483660995252758, - 1.3429161748830745, - 1.2901342844906762, - 1.3483660995252773, - 1.3429161748830676, - 1.2901342844906751, - 1.3483660995252738, - 1.342916174883073, - 1.2901342844906716, - 1.3483660995252738, - 1.3429161748830727, - 1.2901342844906751, - 1.3483660995252804, - 1.34291617488307, - 1.2901342844906758, - 1.3483660995252749, - 1.3429161748830691, - 1.290134284490677, - 1.3483660995252718, - 1.3429161748830705, - 1.2901342844906738, - 1.3483660995252797, - 1.3429161748830734, - 1.2901342844906782, - 1.3483660995252735, - 1.3429161748830678, - 1.290134284490678, - 1.3483660995252773, - 1.3429161748830745, - 1.290134284490679, - 1.348366099525273, - 1.3429161748830731, - 1.2901342844906767, - 1.9490771016251838, - 2.0063329665379244, - 2.382919669451856, - 1.9781861848442748, - 2.0190814930773047, - 2.3422834415792324, - 1.8357571189116264, - 2.3560765865457074, - 2.324042571234281, - 2.0802576950462526, - 2.7515814931061304, - 1.83616693623852, - ], - ("C", "C"): [ - 1.4562504667425482, - 1.367174505640155, - 1.3814902308192545, - 1.381674443852996, - 1.389180447787276, - 1.4562504667425424, - 1.3671745056401547, - 1.3814902308192596, - 1.3816744438529973, - 1.3891804477872771, - 1.4562504667425458, - 1.3671745056401567, - 1.38149023081926, - 1.3816744438529946, - 1.3891804477872793, - 1.4562504667425469, - 1.367174505640152, - 1.3814902308192583, - 1.3816744438529955, - 1.389180447787276, - 1.4562504667425402, - 1.367174505640147, - 1.3814902308192591, - 1.381674443852995, - 1.3891804477872711, - 1.4562504667425418, - 1.367174505640152, - 1.3814902308192596, - 1.3816744438530042, - 1.389180447787274, - 1.4562504667425427, - 1.3671745056401519, - 1.3814902308192571, - 1.3816744438529975, - 1.3891804477872745, - 1.456250466742543, - 1.367174505640148, - 1.3814902308192583, - 1.381674443852997, - 1.3891804477872771, - 1.4562504667425384, - 1.3671745056401545, - 1.3814902308192534, - 1.3816744438530009, - 1.389180447787272, - 1.4562504667425458, - 1.3671745056401574, - 1.3814902308192571, - 1.3816744438529935, - 1.3891804477872804, - 1.4562504667425438, - 1.367174505640154, - 1.3814902308192594, - 1.3816744438529995, - 1.389180447787279, - 1.456250466742541, - 1.3671745056401565, - 1.3814902308192574, - 1.3816744438529953, - 1.3891804477872767, - 1.3819266304083873, - 1.3797421675628239, - 1.3795878525785152, - 1.3905088360087436, - 1.3794031252256436, - 1.465923773445827, - 1.3692671880205043, - 1.393230464112883, - 1.3716636820565455, - 1.3729596207077222, - 1.3658145691526875, - 1.3786027653941018, - 1.3688488252389202, - 1.3819266304083848, - 1.379742167562822, - 1.3795878525785141, - 1.3905088360087456, - 1.3794031252256425, - 1.4659237734458284, - 1.369267188020506, - 1.3932304641128843, - 1.3716636820565447, - 1.3729596207077255, - 1.365814569152687, - 1.3786027653941024, - 1.368848825238921, - 1.3819266304083806, - 1.379742167562824, - 1.3795878525785148, - 1.3905088360087428, - 1.3794031252256427, - 1.4659237734458253, - 1.3692671880205025, - 1.3932304641128832, - 1.3716636820565462, - 1.372959620707722, - 1.3658145691526884, - 1.3786027653941029, - 1.3688488252389213, - 1.3819266304083848, - 1.3797421675628236, - 1.3795878525785152, - 1.390508836008745, - 1.3794031252256445, - 1.465923773445829, - 1.3692671880205074, - 1.393230464112883, - 1.3716636820565458, - 1.3729596207077261, - 1.3658145691526904, - 1.378602765394104, - 1.368848825238921, - 1.3819266304083861, - 1.3797421675628248, - 1.3795878525785155, - 1.3905088360087436, - 1.3794031252256422, - 1.4659237734458295, - 1.369267188020508, - 1.3932304641128828, - 1.3716636820565467, - 1.372959620707725, - 1.36581456915269, - 1.3786027653941044, - 1.3688488252389215, - 1.3819266304083857, - 1.3797421675628223, - 1.3795878525785172, - 1.3905088360087445, - 1.379403125225643, - 1.4659237734458281, - 1.3692671880205067, - 1.3932304641128808, - 1.3716636820565453, - 1.3729596207077237, - 1.3658145691526897, - 1.3786027653941044, - 1.3688488252389182, - ], - ("C", "H"): [ - 1.0875101642010656, - 1.0694746499945293, - 1.0841103288551472, - 1.085896577811898, - 1.0833025054451522, - 1.087510164201065, - 1.0694746499945318, - 1.0841103288551444, - 1.0858965778118925, - 1.0833025054451544, - 1.0875101642010636, - 1.069474649994531, - 1.0841103288551437, - 1.0858965778118952, - 1.0833025054451535, - 1.0875101642010634, - 1.069474649994531, - 1.0841103288551437, - 1.0858965778118996, - 1.0833025054451562, - 1.087510164201067, - 1.0694746499945351, - 1.084110328855145, - 1.0858965778118936, - 1.0833025054451526, - 1.0875101642010556, - 1.069474649994533, - 1.0841103288551477, - 1.0858965778118939, - 1.0833025054451553, - 1.087510164201062, - 1.06947464999453, - 1.0841103288551452, - 1.0858965778118952, - 1.0833025054451513, - 1.0875101642010654, - 1.0694746499945345, - 1.0841103288551466, - 1.085896577811896, - 1.0833025054451513, - 1.087510164201061, - 1.0694746499945371, - 1.084110328855148, - 1.0858965778118934, - 1.0833025054451533, - 1.0875101642010625, - 1.0694746499945278, - 1.084110328855144, - 1.0858965778118925, - 1.0833025054451464, - 1.0875101642010685, - 1.069474649994531, - 1.0841103288551432, - 1.085896577811893, - 1.0833025054451457, - 1.0875101642010656, - 1.0694746499945336, - 1.0841103288551481, - 1.085896577811896, - 1.083302505445154, - 1.0941430411436526, - 1.0806549765097455, - 1.0758670677919857, - 1.075485685258647, - 1.080230643633542, - 1.0906603908409305, - 1.0950351669394272, - 1.0898109150529411, - 1.0941430411436506, - 1.0806549765097482, - 1.0758670677919877, - 1.0754856852586483, - 1.0802306436335434, - 1.0906603908409331, - 1.0950351669394276, - 1.0898109150529385, - 1.0941430411436521, - 1.0806549765097457, - 1.0758670677919857, - 1.075485685258648, - 1.0802306436335438, - 1.0906603908409307, - 1.0950351669394252, - 1.089810915052939, - 1.0941430411436517, - 1.0806549765097457, - 1.075867067791985, - 1.0754856852586492, - 1.0802306436335443, - 1.0906603908409305, - 1.0950351669394272, - 1.0898109150529383, - 1.0941430411436543, - 1.0806549765097457, - 1.075867067791984, - 1.0754856852586494, - 1.0802306436335452, - 1.090660390840934, - 1.0950351669394272, - 1.0898109150529405, - 1.0941430411436508, - 1.0806549765097446, - 1.0758670677919862, - 1.0754856852586478, - 1.0802306436335443, - 1.090660390840931, - 1.095035166939426, - 1.0898109150529407, - ], - ("Fe", "N"): [ - 1.8523799327301929, - 1.8624126213648504, - 1.8071722438223656, - 1.914780325627807, - 1.7870238453502443, - 1.8586656881617896, - 1.8523799327301933, - 1.8624126213648502, - 1.807172243822362, - 1.9147803256278069, - 1.787023845350246, - 1.8586656881617867, - 1.8523799327301875, - 1.862412621364849, - 1.8071722438223639, - 1.9147803256278109, - 1.787023845350242, - 1.8586656881617867, - 1.852379932730189, - 1.862412621364852, - 1.8071722438223679, - 1.9147803256278073, - 1.787023845350245, - 1.8586656881617918, - ], - }, - angles={ - ("Fe", "N", "C"): [ - 141.79618994216818, - 95.1737168042075, - 97.53803302660268, - 169.42294267924294, - 142.88082060395675, - 94.25835846636132, - 99.0915055270005, - 146.2182010139865, - 143.85634214414847, - 92.15186518320556, - 95.9416418023339, - 168.21336546739641, - 141.7961899421683, - 95.17371680420753, - 97.53803302660275, - 160.93847540082854, - 142.88082060395678, - 94.25835846636136, - 99.0915055270005, - 174.78613042666666, - 143.8563421441485, - 92.15186518320573, - 95.94164180233372, - 176.49187115944915, - 141.79618994216807, - 95.17371680420764, - 97.53803302660269, - 161.4562231989404, - 142.88082060395647, - 94.25835846636129, - 99.09150552700042, - 156.68893233234357, - 143.85634214414873, - 92.1518651832057, - 95.94164180233366, - 172.84786032386125, - 141.79618994216804, - 95.1737168042075, - 97.53803302660273, - 156.838394639216, - 142.88082060395672, - 94.25835846636124, - 99.09150552700036, - 174.37687135139905, - 143.85634214414864, - 92.15186518320536, - 95.94164180233378, - 174.10339472438375, - ], - ("C", "N", "C"): [ - 122.7833490326383, - 71.90371353708271, - 122.78334903263813, - 65.1797503237024, - 122.7833490326382, - 72.79104373480327, - 122.78334903263814, - 92.03478850696686, - 122.78334903263801, - 84.09676052087161, - 122.78334903263813, - 83.55288589391328, - 122.78334903263817, - 99.40048635457273, - 122.7833490326384, - 63.819309437331015, - 122.78334903263774, - 84.4239242101861, - 122.7833490326384, - 64.2202901177826, - 122.78334903263817, - 76.64625092359503, - 122.78334903263833, - 89.30187244577043, - ], - ("C", "C", "C"): [ - 115.9151751471022, - 120.54273327821548, - 119.16849384113098, - 121.54869946876121, - 115.91517514710215, - 120.54273327821564, - 119.16849384113095, - 121.54869946876106, - 115.91517514710205, - 120.54273327821528, - 119.16849384113075, - 121.54869946876131, - 115.91517514710233, - 120.54273327821538, - 119.1684938411309, - 121.54869946876113, - 115.91517514710215, - 120.54273327821556, - 119.16849384113092, - 121.54869946876106, - 115.91517514710237, - 120.54273327821566, - 119.1684938411309, - 121.54869946876073, - 115.91517514710208, - 120.54273327821534, - 119.1684938411309, - 121.54869946876126, - 115.91517514710218, - 120.5427332782156, - 119.16849384113092, - 121.54869946876103, - 115.9151751471021, - 120.54273327821544, - 119.16849384113105, - 121.54869946876126, - 115.91517514710202, - 120.54273327821528, - 119.1684938411308, - 121.54869946876141, - 115.91517514710185, - 120.54273327821556, - 119.16849384113085, - 121.54869946876134, - 115.91517514710215, - 120.54273327821528, - 119.16849384113083, - 121.54869946876136, - 122.05420472135116, - 117.3863074559602, - 120.53508515403524, - 120.85966491652931, - 117.22015234871778, - 120.76826337611575, - 121.71140700647265, - 122.07860683482706, - 123.55578042015456, - 116.97565895393097, - 119.51031266538259, - 119.77732237608899, - 119.46856057530319, - 121.79997503934317, - 116.59199443458226, - 122.8518347467823, - 122.05420472135123, - 117.38630745596025, - 120.53508515403527, - 120.85966491652928, - 117.22015234871782, - 120.76826337611575, - 121.71140700647253, - 122.07860683482699, - 123.55578042015443, - 116.97565895393105, - 119.5103126653825, - 119.77732237608892, - 119.46856057530326, - 121.79997503934327, - 116.59199443458216, - 122.85183474678237, - 122.05420472135127, - 117.38630745596012, - 120.53508515403531, - 120.85966491652935, - 117.22015234871769, - 120.76826337611573, - 121.71140700647265, - 122.07860683482708, - 123.55578042015456, - 116.97565895393097, - 119.51031266538263, - 119.77732237608893, - 119.46856057530319, - 121.79997503934321, - 116.59199443458219, - 122.85183474678234, - 122.05420472135113, - 117.3863074559602, - 120.53508515403531, - 120.85966491652933, - 117.220152348718, - 120.76826337611557, - 121.71140700647265, - 122.078606834827, - 123.55578042015443, - 116.97565895393085, - 119.5103126653824, - 119.77732237608873, - 119.46856057530344, - 121.79997503934334, - 116.59199443458219, - 122.85183474678234, - 122.05420472135103, - 117.38630745596022, - 120.53508515403522, - 120.85966491652925, - 117.220152348718, - 120.76826337611557, - 121.71140700647277, - 122.07860683482706, - 123.55578042015443, - 116.975658953931, - 119.51031266538236, - 119.77732237608893, - 119.46856057530329, - 121.7999750393435, - 116.5919944345821, - 122.85183474678232, - 122.0542047213513, - 117.38630745596028, - 120.53508515403519, - 120.85966491652916, - 117.22015234871778, - 120.7682633761157, - 121.71140700647261, - 122.078606834827, - 123.55578042015448, - 116.97565895393092, - 119.51031266538243, - 119.77732237608896, - 119.46856057530331, - 121.79997503934342, - 116.59199443458216, - 122.85183474678227, - ], - ("C", "C", "H"): [ - 122.29030861963713, - 119.2142305328367, - 119.71702271967725, - 121.92609993138096, - 119.74024400064332, - 121.79451623033533, - 115.8622810666697, - 116.52520059783744, - 122.29030861963719, - 119.21423053283692, - 119.71702271967737, - 121.92609993138075, - 119.74024400064309, - 121.79451623033536, - 115.86228106666985, - 116.52520059783782, - 122.29030861963699, - 119.21423053283682, - 119.71702271967753, - 121.9260999313807, - 119.74024400064324, - 121.79451623033565, - 115.86228106666985, - 116.52520059783762, - 122.29030861963709, - 119.21423053283657, - 119.7170227196775, - 121.92609993138088, - 119.74024400064319, - 121.79451623033529, - 115.86228106667005, - 116.52520059783762, - 122.29030861963729, - 119.21423053283682, - 119.7170227196775, - 121.92609993138096, - 119.74024400064303, - 121.79451623033526, - 115.86228106666992, - 116.52520059783762, - 122.29030861963757, - 119.214230532837, - 119.7170227196773, - 121.9260999313811, - 119.74024400064309, - 121.79451623033478, - 115.86228106667016, - 116.5252005978378, - 122.29030861963739, - 119.21423053283672, - 119.71702271967725, - 121.92609993138078, - 119.74024400064347, - 121.79451623033523, - 115.86228106666985, - 116.52520059783762, - 122.29030861963696, - 119.21423053283664, - 119.7170227196775, - 121.92609993138106, - 119.74024400064299, - 121.79451623033557, - 115.86228106667004, - 116.52520059783754, - 122.29030861963726, - 119.21423053283692, - 119.7170227196771, - 121.92609993138088, - 119.74024400064354, - 121.79451623033532, - 115.86228106666991, - 116.5252005978375, - 122.29030861963709, - 119.21423053283667, - 119.7170227196773, - 121.92609993138042, - 119.7402440006435, - 121.79451623033557, - 115.86228106666978, - 116.5252005978378, - 122.29030861963722, - 119.2142305328369, - 119.7170227196774, - 121.926099931381, - 119.74024400064312, - 121.79451623033562, - 115.8622810666698, - 116.5252005978373, - 122.29030861963699, - 119.21423053283688, - 119.71702271967746, - 121.92609993138068, - 119.74024400064334, - 121.79451623033555, - 115.8622810666698, - 116.5252005978376, - 120.95722386707854, - 121.71322749266749, - 116.98857034173362, - 117.30922307387934, - 121.01392851901166, - 121.92251233457456, - 117.42710721133403, - 117.2746635167577, - 119.46946067933925, - 120.83101605157228, - 117.29103112973753, - 121.02021857704496, - 120.90899081353274, - 119.92662179158995, - 119.39166050829613, - 117.22154279374847, - 120.95722386707845, - 121.71322749266746, - 116.98857034173362, - 117.30922307387937, - 121.01392851901196, - 121.92251233457456, - 117.42710721133408, - 117.27466351675754, - 119.46946067933936, - 120.83101605157235, - 117.29103112973743, - 121.02021857704496, - 120.90899081353272, - 119.92662179158988, - 119.39166050829613, - 117.22154279374847, - 120.95722386707858, - 121.71322749266758, - 116.98857034173345, - 117.30922307387938, - 121.01392851901186, - 121.92251233457456, - 117.42710721133385, - 117.27466351675751, - 119.4694606793393, - 120.83101605157232, - 117.29103112973749, - 121.02021857704489, - 120.90899081353274, - 119.92662179158992, - 119.3916605082961, - 117.22154279374844, - 120.95722386707851, - 121.71322749266754, - 116.9885703417337, - 117.30922307387954, - 121.01392851901183, - 121.92251233457456, - 117.42710721133398, - 117.27466351675754, - 119.46946067933936, - 120.83101605157245, - 117.29103112973733, - 121.02021857704503, - 120.90899081353277, - 119.92662179159002, - 119.39166050829617, - 117.22154279374834, - 120.95722386707851, - 121.71322749266749, - 116.98857034173378, - 117.30922307387944, - 121.01392851901176, - 121.92251233457466, - 117.42710721133408, - 117.27466351675749, - 119.46946067933936, - 120.8310160515723, - 117.2910311297372, - 121.02021857704511, - 120.90899081353277, - 119.92662179158998, - 119.39166050829616, - 117.22154279374838, - 120.95722386707841, - 121.71322749266767, - 116.98857034173358, - 117.30922307387934, - 121.01392851901178, - 121.92251233457463, - 117.427107211334, - 117.27466351675761, - 119.4694606793393, - 120.83101605157245, - 117.29103112973733, - 121.02021857704509, - 120.90899081353272, - 119.92662179158998, - 119.39166050829597, - 117.22154279374848, - ], - ("N", "Fe", "N"): [ - 101.51425661600788, - 87.82221111672037, - 170.50382174861656, - 94.4619785863201, - 96.39539934765769, - 92.74307534174659, - 81.1719935314287, - 163.7357871814907, - 77.22453450249262, - 101.20576884059219, - 84.77043121316645, - 169.6972031435041, - 83.54820513479493, - 75.19823419392335, - 104.19566045126716, - 101.5142566160078, - 87.82221111672037, - 170.50382174861662, - 94.46197858631996, - 96.39539934765752, - 92.74307534174646, - 81.17199353142881, - 163.73578718149093, - 77.22453450249276, - 101.20576884059214, - 84.77043121316648, - 169.69720314350423, - 83.54820513479504, - 75.19823419392357, - 104.19566045126716, - 101.5142566160078, - 87.82221111672052, - 170.50382174861653, - 94.46197858632023, - 96.39539934765752, - 92.74307534174653, - 81.17199353142875, - 163.7357871814907, - 77.22453450249266, - 101.20576884059216, - 84.77043121316636, - 169.6972031435041, - 83.54820513479486, - 75.19823419392338, - 104.19566045126722, - 101.51425661600786, - 87.82221111672038, - 170.5038217486164, - 94.46197858632, - 96.39539934765763, - 92.74307534174659, - 81.17199353142877, - 163.73578718149085, - 77.22453450249262, - 101.20576884059233, - 84.77043121316633, - 169.69720314350423, - 83.54820513479503, - 75.19823419392326, - 104.19566045126726, - ], - ("N", "C", "C"): [ - 121.3671448702113, - 122.98860795401468, - 117.84289820217766, - 122.29822496997878, - 141.51392401877325, - 100.96234431763277, - 121.36714487021158, - 122.98860795401473, - 117.84289820217766, - 122.29822496997875, - 137.8491025632268, - 90.16671882598631, - 121.36714487021145, - 122.9886079540147, - 117.84289820217789, - 122.29822496997865, - 139.6501036357593, - 103.10978845466688, - 121.36714487021132, - 122.98860795401455, - 117.84289820217789, - 122.2982249699789, - 112.91301748641997, - 130.02858221585262, - 121.3671448702116, - 122.9886079540146, - 117.84289820217779, - 122.29822496997885, - 123.74266550812223, - 118.77498679673526, - 121.36714487021135, - 122.98860795401447, - 117.84289820217795, - 122.29822496997897, - 128.91564934210024, - 113.78995404457038, - 121.36714487021145, - 122.98860795401453, - 117.84289820217792, - 122.29822496997885, - 123.5233221381543, - 117.27599110588693, - 121.36714487021128, - 122.98860795401468, - 117.84289820217774, - 122.29822496997897, - 142.1071367696597, - 99.65224603515638, - 121.36714487021166, - 122.9886079540143, - 117.84289820217799, - 122.29822496997907, - 134.79387929427062, - 108.35773958553878, - 121.36714487021132, - 122.98860795401478, - 117.84289820217774, - 122.29822496997865, - 154.07679096195457, - 88.86554099817049, - 121.3671448702116, - 122.9886079540148, - 117.84289820217766, - 122.29822496997872, - 130.42990895601, - 112.87017950123438, - 121.36714487021138, - 122.98860795401482, - 117.8428982021777, - 122.2982249699788, - 128.1858057137998, - 114.8873280232886, - ], - ("N", "C", "H"): [ - 122.770574063088, - 118.48754448034599, - 122.77057406308758, - 118.48754448034576, - 122.77057406308774, - 118.48754448034596, - 122.77057406308765, - 118.48754448034596, - 122.77057406308748, - 118.48754448034576, - 122.77057406308752, - 118.48754448034545, - 122.77057406308774, - 118.48754448034586, - 122.77057406308774, - 118.48754448034583, - 122.77057406308745, - 118.48754448034542, - 122.77057406308793, - 118.48754448034612, - 122.77057406308762, - 118.4875444803458, - 122.77057406308785, - 118.48754448034576, - ], - }, - torsions={ - ("Fe", "N", "C", "C"): [ - 172.6366551245519, - 4.56553183103943, - -175.43506909653223, - -4.613323766410115, - 1.4924995892505266, - -171.39211748374527, - 175.82210962386205, - 2.5275204142630305, - -177.47308051330853, - -2.7066057482020245, - -87.98766890816695, - 138.7912086784121, - 163.2391751481051, - 9.800634302836524, - -170.19996662473528, - -10.24784726257969, - 22.851767067941637, - -155.3524656767434, - 172.6366551245518, - 4.565531831039441, - -175.4350690965323, - -4.613323766410007, - 169.14334323465712, - -19.08702334032336, - 175.8221096238621, - 2.5275204142631518, - -177.4730805133086, - -2.7066057482019574, - 131.31634582828843, - -42.6298866661259, - 163.23917514810555, - 9.800634302836182, - -170.19996662473528, - -10.247847262579663, - 86.06954407549311, - -90.67074080635906, - 172.63665512455145, - 4.565531831039549, - -175.43506909653226, - -4.61332376641033, - -121.82867602372438, - 77.13973417955268, - 175.82210962386202, - 2.5275204142628143, - -177.47308051330833, - -2.706605748202168, - 59.95572022876722, - -133.1473388056142, - 163.23917514810495, - 9.800634302836373, - -170.19996662473517, - -10.247847262579905, - -47.86430662991563, - 138.38076700734365, - 172.6366551245517, - 4.565531831039541, - -175.43506909653223, - -4.613323766410215, - 18.189226140642877, - -172.26316510867846, - 175.82210962386205, - 2.5275204142630074, - -177.4730805133085, - -2.7066057482019152, - 93.41799384175282, - -90.55261105163507, - 163.2391751481056, - 9.800634302835856, - -170.19996662473534, - -10.247847262580102, - -107.92901280623516, - 79.00736314654941, - ], - ("Fe", "N", "C", "H"): [ - -7.363278165174034, - 175.3881818413472, - -4.177823665864181, - 177.29489985955573, - -16.760758141621125, - 169.75365834517763, - -7.363278165173931, - 175.38818184134732, - -4.177823665864209, - 177.29489985955547, - -16.76075814162008, - 169.7536583451779, - -7.363278165174512, - 175.38818184134755, - -4.177823665863971, - 177.29489985955556, - -16.76075814162131, - 169.7536583451777, - -7.363278165174524, - 175.38818184134712, - -4.177823665864272, - 177.29489985955558, - -16.760758141620347, - 169.753658345178, - ], - ("C", "N", "Fe", "N"): [ - -179.8147664965291, - -87.4575891906162, - 74.60969110615142, - -2.8776658824336723, - 101.9709725564199, - 6.200133169774901, - 2.844819292933247, - -2.8613200788318855, - 173.6172461553436, - -158.18847810321554, - -99.8800699272201, - -81.80327870996014, - 84.15552995695622, - -82.26122136728128, - -99.03621777317356, - -6.025853867739905, - 86.33132343817302, - -111.60139626505936, - 170.91124674635554, - -84.24011481479089, - -82.13432473062842, - 176.94514498474564, - -162.8350970464979, - 100.2354929708031, - 98.568247240023, - -84.95318652580154, - 94.5977505739999, - 152.90615874999534, - 87.42222266518154, - -106.61896866790214, - 177.33724452106327, - 160.562248115171, - -179.89292160008253, - -97.54529626115463, - 111.59887210251685, - -85.48963860747007, - 3.5317471265842943, - 61.840155302579724, - 5.593592557804412, - 171.55240122472077, - 163.98539253347155, - 147.2103961275793, - -3.4143553659070482, - 78.93326997302084, - -71.92256166330769, - -79.81195764924307, - 173.62025234217563, - 173.58983110790396, - 107.52493566119502, - -86.51625567188864, - 93.24055444730867, - 76.4655580414164, - -179.5611069240373, - -166.19041092333953, - -21.503549473247634, - 14.002432414036184, - -2.772563991856092, - -13.60229825712094, - 96.88017909396144, - -128.07133948182894, - -179.8147664965291, - -87.45758919061628, - 74.6096911061512, - -2.87766588243371, - 101.97097255641984, - 6.200133169774818, - -113.31410635979769, - -2.8613200788318838, - 173.6172461553435, - -158.1884781032154, - 74.40505262990159, - -81.80327870996084, - 84.15552995695629, - -82.26122136728132, - -163.79101080048918, - -6.0258538677398645, - 86.33132343817294, - -111.60139626505959, - 170.91124674635552, - -84.24011481479096, - -82.13432473062848, - 176.94514498474558, - -162.8350970464975, - 100.23549297080288, - 98.56824724002291, - -84.9531865258017, - 94.59775057399978, - -32.80871869288323, - 87.42222266518041, - -106.6189686679025, - 177.33724452106327, - 95.80745508785544, - -179.8929216000825, - -97.54529626115448, - 111.59887210251591, - 158.35143573979903, - 3.5317471265842904, - -123.87472214029872, - 5.59359255780374, - 171.55240122472085, - 163.98539253347246, - 82.45560310026461, - -3.414355365907117, - 78.93326997302091, - -71.9225616633087, - -79.81195764924314, - 173.6202523421756, - 57.43090545517308, - 107.52493566119429, - -86.5162556718886, - 93.24055444730863, - 11.710765014100794, - -179.56110692403777, - 77.65066342392998, - 152.78157308387384, - 14.002432414035956, - -67.52735701917187, - -13.602298257120653, - -19.278746558769633, - 46.2137830752926, - -179.8147664965287, - -87.45758919061578, - 74.60969110615225, - -2.8776658824333246, - 101.97097255642032, - 6.20013316977514, - 162.05950512421194, - -2.8613200788319837, - 173.61724615534374, - -158.188478103216, - 161.0773791487536, - -81.80327870996, - 84.15552995695604, - -82.2612213672813, - 10.304096766324149, - -6.0258538677401265, - 86.33132343817279, - -111.60139626505918, - 170.91124674635523, - -84.24011481479111, - -82.13432473062835, - 176.94514498474572, - -162.8350970464974, - 100.23549297080318, - 98.56824724002281, - -84.95318652580148, - 94.59775057399986, - 53.86360782596943, - 87.42222266518144, - -106.61896866790254, - 177.33724452106333, - -90.09743734533124, - -179.89292160008267, - -97.54529626115485, - 111.59887210251674, - 73.72504722380845, - 3.5317471265842943, - -37.20239562144614, - 5.593592557804718, - 171.55240122472077, - 163.98539253347155, - -103.44928933292302, - -3.414355365906937, - 78.93326997302087, - -71.92256166330756, - -79.81195764924297, - 173.6202523421756, - -27.195483060817494, - 107.5249356611953, - -86.51625567188867, - 93.24055444730865, - -174.1941274190859, - -179.561106924037, - -6.975725092060595, - -120.54610039727339, - 14.00243241403627, - 106.56775054764172, - -13.602298257120967, - -103.90513507476003, - 132.88610959414518, - -179.814766496529, - -87.45758919061603, - 74.60969110615166, - -2.8776658824336088, - 101.97097255642007, - 6.200133169775034, - 42.48809095143339, - -2.8613200788317457, - 173.61724615534362, - -158.18847810321574, - 161.43860107080556, - -81.8032787099606, - 84.1555299569565, - -82.26122136728118, - 70.41799425353894, - -6.025853867740054, - 86.3313234381729, - -111.60139626505942, - 170.91124674635532, - -84.24011481479103, - -82.13432473062831, - 176.94514498474558, - -162.83509704649734, - 100.23549297080316, - 98.5682472400231, - -84.95318652580154, - 94.59775057399978, - 54.224829748021094, - 87.4222226651807, - -106.61896866790222, - 177.33724452106344, - -29.983539858116483, - -179.89292160008236, - -97.54529626115439, - 111.59887210251681, - -45.84636694896996, - 3.531747126584187, - -36.84117369939451, - 5.5935925578039924, - 171.55240122472108, - 163.98539253347184, - -43.335391845708045, - -3.4143553659069728, - 78.93326997302098, - -71.92256166330783, - -79.81195764924307, - 173.62025234217555, - -146.76689723359607, - 107.52493566119473, - -86.51625567188819, - 93.24055444730871, - -114.08022993187117, - -179.56110692403763, - -126.54713926483902, - -120.18487847522175, - 14.002432414036189, - 166.6816480348563, - -13.60229825712056, - 136.5234507524615, - 133.24733151619682, - ], - ("C", "N", "C", "C"): [ - -179.99940642650972, - -7.354081368180032e-06, - 0.0001920563538641725, - 174.73908890276746, - -2.007088835389905, - -174.89170590838572, - -179.99940642650986, - -7.354081423880997e-06, - 0.0001920563538629845, - -151.2890612809162, - -20.212456897302733, - -153.43357931072367, - -179.99940642650978, - -7.354081581700461e-06, - 0.00019205635393141423, - 166.2137528842581, - 5.363107314793896, - -172.84112542989115, - -179.99940642650967, - -7.354081413677349e-06, - 0.00019205635377570377, - 158.8647081105756, - 48.82761909044641, - -139.40274748453407, - -179.9994064265098, - -7.354081519036904e-06, - 0.00019205635400926954, - 173.13178341716178, - 3.3664214429849353, - -170.5798110514294, - -179.99940642650958, - -7.354081021209289e-06, - 0.00019205635345864413, - 166.26022529872603, - 4.162850387892602, - -172.5774344939596, - -179.9994064265101, - -7.354081870925882e-06, - 0.00019205635419013945, - -177.0375493743867, - 33.90603342245545, - -127.12555637426753, - -179.99940642650992, - -7.354081078070793e-06, - 0.00019205635357034248, - 160.5700870933938, - 14.064839895845914, - -179.0382191385355, - -179.99940642651003, - -7.354081564293872e-06, - 0.00019205635404051464, - 176.93123607708304, - 45.422312434934675, - -128.33261392780605, - -179.99940642650984, - -7.35408159303968e-06, - 0.0001920563540274526, - -169.6312429020799, - 58.84997298328846, - -131.60241826603286, - -179.99940642650995, - -7.354081442447992e-06, - 0.00019205635398596404, - 173.5530891743189, - 52.316375530470175, - -131.65422936291773, - -179.9994064265099, - -7.3540810792311656e-06, - 0.0001920563535785805, - 172.45495666482913, - 44.90691651507726, - -128.1567075321382, - ], - ("C", "C", "C", "C"): [ - 0.00032945507370343353, - -0.000165097600564429, - 179.99941616640407, - 0.0003294550736774856, - -0.00016509760059959242, - 179.99941616640425, - 0.0003294550735304601, - -0.00016509760054421235, - 179.9994161664041, - 0.000329455073487265, - -0.00016509760047972804, - 179.99941616640405, - 0.00032945507392613326, - -0.0001650976008215436, - 179.99941616640422, - 0.000329455073418029, - -0.00016509760031111357, - 179.99941616640402, - 0.0003294550733007597, - -0.00016509760033634938, - 179.99941616640416, - 0.00032945507356937876, - -0.00016509760042667846, - 179.99941616640433, - 0.0003294550735520848, - -0.00016509760044187548, - 179.99941616640425, - 0.00032945507349976843, - -0.0001650976004235236, - 179.99941616640405, - 0.00032945507362559394, - -0.00016509760044675095, - 179.99941616640422, - 0.00032945507418126593, - -0.00016509760105783044, - 179.99941616640464, - 0.0002122906635241481, - -0.0006923531062212631, - 31.867515274283885, - -148.12987728089553, - 0.003901782307120953, - -179.98770272850803, - 0.003004627681365604, - -0.0037683439517079385, - -0.0028250890561241516, - 179.99077346224945, - -148.1236869100805, - 31.878920534740107, - -179.99579919920492, - 179.99919436108686, - -0.0021124935899882466, - -0.004596892413272122, - 0.0016901626516019387, - -0.0005654239678955942, - 0.001531740082624222, - 0.003947365452804336, - 0.00021229066342454158, - -0.0006923531062234576, - 31.86751527428429, - -148.12987728089556, - 0.003901782307046536, - -179.98770272850828, - 0.003004627681403572, - -0.0037683439515838386, - -0.002825089056111575, - 179.99077346224962, - -148.12368691008027, - 31.87892053473987, - -179.99579919920518, - 179.99919436108704, - -0.002112493590050064, - -0.004596892413073086, - 0.0016901626513307442, - -0.0005654239679133688, - 0.0015317400828305727, - 0.003947365452754055, - 0.000212290663464385, - -0.0006923531061619563, - 31.867515274284024, - -148.1298772808956, - 0.0039017823069633652, - -179.98770272850814, - 0.0030046276813384815, - -0.003768343951553959, - -0.0028250890561012884, - 179.99077346224948, - -148.1236869100803, - 31.878920534740054, - -179.995799199205, - 179.9991943610869, - -0.002112493590113317, - -0.0045968924130931135, - 0.0016901626513906676, - -0.0005654239678146441, - 0.0015317400828025107, - 0.003947365452688508, - 0.00021229066346217088, - -0.0006923531059002958, - 31.86751527428392, - -148.12987728089595, - 0.0039017823066562715, - -179.98770272850817, - 0.003004627681296918, - -0.003768343951368077, - -0.0028250890561881655, - 179.99077346224945, - -148.1236869100801, - 31.878920534740043, - -179.99579919920504, - 179.99919436108678, - -0.0021124935900700935, - -0.004596892412890878, - 0.0016901626510837397, - -0.000565423967974629, - 0.0015317400829885045, - 0.003947365452718449, - 0.00021229066340240613, - -0.0006923531061136334, - 31.867515274284088, - -148.12987728089544, - 0.0039017823069151924, - -179.98770272850828, - 0.0030046276813916373, - -0.0037683439514884388, - -0.0028250890561481593, - 179.99077346224962, - -148.12368691008035, - 31.878920534740143, - -179.99579919920492, - 179.99919436108698, - -0.0021124935902257823, - -0.004596892413234391, - 0.0016901626515788636, - -0.0005654239676486421, - 0.0015317400827287713, - 0.003947365452650643, - 0.00021229066343865218, - -0.000692353106178704, - 31.867515274284006, - -148.12987728089567, - 0.003901782306923877, - -179.9877027285082, - 0.003004627681310684, - -0.0037683439514898903, - -0.0028250890560458336, - 179.99077346224945, - -148.12368691008035, - 31.878920534739997, - -179.99579919920507, - 179.9991943610869, - -0.0021124935900243055, - -0.004596892413044084, - 0.00169016265135606, - -0.0005654239678980569, - 0.0015317400827728003, - 0.003947365452698106, - ], - ("C", "C", "C", "H"): [ - 179.99982180856676, - -179.999629933107, - -0.00014254498270375754, - 0.000553506181497267, - -179.99906170853131, - 179.99959512453114, - 179.9993935116423, - 179.99982180856665, - -179.99962993310692, - -0.00014254498273032435, - 0.0005535061812328967, - -179.99906170853134, - 179.99959512453145, - 179.99939351164244, - 179.99982180856645, - -179.9996299331068, - -0.000142544982831274, - 0.0005535061815873507, - -179.99906170853131, - 179.9995951245315, - 179.99939351164247, - 179.99982180856654, - -179.99962993310692, - -0.00014254498271172806, - 0.0005535061814804978, - -179.99906170853131, - 179.99959512453117, - 179.99939351164235, - 179.9998218085665, - -179.99962993310677, - -0.00014254498261077861, - 0.0005535061815543073, - -179.9990617085313, - 179.9995951245313, - 179.99939351164207, - 179.99982180856648, - -179.99962993310675, - -0.0001425449825979931, - 0.0005535061812707156, - -179.99906170853166, - 179.99959512453123, - 179.99939351164235, - 179.99982180856657, - -179.99962993310697, - -0.0001425449825629596, - 0.0005535061811708186, - -179.99906170853157, - 179.9995951245313, - 179.99939351164247, - 179.99982180856642, - -179.99962993310663, - -0.00014254498207946263, - 0.000553506181124972, - -179.99906170853126, - 179.99959512453142, - 179.99939351164207, - 179.99982180856662, - -179.99962993310686, - -0.0001425449826589285, - 0.0005535061813292237, - -179.9990617085315, - 179.99959512453142, - 179.99939351164252, - 179.9998218085663, - -179.9996299331066, - -0.00014254498250185815, - 0.0005535061815333002, - -179.99906170853131, - 179.99959512453145, - 179.9993935116422, - 179.99982180856665, - -179.9996299331068, - -0.00014254498246466654, - 0.0005535061813368522, - -179.99906170853137, - 179.99959512453145, - 179.99939351164232, - 179.99982180856668, - -179.9996299331069, - -0.00014254498258205374, - 0.0005535061810338136, - -179.99906170853149, - 179.99959512453103, - 179.99939351164224, - 179.9881542153336, - -179.98455201986937, - -179.99649832511, - -179.99125810422188, - -179.98798936838796, - 179.99693406296777, - 179.9839717905231, - 179.9841483703456, - 0.036558761209881184, - 0.011133398244286625, - 0.005329552152639229, - -0.02037996931074214, - 179.97806883904155, - 179.98598028479785, - -179.986370800191, - -179.98638431697918, - 179.9650148100737, - 179.98363676211912, - -179.98003750541395, - -179.96611029950256, - 179.98815421533342, - -179.98455201986923, - -179.99649832510983, - -179.99125810422169, - -179.98798936838764, - 179.99693406296765, - 179.98397179052282, - 179.98414837034545, - 0.03655876120968245, - 0.011133398244569739, - 0.005329552152353919, - -0.020379969310734016, - 179.97806883904124, - 179.9859802847979, - -179.98637080019114, - -179.9863843169791, - 179.9650148100736, - 179.9836367621192, - -179.98003750541375, - -179.9661102995023, - 179.98815421533365, - -179.98455201986923, - -179.99649832510988, - -179.99125810422186, - -179.98798936838773, - 179.99693406296768, - 179.983971790523, - 179.98414837034542, - 0.03655876120977218, - 0.011133398244449921, - 0.0053295521525873555, - -0.020379969310720687, - 179.97806883904144, - 179.9859802847979, - -179.98637080019105, - -179.98638431697918, - 179.96501481007365, - 179.98363676211918, - -179.9800375054139, - -179.96611029950245, - 179.9881542153337, - -179.98455201986908, - -179.9964983251101, - -179.9912581042217, - -179.98798936838793, - 179.99693406296777, - 179.98397179052338, - 179.98414837034514, - 0.03655876120953189, - 0.011133398244574613, - 0.005329552152952591, - -0.02037996931094462, - 179.9780688390413, - 179.98598028479802, - -179.98637080019114, - -179.98638431697904, - 179.96501481007388, - 179.98363676211915, - -179.98003750541386, - -179.96611029950245, - 179.98815421533357, - -179.98455201986923, - -179.99649832510997, - -179.99125810422174, - -179.9879893683878, - 179.99693406296777, - 179.98397179052301, - 179.98414837034542, - 0.03655876120966472, - 0.011133398244293616, - 0.0053295521525588046, - -0.02037996931070319, - 179.97806883904144, - 179.98598028479773, - -179.9863708001911, - -179.98638431697918, - 179.96501481007368, - 179.98363676211926, - -179.98003750541386, - -179.96611029950267, - 179.98815421533368, - -179.98455201986923, - -179.99649832510997, - -179.99125810422183, - -179.9879893683877, - 179.99693406296777, - 179.983971790523, - 179.98414837034545, - 0.03655876120977276, - 0.011133398244415907, - 0.005329552152661196, - -0.02037996931068517, - 179.9780688390414, - 179.9859802847979, - -179.9863708001911, - -179.9863843169791, - 179.96501481007368, - 179.98363676211926, - -179.98003750541386, - -179.9661102995024, - ], - ("N", "C", "C", "C"): [ - -0.00034253920884789644, - -6.5878538666573876e-06, - -179.99793032897978, - -172.13983767549473, - 175.030020408156, - -0.0003425392087989911, - -6.587853790117146e-06, - -179.9979303289796, - -124.96858845131044, - 146.64059605921423, - -0.0003425392087189634, - -6.587853691065135e-06, - -179.9979303289797, - -178.03294954042045, - 178.69563385889057, - -0.00034253920863004536, - -6.587853813754573e-06, - -179.99793032897978, - 172.95822046524844, - -171.51648597235703, - -0.000342539209014621, - -6.58785365729739e-06, - -179.9979303289796, - -174.03305792356701, - 174.34346908747315, - -0.0003425392084837422, - -6.587854126246885e-06, - -179.99793032897978, - -176.64548395019764, - 177.15121391575033, - -0.0003425392087078485, - -6.587853633659992e-06, - -179.99793032897955, - -161.1512001021295, - 162.36397154635418, - -0.00034253920864115974, - -6.587854071514994e-06, - -179.99793032897975, - 165.44415673735432, - -170.98864607173144, - -0.0003425392088395587, - -6.587853809815036e-06, - -179.99793032897963, - -173.37046611594545, - 175.0515309741255, - -0.00034253920879565676, - -6.587853794619538e-06, - -179.99793032897972, - 168.29635382232945, - -174.907681203505, - -0.0003425392088856854, - -6.587853907178635e-06, - -179.99793032897978, - 175.9079793473282, - -176.6168308200302, - -0.0003425392089495981, - -6.587853760288971e-06, - -179.99793032897944, - -172.96346412728425, - 173.91032433701184, - ], - ("N", "C", "C", "H"): [ - 179.9990453179417, - 179.999944979995, - -179.99956529924063, - 7.871960665453799, - -4.957536239394753, - 179.99904531794178, - 179.99994497999486, - -179.99956529924077, - 55.04320988963837, - -33.34696058833633, - 179.99904531794164, - 179.99994497999495, - -179.99956529924063, - 1.978848800528496, - -1.2919227886600424, - 179.99904531794172, - 179.99994497999492, - -179.99956529924057, - -7.021251616197605, - 8.493182345211022, - 179.99904531794175, - 179.999944979995, - -179.9995652992405, - 5.978740417381598, - -5.644087560077219, - 179.99904531794212, - 179.999944979995, - -179.99956529924074, - 3.366314390751196, - -2.836342731800301, - 179.9990453179417, - 179.99994497999455, - -179.99956529924037, - 18.86932781642469, - -17.62636013607766, - 179.99904531794172, - 179.99994497999515, - -179.99956529924052, - -14.544044921696822, - 9.023797280718009, - 179.99904531794175, - 179.99994497999495, - -179.9995652992407, - 6.650061802608668, - -4.93880070830623, - 179.99904531794158, - 179.99994497999495, - -179.99956529924037, - -11.683118259116616, - 5.101987114063136, - 179.99904531794166, - 179.99994497999506, - -179.9995652992406, - -4.071492734118035, - 3.392837497537974, - 179.99904531794226, - 179.99994497999506, - -179.99956529924097, - 7.0570637912697896, - -6.080007345419953, - ], - ("N", "C", "C", "N"): [ - 0.001461144833742751, - 0.0014611448340052296, - 0.0014611448336942043, - 0.0014611448336611917, - 0.0014611448338459137, - 0.0014611448339770768, - 0.0014611448338165424, - 0.0014611448342868997, - 0.001461144833993899, - 0.0014611448337233312, - 0.0014611448339384742, - 0.0014611448345713052, - ], - ("C", "N", "C", "H"): [ - -179.99974123337208, - -5.259405489475201, - -179.9997412333724, - 28.712444326841517, - -179.9997412333723, - -13.784741507984592, - -179.99974123337196, - -21.133786281667096, - -179.9997412333723, - -6.866710975080816, - -179.9997412333722, - -13.738269093516411, - -179.99974123337176, - 2.963956233371154, - -179.99974123337242, - -19.42840729884847, - -179.9997412333722, - -3.0672583151593384, - -179.9997412333722, - 10.370262705677469, - -179.99974123337233, - -6.445405217923631, - -179.9997412333724, - -7.543537727412778, - ], - ("H", "C", "C", "H"): [ - -0.0010170183183288175, - -7.132386413978327e-05, - 0.0004306449617503705, - -0.0010170183179668132, - -7.132386386757232e-05, - 0.00043064496158682844, - -0.0010170183181123249, - -7.132386379603952e-05, - 0.0004306449616081602, - -0.0010170183184973992, - -7.132386407379267e-05, - 0.000430644961747105, - -0.001017018317943746, - -7.132386384958528e-05, - 0.0004306449613201784, - -0.0010170183181589208, - -7.132386406279447e-05, - 0.0004306449613930596, - -0.0010170183182915606, - -7.132386417827807e-05, - 0.0004306449616971395, - -0.001017018318234769, - -7.132386412443129e-05, - 0.0004306449615974942, - -0.001017018317991663, - -7.132386389231892e-05, - 0.0004306449615548292, - -0.0010170183181886382, - -7.13238639674748e-05, - 0.0004306449615006853, - -0.0010170183180094065, - -7.132386407482427e-05, - 0.0004306449616401606, - -0.0010170183177626278, - -7.132386359169466e-05, - 0.0004306449610037545, - -0.008758190635161547, - -0.004284644820170987, - -0.054803857294777006, - -0.02578606066978444, - -0.008758190635430704, - -0.00428464482010486, - -0.054803857295121036, - -0.025786060669811362, - -0.008758190635353302, - -0.004284644820325922, - -0.054803857294829124, - -0.025786060669833542, - -0.008758190635372193, - -0.004284644820380474, - -0.05480385729476865, - -0.025786060669949176, - -0.008758190635456511, - -0.004284644820169106, - -0.05480385729464078, - -0.025786060669797772, - -0.00875819063549297, - -0.004284644820321906, - -0.05480385729490334, - -0.025786060669835607, - ], - }, name=name, ), lambda name: CaseData( @@ -2340,587 +98,6 @@ optimizer=stk.Collapser(), ), ), - metal_atom_distances={ - (0, 1): 10.896944441369676, - (0, 2): 15.412420828743615, - (0, 3): 10.898227238903015, - (0, 4): 10.89758581086942, - (0, 5): 10.89758581086942, - (1, 2): 10.898227013424108, - (1, 3): 15.412420828751983, - (1, 4): 10.89758569813956, - (1, 5): 10.89758569813956, - (2, 3): 10.899510587395719, - (2, 4): 10.898868771096192, - (2, 5): 10.898868771096192, - (3, 4): 10.898868883845243, - (3, 5): 10.898868883845243, - (4, 5): 15.412420799323275, - }, - metal_centroid_angles={ - (0, 1): 89.97683228781653, - (0, 2): 179.97682458236295, - (0, 3): 89.99999891399814, - (0, 4): 89.98841325868929, - (0, 5): 89.98841325868929, - (1, 2): 89.99999229454916, - (1, 3): 179.97683120183706, - (1, 4): 89.988409950303, - (1, 5): 89.988409950303, - (2, 3): 90.02317650363617, - (2, 4): 90.01158205422921, - (2, 5): 90.01158205422921, - (3, 4): 90.0115853652926, - (3, 5): 90.0115853652926, - (4, 5): 179.96722969198316, - }, - min_centoid_distance=6.383408826308891, - avg_centoid_distance=(8.60220669009043, 1.4865651154918351), - radius_gyration=8.729709948310644, - min_atom_atom_distance=0.44643102631473996, - max_diameter=33.73047877339638, - bonds={ - ("C", "N"): [ - 1.353058965423603, - 1.3451283016975855, - 1.3465440099589545, - 1.3435751961267794, - 1.353058965423606, - 1.3451283016975866, - 1.3465440099589543, - 1.3435751961267801, - 1.3530589654236038, - 1.3451283016975855, - 1.3465440099589518, - 1.3435751961267812, - 1.3530589654236038, - 1.3451283016975877, - 1.3465440099589547, - 1.3435751961267768, - 1.3530589654236043, - 1.3451283016975895, - 1.3465440099589574, - 1.3435751961267766, - 1.3530589654236056, - 1.34512830169759, - 1.3465440099589556, - 1.3435751961267788, - 1.3530589654236065, - 1.3451283016975861, - 1.3465440099589556, - 1.343575196126776, - 1.3530589654236065, - 1.3451283016975881, - 1.3465440099589545, - 1.3435751961267786, - 1.3530589654236032, - 1.3451283016975886, - 1.3465440099589578, - 1.3435751961267792, - 1.3530589654236083, - 1.3451283016975855, - 1.3465440099589543, - 1.3435751961267772, - 1.353058965423604, - 1.3451283016975852, - 1.3465440099589534, - 1.3435751961267814, - 1.3530589654236045, - 1.3451283016975875, - 1.3465440099589556, - 1.3435751961267772, - ], - ("N", "Pd"): [ - 1.1462870375279308, - 1.1475305900353587, - 1.1469088095181883, - 1.1469088095181912, - 1.161990472392297, - 1.147530425643655, - 1.146908753463117, - 1.1469087534631166, - 1.1626430874302047, - 1.1481571311671641, - 1.147535254936645, - 1.1475352549366422, - 1.162643252571796, - 1.163868059705465, - 1.1475353110970166, - 1.147535311097016, - 1.1623167164933919, - 1.1635414322797313, - 1.1623166098662991, - 1.1635415389134378, - 1.1623167164933907, - 1.1635414322797317, - 1.1623166098662991, - 1.1635415389134378, - ], - }, - angles={ - ("Pd", "N", "C"): [ - 145.3364161204098, - 92.71566433965049, - 145.35355533585238, - 92.69066373740844, - 145.34750870396223, - 92.70174983337294, - 145.3424706652124, - 92.70457102697569, - 92.9848316785696, - 143.6882660203896, - 145.35355657996374, - 92.69066192199989, - 145.34247379868617, - 92.70456674767497, - 145.347511188711, - 92.70174591755409, - 93.02895476171841, - 143.65593509762243, - 145.32224414757718, - 92.73632319173113, - 145.31113736931889, - 92.75024650225262, - 145.3161777521393, - 92.74742165640887, - 93.02895634265737, - 143.6559339386069, - 93.00289339845105, - 143.67503539976832, - 145.31617461662046, - 92.74742593332886, - 145.31113488253465, - 92.75025041580395, - 93.0054944468834, - 143.67448567558878, - 92.98224296239863, - 143.68880992718314, - 93.00830159119344, - 143.66971673834388, - 92.97944812961104, - 143.69356020470838, - 93.00829939731649, - 143.66971817172484, - 92.97945032030039, - 143.6935587749178, - 93.00549700075612, - 143.67448363012494, - 92.98224041109339, - 143.68881196998996, - ], - ("C", "N", "C"): [ - 118.19129090481385, - 120.25508586967823, - 118.1912909048137, - 120.25508586967857, - 118.19129090481388, - 120.25508586967835, - 118.19129090481366, - 120.25508586967821, - 118.19129090481367, - 120.25508586967818, - 118.1912909048137, - 120.25508586967823, - 118.19129090481375, - 120.25508586967818, - 118.19129090481353, - 120.25508586967831, - 118.19129090481373, - 120.25508586967825, - 118.19129090481367, - 120.25508586967828, - 118.19129090481375, - 120.25508586967838, - 118.1912909048137, - 120.25508586967831, - ], - ("N", "Pd", "N"): [ - 146.05077203329736, - 85.11751169319207, - 85.11751169319201, - 147.47168093004834, - 85.51711582194356, - 85.51711582195776, - 85.10356916634119, - 85.10356916634086, - 148.9898489867429, - 85.54406044093516, - 85.54406044093523, - 146.05076337936742, - 148.94063169866487, - 85.9029392004031, - 85.88930722388662, - 148.94063169866487, - 85.90293920041705, - 85.88930722388649, - 85.10356771364772, - 85.10356771363362, - 147.57180639857145, - 85.54405917253885, - 85.54405917253868, - 85.13206384277788, - 85.13206384277795, - 85.52969470280868, - 85.52969470280857, - 146.15257104730188, - 85.88930937763236, - 85.87571674231248, - 85.88930937761859, - 85.87571674231253, - 146.0507542460134, - 148.94063170205763, - 148.9406317020578, - 146.15258017587263, - ], - ("N", "C", "C"): [ - 121.5534906677226, - 122.20332532342933, - 122.45456305486576, - 118.34402198600888, - 121.5534906677226, - 122.20332532342938, - 122.45456305486576, - 118.3440219860084, - 121.55349066772247, - 122.20332532342918, - 122.45456305486589, - 118.34402198600843, - 121.5534906677227, - 122.20332532342941, - 122.45456305486576, - 118.34402198600894, - 121.55349066772266, - 122.20332532342931, - 122.45456305486566, - 118.34402198600894, - 121.5534906677226, - 122.20332532342935, - 122.45456305486579, - 118.34402198600873, - 121.55349066772243, - 122.20332532342935, - 122.45456305486576, - 118.34402198600888, - 121.55349066772266, - 122.20332532342948, - 122.45456305486586, - 118.34402198600868, - 121.55349066772268, - 122.2033253234291, - 122.45456305486573, - 118.34402198600858, - 121.55349066772256, - 122.20332532342921, - 122.45456305486582, - 118.34402198600868, - 121.5534906677226, - 122.20332532342935, - 122.45456305486583, - 118.3440219860085, - 121.5534906677226, - 122.20332532342935, - 122.45456305486593, - 118.34402198600871, - ], - }, - torsions={ - ("Pd", "N", "C", "C"): [ - -150.4154059000122, - 163.67441178347977, - -150.37677213869708, - 163.66209621087182, - -150.39954395378984, - 163.6711220405506, - -150.39263169379097, - 163.66538225321577, - -164.7009925945828, - 153.57871485868606, - -150.37676933211472, - 163.66209531660206, - -150.39262580717937, - 163.6653806044848, - -150.39953717631272, - 163.67111965231177, - -164.72286976688872, - 153.6413964043478, - -150.4473052217879, - 163.68458899306444, - -150.46315025411545, - 163.68787886215839, - -150.4700746999408, - 163.69362602724752, - -164.72287055078775, - 153.64139864852854, - -164.70994774314025, - 153.60438501371547, - -150.47008057315244, - 163.69362767513792, - -150.46315701775086, - 163.687881249329, - -164.7147691600345, - 153.61357653620703, - -164.6961928591633, - 153.5695614849389, - -164.7090979131514, - 153.60657336895784, - -164.70183924722951, - 153.57653305805795, - -164.70909637208274, - 153.60656954703143, - -164.70184078741656, - 153.57653687980556, - -164.71476997303765, - 153.61357945891274, - -164.69619204829434, - 153.56955856400685, - ], - ("C", "N", "Pd", "N"): [ - -52.023697298649715, - 21.699200044816045, - -125.74659464211479, - -52.0554770743546, - 153.80020282338373, - -125.77518598187828, - 80.06133619985025, - 21.6960113712456, - -132.46150978829857, - 153.79962200110748, - -132.47748065542677, - 80.07672465764242, - -153.65877361989558, - 132.73002997657724, - -80.04757721637219, - -52.05547938326251, - 153.80020286536376, - 23.064139247026052, - -131.09337699259535, - -127.14332427503561, - 78.6932035945271, - 48.97976795495558, - -24.6314284485716, - 122.59096435847897, - -125.78245977679221, - 21.671505628082368, - 21.674699665408177, - -132.48877815286332, - -125.75387427604096, - 80.08860456441487, - 80.07322012094615, - -132.47281447417933, - -153.6576259872287, - -80.00076565110801, - 132.68551367665071, - -153.65830590157975, - 48.95908451875478, - -127.12884532319063, - 78.64859347792681, - 23.165685039686913, - -131.05090747384213, - 48.92926738852439, - 122.5861277246451, - -24.727592947596207, - -52.02627750781451, - -52.05289710281819, - 153.78958173763766, - 153.810244673914, - -153.6694005311077, - -78.63442949554072, - 131.3465958201631, - -153.64767204740934, - 48.998495227550045, - 131.3180286802176, - -26.06629937243698, - -78.63145315193209, - 124.00880254606055, - 48.94033189315578, - 123.97530292872278, - -26.04367175557344, - -153.64700322651748, - 131.31802573791893, - -78.66299957778838, - -153.6700808869437, - 48.970171651193404, - -78.63443231434874, - 123.9752977125674, - 131.31370009533705, - -26.040130233793214, - 48.96867188070658, - -26.066299154857003, - 123.95267552943568, - 21.67149897017749, - -125.78245773670662, - -125.75387755423995, - 80.08860620613868, - 21.674692526230338, - -132.48877960420697, - -132.47281878119625, - 80.07322451191962, - -153.6576260286505, - 132.68551803423546, - -80.00077009153658, - -51.997462168305745, - 153.7991379768883, - 23.16567813229571, - -131.05090870526027, - -127.12884880680001, - 78.64859490287598, - 48.92926919615123, - -24.727586740962828, - 122.58612513326514, - 21.77439278960927, - -125.76931712622056, - -125.74073765033152, - 80.0426755121125, - 21.777566975827256, - -132.44498931449678, - -132.42900706519674, - 80.02728301897348, - 132.6810094155372, - -79.99762121869672, - 23.143257146829296, - -131.07930405205326, - -127.10641743033305, - 78.67699005613794, - -24.70160016412828, - 122.61976920163778, - -51.99494566405491, - -51.96822501044932, - 153.80921869922668, - 153.7884674983891, - 131.31369785374284, - -78.6600207658817, - -78.66299721602995, - 123.95267473131548, - 131.34226489198522, - -26.017479410022126, - -26.040134871297788, - 123.98614650907767, - -78.63145078809187, - 131.3422678315288, - 131.34659358189884, - -26.04367639118502, - -78.66001794858028, - 123.98615172228948, - 124.00880175004527, - -26.017479630334073, - -52.052900593679674, - -52.02628443433404, - 153.81024343522864, - 153.78958316669895, - -153.64700460697915, - -153.67007950614166, - 48.97017619185099, - 48.968667340366274, - -153.66939902717587, - -153.64767355042574, - 48.99849612044402, - 48.940330999740254, - -51.968221530535786, - -51.99493875296791, - 153.78846873350307, - 153.80921727058168, - ], - ("C", "N", "C", "C"): [ - -9.522309657420727e-05, - 0.0025246278671328224, - -0.0015368971508784505, - 0.002584298224398102, - -9.52230966722856e-05, - 0.0025246278673199786, - -0.00153689715077464, - 0.0025842982241423345, - -9.522309671790354e-05, - 0.0025246278674934406, - -0.001536897150638974, - 0.002584298223964221, - -9.522309654569603e-05, - 0.0025246278672252575, - -0.0015368971508088513, - 0.002584298224265653, - -9.522309643735347e-05, - 0.002524627867064338, - -0.0015368971512323703, - 0.0025842982246584156, - -9.522309657420704e-05, - 0.0025246278672537833, - -0.0015368971509492418, - 0.002584298224377541, - -9.522309658104985e-05, - 0.0025246278672811755, - -0.0015368971507309958, - 0.002584298224233678, - -9.52230965399938e-05, - 0.002524627867254923, - -0.0015368971506413355, - 0.0025842982241286385, - -9.522309634269601e-05, - 0.00252462786705977, - -0.0015368971508607594, - 0.00258429822416516, - -9.522309658903231e-05, - 0.0025246278674420893, - -0.0015368971508702002, - 0.002584298224247376, - -9.522309663921279e-05, - 0.0025246278672903075, - -0.0015368971506802625, - 0.0025842982240509953, - -9.522309643849378e-05, - 0.0025246278672081297, - -0.0015368971505858927, - 0.0025842982239687854, - ], - ("N", "C", "C", "C"): [ - -0.004104968945188446, - -0.000776501588310222, - -0.000765564372668298, - -0.0014392589680501313, - -0.004104968945313624, - -0.0007765015883803146, - -0.0007655643727098696, - -0.0014392589676829172, - -0.004104968945617624, - -0.0007765015883236585, - -0.0007655643725897747, - -0.001439258967715452, - -0.004104968945339422, - -0.0007765015884060139, - -0.0007655643726221057, - -0.0014392589679804101, - -0.004104968945197716, - -0.0007765015884457308, - -0.0007655643723634239, - -0.001439258968203527, - -0.004104968945322901, - -0.0007765015884176931, - -0.0007655643726498196, - -0.0014392589678827981, - -0.004104968945415348, - -0.0007765015883855709, - -0.0007655643726498223, - -0.001439258968031541, - -0.004104968945347805, - -0.000776501588477277, - -0.0007655643727699229, - -0.0014392589678734985, - -0.004104968945120059, - -0.0007765015887208398, - -0.0007655643725389565, - -0.0014392589677340532, - -0.004104968945585162, - -0.0007765015885088154, - -0.0007655643725990097, - -0.0014392589678223708, - -0.004104968945324643, - -0.0007765015883689258, - -0.0007655643727791601, - -0.0014392589676131952, - -0.004104968945286968, - -0.0007765015886390666, - -0.0007655643728114937, - -0.0014392589676131987, - ], - }, name=name, ), ), diff --git a/tests/calculators/geometry/geom_jsons/case_data0_angles.json b/tests/calculators/geometry/geom_jsons/case_data0_angles.json new file mode 100644 index 0000000..01a534c --- /dev/null +++ b/tests/calculators/geometry/geom_jsons/case_data0_angles.json @@ -0,0 +1,158 @@ +{ + "C_C_C": [ + 109.6089223902024, + 108.90695271548074, + 111.67645629469264, + 109.60892239020247, + 108.90695271548083, + 111.67645629469276, + 109.60892239020248, + 108.90695271548086, + 111.67645629469273, + 109.60892239020247, + 108.9069527154809, + 111.67645629469285 + ], + "C_C_H": [ + 109.63588762040816, + 116.94447583615552, + 116.3314178594175, + 119.01430849977352, + 109.14290716500189, + 107.83576636825926, + 109.63588762040806, + 116.94447583615548, + 116.33141785941747, + 119.01430849977365, + 109.14290716500192, + 107.8357663682591, + 109.63588762040813, + 116.94447583615535, + 116.3314178594175, + 119.01430849977355, + 109.14290716500166, + 107.83576636825927, + 109.63588762040807, + 116.94447583615545, + 116.33141785941734, + 119.01430849977375, + 109.14290716500173, + 107.83576636825906, + 104.2677515029799, + 109.61474925620927, + 110.35673768909373, + 106.25463175206693, + 104.26775150298006, + 109.61474925620922, + 110.35673768909393, + 106.25463175206697, + 104.26775150298002, + 109.61474925620908, + 110.35673768909386, + 106.25463175206706, + 104.26775150298002, + 109.61474925620922, + 110.35673768909385, + 106.25463175206693, + 104.26775150297999, + 109.61474925620938, + 110.35673768909378, + 106.25463175206694, + 104.26775150297996, + 109.61474925620911, + 110.35673768909379, + 106.25463175206698 + ], + "C_N_C": [ + 161.35234376224383, + 165.2352428602137, + 157.3027299453875, + 171.37095332734174, + 159.61015708983211, + 161.16101059894817, + 159.1896893681382, + 165.49170220458248, + 154.794697527218, + 163.9080850110681, + 165.75158643048522, + 162.24450366466067 + ], + "C_C_N": [ + 162.8203910426531, + 170.35670333589815, + 170.4655077163733, + 165.04239783372626, + 159.09351599476065, + 164.14199047231756, + 168.41978583446883, + 166.7275994381318, + 174.95699450367982, + 170.85451073587862, + 168.86162366108582, + 171.92155030063773, + 111.18404272282523, + 114.08905926922303, + 111.18404272282523, + 114.0890592692229, + 111.18404272282505, + 114.08905926922314, + 111.18404272282515, + 114.08905926922303, + 111.1840427228252, + 114.08905926922304, + 111.18404272282515, + 114.08905926922303 + ], + "H_C_N": [ + 79.8427196127419, + 70.38781941006917, + 60.44863200355997, + 74.38542609743146, + 83.87555740594973, + 56.573065930913785, + 73.04747873517864, + 68.4881395712036, + 62.229268146249375, + 72.19987731577093, + 74.78005546438318, + 57.037329116920255, + 110.36116627023634, + 106.87048520548865, + 107.60184585812254, + 111.84274443440471, + 110.36116627023611, + 106.87048520548849, + 107.60184585812263, + 111.84274443440474, + 110.36116627023611, + 106.87048520548859, + 107.60184585812266, + 111.8427444344047, + 110.36116627023617, + 106.87048520548859, + 107.60184585812263, + 111.8427444344047, + 110.3611662702362, + 106.87048520548856, + 107.60184585812263, + 111.84274443440461, + 110.36116627023618, + 106.87048520548866, + 107.60184585812279, + 111.84274443440465 + ], + "H_C_H": [ + 111.70358826491058, + 109.03276799598676, + 111.70358826491075, + 109.03276799598665, + 111.70358826491079, + 109.03276799598657, + 111.70358826491079, + 109.03276799598659, + 111.70358826491078, + 109.03276799598652, + 111.70358826491072, + 109.03276799598667 + ] +} \ No newline at end of file diff --git a/tests/calculators/geometry/geom_jsons/case_data0_bonds.json b/tests/calculators/geometry/geom_jsons/case_data0_bonds.json new file mode 100644 index 0000000..2111852 --- /dev/null +++ b/tests/calculators/geometry/geom_jsons/case_data0_bonds.json @@ -0,0 +1,90 @@ +{ + "C_C": [ + 1.4964207599576376, + 1.493006173309178, + 1.4858847159154867, + 1.4964207599576373, + 1.4930061733091786, + 1.4858847159154862, + 1.4964207599576373, + 1.493006173309179, + 1.4858847159154862, + 1.4964207599576376, + 1.493006173309177, + 1.4858847159154849, + 1.5242699715855845, + 1.5242699715855825, + 1.5242699715855854, + 1.5242699715855852, + 1.5242699715855847, + 1.5242699715855872 + ], + "C_H": [ + 1.0951341031602342, + 1.099933772998511, + 1.0942847214283429, + 1.0929461020964661, + 1.0951341031602368, + 1.0999337729985124, + 1.0942847214283438, + 1.0929461020964653, + 1.0951341031602393, + 1.0999337729985068, + 1.0942847214283469, + 1.0929461020964661, + 1.0951341031602375, + 1.0999337729985121, + 1.0942847214283458, + 1.0929461020964641, + 1.1064616061901185, + 1.1137075921164301, + 1.1241043691194332, + 1.0985801491781595, + 1.1064616061901162, + 1.1137075921164288, + 1.1241043691194301, + 1.0985801491781562, + 1.1064616061901171, + 1.113707592116425, + 1.1241043691194303, + 1.0985801491781577, + 1.106461606190117, + 1.1137075921164274, + 1.124104369119431, + 1.0985801491781584, + 1.1064616061901178, + 1.113707592116427, + 1.1241043691194321, + 1.098580149178158, + 1.1064616061901178, + 1.113707592116428, + 1.1241043691194315, + 1.09858014917816 + ], + "C_N": [ + 1.436872853719048, + 1.403826300377452, + 1.436872853719049, + 1.4038263003774543, + 1.4368728537190492, + 1.4038263003774534, + 1.4368728537190487, + 1.4038263003774534, + 1.436872853719049, + 1.4038263003774534, + 1.436872853719049, + 1.4038263003774534, + 1.6430482911049287, + 1.599136298795819, + 1.6121922229219088, + 1.711579728451745, + 1.6781651947826648, + 1.568781330927008, + 1.7870259597520497, + 1.6021932079858616, + 1.6251372560404906, + 1.7394872936015038, + 1.6679765435680882, + 1.6126281966426081 + ] +} \ No newline at end of file diff --git a/tests/calculators/geometry/geom_jsons/case_data0_properties.json b/tests/calculators/geometry/geom_jsons/case_data0_properties.json new file mode 100644 index 0000000..2b63005 --- /dev/null +++ b/tests/calculators/geometry/geom_jsons/case_data0_properties.json @@ -0,0 +1,12 @@ +{ + "radius_gyration": 5.459613226863759, + "avg_centoid_distance": [ + 5.362664259844192, + 1.0243088514385892 + ], + "max_diameter": 19.27187786331859, + "metal_centroid_angles": {}, + "metal_atom_distances": {}, + "min_atom_atom_distance": 1.0929461020964641, + "min_centoid_distance": 3.3458442259458723 +} \ No newline at end of file diff --git a/tests/calculators/geometry/geom_jsons/case_data0_torsions.json b/tests/calculators/geometry/geom_jsons/case_data0_torsions.json new file mode 100644 index 0000000..61f088b --- /dev/null +++ b/tests/calculators/geometry/geom_jsons/case_data0_torsions.json @@ -0,0 +1,202 @@ +{ + "C_C_C_H": [ + 60.010318582637844, + 179.9965106216439, + -59.995358668876754, + -58.81391895647642, + 62.44967766608776, + -60.770851242899205, + 60.01031858263789, + 179.99651062164398, + -59.995358668876754, + -58.81391895647614, + 62.44967766608797, + -60.770851242899376, + 60.01031858263796, + 179.9965106216439, + -59.99535866887677, + -58.813918956476186, + 62.44967766608796, + -60.77085124289932, + 60.01031858263802, + 179.996510621644, + -59.99535866887692, + -58.81391895647597, + 62.44967766608797, + -60.77085124289941 + ], + "C_C_C_N": [ + -72.60094098014855, + 95.89093363239701, + 107.00738054707006, + -142.9194959457233, + -130.54758311796544, + 166.61788919431442, + -135.8312790823762, + 110.65495593961624, + 162.88235175757222, + -128.15547363850388, + -74.67261190746305, + 103.38755109208654, + -48.41112767760655, + 77.05505678863534, + 88.34896280944943, + -161.75537278948474, + -149.20600085558587, + -169.19229750314383, + -115.84358790205002, + 121.31437243388251, + 120.93998983484381, + -117.49605714423747, + -116.6149738301913, + 123.37524227241258 + ], + "C_N_C_C": [ + 135.8469217194848, + 92.77977048783512, + -14.79876892916546, + 83.97010613651707, + -171.7143271460653, + 156.494625902481, + -158.4573028755968, + -25.594727625024365, + 106.9158885213561, + 85.26402930746602, + 125.94270072479922, + 139.69745865411846, + 154.2013204356405, + 93.65207939571692, + -69.30991313069421, + 92.81729595281445, + -140.1893192747426, + 167.2610961432877, + 166.8811587856674, + 49.58729206506206, + 52.34161025844226, + 48.247464206135994, + 162.88193311734167, + 167.6149834801953 + ], + "C_N_C_H": [ + 13.042701835982808, + -108.60791096089258, + 65.48145297043261, + -56.16915982644274, + 33.690406018979104, + -87.96020677789637, + -98.97261096593718, + -150.3536546312589, + -5.48809172068504, + 86.38782923471268, + -33.33176247643033, + 3.138480841297286, + -118.5121319555782, + 16.893238770616513, + -104.75737402625899, + -166.5581979216472, + -87.32858340632062, + 6.613577329050923, + 39.046452545949805, + -80.67313916519312, + 104.65581283556672, + -15.063778875576139, + 44.456876259785766, + -77.19373653708968, + -115.629076102829, + 176.75200541554094, + -12.767961721127683, + 51.72629089597658, + -67.99330081516628, + 47.72706522765094, + -71.99252648349209, + 52.4601155905046, + -67.25947612063811, + -129.5369774451024, + -123.80787076081744, + -14.678088460277202 + ], + "H_C_C_H": [ + -179.77844731660363, + -179.905271000488, + 61.0924402736622, + -179.77844731660363, + -179.90527100048806, + 61.09244027366246, + -179.77844731660338, + -179.90527100048803, + 61.0924402736622, + -179.7784473166036, + -179.90527100048797, + 61.09244027366244, + 179.90240890894194, + -63.49228456520382, + -58.82950278051888, + 57.77580374533538, + 179.9024089089419, + -63.49228456520394, + -58.82950278051856, + 57.77580374533562, + 179.90240890894194, + -63.49228456520404, + -58.82950278051846, + 57.77580374533559, + 179.9024089089419, + -63.49228456520399, + -58.829502780518574, + 57.77580374533554, + 179.902408908942, + -63.492284565203946, + -58.82950278051852, + 57.77580374533556, + 179.902408908942, + -63.492284565203896, + -58.82950278051858, + 57.77580374533556 + ], + "H_C_C_N": [ + -12.775708100656825, + 47.48346943672559, + -23.01313671558468, + 43.09926310984535, + -15.746868665502141, + -8.249114408365257, + -31.4341258382772, + 71.67328273926745, + -41.849013559346375, + 1.1569011871171206, + 4.240822514824, + 2.410302085900952, + 57.09563956068043, + 173.7009460865347, + 62.80623389751638, + -175.92567779194442, + 57.095639560680574, + 173.70094608653477, + 62.8062338975162, + -175.92567779194425, + 57.09563956068075, + 173.7009460865348, + 62.80623389751612, + -175.92567779194428, + 57.095639560680624, + 173.70094608653474, + 62.80623389751617, + -175.9256777919443, + 57.09563956068067, + 173.70094608653477, + 62.806233897516265, + -175.92567779194425, + 57.09563956068072, + 173.70094608653486, + 62.80623389751611, + -175.92567779194445 + ], + "N_C_C_N": [ + -60.00053545074512, + -60.00053545074512, + -60.00053545074507, + -60.00053545074509, + -60.000535450745055, + -60.00053545074514 + ] +} \ No newline at end of file diff --git a/tests/calculators/geometry/geom_jsons/case_data1_angles.json b/tests/calculators/geometry/geom_jsons/case_data1_angles.json new file mode 100644 index 0000000..61dc460 --- /dev/null +++ b/tests/calculators/geometry/geom_jsons/case_data1_angles.json @@ -0,0 +1,580 @@ +{ + "Fe_N_C": [ + 140.28205182933047, + 95.21781444550842, + 101.49064910103917, + 170.8543511864703, + 138.84550365213224, + 96.52618517058006, + 100.82471069074711, + 174.27249519062724, + 139.95319712545822, + 95.39139921628822, + 100.96939329680325, + 167.74532563253783, + 140.28205182933047, + 95.21781444550851, + 101.49064910103935, + 171.67933837041596, + 138.84550365213212, + 96.5261851705804, + 100.82471069074707, + 172.74302979862378, + 139.9531971254581, + 95.39139921628849, + 100.96939329680316, + 172.91640387032976, + 140.2820518293304, + 95.21781444550864, + 101.49064910103914, + 172.67122303164518, + 138.84550365213212, + 96.52618517058015, + 100.824710690747, + 160.7830139851604, + 139.95319712545822, + 95.39139921628819, + 100.96939329680319, + 176.09350973673068, + 140.28205182933033, + 95.21781444550847, + 101.4906491010393, + 175.55217008624157, + 138.84550365213224, + 96.52618517057996, + 100.82471069074693, + 166.29051000459506, + 139.95319712545808, + 95.39139921628824, + 100.96939329680323, + 174.0734079693199 + ], + "C_N_C": [ + 123.92092753089283, + 70.44567208869145, + 123.92092753089267, + 82.39938427042271, + 123.92092753089257, + 91.22964971229774, + 123.92092753089261, + 86.06859864513784, + 123.92092753089238, + 85.76029335412801, + 123.92092753089234, + 72.33525027963657, + 123.92092753089264, + 75.11816915130174, + 123.92092753089261, + 60.757010413246604, + 123.92092753089254, + 75.43861504531898, + 123.9209275308929, + 75.16000150150384, + 123.92092753089274, + 72.60662309575123, + 123.92092753089273, + 84.84428575009592 + ], + "C_C_C": [ + 119.16464174137893, + 122.98062571083561, + 121.17963390913992, + 118.1595963155278, + 119.16464174137903, + 122.98062571083531, + 121.17963390913974, + 118.15959631552788, + 119.16464174137897, + 122.98062571083508, + 121.17963390913964, + 118.15959631552803, + 119.16464174137884, + 122.98062571083564, + 121.17963390913982, + 118.15959631552765, + 119.16464174137877, + 122.98062571083535, + 121.17963390913977, + 118.15959631552793, + 119.16464174137893, + 122.98062571083497, + 121.17963390913961, + 118.1595963155282, + 119.16464174137917, + 122.98062571083544, + 121.17963390913964, + 118.15959631552762, + 119.16464174137916, + 122.98062571083523, + 121.17963390913982, + 118.15959631552798, + 119.16464174137907, + 122.98062571083533, + 121.17963390913987, + 118.15959631552775, + 119.16464174137904, + 122.98062571083551, + 121.17963390913961, + 118.15959631552768, + 119.1646417413789, + 122.98062571083541, + 121.17963390913977, + 118.15959631552793, + 119.16464174137923, + 122.98062571083545, + 121.17963390914008, + 118.15959631552775, + 119.35085779167991, + 117.24594693842147, + 120.31276051809797, + 123.10199619209126, + 118.54756771937994, + 120.48174986357536, + 121.27188085837322, + 122.44124667199084, + 123.1415396165934, + 116.32190175418793, + 119.99152667002286, + 119.19259769953382, + 120.53644344476547, + 119.33376332999296, + 120.79067225982773, + 120.15499507839824, + 119.35085779167991, + 117.2459469384214, + 120.31276051809807, + 123.10199619209143, + 118.54756771937984, + 120.48174986357533, + 121.27188085837322, + 122.44124667199081, + 123.14153961659325, + 116.32190175418809, + 119.99152667002262, + 119.19259769953392, + 120.5364434447655, + 119.33376332999333, + 120.79067225982759, + 120.15499507839817, + 119.35085779167987, + 117.24594693842134, + 120.31276051809816, + 123.10199619209146, + 118.54756771937981, + 120.48174986357552, + 121.27188085837322, + 122.44124667199078, + 123.1415396165933, + 116.32190175418799, + 119.99152667002282, + 119.19259769953375, + 120.53644344476552, + 119.33376332999313, + 120.79067225982766, + 120.15499507839822, + 119.35085779167991, + 117.2459469384213, + 120.31276051809817, + 123.10199619209149, + 118.54756771937987, + 120.4817498635753, + 121.27188085837334, + 122.44124667199081, + 123.14153961659332, + 116.32190175418802, + 119.99152667002292, + 119.19259769953378, + 120.5364434447655, + 119.33376332999298, + 120.79067225982773, + 120.15499507839819, + 119.35085779167979, + 117.24594693842137, + 120.31276051809807, + 123.10199619209149, + 118.54756771937994, + 120.48174986357536, + 121.27188085837322, + 122.44124667199085, + 123.14153961659345, + 116.32190175418796, + 119.99152667002286, + 119.19259769953388, + 120.53644344476542, + 119.33376332999319, + 120.7906722598276, + 120.15499507839817, + 119.35085779167991, + 117.24594693842143, + 120.3127605180978, + 123.1019961920913, + 118.54756771937981, + 120.48174986357542, + 121.27188085837334, + 122.44124667199107, + 123.14153961659373, + 116.3219017541878, + 119.99152667002315, + 119.19259769953388, + 120.5364434447653, + 119.33376332999298, + 120.79067225982766, + 120.15499507839817 + ], + "C_C_H": [ + 119.53356338396304, + 119.10983009525042, + 118.4315558698574, + 121.21458610294927, + 118.58781841927993, + 121.30179487327503, + 118.47757827538202, + 120.62581758070068, + 119.53356338396304, + 119.10983009525054, + 118.4315558698575, + 121.21458610294901, + 118.58781841928018, + 121.3017948732749, + 118.47757827538211, + 120.62581758070084, + 119.53356338396304, + 119.1098300952504, + 118.43155586985753, + 121.21458610294872, + 118.58781841928037, + 121.30179487327499, + 118.47757827538192, + 120.62581758070104, + 119.53356338396331, + 119.10983009525076, + 118.43155586985746, + 121.21458610294923, + 118.58781841927988, + 121.3017948732748, + 118.47757827538172, + 120.6258175807009, + 119.53356338396298, + 119.10983009525067, + 118.4315558698575, + 121.21458610294889, + 118.58781841928013, + 121.30179487327524, + 118.47757827538197, + 120.62581758070094, + 119.53356338396283, + 119.1098300952507, + 118.43155586985766, + 121.21458610294884, + 118.58781841928037, + 121.30179487327524, + 118.47757827538197, + 120.62581758070071, + 119.53356338396293, + 119.10983009525066, + 118.43155586985763, + 121.21458610294937, + 118.58781841927988, + 121.30179487327489, + 118.47757827538224, + 120.6258175807008, + 119.5335633839628, + 119.10983009525067, + 118.43155586985733, + 121.21458610294911, + 118.58781841928041, + 121.30179487327503, + 118.4775782753824, + 120.62581758070068, + 119.53356338396308, + 119.10983009525035, + 118.43155586985766, + 121.21458610294901, + 118.58781841927998, + 121.3017948732748, + 118.47757827538199, + 120.62581758070102, + 119.53356338396298, + 119.10983009525093, + 118.43155586985782, + 121.21458610294945, + 118.58781841927964, + 121.30179487327493, + 118.47757827538197, + 120.62581758070067, + 119.53356338396304, + 119.1098300952508, + 118.43155586985759, + 121.21458610294924, + 118.58781841927998, + 121.30179487327509, + 118.47757827538211, + 120.62581758070064, + 119.53356338396293, + 119.10983009525019, + 118.43155586985743, + 121.21458610294907, + 118.58781841928008, + 121.3017948732748, + 118.4775782753823, + 120.62581758070097, + 117.54999819079057, + 121.1136104555342, + 123.09914377746638, + 117.97374634849078, + 119.33224016905376, + 121.54449411330977, + 115.7843767104822, + 119.39587877200137, + 118.61378979418384, + 119.93198434088407, + 120.80863284015751, + 121.39465639232347, + 119.85760382228584, + 120.88409028606968, + 120.87540669643752, + 118.9609121537719, + 117.54999819079082, + 121.11361045553397, + 123.09914377746615, + 117.97374634849082, + 119.33224016905376, + 121.54449411330974, + 115.78437671048222, + 119.39587877200134, + 118.61378979418384, + 119.93198434088397, + 120.80863284015739, + 121.39465639232372, + 119.85760382228561, + 120.8840902860695, + 120.87540669643752, + 118.96091215377216, + 117.54999819079072, + 121.1136104555341, + 123.09914377746631, + 117.97374634849072, + 119.33224016905379, + 121.54449411330965, + 115.7843767104821, + 119.39587877200134, + 118.61378979418373, + 119.9319843408842, + 120.80863284015751, + 121.39465639232363, + 119.85760382228568, + 120.88409028606962, + 120.87540669643748, + 118.96091215377196, + 117.54999819079055, + 121.11361045553407, + 123.09914377746644, + 117.97374634849082, + 119.33224016905366, + 121.54449411330977, + 115.78437671048212, + 119.39587877200134, + 118.61378979418384, + 119.93198434088407, + 120.80863284015774, + 121.39465639232345, + 119.85760382228561, + 120.88409028606972, + 120.87540669643758, + 118.9609121537719, + 117.5499981907909, + 121.11361045553403, + 123.09914377746621, + 117.97374634849078, + 119.33224016905382, + 121.54449411330974, + 115.78437671048215, + 119.39587877200132, + 118.61378979418376, + 119.93198434088399, + 120.80863284015774, + 121.39465639232355, + 119.85760382228543, + 120.88409028606947, + 120.87540669643755, + 118.96091215377216, + 117.54999819079069, + 121.11361045553407, + 123.09914377746628, + 117.9737463484906, + 119.33224016905363, + 121.54449411330988, + 115.78437671048228, + 119.39587877200137, + 118.61378979418363, + 119.93198434088401, + 120.80863284015787, + 121.39465639232343, + 119.85760382228548, + 120.88409028606952, + 120.8754066964375, + 118.96091215377211 + ], + "N_Fe_N": [ + 101.70415772472656, + 92.0673932551063, + 166.8613105285882, + 91.53415844743905, + 91.87627672849722, + 90.02581173834655, + 75.95913322424731, + 166.5978117181809, + 76.02420381044048, + 100.81763860181657, + 91.59058100416932, + 166.00470154914592, + 90.67264629065744, + 74.99500701678433, + 101.72125339526126, + 101.70415772472633, + 92.0673932551066, + 166.8613105285881, + 91.5341584474393, + 91.87627672849686, + 90.02581173834643, + 75.9591332242475, + 166.59781171818088, + 76.02420381044053, + 100.81763860181644, + 91.5905810041695, + 166.00470154914586, + 90.67264629065723, + 74.9950070167845, + 101.72125339526114, + 101.70415772472651, + 92.06739325510631, + 166.86131052858838, + 91.5341584474392, + 91.87627672849725, + 90.02581173834643, + 75.95913322424737, + 166.59781171818085, + 76.0242038104406, + 100.81763860181645, + 91.59058100416928, + 166.0047015491459, + 90.67264629065733, + 74.99500701678438, + 101.72125339526126, + 101.70415772472631, + 92.06739325510634, + 166.8613105285882, + 91.53415844743913, + 91.87627672849702, + 90.02581173834633, + 75.95913322424751, + 166.59781171818105, + 76.02420381044055, + 100.81763860181651, + 91.5905810041695, + 166.0047015491458, + 90.67264629065743, + 74.9950070167845, + 101.72125339526124 + ], + "N_C_C": [ + 119.38606229832016, + 122.43221968143092, + 116.38814640273581, + 117.8661963267796, + 132.83175404926087, + 108.16773429027745, + 119.38606229832016, + 122.43221968143085, + 116.38814640273607, + 117.86619632677952, + 119.13566110826493, + 120.70956702160001, + 119.38606229832028, + 122.4322196814308, + 116.3881464027362, + 117.86619632677957, + 114.86851260654399, + 126.55801450242596, + 119.38606229832044, + 122.43221968143091, + 116.38814640273591, + 117.86619632677949, + 127.1645977266962, + 111.82129151170179, + 119.38606229832035, + 122.43221968143055, + 116.38814640273634, + 117.86619632677962, + 116.89244982509081, + 123.581637916087, + 119.38606229832021, + 122.43221968143055, + 116.38814640273647, + 117.86619632677974, + 132.4462517688584, + 108.38015009492008, + 119.38606229832006, + 122.4322196814308, + 116.38814640273617, + 117.86619632677957, + 133.320200426825, + 105.63671619870377, + 119.38606229832, + 122.43221968143075, + 116.38814640273611, + 117.86619632677973, + 142.91334948131998, + 97.21545766935384, + 119.38606229832023, + 122.43221968143062, + 116.38814640273617, + 117.8661963267798, + 125.02664655123296, + 113.34269131940968, + 119.38606229831996, + 122.43221968143101, + 116.38814640273598, + 117.86619632677957, + 124.18442102594904, + 114.44013812834359, + 119.38606229832021, + 122.43221968143091, + 116.38814640273594, + 117.86619632677974, + 140.72814331377904, + 97.90065337738606, + 119.38606229832, + 122.43221968143062, + 116.38814640273594, + 117.86619632677983, + 124.95240048868038, + 114.25322857246377 + ], + "N_C_H": [ + 122.13635942595639, + 123.0239735740106, + 122.13635942595629, + 123.02397357401057, + 122.13635942595633, + 123.02397357401063, + 122.13635942595644, + 123.02397357401037, + 122.13635942595623, + 123.02397357401031, + 122.13635942595639, + 123.02397357401017, + 122.13635942595629, + 123.02397357401041, + 122.13635942595619, + 123.02397357401024, + 122.13635942595633, + 123.02397357401047, + 122.13635942595664, + 123.02397357401014, + 122.13635942595626, + 123.02397357401006, + 122.13635942595629, + 123.0239735740106 + ] +} \ No newline at end of file diff --git a/tests/calculators/geometry/geom_jsons/case_data1_bonds.json b/tests/calculators/geometry/geom_jsons/case_data1_bonds.json new file mode 100644 index 0000000..202e45a --- /dev/null +++ b/tests/calculators/geometry/geom_jsons/case_data1_bonds.json @@ -0,0 +1,328 @@ +{ + "C_N": [ + 1.349204024445633, + 1.3439961966742693, + 1.2904923053132964, + 1.3492040244456354, + 1.3439961966742695, + 1.2904923053132966, + 1.349204024445632, + 1.3439961966742688, + 1.2904923053132953, + 1.3492040244456331, + 1.3439961966742653, + 1.290492305313291, + 1.349204024445634, + 1.3439961966742613, + 1.2904923053132937, + 1.3492040244456305, + 1.3439961966742666, + 1.2904923053132973, + 1.3492040244456336, + 1.343996196674267, + 1.2904923053132968, + 1.3492040244456363, + 1.3439961966742688, + 1.290492305313298, + 1.3492040244456336, + 1.3439961966742706, + 1.290492305313296, + 1.3492040244456294, + 1.3439961966742682, + 1.290492305313296, + 1.3492040244456296, + 1.3439961966742697, + 1.2904923053132962, + 1.3492040244456347, + 1.3439961966742708, + 1.2904923053132926, + 2.2261846453517977, + 2.0864937202120557, + 2.1221402090285633, + 2.2318071445776324, + 1.8841655930840826, + 2.8157682152804933, + 1.8436737964749288, + 1.9336992167854208, + 2.2082342525409544, + 2.20197708636392, + 2.01268109545087, + 1.8357647267898052 + ], + "C_C": [ + 1.4522828092859665, + 1.3853721467310334, + 1.3787823994519082, + 1.3838630978647901, + 1.3970432948343818, + 1.4522828092859696, + 1.385372146731038, + 1.3787823994519084, + 1.3838630978647917, + 1.3970432948343805, + 1.45228280928597, + 1.385372146731038, + 1.378782399451909, + 1.383863097864788, + 1.3970432948343814, + 1.4522828092859625, + 1.3853721467310367, + 1.37878239945191, + 1.3838630978647894, + 1.397043294834382, + 1.4522828092859663, + 1.3853721467310371, + 1.3787823994519042, + 1.383863097864788, + 1.3970432948343845, + 1.452282809285964, + 1.3853721467310316, + 1.3787823994519037, + 1.3838630978647841, + 1.39704329483438, + 1.452282809285965, + 1.385372146731032, + 1.3787823994519095, + 1.38386309786479, + 1.3970432948343807, + 1.4522828092859663, + 1.3853721467310374, + 1.3787823994519017, + 1.3838630978647923, + 1.3970432948343763, + 1.4522828092859623, + 1.3853721467310325, + 1.3787823994519104, + 1.383863097864791, + 1.3970432948343778, + 1.4522828092859617, + 1.385372146731031, + 1.3787823994519073, + 1.3838630978647921, + 1.3970432948343818, + 1.4522828092859617, + 1.385372146731037, + 1.3787823994519046, + 1.383863097864791, + 1.3970432948343827, + 1.452282809285962, + 1.3853721467310358, + 1.3787823994519075, + 1.3838630978647894, + 1.3970432948343803, + 1.3808242005604492, + 1.3961519235283761, + 1.3971934932231158, + 1.3891259461258516, + 1.3883718157833946, + 1.4591559054890046, + 1.381092939464337, + 1.399993549918113, + 1.3833709118099982, + 1.3873272899277427, + 1.3878241783168652, + 1.3783952322850488, + 1.4008394080312816, + 1.3808242005604514, + 1.3961519235283772, + 1.3971934932231183, + 1.3891259461258545, + 1.3883718157833969, + 1.459155905489003, + 1.3810929394643356, + 1.399993549918111, + 1.3833709118099915, + 1.3873272899277458, + 1.3878241783168606, + 1.3783952322850461, + 1.4008394080312798, + 1.380824200560452, + 1.3961519235283764, + 1.3971934932231178, + 1.3891259461258498, + 1.3883718157833982, + 1.4591559054890044, + 1.3810929394643379, + 1.3999935499181089, + 1.3833709118099964, + 1.387327289927744, + 1.3878241783168648, + 1.3783952322850457, + 1.40083940803128, + 1.3808242005604505, + 1.396151923528376, + 1.397193493223117, + 1.3891259461258527, + 1.3883718157833962, + 1.4591559054890022, + 1.381092939464334, + 1.3999935499181095, + 1.383370911809997, + 1.3873272899277416, + 1.3878241783168632, + 1.3783952322850452, + 1.4008394080312814, + 1.3808242005604503, + 1.3961519235283775, + 1.3971934932231163, + 1.3891259461258527, + 1.3883718157833969, + 1.4591559054890015, + 1.3810929394643339, + 1.399993549918109, + 1.3833709118099942, + 1.387327289927744, + 1.3878241783168614, + 1.3783952322850457, + 1.400839408031281, + 1.3808242005604507, + 1.396151923528379, + 1.3971934932231165, + 1.3891259461258525, + 1.3883718157833944, + 1.4591559054890015, + 1.381092939464333, + 1.3999935499181069, + 1.3833709118099986, + 1.3873272899277427, + 1.3878241783168623, + 1.3783952322850483, + 1.4008394080312832 + ], + "C_H": [ + 1.0874620758087878, + 1.0672549181857802, + 1.0667188970952914, + 1.085894314807195, + 1.1029091303336236, + 1.0874620758087872, + 1.067254918185782, + 1.0667188970952903, + 1.0858943148071913, + 1.1029091303336265, + 1.0874620758087905, + 1.0672549181857822, + 1.0667188970952874, + 1.0858943148071922, + 1.1029091303336263, + 1.0874620758087916, + 1.067254918185784, + 1.066718897095292, + 1.0858943148071931, + 1.1029091303336216, + 1.0874620758087918, + 1.067254918185785, + 1.0667188970952877, + 1.0858943148071951, + 1.1029091303336251, + 1.0874620758087883, + 1.0672549181857822, + 1.0667188970952894, + 1.0858943148071987, + 1.1029091303336243, + 1.0874620758087878, + 1.067254918185781, + 1.066718897095288, + 1.0858943148071911, + 1.1029091303336294, + 1.0874620758087863, + 1.0672549181857824, + 1.0667188970952906, + 1.0858943148071922, + 1.102909130333629, + 1.0874620758087905, + 1.0672549181857833, + 1.0667188970952908, + 1.085894314807193, + 1.1029091303336271, + 1.0874620758087843, + 1.0672549181857853, + 1.066718897095292, + 1.0858943148071931, + 1.1029091303336287, + 1.0874620758087874, + 1.067254918185785, + 1.0667188970952948, + 1.0858943148071976, + 1.102909130333633, + 1.087462075808786, + 1.0672549181857842, + 1.0667188970952919, + 1.0858943148071964, + 1.1029091303336283, + 1.093688746343643, + 1.071925164534144, + 1.0776472025089945, + 1.087465330884879, + 1.0813713990882166, + 1.0886599286450627, + 1.0955942048754004, + 1.0767072832976303, + 1.0936887463436427, + 1.071925164534143, + 1.0776472025089916, + 1.087465330884877, + 1.0813713990882146, + 1.0886599286450653, + 1.0955942048753986, + 1.0767072832976339, + 1.0936887463436433, + 1.0719251645341419, + 1.0776472025089965, + 1.0874653308848796, + 1.0813713990882166, + 1.0886599286450669, + 1.0955942048753997, + 1.076707283297632, + 1.093688746343644, + 1.0719251645341454, + 1.0776472025089934, + 1.0874653308848787, + 1.081371399088217, + 1.0886599286450644, + 1.0955942048754002, + 1.0767072832976312, + 1.0936887463436435, + 1.0719251645341392, + 1.077647202508993, + 1.0874653308848763, + 1.081371399088218, + 1.088659928645067, + 1.0955942048753986, + 1.0767072832976314, + 1.0936887463436435, + 1.0719251645341408, + 1.0776472025089923, + 1.0874653308848767, + 1.0813713990882199, + 1.0886599286450673, + 1.0955942048753975, + 1.0767072832976312 + ], + "Fe_N": [ + 1.7504914779576128, + 1.8288214739558946, + 1.8005183130520226, + 1.8021592384626899, + 1.7636912278547627, + 1.8155066025692728, + 1.7504914779576088, + 1.82882147395589, + 1.800518313052016, + 1.802159238462683, + 1.7636912278547592, + 1.8155066025692692, + 1.750491477957612, + 1.8288214739558892, + 1.8005183130520224, + 1.8021592384626912, + 1.7636912278547565, + 1.8155066025692714, + 1.750491477957612, + 1.8288214739558952, + 1.8005183130520217, + 1.8021592384626892, + 1.763691227854758, + 1.8155066025692694 + ] +} \ No newline at end of file diff --git a/tests/calculators/geometry/geom_jsons/case_data1_properties.json b/tests/calculators/geometry/geom_jsons/case_data1_properties.json new file mode 100644 index 0000000..93ff1ca --- /dev/null +++ b/tests/calculators/geometry/geom_jsons/case_data1_properties.json @@ -0,0 +1,26 @@ +{ + "radius_gyration": 9.163457759274376, + "avg_centoid_distance": [ + 8.826209390480216, + 2.463125230556632 + ], + "max_diameter": 39.2618398435226, + "metal_centroid_angles": { + "0_40": 109.45644147871046, + "0_80": 109.25945881807212, + "0_120": 109.43059221867185, + "40_80": 107.36076134557781, + "40_120": 112.0803379651034, + "80_120": 109.1985583093306 + }, + "metal_atom_distances": { + "0_40": 14.852782843295966, + "0_80": 14.367163039663481, + "0_120": 14.77310308580904, + "40_80": 14.291997901275296, + "40_120": 15.107866259765228, + "80_120": 14.380180033304363 + }, + "min_atom_atom_distance": 1.0667188970952874, + "min_centoid_distance": 4.143220840968034 +} \ No newline at end of file diff --git a/tests/calculators/geometry/geom_jsons/case_data1_torsions.json b/tests/calculators/geometry/geom_jsons/case_data1_torsions.json new file mode 100644 index 0000000..b0ca6d9 --- /dev/null +++ b/tests/calculators/geometry/geom_jsons/case_data1_torsions.json @@ -0,0 +1,1008 @@ +{ + "Fe_N_C_C": [ + 168.82032468058313, + 7.147520475046917, + -172.8534111397715, + -7.587899251054266, + 2.525024501290353, + -169.38795617908983, + 167.83779685220148, + 8.022668210454265, + -171.9782634043642, + -8.120087601550276, + -151.9565083079809, + 42.70377624761476, + 167.45140417694023, + 8.072602746220275, + -171.92832886859827, + -8.426402083892832, + 151.31788326253175, + -26.790566833252804, + 168.82032468058284, + 7.147520475047038, + -172.85341113977154, + -7.587899251054534, + -86.43886023075414, + 99.01263311124019, + 167.83779685220145, + 8.02266821045443, + -171.97826340436433, + -8.120087601550278, + 178.7577551065324, + 10.262738894383729, + 167.4514041769399, + 8.0726027462206, + -171.92832886859864, + -8.426402083892608, + -8.864526444793865, + -179.38167918975816, + 168.8203246805833, + 7.147520475046915, + -172.85341113977174, + -7.587899251054228, + 14.470479792466827, + -171.4835493273995, + 167.83779685220168, + 8.02266821045436, + -171.97826340436447, + -8.120087601550306, + -14.743321981119665, + -179.82537338392913, + 167.4514041769401, + 8.07260274622055, + -171.92832886859864, + -8.426402083892894, + 100.07234385150625, + -90.40615809139128, + 168.8203246805832, + 7.1475204750468695, + -172.85341113977177, + -7.587899251054476, + 118.3372657596129, + -70.40055129684595, + 167.83779685220136, + 8.022668210454334, + -171.97826340436433, + -8.120087601550463, + 19.315702137158436, + -170.22779172891373, + 167.4514041769403, + 8.072602746220163, + -171.9283288685984, + -8.42640208389278, + -98.52611530453372, + 82.17189519018093 + ], + "Fe_N_C_H": [ + -11.179459419279945, + 172.41283204963815, + -12.161987247661713, + 171.8806436991424, + -12.548379922923132, + 171.57432921679964, + -11.179459419280509, + 172.41283204963847, + -12.16198724766167, + 171.8806436991426, + -12.54837992292333, + 171.57432921679973, + -11.17945941928001, + 172.41283204963844, + -12.161987247661527, + 171.88064369914272, + -12.548379922923605, + 171.5743292167998, + -11.179459419279846, + 172.4128320496388, + -12.161987247661694, + 171.88064369914272, + -12.548379922923246, + 171.57432921679978 + ], + "C_N_Fe_N": [ + 179.49113734933252, + -90.05400190399286, + 101.17244322993031, + 1.593602440182727, + 103.37684459950047, + 10.41496289362352, + -17.19237816361416, + 2.046349462987512, + 171.91146696636642, + 179.85669643358364, + -56.293122936935376, + -88.33054329616137, + 81.23600189195395, + -80.29769892566317, + 105.2348511596022, + -9.806308033699732, + 80.64855271297492, + -88.12500215310193, + 172.2961570571505, + -85.92060078353177, + -81.70169896587393, + 177.14988003489344, + -178.68876138471796, + 99.43500150537521, + 103.75919128246966, + -86.37569121415146, + 98.56955012347034, + -137.5802692470487, + 100.58556071991855, + -89.84789409196615, + 178.10652500362062, + 3.6390750888859635, + 179.46402757843632, + -89.54685409989818, + 108.32475959717972, + -109.3090400231116, + 11.281422169428879, + 135.13160279890985, + 3.7810282276606646, + 173.34757341577597, + 173.40137442839085, + -1.0660754863437933, + -10.670854918184816, + 80.31826340348071, + -81.8101228994414, + -80.46664504960599, + 177.5756626870813, + 149.54253897765577, + 104.62265942197654, + -85.81079538990817, + 99.18365351607284, + -75.2837963986618, + 179.43393144858462, + 153.7038975580444, + 43.38353557987501, + 11.659589003859752, + -162.8078609108749, + -10.999523363300069, + 71.82766044813755, + -58.57415668343772, + 179.491137349333, + -90.0540019039924, + 101.17244322993093, + 1.593602440183387, + 103.376844599501, + 10.414962893623818, + 165.43711562499945, + 2.0463494629876653, + 171.9114669663663, + 179.85669643358355, + -25.22640267477989, + -88.33054329616128, + 81.23600189195345, + -80.29769892566341, + -99.08400223103641, + -9.806308033699949, + 80.64855271297465, + -88.12500215310205, + 172.29615705715042, + -85.92060078353198, + -81.70169896587393, + 177.14988003489356, + -178.68876138471822, + 99.43500150537521, + 103.75919128246959, + -86.37569121415177, + 98.56955012347035, + -106.51354898489309, + 100.58556071991919, + -89.84789409196608, + 178.10652500362053, + 159.3202216982475, + 179.4640275784364, + -89.54685409989828, + 108.32475959717961, + 73.32045376550172, + 11.28142216942894, + 166.1983230610655, + 3.781028227661081, + 173.3475734157758, + 173.4013744283908, + 154.6150711230178, + -10.67085491818498, + 80.31826340348036, + -81.81012289944175, + -80.46664504960607, + 177.5756626870813, + -27.8279672337308, + 104.62265942197682, + -85.81079538990846, + 99.18365351607262, + 80.39735021069961, + 179.43393144858504, + -23.66660865334256, + 74.4502558420305, + 11.659589003859692, + -7.126714301513319, + -10.999523363300256, + -105.54284576324915, + -27.507436421282144, + 179.49113734933255, + -90.05400190399291, + 101.17244322993041, + 1.5936024401826618, + 103.37684459950039, + 10.414962893623487, + 72.12440725212778, + 2.0463494629875227, + 171.91146696636633, + 179.85669643358355, + 164.12120609422482, + -88.33054329616105, + 81.23600189195373, + -80.29769892566314, + -103.28013492215948, + -9.80630803369972, + 80.64855271297482, + -88.12500215310186, + 172.2961570571504, + -85.9206007835319, + -81.70169896587396, + 177.14988003489353, + -178.68876138471737, + 99.43500150537527, + 103.75919128246962, + -86.37569121415159, + 98.56955012347031, + 82.83405978411159, + 100.58556071991828, + -89.84789409196695, + 178.1065250036207, + 155.12408900712435, + 179.4640275784363, + -89.54685409989831, + 108.32475959717998, + -19.992254607369656, + 11.281422169428922, + -4.454068169929784, + 3.7810282276609994, + 173.34757341577577, + 173.40137442839065, + 150.41893843189433, + -10.670854918184908, + 80.31826340348049, + -81.81012289944124, + -80.4666450496059, + 177.57566268708135, + -121.1406756066022, + 104.62265942197676, + -85.81079538990846, + 99.18365351607291, + 76.20121751957657, + 179.43393144858487, + -116.97931702621308, + -96.2021353889646, + 11.659589003859939, + -11.3228469926364, + -10.999523363300352, + 161.14444586387955, + 161.84017234772267, + 179.49113734933263, + -90.05400190399295, + 101.17244322993062, + 1.5936024401828224, + 103.37684459950052, + 10.414962893623665, + -30.40437628160715, + 2.0463494629875867, + 171.91146696636636, + 179.8566964335834, + -120.16750388660432, + -88.3305432961614, + 81.23600189195388, + -80.29769892566331, + 88.40848339113225, + -9.806308033699775, + 80.64855271297468, + -88.12500215310178, + 172.29615705715042, + -85.92060078353188, + -81.70169896587379, + 177.1498800348936, + -178.68876138471774, + 99.43500150537525, + 103.75919128246947, + -86.37569121415176, + 98.56955012347035, + 158.54534980328262, + 100.5855607199185, + -89.84789409196624, + 178.10652500362065, + -13.187292679583784, + 179.4640275784363, + -89.5468540998982, + 108.32475959717905, + -122.52103814110461, + 11.281422169429055, + 71.25722184924133, + 3.781028227660691, + 173.34757341577597, + 173.40137442839136, + -17.89244325481307, + -10.670854918184954, + 80.31826340348059, + -81.81012289944219, + -80.46664504960599, + 177.57566268708132, + 136.3305408596628, + 104.62265942197652, + -85.81079538990822, + 99.18365351607275, + -92.1101641671317, + 179.4339314485848, + 140.49189944005144, + -20.490845369793714, + 11.659589003859647, + -179.6342286793448, + -10.999523363299962, + 58.61566233014444, + -122.44853763310641 + ], + "C_N_C_C": [ + -179.9992811092229, + -0.00021272404131294, + 0.00012603444673608461, + 167.92902122453032, + -26.28560929800557, + 161.80141002161426, + -179.9992811092231, + -0.00021272404152811595, + 0.0001260344469375642, + 176.67636162611788, + -27.337677784451266, + 167.32260677114442, + -179.9992811092231, + -0.00021272404162654858, + 0.0001260344470746172, + 170.40074531712423, + -23.249703969816693, + 158.64184593439876, + -179.99928110922335, + -0.00021272404188979672, + 0.00012603444729366838, + 175.9237679128455, + 69.05564929837928, + -105.4928573596264, + -179.9992811092231, + -0.00021272404184515884, + 0.00012603444714021553, + 174.9580572126097, + -25.92108728431504, + 165.58389650353632, + -179.99928110922318, + -0.00021272404241457835, + 0.0001260344473885506, + 169.1849183810843, + -28.242611027891332, + 161.24023622714438, + -179.99928110922292, + -0.00021272404155329771, + 0.0001260344469106222, + 179.08636128548977, + 77.70473844699158, + -108.24929067287474, + -179.99928110922306, + -0.00021272404187076826, + 0.00012603444721752746, + 166.00821500869387, + -32.51814574365105, + 162.3998028535395, + -179.9992811092232, + -0.00021272404238424682, + 0.0001260344475584028, + 169.99871546288233, + 76.74173089975478, + -113.73677104314275, + -179.9992811092231, + -0.00021272404173185006, + 0.00012603444704533252, + 169.40597726853082, + 76.83280549752081, + -111.90501155893806, + -179.9992811092231, + -0.00021272404176160705, + 0.00012603444696677576, + -175.70283656982858, + 82.33461875219008, + -107.20887511388207, + -179.99928110922323, + -0.00021272404180052134, + 0.0001260344472022989, + 172.73698150394623, + 70.34345212415396, + -108.95853738113139 + ], + "C_C_C_C": [ + -3.43059343238849e-05, + -6.0864617321537305e-05, + 179.99926015730622, + -3.4305934270265526e-05, + -6.086461738883272e-05, + 179.9992601573063, + -3.4305934248817716e-05, + -6.086461736976566e-05, + 179.99926015730625, + -3.430593410082775e-05, + -6.086461757277494e-05, + 179.99926015730648, + -3.430593451798744e-05, + -6.086461725760607e-05, + 179.99926015730617, + -3.430593431530607e-05, + -6.0864617829621074e-05, + 179.99926015730645, + -3.43059345319285e-05, + -6.086461717348629e-05, + 179.99926015730608, + -3.430593424258481e-05, + -6.0864617488654906e-05, + 179.99926015730622, + -3.4305934244528165e-05, + -6.0864617684934666e-05, + 179.99926015730628, + -3.43059344504269e-05, + -6.086461731144282e-05, + 179.99926015730625, + -3.430593432817456e-05, + -6.086461754130004e-05, + 179.99926015730642, + -3.4305934117986254e-05, + -6.08646175480998e-05, + 179.99926015730645, + -0.001243769191150123, + 0.00853840590565533, + 31.879592075126435, + -147.99733153094695, + -0.003945674155703841, + 179.92002793186592, + 0.005813995031199779, + 0.0003888049655007618, + -0.009693469199033406, + -179.9136928503075, + -148.20049782952344, + 31.922578564403196, + -179.8603371742865, + 179.8657242506205, + -0.0015059219113707028, + 0.007640796193163619, + -0.014626497186849528, + -0.005463876625815372, + 0.011583548289967155, + 0.0023350830848898572, + -0.0012437691910353287, + 0.008538405905413708, + 31.87959207512657, + -147.9973315309468, + -0.003945674155396142, + 179.92002793186595, + 0.005813995031134496, + 0.00038880496524612345, + -0.00969346919890816, + -179.9136928503075, + -148.20049782952358, + 31.922578564403043, + -179.86033717428646, + 179.8657242506205, + -0.0015059219115487494, + 0.007640796193232452, + -0.014626497186849614, + -0.005463876625566103, + 0.011583548290011729, + 0.002335083084693046, + -0.001243769191166669, + 0.008538405905345969, + 31.879592075126652, + -147.9973315309468, + -0.003945674155441244, + 179.9200279318658, + 0.005813995031160794, + 0.00038880496539324877, + -0.009693469198832485, + -179.9136928503075, + -148.20049782952358, + 31.922578564402954, + -179.8603371742865, + 179.86572425062056, + -0.0015059219116000029, + 0.007640796193287195, + -0.014626497186898074, + -0.00546387662550926, + 0.011583548290060686, + 0.0023350830846356036, + -0.00124376919126141, + 0.008538405905617021, + 31.87959207512641, + -147.9973315309468, + -0.003945674155606098, + 179.92002793186586, + 0.00581399503135791, + 0.0003888049654769975, + -0.00969346919911742, + -179.91369285030746, + -148.2004978295236, + 31.92257856440321, + -179.86033717428643, + 179.86572425062047, + -0.0015059219114892147, + 0.007640796193199934, + -0.014626497186719099, + -0.005463876625530856, + 0.011583548289871537, + 0.0023350830846434133, + -0.001243769191056862, + 0.008538405905689148, + 31.879592075126162, + -147.99733153094695, + -0.003945674155788767, + 179.92002793186603, + 0.005813995031048127, + 0.0003888049655231146, + -0.009693469198949633, + -179.91369285030774, + -148.20049782952347, + 31.92257856440343, + -179.86033717428643, + 179.86572425062053, + -0.0015059219114103993, + 0.007640796193020521, + -0.014626497186558302, + -0.005463876625622962, + 0.011583548289763917, + 0.002335083084795635, + -0.001243769191028871, + 0.008538405905798444, + 31.87959207512633, + -147.99733153094695, + -0.003945674155737531, + 179.92002793186603, + 0.005813995031171596, + 0.0003888049653932469, + -0.009693469199145268, + -179.91369285030754, + -148.20049782952339, + 31.92257856440335, + -179.8603371742865, + 179.86572425062047, + -0.0015059219114178382, + 0.007640796193249791, + -0.014626497186773176, + -0.005463876625607936, + 0.011583548289865703, + 0.002335083084659718 + ], + "C_C_C_H": [ + 179.9996397873287, + -179.99973294573036, + -0.0008005655639684642, + -0.002096056080181323, + 179.9995357975909, + 179.9997976931506, + 179.99999994827434, + 179.9996397873288, + -179.99973294573047, + -0.0008005655639234367, + -0.002096056080356859, + 179.99953579759094, + 179.9997976931506, + 179.99999994827434, + 179.9996397873288, + -179.99973294573044, + -0.000800565563975286, + -0.00209605608021656, + 179.99953579759102, + 179.99979769315067, + 179.9999999482743, + 179.9996397873289, + -179.9997329457306, + -0.0008005655639868853, + -0.002096056080495, + 179.9995357975909, + 179.9997976931505, + 179.99999994827436, + 179.99963978732904, + -179.99973294573087, + -0.0008005655640849753, + -0.0020960560803525412, + 179.9995357975908, + 179.99979769315064, + 179.99999994827448, + 179.99963978732856, + -179.99973294573076, + -0.0008005655645019537, + -0.0020960560797928128, + 179.999535797591, + 179.99979769315067, + 179.9999999482746, + 179.999639787329, + -179.99973294573076, + -0.0008005655640462389, + -0.002096056080225929, + 179.99953579759074, + 179.9997976931509, + 179.99999994827442, + 179.99963978732913, + -179.99973294573093, + -0.0008005655641267359, + -0.0020960560803698143, + 179.99953579759065, + 179.9997976931505, + 179.99999994827434, + 179.99963978732904, + -179.999732945731, + -0.0008005655645401596, + -0.002096056079968356, + 179.9995357975909, + 179.9997976931509, + 179.99999994827462, + 179.9996397873292, + -179.99973294573098, + -0.0008005655641308329, + -0.0020960560806014858, + 179.9995357975907, + 179.9997976931506, + 179.99999994827456, + 179.99963978732885, + -179.99973294573076, + -0.0008005655641990511, + -0.00209605608054613, + 179.9995357975908, + 179.99979769315058, + 179.99999994827454, + 179.99963978732876, + -179.99973294573047, + -0.0008005655640162227, + -0.0020960560802921074, + 179.99953579759105, + 179.99979769315073, + 179.9999999482744, + -179.9966488356362, + -179.95895284739288, + -179.95067989491307, + 179.99549053168465, + 179.99297678357277, + 179.94952998626079, + -179.99415038180376, + 179.953794724997, + 0.1987560425646745, + -0.1725410043735244, + -0.12649640771760554, + 0.08111990815064188, + 179.99949603330458, + -179.97439799427335, + 179.94710824781913, + 179.98402346818554, + 179.93772080415414, + -179.95372243164613, + 179.99354385264726, + -179.92932323485888, + -179.9966488356363, + -179.95895284739296, + -179.95067989491295, + 179.99549053168465, + 179.9929767835727, + 179.94952998626076, + -179.99415038180382, + 179.95379472499718, + 0.198756042564622, + -0.1725410043735618, + -0.12649640771792317, + 0.08111990815079141, + 179.99949603330467, + -179.9743979942736, + 179.9471082478191, + 179.98402346818568, + 179.93772080415405, + -179.953722431646, + 179.99354385264726, + -179.9293232348589, + -179.99664883563625, + -179.95895284739282, + -179.95067989491295, + 179.9954905316846, + 179.99297678357254, + 179.94952998626084, + -179.99415038180362, + 179.95379472499712, + 0.19875604256456308, + -0.17254100437357134, + -0.12649640771790147, + 0.08111990815092743, + 179.9994960333046, + -179.97439799427355, + 179.947108247819, + 179.98402346818563, + 179.93772080415403, + -179.95372243164593, + 179.99354385264735, + -179.9293232348589, + -179.99664883563634, + -179.95895284739296, + -179.95067989491304, + 179.9954905316847, + 179.99297678357263, + 179.94952998626084, + -179.99415038180376, + 179.9537947249972, + 0.19875604256486273, + -0.17254100437369527, + -0.1264964077176837, + 0.08111990815058959, + 179.99949603330475, + -179.97439799427352, + 179.94710824781913, + 179.98402346818548, + 179.9377208041539, + -179.95372243164596, + 179.99354385264726, + -179.92932323485888, + -179.99664883563594, + -179.9589528473929, + -179.9506798949132, + 179.99549053168454, + 179.99297678357257, + 179.94952998626087, + -179.99415038180348, + 179.95379472499695, + 0.19875604256496462, + -0.1725410043738346, + -0.12649640771730936, + 0.08111990815065795, + 179.99949603330484, + -179.9743979942736, + 179.9471082478191, + 179.98402346818554, + 179.93772080415388, + -179.95372243164593, + 179.99354385264718, + -179.92932323485888, + -179.99664883563605, + -179.9589528473932, + -179.95067989491307, + 179.99549053168454, + 179.99297678357257, + 179.94952998626067, + -179.99415038180356, + 179.9537947249972, + 0.1987560425647986, + -0.17254100437367056, + -0.12649640771757836, + 0.08111990815060231, + 179.9994960333046, + -179.9743979942736, + 179.94710824781907, + 179.98402346818568, + 179.93772080415397, + -179.9537224316459, + 179.9935438526474, + -179.92932323485886 + ], + "N_C_C_C": [ + 5.679625132979306e-06, + 0.00017922585376095528, + 179.99860574263826, + -171.2488976324741, + 173.26116044712595, + 5.679625012641749e-06, + 0.0001792258538979992, + 179.99860574263835, + -165.65902429120607, + 165.42999925318003, + 5.679624925327095e-06, + 0.0001792258539117034, + 179.9986057426383, + -178.271605378317, + 178.0521062490487, + 5.679624777283915e-06, + 0.0001792258541612391, + 179.99860574263852, + -174.1126651453131, + 174.94624916596504, + 5.679625116520357e-06, + 0.00017922585403854307, + 179.99860574263855, + -169.0973378542777, + 168.32238711070443, + 5.6796250730904254e-06, + 0.00017922585477965134, + 179.99860574263857, + -169.7487080491622, + 172.0506015207884, + 5.679625197345908e-06, + 0.00017922585382148355, + 179.9986057426385, + 173.31695141005673, + -174.95772145711624, + 5.6796249152522825e-06, + 0.00017922585414467974, + 179.9986057426387, + -163.09865158806133, + 169.826728078764, + 5.679624851445423e-06, + 0.0001792258545809361, + 179.99860574263877, + 168.78601307765877, + -170.01415174000073, + 5.679625122344831e-06, + 0.0001792258540030671, + 179.9986057426387, + 170.72993405791362, + -171.585795293308, + 5.679625146972057e-06, + 0.00017922585418350852, + 179.99860574263866, + 168.97351814767396, + -172.98032010097768, + 5.679624817862848e-06, + 0.0001792258540989975, + 179.99860574263832, + -179.26463352474707, + 179.33635246997036 + ], + "N_C_C_H": [ + -179.99957214391637, + 179.99692849462272, + -179.99988149701645, + 8.745322920289837, + -6.703606395298112, + -179.9995721439165, + 179.9969284946225, + -179.99988149701633, + 14.33519626155762, + -14.534767589243952, + -179.99957214391662, + 179.99692849462255, + -179.99988149701628, + 1.7226151744467362, + -1.9126605933754053, + -179.9995721439165, + 179.99692849462224, + -179.9998814970163, + 5.886342583959999, + -5.072062448934296, + -179.99957214391648, + 179.99692849462218, + -179.99988149701622, + 10.896882698486202, + -11.642379731719894, + -179.99957214391654, + 179.99692849462224, + -179.99988149701616, + 10.245512503601452, + -7.914165321635533, + -179.99957214391634, + 179.99692849462244, + -179.9998814970163, + -6.684040860670445, + 5.023966927984723, + -179.99957214391628, + 179.99692849462213, + -179.99988149701622, + 16.895568964702296, + -10.138038763660376, + -179.9995721439166, + 179.99692849462213, + -179.99988149701625, + -11.214979193068453, + 9.96753664510012, + -179.99957214391634, + 179.99692849462207, + -179.9998814970164, + -9.271058212813521, + 8.395893091792951, + -179.99957214391628, + 179.9969284946221, + -179.99988149701642, + -11.027474123053265, + 7.001368284123096, + -179.99957214391662, + 179.99692849462247, + -179.99988149701636, + 0.7343742045259442, + -0.6819591449286452 + ], + "N_C_C_N": [ + -0.002369706658845942, + -0.0023697066587967837, + -0.002369706658961757, + -0.0023697066587427345, + -0.002369706658917838, + -0.002369706659395224, + -0.0023697066588557717, + -0.002369706658849624, + -0.002369706659150686, + -0.0023697066586481044, + -0.0023697066587069163, + -0.0023697066589307325 + ], + "C_N_C_H": [ + -179.99965806541636, + -12.070247474777267, + -179.99965806541627, + -3.3229070731894437, + -179.99965806541627, + -9.598523382183306, + -179.99965806541607, + -4.075500786461492, + -179.99965806541596, + -5.041211486697424, + -179.99965806541582, + -10.814350318223413, + -179.99965806541638, + -0.9129074138175827, + -179.99965806541596, + -13.991053690613102, + -179.99965806541613, + -10.00055323642499, + -179.99965806541604, + -10.593291430775908, + -179.9996580654161, + 4.297894730864639, + -179.99965806541633, + -7.262287195361199 + ], + "H_C_C_H": [ + 0.00021986960910391317, + 0.00032786716129340335, + -0.0007901091460988716, + 0.0002198696091099809, + 0.0003278671612568414, + -0.000790109146030246, + 0.000219869609097844, + 0.000327867161228962, + -0.0007901091459435625, + 0.00021986960921487002, + 0.00032786716132448217, + -0.0007901091461079034, + 0.00021986960902551587, + 0.00032786716087109815, + -0.0007901091456645432, + 0.00021986960904583325, + 0.00032786716166634776, + -0.0007901091461259593, + 0.00021986960933189468, + 0.00032786716086195936, + -0.000790109145759351, + 0.00021986960932496028, + 0.0003278671609021785, + -0.0007901091459961562, + 0.00021986960943418303, + 0.00032786716127146544, + -0.0007901091457855389, + 0.00021986960913598623, + 0.0003278671608729261, + -0.0007901091456618283, + 0.00021986960917932784, + 0.00032786716131236876, + -0.0007901091460302362, + 0.00021986960927121568, + 0.00032786716146159336, + -0.0007901091460808078, + 0.05478091831769616, + -0.04102127411932466, + -0.061277240629930826, + 0.0642387778873583, + 0.05478091831801163, + -0.041021274119286945, + -0.06127724062972358, + 0.06423877788716445, + 0.054780918318052776, + -0.0410212741194492, + -0.06127724062980172, + 0.06423877788725053, + 0.05478091831775045, + -0.041021274119009174, + -0.06127724062985345, + 0.06423877788734751, + 0.054780918317818623, + -0.041021274119588315, + -0.06127724062989475, + 0.06423877788744826, + 0.054780918317990264, + -0.041021274119109795, + -0.06127724063001602, + 0.06423877788721895 + ] +} \ No newline at end of file diff --git a/tests/calculators/geometry/geom_jsons/case_data2_angles.json b/tests/calculators/geometry/geom_jsons/case_data2_angles.json new file mode 100644 index 0000000..6b92b5e --- /dev/null +++ b/tests/calculators/geometry/geom_jsons/case_data2_angles.json @@ -0,0 +1,700 @@ +{ + "Pd_N_C": [ + 146.13697941366922, + 92.13772614612702, + 146.15578457257524, + 92.11032361533928, + 146.14910367863777, + 92.12249950773788, + 146.14366988014476, + 92.12554164143097, + 91.76260062048566, + 143.42156203135278, + 146.15578597354337, + 92.11032157305155, + 146.1436735095024, + 92.12553669135673, + 146.1491065531591, + 92.12249498052834, + 91.80949319905784, + 143.3870367846238, + 146.1221858900002, + 92.15926752282641, + 146.11004531863054, + 92.17450379687179, + 146.11548167636752, + 92.17145747062492, + 91.80949494010552, + 143.38703550206444, + 91.7810474833581, + 143.4079847429341, + 146.1154780444002, + 92.17146241767993, + 146.1100424414895, + 92.17450832121804, + 91.78450694504699, + 143.40687206079747, + 91.75915487386182, + 143.42266796635784, + 91.787597987067, + 143.40172796293737, + 91.75607837014404, + 143.4277904574124, + 91.78759540784323, + 143.40172966323803, + 91.75608094530163, + 143.4277887617004, + 91.78450995180377, + 143.40686964838315, + 91.75915187039878, + 143.42267037532028 + ], + "C_N_C": [ + 118.05855096850658, + 121.82510914609048, + 118.05855096850631, + 121.82510914609058, + 118.05855096850648, + 121.82510914609044, + 118.05855096850661, + 121.82510914609074, + 118.05855096850671, + 121.82510914609054, + 118.05855096850648, + 121.82510914609036, + 118.05855096850661, + 121.82510914609034, + 118.05855096850648, + 121.82510914609048, + 118.05855096850661, + 121.82510914609048, + 118.05855096850654, + 121.82510914609048, + 118.05855096850658, + 121.82510914609038, + 118.05855096850674, + 121.82510914609048 + ], + "C_C_C": [ + 121.65165912009925, + 120.24325652721724, + 122.05769054358302, + 116.32338024321872, + 118.68693455026177, + 118.21103802658423, + 121.61892109440696, + 120.50613655879285, + 116.51986228635279, + 123.10202389309788, + 116.14539085607144, + 123.33533617020893, + 119.77791445182848, + 120.39125021185185, + 118.93152905751461, + 120.13078147060189, + 119.83083039080171, + 119.13008423644979, + 116.59559999661936, + 120.93768590705169, + 121.65165912009921, + 120.2432565272172, + 122.05769054358292, + 116.32338024321876, + 118.68693455026182, + 118.2110380265844, + 121.61892109440696, + 120.5061365587929, + 116.51986228635293, + 123.10202389309768, + 116.1453908560714, + 123.3353361702088, + 119.77791445182835, + 120.39125021185201, + 118.93152905751471, + 120.13078147060192, + 119.83083039080172, + 119.13008423644989, + 116.59559999661936, + 120.93768590705159, + 121.65165912009915, + 120.2432565272172, + 122.05769054358292, + 116.32338024321886, + 118.68693455026167, + 118.21103802658423, + 121.61892109440686, + 120.50613655879259, + 116.51986228635276, + 123.102023893098, + 116.14539085607156, + 123.33533617020893, + 119.77791445182866, + 120.39125021185197, + 118.93152905751475, + 120.13078147060176, + 119.8308303908015, + 119.1300842364498, + 116.59559999661958, + 120.93768590705167, + 121.65165912009915, + 120.24325652721714, + 122.05769054358302, + 116.32338024321886, + 118.68693455026187, + 118.2110380265841, + 121.61892109440674, + 120.50613655879279, + 116.51986228635273, + 123.10202389309796, + 116.14539085607143, + 123.335336170209, + 119.77791445182883, + 120.39125021185185, + 118.93152905751506, + 120.1307814706017, + 119.8308303908014, + 119.13008423645014, + 116.59559999661977, + 120.93768590705143, + 121.65165912009948, + 120.2432565272172, + 122.05769054358296, + 116.32338024321862, + 118.68693455026182, + 118.2110380265844, + 121.61892109440711, + 120.5061365587929, + 116.51986228635296, + 123.10202389309768, + 116.14539085607143, + 123.3353361702088, + 119.77791445182835, + 120.39125021185201, + 118.93152905751475, + 120.13078147060179, + 119.83083039080171, + 119.13008423644996, + 116.59559999661928, + 120.93768590705167, + 121.65165912009934, + 120.24325652721711, + 122.05769054358286, + 116.32338024321886, + 118.6869345502618, + 118.21103802658433, + 121.6189210944069, + 120.50613655879287, + 116.51986228635306, + 123.10202389309778, + 116.14539085607144, + 123.33533617020885, + 119.77791445182841, + 120.39125021185178, + 118.93152905751471, + 120.13078147060199, + 119.83083039080188, + 119.13008423644992, + 116.59559999661943, + 120.93768590705149, + 121.65165912009923, + 120.24325652721714, + 122.05769054358292, + 116.32338024321886, + 118.68693455026185, + 118.2110380265843, + 121.61892109440687, + 120.50613655879292, + 116.51986228635283, + 123.10202389309778, + 116.14539085607127, + 123.33533617020916, + 119.7779144518287, + 120.39125021185181, + 118.93152905751468, + 120.13078147060173, + 119.83083039080158, + 119.13008423644986, + 116.59559999661917, + 120.93768590705177, + 121.65165912009921, + 120.24325652721708, + 122.05769054358286, + 116.32338024321892, + 118.6869345502617, + 118.21103802658423, + 121.61892109440687, + 120.50613655879265, + 116.51986228635276, + 123.102023893098, + 116.14539085607137, + 123.335336170209, + 119.77791445182855, + 120.39125021185197, + 118.93152905751474, + 120.13078147060176, + 119.83083039080158, + 119.13008423644986, + 116.59559999661943, + 120.93768590705169, + 121.65165912009918, + 120.2432565272173, + 122.05769054358296, + 116.32338024321875, + 118.6869345502617, + 118.21103802658425, + 121.6189210944069, + 120.50613655879259, + 116.51986228635279, + 123.10202389309798, + 116.14539085607157, + 123.33533617020885, + 119.77791445182842, + 120.39125021185197, + 118.93152905751465, + 120.1307814706018, + 119.83083039080168, + 119.13008423644979, + 116.59559999661943, + 120.93768590705169, + 121.65165912009931, + 120.24325652721744, + 122.05769054358306, + 116.32338024321866, + 118.68693455026177, + 118.21103802658425, + 121.6189210944069, + 120.50613655879285, + 116.51986228635279, + 123.10202389309788, + 116.14539085607143, + 123.33533617020883, + 119.77791445182841, + 120.39125021185197, + 118.93152905751465, + 120.13078147060186, + 119.83083039080168, + 119.13008423644979, + 116.5955999966193, + 120.93768590705169, + 121.65165912009931, + 120.24325652721734, + 122.05769054358312, + 116.32338024321864, + 118.6869345502616, + 118.21103802658418, + 121.6189210944069, + 120.50613655879255, + 116.51986228635279, + 123.1020238930981, + 116.14539085607137, + 123.33533617020903, + 119.77791445182845, + 120.39125021185191, + 118.93152905751475, + 120.13078147060193, + 119.83083039080171, + 119.13008423645002, + 116.59559999661923, + 120.93768590705149, + 121.65165912009934, + 120.24325652721714, + 122.05769054358286, + 116.32338024321895, + 118.68693455026182, + 118.2110380265842, + 121.61892109440683, + 120.5061365587929, + 116.51986228635279, + 123.10202389309788, + 116.14539085607143, + 123.33533617020883, + 119.77791445182838, + 120.39125021185198, + 118.93152905751465, + 120.13078147060196, + 119.83083039080172, + 119.13008423644983, + 116.59559999661926, + 120.93768590705156 + ], + "C_C_H": [ + 121.12873357199175, + 120.8142262592025, + 116.87504826143275, + 118.94250688180381, + 117.21960701223132, + 122.89864925038198, + 122.98809424766928, + 119.14406940077852, + 116.59521375277691, + 116.99329383646102, + 124.71053843603417, + 119.67136894582806, + 120.49204335392233, + 122.40754848152564, + 120.04291429508827, + 120.09179653581343, + 118.4623569902188, + 123.36148339455012, + 119.85107271270927, + 122.07626317114536, + 121.12873357199156, + 120.81422625920227, + 116.87504826143274, + 118.94250688180402, + 117.21960701223153, + 122.89864925038191, + 122.98809424766928, + 119.14406940077849, + 116.59521375277691, + 116.99329383646071, + 124.71053843603421, + 119.67136894582852, + 120.49204335392214, + 122.40754848152554, + 120.04291429508834, + 120.09179653581343, + 118.46235699021882, + 123.36148339455005, + 119.85107271270917, + 122.07626317114529, + 121.12873357199175, + 120.81422625920227, + 116.87504826143294, + 118.94250688180405, + 117.2196070122314, + 122.89864925038223, + 122.98809424766954, + 119.14406940077859, + 116.59521375277689, + 116.99329383646091, + 124.71053843603401, + 119.67136894582819, + 120.4920433539221, + 122.4075484815257, + 120.04291429508854, + 120.09179653581327, + 118.46235699021872, + 123.36148339454961, + 119.85107271270945, + 122.07626317114509, + 121.12873357199172, + 120.81422625920234, + 116.87504826143274, + 118.94250688180402, + 117.21960701223144, + 122.89864925038226, + 122.9880942476696, + 119.14406940077855, + 116.59521375277666, + 116.99329383646091, + 124.7105384360342, + 119.6713689458281, + 120.49204335392204, + 122.40754848152547, + 120.0429142950886, + 120.09179653581369, + 118.46235699021864, + 123.36148339454941, + 119.85107271270952, + 122.07626317114524, + 121.12873357199146, + 120.81422625920229, + 116.87504826143271, + 118.94250688180402, + 117.21960701223135, + 122.89864925038188, + 122.98809424766928, + 119.14406940077869, + 116.59521375277697, + 116.99329383646074, + 124.71053843603401, + 119.67136894582846, + 120.49204335392214, + 122.40754848152557, + 120.04291429508844, + 120.09179653581346, + 118.46235699021872, + 123.36148339455002, + 119.85107271270908, + 122.07626317114534, + 121.12873357199142, + 120.81422625920231, + 116.87504826143287, + 118.94250688180406, + 117.21960701223156, + 122.89864925038194, + 122.98809424766947, + 119.14406940077852, + 116.59521375277691, + 116.99329383646078, + 124.7105384360342, + 119.67136894582836, + 120.4920433539219, + 122.40754848152551, + 120.04291429508818, + 120.09179653581343, + 118.46235699021885, + 123.36148339455009, + 119.85107271270911, + 122.07626317114544, + 121.12873357199146, + 120.81422625920247, + 116.87504826143284, + 118.94250688180392, + 117.21960701223163, + 122.89864925038206, + 122.9880942476695, + 119.14406940077846, + 116.59521375277676, + 116.99329383646086, + 124.7105384360344, + 119.67136894582801, + 120.49204335392207, + 122.4075484815257, + 120.04291429508834, + 120.09179653581349, + 118.4623569902187, + 123.36148339455025, + 119.85107271270908, + 122.07626317114544, + 121.12873357199146, + 120.81422625920237, + 116.87504826143271, + 118.94250688180406, + 117.21960701223163, + 122.89864925038223, + 122.98809424766947, + 119.14406940077826, + 116.59521375277684, + 116.99329383646068, + 124.71053843603453, + 119.67136894582829, + 120.49204335392214, + 122.40754848152554, + 120.04291429508838, + 120.09179653581359, + 118.46235699021885, + 123.3614833945499, + 119.85107271270927, + 122.07626317114538, + 121.12873357199172, + 120.81422625920219, + 116.87504826143258, + 118.94250688180402, + 117.2196070122314, + 122.89864925038204, + 122.98809424766937, + 119.14406940077839, + 116.59521375277707, + 116.99329383646091, + 124.7105384360342, + 119.67136894582823, + 120.49204335392223, + 122.40754848152554, + 120.04291429508838, + 120.09179653581343, + 118.46235699021892, + 123.36148339454994, + 119.8510727127093, + 122.07626317114519, + 121.12873357199162, + 120.81422625920231, + 116.875048261433, + 118.94250688180377, + 117.2196070122314, + 122.89864925038195, + 122.98809424766941, + 119.14406940077865, + 116.59521375277691, + 116.99329383646084, + 124.71053843603407, + 119.67136894582832, + 120.4920433539222, + 122.40754848152557, + 120.04291429508838, + 120.09179653581346, + 118.4623569902189, + 123.36148339455005, + 119.85107271270901, + 122.07626317114534, + 121.12873357199172, + 120.81422625920241, + 116.87504826143268, + 118.94250688180377, + 117.21960701223128, + 122.89864925038233, + 122.98809424766941, + 119.14406940077859, + 116.59521375277687, + 116.99329383646074, + 124.7105384360342, + 119.67136894582823, + 120.4920433539222, + 122.40754848152547, + 120.04291429508814, + 120.09179653581361, + 118.46235699021877, + 123.36148339455038, + 119.85107271270897, + 122.07626317114534, + 121.1287335719913, + 120.81422625920227, + 116.87504826143287, + 118.94250688180409, + 117.21960701223163, + 122.89864925038219, + 122.98809424766928, + 119.14406940077855, + 116.59521375277666, + 116.99329383646081, + 124.71053843603417, + 119.67136894582839, + 120.49204335392233, + 122.40754848152557, + 120.04291429508802, + 120.09179653581343, + 118.46235699021885, + 123.36148339455045, + 119.85107271270911, + 122.07626317114538 + ], + "N_Pd_N": [ + 146.95749074500915, + 85.36909663166254, + 85.36909663166277, + 148.47956793870472, + 85.78694728413352, + 85.78694728413411, + 85.35411088726053, + 85.35411088726042, + 150.1054804056057, + 85.81496062494554, + 85.8149606249451, + 146.95748042327168, + 150.05289855464068, + 86.18685319557405, + 86.17226641605966, + 150.05289855464088, + 86.18685319557463, + 86.17226641605926, + 85.35410928042162, + 85.35410928042111, + 148.58670820978736, + 85.81495924547939, + 85.81495924547941, + 85.38391235755921, + 85.38391235755931, + 85.7995078839646, + 85.79950788396503, + 147.06658723040738, + 86.17226889692124, + 86.1577271707809, + 86.17226889692085, + 86.15772717078129, + 146.95746986350815, + 150.05289855898957, + 150.05289855898974, + 147.06659778408476 + ], + "N_C_C": [ + 121.54235107334463, + 122.18080191598686, + 118.96321873119871, + 122.5483018073192, + 121.54235107334488, + 122.18080191598695, + 118.96321873119864, + 122.5483018073192, + 121.54235107334472, + 122.18080191598685, + 118.96321873119882, + 122.54830180731898, + 121.54235107334466, + 122.18080191598682, + 118.96321873119848, + 122.54830180731875, + 121.54235107334443, + 122.18080191598679, + 118.96321873119867, + 122.5483018073192, + 121.54235107334453, + 122.18080191598692, + 118.96321873119876, + 122.54830180731932, + 121.54235107334459, + 122.18080191598682, + 118.96321873119857, + 122.54830180731958, + 121.54235107334472, + 122.18080191598685, + 118.9632187311987, + 122.54830180731913, + 121.54235107334472, + 122.18080191598673, + 118.9632187311988, + 122.5483018073191, + 121.54235107334453, + 122.18080191598679, + 118.96321873119876, + 122.54830180731923, + 121.54235107334459, + 122.18080191598682, + 118.96321873119864, + 122.54830180731952, + 121.54235107334428, + 122.18080191598686, + 118.96321873119864, + 122.54830180731952 + ], + "N_C_H": [ + 116.38138496521012, + 120.94414838640729, + 120.94498267450727, + 117.60061605164557, + 116.38138496520999, + 120.94414838640724, + 120.94498267450737, + 117.60061605164567, + 116.38138496521032, + 120.94414838640714, + 120.94498267450734, + 117.60061605164567, + 116.38138496521024, + 120.94414838640736, + 120.94498267450732, + 117.60061605164583, + 116.38138496521034, + 120.94414838640739, + 120.94498267450734, + 117.6006160516458, + 116.38138496521017, + 120.94414838640714, + 120.94498267450727, + 117.60061605164564, + 116.38138496521009, + 120.94414838640724, + 120.94498267450737, + 117.60061605164542, + 116.38138496521005, + 120.94414838640735, + 120.94498267450719, + 117.6006160516457, + 116.38138496521022, + 120.94414838640759, + 120.94498267450724, + 117.60061605164567, + 116.38138496521027, + 120.94414838640711, + 120.94498267450722, + 117.60061605164583, + 116.38138496521022, + 120.94414838640739, + 120.94498267450722, + 117.60061605164563, + 116.38138496521047, + 120.94414838640719, + 120.94498267450737, + 117.60061605164545 + ] +} \ No newline at end of file diff --git a/tests/calculators/geometry/geom_jsons/case_data2_bonds.json b/tests/calculators/geometry/geom_jsons/case_data2_bonds.json new file mode 100644 index 0000000..fd19564 --- /dev/null +++ b/tests/calculators/geometry/geom_jsons/case_data2_bonds.json @@ -0,0 +1,418 @@ +{ + "C_N": [ + 1.3457116795498816, + 1.3453250672965604, + 1.3466381716331013, + 1.34030911907208, + 1.3457116795498816, + 1.3453250672965678, + 1.3466381716331024, + 1.34030911907208, + 1.3457116795498794, + 1.3453250672965669, + 1.3466381716331042, + 1.3403091190720848, + 1.3457116795498785, + 1.345325067296568, + 1.3466381716331066, + 1.3403091190720813, + 1.3457116795498798, + 1.3453250672965666, + 1.3466381716331, + 1.3403091190720797, + 1.3457116795498816, + 1.345325067296566, + 1.3466381716331037, + 1.3403091190720804, + 1.345711679549885, + 1.3453250672965633, + 1.3466381716331064, + 1.3403091190720762, + 1.3457116795498842, + 1.345325067296565, + 1.3466381716331068, + 1.34030911907208, + 1.3457116795498785, + 1.345325067296564, + 1.3466381716331055, + 1.3403091190720808, + 1.3457116795498807, + 1.3453250672965675, + 1.3466381716331028, + 1.3403091190720786, + 1.3457116795498822, + 1.345325067296562, + 1.3466381716331062, + 1.3403091190720762, + 1.3457116795498827, + 1.3453250672965655, + 1.3466381716331035, + 1.340309119072077 + ], + "C_C": [ + 1.3938709230681807, + 1.3867801200777825, + 1.4609300043170328, + 1.3791268333645783, + 1.3989641158563675, + 1.3799718686660267, + 1.379642674879294, + 1.4594131106334594, + 1.395801748374261, + 1.394606842516009, + 1.3782690830324502, + 1.3932107994167278, + 1.3801535556085012, + 1.381131512004261, + 1.3797462022798552, + 1.3951152977734438, + 1.3938709230681803, + 1.3867801200777838, + 1.4609300043170292, + 1.3791268333645814, + 1.398964115856366, + 1.379971868666033, + 1.379642674879292, + 1.459413110633461, + 1.3958017483742633, + 1.3946068425160107, + 1.3782690830324529, + 1.3932107994167244, + 1.3801535556085018, + 1.381131512004262, + 1.379746202279857, + 1.395115297773445, + 1.3938709230681776, + 1.3867801200777794, + 1.4609300043170348, + 1.3791268333645814, + 1.398964115856371, + 1.3799718686660285, + 1.3796426748792907, + 1.4594131106334614, + 1.3958017483742615, + 1.3946068425160119, + 1.3782690830324544, + 1.393210799416732, + 1.3801535556085025, + 1.3811315120042593, + 1.3797462022798535, + 1.3951152977734447, + 1.3938709230681798, + 1.3867801200777798, + 1.4609300043170321, + 1.3791268333645783, + 1.3989641158563684, + 1.3799718686660294, + 1.3796426748792914, + 1.4594131106334582, + 1.3958017483742593, + 1.3946068425160092, + 1.3782690830324549, + 1.3932107994167304, + 1.3801535556085058, + 1.3811315120042607, + 1.3797462022798561, + 1.3951152977734445, + 1.3938709230681785, + 1.3867801200777845, + 1.4609300043170297, + 1.3791268333645814, + 1.3989641158563642, + 1.379971868666033, + 1.379642674879292, + 1.4594131106334636, + 1.3958017483742577, + 1.394606842516011, + 1.3782690830324538, + 1.3932107994167227, + 1.380153555608503, + 1.38113151200426, + 1.379746202279857, + 1.3951152977734451, + 1.3938709230681792, + 1.3867801200777805, + 1.4609300043170332, + 1.379126833364579, + 1.3989641158563675, + 1.3799718686660276, + 1.3796426748792945, + 1.4594131106334585, + 1.3958017483742626, + 1.3946068425160099, + 1.3782690830324515, + 1.393210799416726, + 1.3801535556084998, + 1.381131512004261, + 1.3797462022798521, + 1.3951152977734456, + 1.3938709230681805, + 1.3867801200777825, + 1.4609300043170332, + 1.3791268333645796, + 1.3989641158563693, + 1.379971868666027, + 1.379642674879291, + 1.4594131106334634, + 1.395801748374259, + 1.3946068425160103, + 1.37826908303245, + 1.3932107994167295, + 1.3801535556085027, + 1.3811315120042587, + 1.3797462022798557, + 1.395115297773444, + 1.393870923068184, + 1.3867801200777818, + 1.4609300043170332, + 1.3791268333645808, + 1.3989641158563735, + 1.3799718686660287, + 1.379642674879292, + 1.4594131106334638, + 1.3958017483742615, + 1.3946068425160076, + 1.3782690830324515, + 1.3932107994167295, + 1.3801535556085023, + 1.381131512004261, + 1.3797462022798552, + 1.3951152977734445, + 1.393870923068182, + 1.386780120077779, + 1.4609300043170332, + 1.3791268333645808, + 1.3989641158563693, + 1.3799718686660276, + 1.3796426748792934, + 1.4594131106334605, + 1.3958017483742624, + 1.394606842516009, + 1.3782690830324538, + 1.3932107994167278, + 1.3801535556085023, + 1.381131512004262, + 1.3797462022798543, + 1.3951152977734453, + 1.3938709230681747, + 1.3867801200777818, + 1.4609300043170323, + 1.3791268333645783, + 1.3989641158563684, + 1.3799718686660276, + 1.3796426748792927, + 1.4594131106334605, + 1.3958017483742626, + 1.3946068425160085, + 1.378269083032454, + 1.3932107994167278, + 1.3801535556085012, + 1.3811315120042629, + 1.3797462022798535, + 1.3951152977734436, + 1.3938709230681803, + 1.3867801200777794, + 1.460930004317032, + 1.379126833364579, + 1.3989641158563744, + 1.3799718686660278, + 1.3796426748792914, + 1.4594131106334594, + 1.3958017483742635, + 1.3946068425160063, + 1.378269083032452, + 1.3932107994167278, + 1.3801535556085034, + 1.3811315120042598, + 1.3797462022798535, + 1.3951152977734453, + 1.3938709230681792, + 1.3867801200777805, + 1.4609300043170343, + 1.3791268333645776, + 1.3989641158563701, + 1.3799718686660267, + 1.3796426748792951, + 1.4594131106334585, + 1.3958017483742629, + 1.3946068425160107, + 1.3782690830324495, + 1.3932107994167278, + 1.3801535556085003, + 1.3811315120042642, + 1.3797462022798552, + 1.3951152977734471 + ], + "C_H": [ + 1.0946820051326935, + 1.0941098941265057, + 1.0951335027685973, + 1.0800154214272426, + 1.0677098783037067, + 1.0842609896652693, + 1.073805593473514, + 1.0807052551028935, + 1.0949093922755777, + 1.0854174172761226, + 1.06596995379404, + 1.0794545995912777, + 1.0946820051326935, + 1.0941098941265068, + 1.0951335027685956, + 1.0800154214272426, + 1.0677098783037067, + 1.0842609896652715, + 1.073805593473511, + 1.0807052551028926, + 1.0949093922755773, + 1.0854174172761228, + 1.0659699537940424, + 1.0794545995912788, + 1.0946820051326935, + 1.0941098941265073, + 1.0951335027685976, + 1.0800154214272375, + 1.0677098783037084, + 1.0842609896652724, + 1.0738055934735107, + 1.0807052551028924, + 1.0949093922755755, + 1.0854174172761257, + 1.06596995379404, + 1.079454599591277, + 1.094682005132691, + 1.0941098941265077, + 1.0951335027685962, + 1.0800154214272417, + 1.0677098783037067, + 1.0842609896652724, + 1.0738055934735133, + 1.0807052551028904, + 1.094909392275575, + 1.085417417276128, + 1.0659699537940406, + 1.0794545995912783, + 1.0946820051326902, + 1.094109894126507, + 1.0951335027685956, + 1.080015421427242, + 1.0677098783037091, + 1.084260989665269, + 1.0738055934735138, + 1.0807052551028942, + 1.0949093922755777, + 1.0854174172761228, + 1.0659699537940424, + 1.0794545995912799, + 1.0946820051326906, + 1.0941098941265075, + 1.095133502768595, + 1.0800154214272426, + 1.0677098783037067, + 1.0842609896652682, + 1.073805593473512, + 1.0807052551028922, + 1.094909392275577, + 1.085417417276124, + 1.065969953794045, + 1.0794545995912794, + 1.094682005132695, + 1.0941098941265053, + 1.095133502768596, + 1.0800154214272448, + 1.067709878303707, + 1.0842609896652737, + 1.073805593473514, + 1.0807052551028935, + 1.0949093922755786, + 1.0854174172761222, + 1.06596995379404, + 1.0794545995912794, + 1.094682005132694, + 1.0941098941265082, + 1.095133502768596, + 1.0800154214272402, + 1.0677098783037038, + 1.0842609896652713, + 1.0738055934735127, + 1.080705255102893, + 1.0949093922755748, + 1.085417417276123, + 1.0659699537940412, + 1.07945459959128, + 1.0946820051326933, + 1.0941098941265064, + 1.0951335027685978, + 1.0800154214272402, + 1.067709878303708, + 1.0842609896652697, + 1.0738055934735138, + 1.0807052551028937, + 1.0949093922755746, + 1.0854174172761228, + 1.0659699537940417, + 1.0794545995912774, + 1.0946820051326909, + 1.0941098941265055, + 1.0951335027685967, + 1.080015421427242, + 1.067709878303703, + 1.084260989665271, + 1.0738055934735113, + 1.0807052551028942, + 1.0949093922755744, + 1.0854174172761226, + 1.0659699537940424, + 1.0794545995912783, + 1.0946820051326924, + 1.0941098941265073, + 1.0951335027685984, + 1.0800154214272368, + 1.0677098783037091, + 1.0842609896652686, + 1.0738055934735131, + 1.080705255102893, + 1.0949093922755764, + 1.0854174172761197, + 1.0659699537940424, + 1.0794545995912792, + 1.0946820051326895, + 1.0941098941265068, + 1.0951335027685947, + 1.0800154214272453, + 1.0677098783037067, + 1.0842609896652682, + 1.0738055934735131, + 1.0807052551028928, + 1.094909392275578, + 1.0854174172761217, + 1.06596995379404, + 1.0794545995912814 + ], + "N_Pd": [ + 1.1436757869416645, + 1.1450078717695524, + 1.144341823739677, + 1.144341823739679, + 1.1608228282354007, + 1.1450076807815521, + 1.1443417579162214, + 1.1443417579162214, + 1.161534665128453, + 1.1456898952181387, + 1.1450237384801545, + 1.145023738480152, + 1.161534856993591, + 1.1628450024795811, + 1.1450238044346173, + 1.1450238044346173, + 1.1611786745502326, + 1.1624887163214155, + 1.161178551543039, + 1.1624888393375805, + 1.161178674550236, + 1.1624887163214148, + 1.1611785515430395, + 1.1624888393375805 + ] +} \ No newline at end of file diff --git a/tests/calculators/geometry/geom_jsons/case_data2_properties.json b/tests/calculators/geometry/geom_jsons/case_data2_properties.json new file mode 100644 index 0000000..a7f8b24 --- /dev/null +++ b/tests/calculators/geometry/geom_jsons/case_data2_properties.json @@ -0,0 +1,44 @@ +{ + "radius_gyration": 8.694513200046584, + "avg_centoid_distance": [ + 8.564140253255008, + 1.500020502647051 + ], + "max_diameter": 33.54450498871696, + "metal_centroid_angles": { + "0_1": 89.97500397254449, + "0_2": 179.97499500329133, + "0_3": 89.99999873497808, + "0_4": 89.98749862725549, + "0_5": 89.98749862725549, + "1_2": 89.99999103074856, + "1_3": 179.9750027075189, + "1_4": 89.98749477682112, + "1_5": 89.98749477682112, + "2_3": 90.02500626172889, + "2_4": 90.01249591641023, + "2_5": 90.01249591641023, + "3_4": 90.01249977020636, + "3_5": 90.01249977020636, + "4_5": 179.96464304381698 + }, + "metal_atom_distances": { + "0_1": 10.854761086558264, + "0_2": 15.352900039733532, + "0_3": 10.856139678381048, + "0_4": 10.855450348543963, + "0_5": 10.855450348543963, + "1_2": 10.856139416980671, + "1_3": 15.352900039743995, + "1_4": 10.85545021785577, + "1_5": 10.85545021785577, + "2_3": 10.857518909138777, + "2_4": 10.856829129075486, + "2_5": 10.856829129075486, + "3_4": 10.856829259787677, + "3_5": 10.856829259787677, + "4_5": 15.35290000563962 + }, + "min_atom_atom_distance": 0.4829686007235778, + "min_centoid_distance": 6.342867080937972 +} \ No newline at end of file diff --git a/tests/calculators/geometry/geom_jsons/case_data2_torsions.json b/tests/calculators/geometry/geom_jsons/case_data2_torsions.json new file mode 100644 index 0000000..29b8dfc --- /dev/null +++ b/tests/calculators/geometry/geom_jsons/case_data2_torsions.json @@ -0,0 +1,1126 @@ +{ + "Pd_N_C_C": [ + -150.4836341471993, + 164.05342667843078, + -150.44045366072476, + 164.03995030880168, + -150.46585540568344, + 164.04978346314445, + -150.45822989748982, + 164.04358915161632, + -164.7260064947295, + 153.78121966496715, + -150.4404504409512, + 164.039949304439, + -150.4582229605106, + 164.0435872516976, + -150.46584740835112, + 164.0497807022045, + -164.74985357116907, + 153.84779008253273, + -150.51754919416942, + 164.06402095244863, + -150.53530605815632, + 164.06766397706033, + -150.5429460541714, + 164.0738667773242, + -164.74985445659925, + 153.84779255219084, + -164.73538742620224, + 153.80742034531625, + -150.54295297368864, + 164.07386867612314, + -150.53531403741732, + 164.06766673656492, + -164.7409715388373, + 153.81827657870167, + -164.72044741424537, + 153.77040615376396, + -164.73489436163078, + 153.81077712921268, + -164.7264960088891, + 153.7778692182858, + -164.73489252050592, + 153.8107726449175, + -164.72649784885144, + 153.77787370233594, + -164.74097253844735, + 153.81828002434028, + -164.7204464173173, + 153.7704027103098 + ], + "Pd_N_C_H": [ + 29.506340537522764, + -15.960794002344189, + 29.549521023997325, + -15.974270371973532, + 29.524119279038636, + -15.9644372176309, + 29.53174478723215, + -15.970631529158904, + 15.290485340689145, + -26.183362629756882, + 29.54952424377067, + -15.97427137633623, + 29.53175172421143, + -15.970633429077429, + 29.52412727637076, + -15.964439978570894, + 15.266638264249515, + -26.116792212191243, + 29.472425490552364, + -15.950199728326709, + 29.454668626565486, + -15.94655670371503, + 29.447028630550687, + -15.940353903450987, + 15.266637378819427, + -26.11678974253326, + 15.281104409216134, + -26.157161949407694, + 29.447021711033294, + -15.940352004651885, + 29.454660647304408, + -15.94655394421025, + 15.275520296581336, + -26.146305716021935, + 15.296044421173436, + -26.194176140959982, + 15.281597473787986, + -26.153805165511166, + 15.289995826529713, + -26.186713076438352, + 15.281599314912816, + -26.153809649806014, + 15.289993986567367, + -26.186708592387852, + 15.275519296971162, + -26.14630227038368, + 15.296045418101373, + -26.19417958441425 + ], + "C_N_Pd_N": [ + -51.96494769572255, + 22.158695947912275, + -126.08859133935755, + -52.000807515441856, + 153.82820969882667, + -126.12030507991129, + 79.68725227674634, + 22.154549863117577, + -132.03133049582348, + 153.82771022766505, + -132.0486461287001, + 79.70406658403006, + -153.05614636262163, + 132.9334048129561, + -79.0456975381993, + -52.00081018964028, + 153.8282097358113, + 23.6225178997221, + -130.56335662802744, + -127.58828551894504, + 78.21927858167132, + 49.00541461766136, + -25.005034206760936, + 123.0158634420837, + -126.12872667302216, + 22.12711164213871, + 22.131264435412064, + -132.0611782079303, + -126.09701965220573, + 79.71709998885322, + 79.70029054124637, + -132.04387114359278, + -153.05540308438933, + -78.99566904368949, + 132.8848628749107, + -153.05585631139348, + 48.984376226123345, + -127.57109393506059, + 78.1715449556704, + 23.733355810954695, + -130.51742878182293, + 48.951965757983984, + 123.01169979868381, + -25.107768282716, + -51.96808482010683, + -51.99767039668679, + 153.81644924437217, + 153.83947253655077, + -153.0683926591224, + -77.5289026296736, + 131.4486060956146, + -153.0436025045196, + 49.02681306037139, + 131.41735174641798, + -26.54509541778323, + -77.52558161416984, + 124.53865499456144, + 48.96294974190327, + 124.50243977135209, + -26.520051503359745, + -153.04316165018233, + 131.4173483203687, + -77.56016040491933, + -153.06884595639582, + 48.99538699478028, + -77.52890596716193, + 124.50243363627034, + 131.41313306626563, + -26.51644857296232, + 48.99439484320005, + -26.545095186248936, + 124.47739608846305, + 22.127103919154557, + -126.12872429843544, + -126.09702364022698, + 79.71710183202347, + 22.13125602100403, + -132.06117987837962, + -132.0438761553939, + 79.70029562701613, + -153.05540311234827, + 132.88486795446926, + -78.99567417916552, + -51.93678802676665, + 153.82731305302346, + 23.733347687068477, + -130.51743017733992, + -127.57109817916628, + 78.17154652783736, + 48.951967740335064, + -25.10776119284743, + 123.01169667351779, + 22.23953012678259, + -126.11310618031614, + -126.08140884832056, + 79.66781328727104, + 22.243658356222713, + -132.01369693677364, + -131.99636879342728, + 79.650994899474, + 132.88044292489246, + -78.99215554767947, + 23.70880446318063, + -130.5485566460884, + -127.5465425872865, + 78.20267281993591, + -25.079324537590725, + 123.04807698983733, + -51.93372924050212, + -51.904021251595715, + 153.8386234554079, + 153.8154928950895, + 131.41313037007473, + -77.55683679055787, + -77.56015762439748, + 124.47739521140134, + 131.44438490714924, + -26.491378484119462, + -26.516454065034306, + 124.51357877433313, + -77.52557883098972, + 131.44438832964266, + 131.44860340365338, + -26.520056992914405, + -77.55683345505325, + 124.51358490571882, + 124.53865412018641, + -26.49137871918123, + -51.99767453772999, + -51.96809308149312, + 153.83947101912324, + 153.8164509345205, + -153.0431633585546, + -153.06884424757453, + 48.995392361156746, + 48.99438947724421, + -153.06839086218952, + -153.0436043003293, + 49.02681406044278, + 48.96294874124274, + -51.904017124782676, + -51.933720999323334, + 153.81549440789908, + 153.83862176594832 + ], + "C_N_C_C": [ + 4.43136234626677e-05, + -0.003417980397405953, + 4.862070980645977e-05, + 0.0033370464470300347, + 4.4313623839524656e-05, + -0.003417980397658568, + 4.862070972806495e-05, + 0.0033370464471353055, + 4.431362399049466e-05, + -0.0034179803976619916, + 4.8620709875126426e-05, + 0.0033370464468050975, + 4.4313623892875067e-05, + -0.003417980397696127, + 4.862070986597104e-05, + 0.0033370464466711052, + 4.43136238837942e-05, + -0.0034179803976005355, + 4.8620709821337517e-05, + 0.003337046446980981, + 4.431362384974075e-05, + -0.0034179803975652526, + 4.8620709926626795e-05, + 0.0033370464469414966, + 4.4313623856551265e-05, + -0.0034179803974776447, + 4.8620709632503454e-05, + 0.0033370464471305203, + 4.4313623920117394e-05, + -0.0034179803976369543, + 4.862070962792576e-05, + 0.003337046447065904, + 4.431362365677176e-05, + -0.0034179803974571546, + 4.8620709658825857e-05, + 0.003337046447065901, + 4.431362385768667e-05, + -0.0034179803975072074, + 4.8620709788148665e-05, + 0.0033370464470300217, + 4.4313623614772615e-05, + -0.0034179803973615674, + 4.862070953408105e-05, + 0.0033370464472908213, + 4.4313623765742536e-05, + -0.003417980397379749, + 4.8620709704603806e-05, + 0.0033370464471054084 + ], + "C_N_C_H": [ + 179.9858236328485, + 179.98655670432467, + -179.961245248277, + -179.98345954387156, + 179.98582363284862, + 179.9865567043244, + -179.96124524827695, + -179.98345954387162, + 179.98582363284865, + 179.98655670432444, + -179.9612452482768, + -179.9834595438715, + 179.98582363284868, + 179.98655670432427, + -179.96124524827684, + -179.9834595438714, + 179.98582363284865, + 179.98655670432427, + -179.961245248277, + -179.98345954387165, + 179.98582363284854, + 179.98655670432422, + -179.961245248277, + -179.98345954387173, + 179.98582363284854, + 179.98655670432433, + -179.9612452482768, + -179.9834595438716, + 179.9858236328487, + 179.98655670432444, + -179.96124524827673, + -179.9834595438716, + 179.98582363284865, + 179.98655670432456, + -179.96124524827678, + -179.9834595438716, + 179.9858236328485, + 179.98655670432439, + -179.96124524827692, + -179.98345954387167, + 179.9858236328486, + 179.98655670432456, + -179.96124524827687, + -179.98345954387167, + 179.9858236328486, + 179.98655670432436, + -179.96124524827695, + -179.98345954387165 + ], + "C_C_C_C": [ + -0.0020220431142727257, + -179.96988089669972, + 179.96643086066217, + -0.0012747892093426427, + -148.9060620218936, + 31.073001296995237, + 179.97816589760447, + -179.97776224700118, + 0.0003194713887499873, + -0.0013399797045182736, + 179.97302140103346, + 31.059946462926742, + 0.0003124403583049076, + -0.0013995162047102895, + 0.00019010158644838814, + -179.97240504275564, + 0.001969897737007094, + 148.91080655663617, + -31.067678574857226, + -179.9789628265749, + 179.98177580966447, + -31.0637133311677, + 0.003728926313796464, + -0.0006571662299832054, + 148.95780153733892, + -148.9609902181844, + -0.00202204311426837, + -179.96988089669975, + 179.9664308606623, + -0.0012747892092241399, + -148.9060620218937, + 31.073001296995155, + 179.97816589760438, + -179.97776224700118, + 0.0003194713888204223, + -0.0013399797044314874, + 179.97302140103352, + 31.05994646292671, + 0.00031244035826267174, + -0.0013995162047357825, + 0.0001901015864106818, + -179.9724050427557, + 0.0019698977369521507, + 148.91080655663615, + -31.067678574857123, + -179.9789628265749, + 179.9817758096645, + -31.063713331167694, + 0.0037289263139214717, + -0.000657166230094477, + 148.95780153733904, + -148.96099021818446, + -0.0020220431143129977, + -179.9698808966996, + 179.9664308606623, + -0.0012747892090394493, + -148.90606202189346, + 31.073001296995386, + 179.9781658976044, + -179.9777622470012, + 0.0003194713888897497, + -0.0013399797045000688, + 179.97302140103355, + 31.059946462926703, + 0.0003124403582763955, + -0.0013995162048642692, + 0.00019010158639491432, + -179.97240504275567, + 0.0019698977370843453, + 148.91080655663603, + -31.067678574856906, + -179.9789628265748, + 179.98177580966419, + -31.06371333116793, + 0.003728926313980761, + -0.000657166230310478, + 148.95780153733915, + -148.96099021818443, + -0.00202204311445664, + -179.9698808966996, + 179.96643086066214, + -0.001274789209033038, + -148.90606202189346, + 31.073001296995365, + 179.97816589760444, + -179.9777622470012, + 0.0003194713887589884, + -0.001339979704387258, + 179.9730214010335, + 31.059946462926572, + 0.00031244035822209216, + -0.0013995162046674117, + 0.0001901015864619436, + -179.97240504275567, + 0.0019698977368901604, + 148.91080655663586, + -31.067678574857077, + -179.97896282657484, + 179.9817758096641, + -31.06371333116793, + 0.0037289263139074717, + -0.0006571662303672073, + 148.95780153733918, + -148.9609902181846, + -0.0020220431140627027, + -179.9698808966996, + 179.96643086066229, + -0.0012747892093234253, + -148.9060620218937, + 31.073001296995148, + 179.97816589760438, + -179.9777622470012, + 0.0003194713888123995, + -0.0013399797044227437, + 179.97302140103352, + 31.059946462926757, + 0.00031244035827015143, + -0.0013995162047110313, + 0.00019010158640283398, + -179.9724050427557, + 0.001969897736926248, + 148.91080655663598, + -31.06767857485704, + -179.97896282657496, + 179.98177580966447, + -31.063713331167854, + 0.0037289263141629106, + -0.0006571662303868432, + 148.95780153733915, + -148.9609902181844, + -0.002022043114306468, + -179.9698808966996, + 179.96643086066229, + -0.001274789209080018, + -148.90606202189355, + 31.073001296995283, + 179.9781658976045, + -179.9777622470012, + 0.0003194713886620147, + -0.001339979704412592, + 179.97302140103346, + 31.05994646292667, + 0.0003124403582143293, + -0.0013995162046013354, + 0.00019010158653353905, + -179.9724050427557, + 0.0019698977368847485, + 148.91080655663615, + -31.06767857485725, + -179.9789628265749, + 179.9817758096645, + -31.063713331167637, + 0.003728926313840641, + -0.0006571662299941128, + 148.95780153733898, + -148.96099021818452, + -0.0020220431141584694, + -179.96988089669958, + 179.9664308606623, + -0.0012747892091419346, + -148.9060620218936, + 31.073001296995294, + 179.97816589760438, + -179.9777622470012, + 0.00031947138886338235, + -0.0013399797044800414, + 179.9730214010335, + 31.059946462926742, + 0.00031244035830459615, + -0.0013995162047881063, + 0.00019010158636983648, + -179.97240504275564, + 0.001969897737009284, + 148.91080655663606, + -31.06767857485711, + -179.97896282657487, + 179.98177580966433, + -31.063713331167804, + 0.003728926313901014, + -0.0006571662301599338, + 148.95780153733904, + -148.96099021818438, + -0.002022043114197643, + -179.96988089669964, + 179.9664308606623, + -0.0012747892091867707, + -148.9060620218936, + 31.07300129699527, + 179.9781658976044, + -179.9777622470012, + 0.00031947138883964597, + -0.0013399797044838303, + 179.97302140103352, + 31.059946462926717, + 0.00031244035830057637, + -0.0013995162047715343, + 0.00019010158638831437, + -179.97240504275567, + 0.001969897737006376, + 148.91080655663606, + -31.06767857485704, + -179.97896282657487, + 179.9817758096643, + -31.06371333116784, + 0.0037289263139074747, + -0.0006571662302253891, + 148.95780153733907, + -148.9609902181844, + -0.002022043114336934, + -179.9698808966997, + 179.96643086066229, + -0.0012747892091440694, + -148.90606202189363, + 31.073001296995404, + 179.97816589760436, + -179.9777622470012, + 0.0003194713890475223, + -0.0013399797045860824, + 179.9730214010333, + 31.059946462926607, + 0.00031244035847129636, + -0.0013995162049203664, + 0.0001901015861567635, + -179.97240504275547, + 0.0019698977371070915, + 148.91080655663615, + -31.067678574857197, + -179.978962826575, + 179.98177580966444, + -31.06371333116765, + 0.003728926313813698, + -0.0006571662301097506, + 148.957801537339, + -148.96099021818438, + -0.002022043114182403, + -179.9698808966996, + 179.96643086066234, + -0.0012747892091419426, + -148.90606202189358, + 31.073001296995315, + 179.97816589760444, + -179.97776224700118, + 0.00031947138879379825, + -0.0013399797045352453, + 179.97302140103346, + 31.05994646292679, + 0.000312440358317649, + -0.0013995162047601554, + 0.00019010158642092026, + -179.97240504275564, + 0.001969897737044754, + 148.91080655663615, + -31.067678574857155, + -179.9789628265749, + 179.98177580966444, + -31.063713331167758, + 0.003728926313871893, + -0.0006571662300726606, + 148.95780153733898, + -148.96099021818438, + -0.0020220431143064673, + -179.9698808966996, + 179.96643086066226, + -0.0012747892091120418, + -148.90606202189352, + 31.07300129699538, + 179.9781658976044, + -179.9777622470012, + 0.0003194713888683106, + -0.001339979704504702, + 179.97302140103344, + 31.059946462926693, + 0.00031244035830645236, + -0.0013995162048167583, + 0.00019010158637771968, + -179.97240504275558, + 0.0019698977370489904, + 148.91080655663615, + -31.067678574857155, + -179.978962826575, + 179.98177580966453, + -31.06371333116771, + 0.0037289263139570336, + -0.000657166230165389, + 148.957801537339, + -148.96099021818443, + -0.002022043114034411, + -179.9698808966995, + 179.96643086066226, + -0.0012747892092551038, + -148.9060620218936, + 31.07300129699527, + 179.97816589760447, + -179.9777622470012, + 0.0003194713887243154, + -0.001339979704407992, + 179.97302140103352, + 31.05994646292676, + 0.0003124403582607569, + -0.0013995162046143688, + 0.00019010158645120596, + -179.97240504275572, + 0.001969897736864234, + 148.91080655663612, + -31.06767857485723, + -179.97896282657496, + 179.98177580966447, + -31.0637133311677, + 0.0037289263138568104, + -0.000657166230068294, + 148.95780153733898, + -148.96099021818438 + ], + "N_C_C_C": [ + 0.004532795403974181, + 0.0023383906144867064, + -0.0013204264869650395, + -0.005114702908980574, + 0.004532795404041462, + 0.0023383906141637716, + -0.0013204264868720468, + -0.00511470290911597, + 0.004532795403990708, + 0.002338390613915468, + -0.0013204264867569186, + -0.005114702908894794, + 0.004532795404146486, + 0.002338390614032041, + -0.001320426486663929, + -0.005114702908732324, + 0.00453279540384436, + 0.0023383906141392877, + -0.0013204264867566489, + -0.005114702909137401, + 0.00453279540394586, + 0.0023383906140265077, + -0.0013204264870270298, + -0.005114702908985088, + 0.004532795403773524, + 0.0023383906140040656, + -0.0013204264867569162, + -0.0051147029090618384, + 0.0045327954039340425, + 0.002338390614055358, + -0.0013204264866860656, + -0.005114702908989598, + 0.004532795403957666, + 0.002338390614209249, + -0.0013204264867704763, + -0.005114702908955454, + 0.004532795403825473, + 0.002338390614027382, + -0.0013204264868977855, + -0.0051147029090211965, + 0.004532795403858511, + 0.002338390614185939, + -0.0013204264867278557, + -0.005114702909183126, + 0.004532795403655507, + 0.002338390614115981, + -0.0013204264868584843, + -0.005114702909035308 + ], + "N_C_C_H": [ + -179.98903690160162, + -179.96029279164833, + 179.9626717186651, + 179.97735494189527, + -179.98903690160148, + -179.96029279164856, + 179.96267171866523, + 179.9773549418954, + -179.98903690160137, + -179.9602927916484, + 179.96267171866515, + 179.97735494189553, + -179.98903690160154, + -179.96029279164856, + 179.9626717186651, + 179.97735494189536, + -179.98903690160148, + -179.96029279164858, + 179.962671718665, + 179.9773549418955, + -179.98903690160165, + -179.96029279164856, + 179.96267171866495, + 179.9773549418955, + -179.98903690160142, + -179.9602927916485, + 179.96267171866515, + 179.97735494189538, + -179.98903690160134, + -179.96029279164853, + 179.9626717186652, + 179.97735494189538, + -179.98903690160165, + -179.9602927916483, + 179.96267171866512, + 179.9773549418954, + -179.98903690160157, + -179.96029279164847, + 179.96267171866512, + 179.97735494189533, + -179.9890369016016, + -179.9602927916483, + 179.96267171866515, + 179.97735494189538, + -179.98903690160134, + -179.96029279164844, + 179.96267171866504, + 179.97735494189538 + ], + "C_C_C_H": [ + 179.99178810124246, + -179.9839881655861, + -0.013957091440085495, + 0.02607737124447021, + -179.98486789454296, + -0.07024306579107466, + 0.023929247657027336, + 179.9877876814998, + -179.99584794139605, + -179.98956324420544, + 179.992923075072, + 179.9949225122823, + -179.9880847772551, + 0.058532377265023514, + -0.0013101347083860893, + 0.015456529942586832, + -0.030716106979760828, + 179.98233187108968, + 179.95869675723344, + -179.97935701805906, + -179.96316196239005, + -179.9919328874581, + 179.98983147043523, + 179.96205128433743, + 179.99178810124243, + -179.98398816558617, + -0.013957091440007525, + 0.02607737124457456, + -179.9848678945429, + -0.07024306579103683, + 0.02392924765695285, + 179.98778768149995, + -179.995847941396, + -179.98956324420544, + 179.99292307507193, + 179.99492251228227, + -179.98808477725518, + 0.05853237726496041, + -0.001310134708641531, + 0.015456529942530002, + -0.03071610697981259, + 179.98233187108974, + 179.95869675723335, + -179.9793570180592, + -179.96316196239025, + -179.99193288745798, + 179.98983147043515, + 179.96205128433746, + 179.9917881012422, + -179.9839881655863, + -0.013957091439905627, + 0.026077371244487627, + -179.98486789454296, + -0.07024306579140764, + 0.02392924765694209, + 179.98778768149973, + -179.99584794139602, + -179.9895632442054, + 179.99292307507193, + 179.99492251228224, + -179.988084777255, + 0.05853237726528194, + -0.0013101347088071305, + 0.015456529942388674, + -0.030716106979704325, + 179.98233187108988, + 179.9586967572331, + -179.979357018059, + -179.96316196239025, + -179.99193288745792, + 179.98983147043512, + 179.9620512843373, + 179.9917881012424, + -179.9839881655863, + -0.013957091440102928, + 0.026077371244479525, + -179.9848678945427, + -0.07024306579131681, + 0.023929247657256358, + 179.9877876814999, + -179.99584794139608, + -179.9895632442055, + 179.992923075072, + 179.99492251228236, + -179.98808477725512, + 0.05853237726542475, + -0.0013101347086140395, + 0.015456529942688684, + -0.030716106979785166, + 179.98233187108985, + 179.95869675723316, + -179.9793570180588, + -179.96316196239013, + -179.99193288745806, + 179.98983147043526, + 179.96205128433752, + 179.99178810124243, + -179.98398816558617, + -0.013957091439987197, + 0.026077371244572555, + -179.98486789454287, + -0.07024306579105155, + 0.023929247656905538, + 179.98778768149995, + -179.995847941396, + -179.98956324420553, + 179.9929230750719, + 179.99492251228227, + -179.98808477725515, + 0.058532377265293915, + -0.00131013470876154, + 0.01545652994263559, + -0.030716106979821786, + 179.98233187108997, + 179.95869675723324, + -179.97935701805906, + -179.96316196239016, + -179.99193288745798, + 179.98983147043526, + 179.96205128433735, + 179.99178810124243, + -179.9839881655862, + -0.013957091440158952, + 0.026077371244569388, + -179.98486789454267, + -0.07024306579121357, + 0.023929247657147188, + 179.98778768149998, + -179.99584794139602, + -179.98956324420539, + 179.99292307507204, + 179.99492251228224, + -179.98808477725524, + 0.058532377265092285, + -0.0013101347085651, + 0.015456529942619923, + -0.0307161069798949, + 179.9823318710899, + 179.95869675723335, + -179.9793570180592, + -179.96316196239, + -179.99193288745812, + 179.98983147043518, + 179.96205128433743, + 179.9917881012422, + -179.9839881655862, + -0.01395709143994856, + 0.026077371244437996, + -179.9848678945429, + -0.07024306579121742, + 0.02392924765681694, + 179.98778768149975, + -179.99584794139608, + -179.9895632442055, + 179.99292307507193, + 179.99492251228236, + -179.98808477725498, + 0.058532377265196445, + -0.001310134708697175, + 0.015456529942584339, + -0.030716106979718525, + 179.98233187108974, + 179.95869675723327, + -179.97935701805915, + -179.9631619623901, + -179.99193288745798, + 179.98983147043523, + 179.96205128433732, + 179.99178810124224, + -179.98398816558628, + -0.013957091439934606, + 0.026077371244489278, + -179.98486789454302, + -0.07024306579118536, + 0.02392924765680893, + 179.9877876815, + -179.99584794139602, + -179.98956324420547, + 179.9929230750719, + 179.99492251228227, + -179.98808477725527, + 0.0585323772652404, + -0.0013101347087079026, + 0.015456529942510644, + -0.030716106979749424, + 179.98233187108983, + 179.9586967572332, + -179.97935701805906, + -179.96316196239013, + -179.99193288745798, + 179.98983147043518, + 179.96205128433732, + 179.99178810124243, + -179.9839881655863, + -0.013957091439862696, + 0.02607737124432495, + -179.98486789454293, + -0.07024306579128181, + 0.023929247657091268, + 179.98778768149984, + -179.99584794139602, + -179.98956324420539, + 179.992923075072, + 179.99492251228233, + -179.988084777255, + 0.05853237726509965, + -0.0013101347084906792, + 0.01545652994248273, + -0.03071610697978078, + 179.98233187108974, + 179.95869675723327, + -179.97935701805915, + -179.96316196239, + -179.99193288745806, + 179.98983147043506, + 179.96205128433732, + 179.99178810124238, + -179.98398816558617, + -0.013957091440112831, + 0.026077371244438995, + -179.98486789454293, + -0.07024306579120408, + 0.023929247656946106, + 179.98778768149984, + -179.99584794139608, + -179.98956324420544, + 179.99292307507207, + 179.9949225122823, + -179.98808477725512, + 0.05853237726508192, + -0.0013101347085161575, + 0.015456529942554222, + -0.030716106979730148, + 179.98233187108985, + 179.95869675723333, + -179.9793570180591, + -179.9631619623901, + -179.99193288745812, + 179.98983147043523, + 179.96205128433732, + 179.9917881012423, + -179.98398816558634, + -0.013957091440002145, + 0.0260773712444479, + -179.98486789454293, + -0.07024306579133803, + 0.02392924765701065, + 179.9877876814998, + -179.99584794139605, + -179.98956324420536, + 179.99292307507199, + 179.9949225122823, + -179.98808477725507, + 0.05853237726508807, + -0.0013101347086274548, + 0.01545652994244882, + -0.030716106979773134, + 179.9823318710898, + 179.95869675723335, + -179.9793570180592, + -179.96316196239007, + -179.991932887458, + 179.98983147043506, + 179.96205128433732, + 179.99178810124215, + -179.98398816558625, + -0.013957091440020013, + 0.02607737124455523, + -179.98486789454293, + -0.07024306579123632, + 0.02392924765669835, + 179.98778768150004, + -179.995847941396, + -179.9895632442054, + 179.9929230750719, + 179.99492251228227, + -179.98808477725527, + 0.058532377265162965, + -0.001310134708548339, + 0.015456529942559893, + -0.03071610697983836, + 179.98233187108977, + 179.9586967572334, + -179.97935701805918, + -179.96316196239, + -179.991932887458, + 179.98983147043515, + 179.9620512843373 + ], + "H_C_C_H": [ + 0.021562408451454233, + 0.05338065215110714, + -0.0196087148169415, + 0.023751494744182373, + -0.05367598375828618, + -0.058833597962316755, + 0.0215624084515845, + 0.05338065215113392, + -0.01960871481694554, + 0.02375149474411666, + -0.0536759837581819, + -0.05883359796210607, + 0.0215624084516766, + 0.05338065215136777, + -0.01960871481724803, + 0.023751494744457858, + -0.053675983758207015, + -0.058833597962515964, + 0.02156240845164696, + 0.053380652151139046, + -0.019608714816856283, + 0.023751494744024087, + -0.0536759837583837, + -0.05883359796273743, + 0.021562408451806483, + 0.05338065215112871, + -0.019608714816967094, + 0.023751494744027074, + -0.053675983758293334, + -0.05883359796213693, + 0.02156240845175129, + 0.05338065215124876, + -0.01960871481668219, + 0.023751494743980455, + -0.053675983758127814, + -0.05883359796217991, + 0.02156240845192146, + 0.0533806521513195, + -0.019608714817190606, + 0.023751494744306684, + -0.05367598375834381, + -0.0588335979623056, + 0.021562408451732195, + 0.053380652151173685, + -0.019608714816932275, + 0.023751494744071216, + -0.053675983758311584, + -0.05883359796242755, + 0.02156240845148365, + 0.05338065215121513, + -0.019608714817222025, + 0.023751494744531764, + -0.05367598375837722, + -0.05883359796239718, + 0.021562408451713762, + 0.05338065215135062, + -0.01960871481690321, + 0.02375149474420256, + -0.05367598375815098, + -0.05883359796232457, + 0.02156240845164694, + 0.053380652151187494, + -0.019608714817059832, + 0.023751494744398235, + -0.05367598375833114, + -0.05883359796209207, + 0.02156240845209961, + 0.05338065215118427, + -0.019608714816775518, + 0.023751494743959673, + -0.0536759837583822, + -0.05883359796218276 + ] +} \ No newline at end of file diff --git a/tests/calculators/geometry/test_calculate_angles.py b/tests/calculators/geometry/test_calculate_angles.py index 0ccca41..f368d54 100644 --- a/tests/calculators/geometry/test_calculate_angles.py +++ b/tests/calculators/geometry/test_calculate_angles.py @@ -1,3 +1,6 @@ +import json +import pathlib + import numpy as np import stko @@ -9,12 +12,18 @@ def test_calculate_angles(case_data: CaseData) -> None: analyser = stko.molecule_analysis.GeometryAnalyser() result = analyser.calculate_angles(case_data.molecule) + + parent = pathlib.Path(__file__).resolve().parent + saved_dir = parent / "geom_jsons" + saved_json = saved_dir / f"{case_data.name}_angles.json" + if not saved_json.exists(): + with saved_json.open("w") as f: + json.dump({"_".join(i): j for i, j in result.items()}, f, indent=4) + raise AssertionError + + with saved_json.open("r") as f: + known = {tuple(i.split("_")): j for i, j in json.load(f).items()} + for triple in result: - if triple == ("C", "C", "C"): - continue - if "H" in triple: - continue - assert len(result[triple]) == len(case_data.angles[triple]) - assert np.allclose( - result[triple], case_data.angles[triple], rtol=0, atol=1e-3 - ) + assert len(result[triple]) == len(known[triple]) + assert np.allclose(result[triple], known[triple], rtol=0, atol=1e-3) diff --git a/tests/calculators/geometry/test_calculate_bonds.py b/tests/calculators/geometry/test_calculate_bonds.py index b1bfdb0..1d24a39 100644 --- a/tests/calculators/geometry/test_calculate_bonds.py +++ b/tests/calculators/geometry/test_calculate_bonds.py @@ -1,3 +1,6 @@ +import json +import pathlib + import numpy as np import stko @@ -9,12 +12,18 @@ def test_calculate_bonds(case_data: CaseData) -> None: analyser = stko.molecule_analysis.GeometryAnalyser() result = analyser.calculate_bonds(case_data.molecule) + + parent = pathlib.Path(__file__).resolve().parent + saved_dir = parent / "geom_jsons" + saved_json = saved_dir / f"{case_data.name}_bonds.json" + if not saved_json.exists(): + with saved_json.open("w") as f: + json.dump({"_".join(i): j for i, j in result.items()}, f, indent=4) + raise AssertionError + + with saved_json.open("r") as f: + known = {tuple(i.split("_")): j for i, j in json.load(f).items()} + for pair in result: - if pair == ("C", "C"): - continue - if "H" in pair: - continue - assert len(result[pair]) == len(case_data.bonds[pair]) - assert np.allclose( - result[pair], case_data.bonds[pair], rtol=0, atol=1e-3 - ) + assert len(result[pair]) == len(known[pair]) + assert np.allclose(result[pair], known[pair], rtol=0, atol=1e-3) diff --git a/tests/calculators/geometry/test_calculate_properties.py b/tests/calculators/geometry/test_calculate_properties.py new file mode 100644 index 0000000..aa78f4b --- /dev/null +++ b/tests/calculators/geometry/test_calculate_properties.py @@ -0,0 +1,65 @@ +import json +import pathlib + +import numpy as np + +import stko + +from .case_data import CaseData + + +def test_geometry_properties(case_data: CaseData) -> None: + analyser = stko.molecule_analysis.GeometryAnalyser() + + properties = { + "radius_gyration": analyser.get_radius_gyration(case_data.molecule), + "avg_centoid_distance": analyser.get_avg_centroid_distance( + case_data.molecule + ), + "max_diameter": analyser.get_max_diameter(case_data.molecule), + "metal_centroid_angles": { + f"{i[0]}_{i[1]}": j + for i, j in analyser.get_metal_centroid_metal_angle( + case_data.molecule, + metal_atom_nos=(26, 46), + ).items() + }, + "metal_atom_distances": { + f"{i[0]}_{i[1]}": j + for i, j in analyser.get_metal_distances( + case_data.molecule, + metal_atom_nos=(26, 46), + ).items() + }, + "min_atom_atom_distance": analyser.get_min_atom_atom_distance( + case_data.molecule + ), + "min_centoid_distance": analyser.get_min_centroid_distance( + case_data.molecule + ), + } + + parent = pathlib.Path(__file__).resolve().parent + saved_dir = parent / "geom_jsons" + saved_json = saved_dir / f"{case_data.name}_properties.json" + if not saved_json.exists(): + with saved_json.open("w") as f: + json.dump(properties, f, indent=4) + raise AssertionError + + with saved_json.open("r") as f: + known = json.load(f) + + for prop_name, prop_value in properties.items(): + if isinstance(prop_value, float): + assert np.isclose(prop_value, known[prop_name], atol=1e-3, rtol=0) + elif isinstance(prop_value, tuple): + for test, knownval in zip( + prop_value, known[prop_name], strict=True + ): + assert np.isclose(test, knownval, rtol=0, atol=1e-2) + elif isinstance(prop_value, dict): + for i in prop_value: + assert np.isclose( + prop_value[i], known[prop_name][i], rtol=0, atol=1e-2 + ) diff --git a/tests/calculators/geometry/test_calculate_torsions.py b/tests/calculators/geometry/test_calculate_torsions.py index 1f37072..ece7796 100644 --- a/tests/calculators/geometry/test_calculate_torsions.py +++ b/tests/calculators/geometry/test_calculate_torsions.py @@ -1,3 +1,6 @@ +import json +import pathlib + import numpy as np import stko @@ -9,12 +12,18 @@ def test_calculate_torsions(case_data: CaseData) -> None: analyser = stko.molecule_analysis.GeometryAnalyser() result = analyser.calculate_torsions(case_data.molecule) + + parent = pathlib.Path(__file__).resolve().parent + saved_dir = parent / "geom_jsons" + saved_json = saved_dir / f"{case_data.name}_torsions.json" + if not saved_json.exists(): + with saved_json.open("w") as f: + json.dump({"_".join(i): j for i, j in result.items()}, f, indent=4) + raise AssertionError + + with saved_json.open("r") as f: + known = {tuple(i.split("_")): j for i, j in json.load(f).items()} + for four in result: - if four == ("C", "C", "C", "C"): - continue - if "H" in four: - continue - assert len(result[four]) == len(case_data.torsions[four]) - assert np.allclose( - result[four], case_data.torsions[four], rtol=0, atol=1e-3 - ) + assert len(result[four]) == len(known[four]) + assert np.allclose(result[four], known[four], rtol=0, atol=1e-3) diff --git a/tests/calculators/geometry/test_get_avg_centroid_distance.py b/tests/calculators/geometry/test_get_avg_centroid_distance.py deleted file mode 100644 index f9c3105..0000000 --- a/tests/calculators/geometry/test_get_avg_centroid_distance.py +++ /dev/null @@ -1,17 +0,0 @@ -import numpy as np - -import stko - -from .case_data import CaseData - - -def test_get_avg_centroid_distance(case_data: CaseData) -> None: - analyser = stko.molecule_analysis.GeometryAnalyser() - - result = analyser.get_avg_centroid_distance(case_data.molecule) - assert np.isclose( - result[0], case_data.avg_centoid_distance[0], atol=1e-3, rtol=0 - ) - assert np.isclose( - result[1], case_data.avg_centoid_distance[1], atol=1e-3, rtol=0 - ) diff --git a/tests/calculators/geometry/test_get_max_diamter.py b/tests/calculators/geometry/test_get_max_diamter.py deleted file mode 100644 index bbc22c6..0000000 --- a/tests/calculators/geometry/test_get_max_diamter.py +++ /dev/null @@ -1,12 +0,0 @@ -import numpy as np - -import stko - -from .case_data import CaseData - - -def test_get_max_diameter(case_data: CaseData) -> None: - analyser = stko.molecule_analysis.GeometryAnalyser() - - result = analyser.get_max_diameter(case_data.molecule) - assert np.isclose(result, case_data.max_diameter, atol=1e-3, rtol=0) diff --git a/tests/calculators/geometry/test_get_metal_centroid_metal_angle.py b/tests/calculators/geometry/test_get_metal_centroid_metal_angle.py deleted file mode 100644 index f044f02..0000000 --- a/tests/calculators/geometry/test_get_metal_centroid_metal_angle.py +++ /dev/null @@ -1,19 +0,0 @@ -import numpy as np - -import stko - -from .case_data import CaseData - - -def test_get_metal_centroid_metal_angle(case_data: CaseData) -> None: - analyser = stko.molecule_analysis.GeometryAnalyser() - - result = analyser.get_metal_centroid_metal_angle( - case_data.molecule, - metal_atom_nos=(26, 46), - ) - assert len(result) == len(case_data.metal_centroid_angles) - for i in result: - assert np.isclose( - result[i], case_data.metal_centroid_angles[i], atol=1e-3, rtol=0 - ) diff --git a/tests/calculators/geometry/test_get_metal_distances.py b/tests/calculators/geometry/test_get_metal_distances.py deleted file mode 100644 index 1f5f8ae..0000000 --- a/tests/calculators/geometry/test_get_metal_distances.py +++ /dev/null @@ -1,19 +0,0 @@ -import numpy as np - -import stko - -from .case_data import CaseData - - -def test_get_metal_distances(case_data: CaseData) -> None: - analyser = stko.molecule_analysis.GeometryAnalyser() - - result = analyser.get_metal_distances( - case_data.molecule, - metal_atom_nos=(26, 46), - ) - assert len(result) == len(case_data.metal_atom_distances) - for i in result: - assert np.isclose( - result[i], case_data.metal_atom_distances[i], rtol=0, atol=1e-2 - ) diff --git a/tests/calculators/geometry/test_get_min_atom_atom.py b/tests/calculators/geometry/test_get_min_atom_atom.py deleted file mode 100644 index 361e17e..0000000 --- a/tests/calculators/geometry/test_get_min_atom_atom.py +++ /dev/null @@ -1,14 +0,0 @@ -import numpy as np - -import stko - -from .case_data import CaseData - - -def test_get_min_atom_atom_distance(case_data: CaseData) -> None: - analyser = stko.molecule_analysis.GeometryAnalyser() - - result = analyser.get_min_atom_atom_distance(case_data.molecule) - assert np.isclose( - result, case_data.min_atom_atom_distance, atol=1e-3, rtol=0 - ) diff --git a/tests/calculators/geometry/test_get_min_centroid_distance.py b/tests/calculators/geometry/test_get_min_centroid_distance.py deleted file mode 100644 index e9aa78a..0000000 --- a/tests/calculators/geometry/test_get_min_centroid_distance.py +++ /dev/null @@ -1,14 +0,0 @@ -import numpy as np - -import stko - -from .case_data import CaseData - - -def test_get_min_centroid_distance(case_data: CaseData) -> None: - analyser = stko.molecule_analysis.GeometryAnalyser() - - result = analyser.get_min_centroid_distance(case_data.molecule) - assert np.isclose( - result, case_data.min_centoid_distance, atol=1e-3, rtol=0 - ) diff --git a/tests/calculators/geometry/test_get_radius_gyration.py b/tests/calculators/geometry/test_get_radius_gyration.py deleted file mode 100644 index 52a7f7a..0000000 --- a/tests/calculators/geometry/test_get_radius_gyration.py +++ /dev/null @@ -1,12 +0,0 @@ -import numpy as np - -import stko - -from .case_data import CaseData - - -def test_get_radius_gyration(case_data: CaseData) -> None: - analyser = stko.molecule_analysis.GeometryAnalyser() - - result = analyser.get_radius_gyration(case_data.molecule) - assert np.isclose(result, case_data.radius_gyration, atol=1e-3, rtol=0) From dfe52b00387ac40711fa4c0e8678218a6c3c8466 Mon Sep 17 00:00:00 2001 From: Andrew Tarzia Date: Sat, 6 Dec 2025 20:02:32 +0000 Subject: [PATCH 22/33] Remove hardcoded test outputs. --- .../centroid_jsons/case_data0.json | 22 ++++++ .../centroid_jsons/case_data1.json | 22 ++++++ .../centroid_jsons/case_data2.json | 52 ++++++++++++++ tests/molecular/threesite/case_data.py | 9 --- tests/molecular/threesite/conftest.py | 20 ------ .../property_jsons/case_data0_properties.json | 26 +++++++ .../property_jsons/case_data1_properties.json | 26 +++++++ .../property_jsons/case_data2_properties.json | 26 +++++++ .../property_jsons/case_data3_properties.json | 26 +++++++ .../threesite/test_get_adjecent_positions.py | 13 ---- .../test_get_binder_adjacent_torsion.py | 15 ----- .../threesite/test_get_binder_angles.py | 16 ----- .../threesite/test_get_binder_binder_angle.py | 18 ----- .../test_get_binder_centroid_angle.py | 18 ----- .../threesite/test_get_binder_distance.py | 11 --- .../threesite/test_threesite_properties.py | 67 +++++++++++++++++++ 16 files changed, 267 insertions(+), 120 deletions(-) create mode 100644 tests/molecular/constructed/centroid_jsons/case_data0.json create mode 100644 tests/molecular/constructed/centroid_jsons/case_data1.json create mode 100644 tests/molecular/constructed/centroid_jsons/case_data2.json create mode 100644 tests/molecular/threesite/property_jsons/case_data0_properties.json create mode 100644 tests/molecular/threesite/property_jsons/case_data1_properties.json create mode 100644 tests/molecular/threesite/property_jsons/case_data2_properties.json create mode 100644 tests/molecular/threesite/property_jsons/case_data3_properties.json delete mode 100644 tests/molecular/threesite/test_get_adjecent_positions.py delete mode 100644 tests/molecular/threesite/test_get_binder_adjacent_torsion.py delete mode 100644 tests/molecular/threesite/test_get_binder_angles.py delete mode 100644 tests/molecular/threesite/test_get_binder_binder_angle.py delete mode 100644 tests/molecular/threesite/test_get_binder_centroid_angle.py delete mode 100644 tests/molecular/threesite/test_get_binder_distance.py create mode 100644 tests/molecular/threesite/test_threesite_properties.py diff --git a/tests/molecular/constructed/centroid_jsons/case_data0.json b/tests/molecular/constructed/centroid_jsons/case_data0.json new file mode 100644 index 0000000..d561861 --- /dev/null +++ b/tests/molecular/constructed/centroid_jsons/case_data0.json @@ -0,0 +1,22 @@ +{ + "0": [ + -0.27696797223020564, + 0.7814997258337101, + -0.04609298349300954 + ], + "1": [ + 12.716808518606923, + 1.0791601433385312, + 0.04962033512489879 + ], + "2": [ + 6.388166268933691, + -0.3319969224158642, + -0.815805074948476 + ], + "3": [ + 19.218551848977057, + -0.2077436889983932, + -0.6951323966313236 + ] +} \ No newline at end of file diff --git a/tests/molecular/constructed/centroid_jsons/case_data1.json b/tests/molecular/constructed/centroid_jsons/case_data1.json new file mode 100644 index 0000000..2349b2a --- /dev/null +++ b/tests/molecular/constructed/centroid_jsons/case_data1.json @@ -0,0 +1,22 @@ +{ + "0": [ + 3.1184032192723263, + 0.6083561220732129, + -0.17016899878261688 + ], + "1": [ + 11.643619974910568, + 0.8036511219981262, + -0.10737149043740729 + ], + "2": [ + 7.49139779489996, + -0.12220902884333265, + -0.6751771019865481 + ], + "3": [ + 15.909413773966408, + -0.04068648239812997, + -0.5960037577426648 + ] +} \ No newline at end of file diff --git a/tests/molecular/constructed/centroid_jsons/case_data2.json b/tests/molecular/constructed/centroid_jsons/case_data2.json new file mode 100644 index 0000000..c6160fe --- /dev/null +++ b/tests/molecular/constructed/centroid_jsons/case_data2.json @@ -0,0 +1,52 @@ +{ + "0": [ + 0.10598234655554245, + 0.06545595590988457, + 7.729249077609568 + ], + "1": [ + -6.273114431242357, + -3.6260513251317943, + -2.693806816333105 + ], + "2": [ + 6.27680977861154, + -3.6196507957367543, + -2.693806816333105 + ], + "3": [ + -0.003695347369183144, + 7.245702120868549, + -2.6938068163331055 + ], + "4": [ + -4.712920793774704, + -2.72100608895521, + 3.8644495889693613 + ], + "5": [ + 4.721973675990642, + -2.727489770994139, + 3.8644495806962853 + ], + "6": [ + -0.010904430294385163, + 5.448342309181198, + 3.8644487578834434 + ], + "7": [ + -0.016105424787401623, + -5.468256936284927, + -3.8519568523025205 + ], + "8": [ + -4.740959389560744, + 2.724931333229913, + -3.8519568523025183 + ], + "9": [ + 4.74370213363691, + 2.7201807611378337, + -3.8519568523025187 + ] +} \ No newline at end of file diff --git a/tests/molecular/threesite/case_data.py b/tests/molecular/threesite/case_data.py index 5a976e5..35dca1d 100644 --- a/tests/molecular/threesite/case_data.py +++ b/tests/molecular/threesite/case_data.py @@ -6,13 +6,4 @@ @dataclass(frozen=True, slots=True) class CaseData: building_block: stk.BuildingBlock - binder_distance: float - binder_centroid_angle: float - binder_adjacent_torsion: float - binder_angles: tuple[float, float] - binder_binder_angle: float name: str - - @property - def bite_angles(self) -> tuple[float, float]: - return self.binder_angles[0] - 90, self.binder_angles[1] - 90 diff --git a/tests/molecular/threesite/conftest.py b/tests/molecular/threesite/conftest.py index c85e35f..f60d1c2 100644 --- a/tests/molecular/threesite/conftest.py +++ b/tests/molecular/threesite/conftest.py @@ -16,11 +16,6 @@ smarts="[#6]~[#7X2]~[#6]" ), ), - binder_distance=2.717, - binder_centroid_angle=179.55163, - binder_angles=(179.82673252797306, 178.99117497251564), - binder_adjacent_torsion=179.98930945981346, - binder_binder_angle=178.81790750306536, name=name, ), lambda name: CaseData( @@ -30,11 +25,6 @@ smarts="[#6]~[#7X2]~[#6]" ), ), - binder_distance=10.105, - binder_centroid_angle=179.46618, - binder_angles=(130.57317931302708, 132.5699156645761), - binder_adjacent_torsion=-179.7767900679974, - binder_binder_angle=177.99497293128238, name=name, ), lambda name: CaseData( @@ -44,11 +34,6 @@ smarts="[#6]~[#7X2]~[#6]" ), ), - binder_distance=9.8893, - binder_centroid_angle=149.0484, - binder_angles=(152.4051397865058, 153.24145338156575), - binder_adjacent_torsion=1.1263317393587988, - binder_binder_angle=125.64880123145808, name=name, ), lambda name: CaseData( @@ -58,11 +43,6 @@ smarts="[#6]~[#7X2]~[#6]" ), ), - binder_distance=11.778023252068746, - binder_centroid_angle=132.7736587705255, - binder_angles=(130.41599653682567, 135.4268203184301), - binder_adjacent_torsion=-2.7155067603901997, - binder_binder_angle=85.87201566260612, name=name, ), ), diff --git a/tests/molecular/threesite/property_jsons/case_data0_properties.json b/tests/molecular/threesite/property_jsons/case_data0_properties.json new file mode 100644 index 0000000..c6977ba --- /dev/null +++ b/tests/molecular/threesite/property_jsons/case_data0_properties.json @@ -0,0 +1,26 @@ +{ + "binder_adjacent_torsion": -179.99934628108892, + "binder_distance": 2.750447831877519, + "binder_centroid_angle": 179.44275515273017, + "binder_binder_angle": 179.74582089349317, + "bite_angles": [ + 89.07139232663056, + 89.32557143247519 + ], + "binder_angles": [ + 179.07139232663056, + 179.3255714324752 + ], + "centroids": [ + [ + 0.022375488800585597, + 0.6923080049180896, + 0.03201757768929796 + ], + [ + -0.011861868925181929, + -0.6859698608732889, + -0.0316290765464631 + ] + ] +} \ No newline at end of file diff --git a/tests/molecular/threesite/property_jsons/case_data1_properties.json b/tests/molecular/threesite/property_jsons/case_data1_properties.json new file mode 100644 index 0000000..078fe66 --- /dev/null +++ b/tests/molecular/threesite/property_jsons/case_data1_properties.json @@ -0,0 +1,26 @@ +{ + "binder_adjacent_torsion": -179.05016645498077, + "binder_distance": 10.144304073460642, + "binder_centroid_angle": 179.2295568425101, + "binder_binder_angle": 178.13755155693144, + "bite_angles": [ + 43.09643481196912, + 41.39963879470642 + ], + "binder_angles": [ + 133.09643481196912, + 131.39963879470642 + ], + "centroids": [ + [ + -4.546138711414351, + -0.8285611930753852, + 0.02139426893634991 + ], + [ + 4.592224207488827, + 0.8277603958345351, + 0.03182757101218786 + ] + ] +} \ No newline at end of file diff --git a/tests/molecular/threesite/property_jsons/case_data2_properties.json b/tests/molecular/threesite/property_jsons/case_data2_properties.json new file mode 100644 index 0000000..91cbd91 --- /dev/null +++ b/tests/molecular/threesite/property_jsons/case_data2_properties.json @@ -0,0 +1,26 @@ +{ + "binder_adjacent_torsion": 1.0872709066974189, + "binder_distance": 9.949530745451176, + "binder_centroid_angle": 150.1568961372078, + "binder_binder_angle": 127.99732547860106, + "bite_angles": [ + 63.43831222400004, + 64.55706209099156 + ], + "binder_angles": [ + 153.43831222400004, + 154.55706209099156 + ], + "centroids": [ + [ + 4.33261116959579, + 1.1396514508036497, + -0.4523970839709083 + ], + [ + -4.410114791581526, + 0.5802228819237512, + -0.6819042822370117 + ] + ] +} \ No newline at end of file diff --git a/tests/molecular/threesite/property_jsons/case_data3_properties.json b/tests/molecular/threesite/property_jsons/case_data3_properties.json new file mode 100644 index 0000000..3e1c52f --- /dev/null +++ b/tests/molecular/threesite/property_jsons/case_data3_properties.json @@ -0,0 +1,26 @@ +{ + "binder_adjacent_torsion": 3.302100454852346, + "binder_distance": 11.843987189780055, + "binder_centroid_angle": 132.93673076677456, + "binder_binder_angle": 85.36638263932794, + "bite_angles": [ + 43.139231602023386, + 42.1832712688408 + ], + "binder_angles": [ + 133.1392316020234, + 132.1832712688408 + ], + "centroids": [ + [ + 5.332275404202177, + 2.011496071888148, + 1.226697196415573 + ], + [ + -5.498511205338454, + 0.7398668548110827, + 1.8052862252155886 + ] + ] +} \ No newline at end of file diff --git a/tests/molecular/threesite/test_get_adjecent_positions.py b/tests/molecular/threesite/test_get_adjecent_positions.py deleted file mode 100644 index 41d891c..0000000 --- a/tests/molecular/threesite/test_get_adjecent_positions.py +++ /dev/null @@ -1,13 +0,0 @@ -import numpy as np - -import stko -from tests.molecular.threesite.case_data import CaseData - - -def test_get_adjacent_centroids(case_data: CaseData) -> None: - threesite_analysis = stko.molecule_analysis.DitopicThreeSiteAnalyser() - - centroids = threesite_analysis.get_adjacent_centroids( - case_data.building_block - ) - assert np.linalg.norm(centroids[0] - centroids[1]) > 0.1 # noqa: PLR2004 diff --git a/tests/molecular/threesite/test_get_binder_adjacent_torsion.py b/tests/molecular/threesite/test_get_binder_adjacent_torsion.py deleted file mode 100644 index c3e79f6..0000000 --- a/tests/molecular/threesite/test_get_binder_adjacent_torsion.py +++ /dev/null @@ -1,15 +0,0 @@ -import numpy as np - -import stko -from tests.molecular.threesite.case_data import CaseData - - -def test_get_binder_adjacent_torsion(case_data: CaseData) -> None: - threesite_analysis = stko.molecule_analysis.DitopicThreeSiteAnalyser() - - result = threesite_analysis.get_binder_adjacent_torsion( - case_data.building_block - ) - assert np.isclose( - case_data.binder_adjacent_torsion, result, rtol=0, atol=1e-3 - ) diff --git a/tests/molecular/threesite/test_get_binder_angles.py b/tests/molecular/threesite/test_get_binder_angles.py deleted file mode 100644 index 437b91d..0000000 --- a/tests/molecular/threesite/test_get_binder_angles.py +++ /dev/null @@ -1,16 +0,0 @@ -import numpy as np - -import stko -from tests.molecular.threesite.case_data import CaseData - - -def test_get_binder_angles(case_data: CaseData) -> None: - threesite_analysis = stko.molecule_analysis.DitopicThreeSiteAnalyser() - - result = threesite_analysis.get_binder_angles(case_data.building_block) - assert np.isclose(case_data.binder_angles[0], result[0], rtol=0, atol=1e-3) - assert np.isclose(case_data.binder_angles[1], result[1], rtol=0, atol=1e-3) - - result = threesite_analysis.get_halfbite_angles(case_data.building_block) - assert np.isclose(case_data.bite_angles[0], result[0], rtol=0, atol=1e-3) - assert np.isclose(case_data.bite_angles[1], result[1], rtol=0, atol=1e-3) diff --git a/tests/molecular/threesite/test_get_binder_binder_angle.py b/tests/molecular/threesite/test_get_binder_binder_angle.py deleted file mode 100644 index f45b1fe..0000000 --- a/tests/molecular/threesite/test_get_binder_binder_angle.py +++ /dev/null @@ -1,18 +0,0 @@ -import numpy as np - -import stko -from tests.molecular.threesite.case_data import CaseData - - -def test_get_binder_binder_angle(case_data: CaseData) -> None: - threesite_analysis = stko.molecule_analysis.DitopicThreeSiteAnalyser() - - result = threesite_analysis.get_binder_binder_angle( - case_data.building_block - ) - assert np.isclose( - case_data.binder_binder_angle, - result, - rtol=0, - atol=1e-3, - ) diff --git a/tests/molecular/threesite/test_get_binder_centroid_angle.py b/tests/molecular/threesite/test_get_binder_centroid_angle.py deleted file mode 100644 index 2386c6a..0000000 --- a/tests/molecular/threesite/test_get_binder_centroid_angle.py +++ /dev/null @@ -1,18 +0,0 @@ -import numpy as np - -import stko -from tests.molecular.threesite.case_data import CaseData - - -def test_get_binder_centroid_angle(case_data: CaseData) -> None: - threesite_analysis = stko.molecule_analysis.DitopicThreeSiteAnalyser() - - result = threesite_analysis.get_binder_centroid_angle( - case_data.building_block - ) - assert np.isclose( - case_data.binder_centroid_angle, - result, - rtol=0, - atol=1e-3, - ) diff --git a/tests/molecular/threesite/test_get_binder_distance.py b/tests/molecular/threesite/test_get_binder_distance.py deleted file mode 100644 index 5a01d21..0000000 --- a/tests/molecular/threesite/test_get_binder_distance.py +++ /dev/null @@ -1,11 +0,0 @@ -import numpy as np - -import stko -from tests.molecular.threesite.case_data import CaseData - - -def test_get_binder_distance(case_data: CaseData) -> None: - threesite_analysis = stko.molecule_analysis.DitopicThreeSiteAnalyser() - - distance = threesite_analysis.get_binder_distance(case_data.building_block) - assert np.isclose(case_data.binder_distance, distance, rtol=0, atol=1e-3) diff --git a/tests/molecular/threesite/test_threesite_properties.py b/tests/molecular/threesite/test_threesite_properties.py new file mode 100644 index 0000000..84ab587 --- /dev/null +++ b/tests/molecular/threesite/test_threesite_properties.py @@ -0,0 +1,67 @@ +import json +import pathlib + +import numpy as np + +import stko +from tests.molecular.threesite.case_data import CaseData + + +def test_threesite_properties(case_data: CaseData) -> None: + threesite_analysis = stko.molecule_analysis.DitopicThreeSiteAnalyser() + + properties = { + "binder_adjacent_torsion": ( + threesite_analysis.get_binder_adjacent_torsion( + case_data.building_block + ) + ), + "binder_distance": threesite_analysis.get_binder_distance( + case_data.building_block + ), + "binder_centroid_angle": threesite_analysis.get_binder_centroid_angle( + case_data.building_block + ), + "binder_binder_angle": threesite_analysis.get_binder_binder_angle( + case_data.building_block + ), + "bite_angles": threesite_analysis.get_halfbite_angles( + case_data.building_block + ), + "binder_angles": threesite_analysis.get_binder_angles( + case_data.building_block + ), + "centroids": [ + tuple(i) + for i in threesite_analysis.get_adjacent_centroids( + case_data.building_block + ) + ], + } + + parent = pathlib.Path(__file__).resolve().parent + saved_dir = parent / "property_jsons" + saved_json = saved_dir / f"{case_data.name}_properties.json" + if not saved_json.exists(): + with saved_json.open("w") as f: + json.dump(properties, f, indent=4) + raise AssertionError + + with saved_json.open("r") as f: + known = json.load(f) + + for prop_name, prop_value in properties.items(): + if prop_name == "centroids": + test = np.array([list(i) for i in prop_value]) + known_value = np.array(known[prop_name]) + assert np.linalg.norm(test[0] - test[1]) > 0.1 # noqa: PLR2004 + + if isinstance(prop_value, float): + assert np.isclose(prop_value, known[prop_name], atol=1e-3, rtol=0) + elif isinstance(prop_value, tuple): + for test, knownval in zip( + prop_value, known[prop_name], strict=True + ): + assert np.isclose(test, knownval, rtol=0, atol=1e-2) + elif isinstance(prop_value, np.ndarray): + assert np.isclose(test, known_value, rtol=0, atol=1e-3) From 4f596af1a9ac148092205598b0a1cc3aed1dbda5 Mon Sep 17 00:00:00 2001 From: Andrew Tarzia Date: Sat, 6 Dec 2025 20:03:35 +0000 Subject: [PATCH 23/33] Update test outputs. --- tests/calculators/openmm/conftest.py | 6 +- .../calculators/openmm/test_openmm_energy.py | 2 +- tests/calculators/planarity/conftest.py | 48 ++++---- tests/calculators/pore/case_data.py | 11 -- tests/calculators/pore/conftest.py | 108 ------------------ tests/calculators/rmsd/conftest.py | 36 +++--- tests/molecular/subgroup/conftest.py | 4 +- tests/molecular/z_matrix/conftest.py | 21 +--- tests/optimizers/aligner/conftest.py | 8 +- tests/optimizers/openmm/test_openmm.py | 4 +- tests/optimizers/rdkit/conftest.py | 20 ++-- 11 files changed, 70 insertions(+), 198 deletions(-) delete mode 100644 tests/calculators/pore/case_data.py delete mode 100644 tests/calculators/pore/conftest.py diff --git a/tests/calculators/openmm/conftest.py b/tests/calculators/openmm/conftest.py index 49e8801..cf373a1 100644 --- a/tests/calculators/openmm/conftest.py +++ b/tests/calculators/openmm/conftest.py @@ -15,7 +15,7 @@ class CaseData: params=[ CaseData( molecule=stk.BuildingBlock("NCCN"), - energy=142.99500933275297, + energy=178.98832475679242, ), CaseData( molecule=stk.ConstructedMolecule( @@ -28,7 +28,7 @@ class CaseData: optimizer=stk.Spinner(), ), ), - energy=165.25686166058674, + energy=194.40911538198904, ), CaseData( molecule=stk.ConstructedMolecule( @@ -41,7 +41,7 @@ class CaseData: optimizer=stk.Spinner(), ), ), - energy=285.665342151835, + energy=357.67912363086356, ), ], ) diff --git a/tests/calculators/openmm/test_openmm_energy.py b/tests/calculators/openmm/test_openmm_energy.py index a5dbe36..8a78701 100644 --- a/tests/calculators/openmm/test_openmm_energy.py +++ b/tests/calculators/openmm/test_openmm_energy.py @@ -14,7 +14,7 @@ def test_openmm_energy(case_molecule: CaseData) -> None: energy = ( stko.OpenMMEnergy( force_field=ForceField("openff_unconstrained-2.1.0.offxml"), - partial_charges_method="espaloma-am1bcc", + partial_charges_method="mmff94", ).get_energy(case_molecule.molecule), ) diff --git a/tests/calculators/planarity/conftest.py b/tests/calculators/planarity/conftest.py index ed0f3ed..b5536a5 100644 --- a/tests/calculators/planarity/conftest.py +++ b/tests/calculators/planarity/conftest.py @@ -76,9 +76,9 @@ class CaseData: molecule=stk.BuildingBlock("NCCN"), plane_ids=None, deviation_ids=None, - plane_deviation=7.011539016627999, - plane_span=2.881264735947162, - planarity_parameter=0.7397816598925971, + plane_deviation=7.0468262994917374, + plane_span=2.8619224646264096, + planarity_parameter=0.7376285949589063, ), CaseData( molecule=stk.BuildingBlock( @@ -86,17 +86,17 @@ class CaseData: ), plane_ids=None, deviation_ids=None, - plane_deviation=34.81901656204046, - plane_span=3.81412213414559, - planarity_parameter=0.7871978841119759, + plane_deviation=30.72874008769579, + plane_span=4.190622373823865, + planarity_parameter=0.7774786041256974, ), CaseData( molecule=stk.BuildingBlock("CCCCCC"), plane_ids=None, deviation_ids=None, - plane_deviation=11.582698264496539, - plane_span=2.875963748011898, - planarity_parameter=0.7572794957405952, + plane_deviation=10.798240107278682, + plane_span=2.833250157796366, + planarity_parameter=0.7469082286580176, ), CaseData( molecule=stk.BuildingBlock("c1ccccc1"), @@ -125,17 +125,17 @@ class CaseData: ), plane_ids=None, deviation_ids=None, - plane_deviation=15.93962647104854, - plane_span=2.898937325615976, - planarity_parameter=0.6223568662643515, + plane_deviation=16.368844071942494, + plane_span=3.108677868237704, + planarity_parameter=0.6376957812606647, ), CaseData( molecule=_macrocycle, plane_ids=None, deviation_ids=None, - plane_deviation=20.743180343997267, - plane_span=2.3434639552983, - planarity_parameter=0.7222254597555785, + plane_deviation=20.467847459970862, + plane_span=2.667602762686369, + planarity_parameter=0.7279960670882043, ), CaseData( molecule=_macrocycle, @@ -149,9 +149,9 @@ class CaseData: for i in _macrocycle.get_atoms() if i.get_atomic_number() == 6 # noqa: PLR2004 ), - plane_deviation=1.7532095738358657, - plane_span=0.5478779918237081, - planarity_parameter=0.2191511967294832, + plane_deviation=1.6024957200580106, + plane_span=0.5007799125181283, + planarity_parameter=0.20031196500725132, ), CaseData( molecule=_macrocycle, @@ -161,9 +161,9 @@ class CaseData: if i.get_atomic_number() == 6 # noqa: PLR2004 ), deviation_ids=None, - plane_deviation=20.694327117503335, - plane_span=2.3434639552983, - planarity_parameter=0.7222713549711792, + plane_deviation=20.33209530254546, + plane_span=2.667602762686369, + planarity_parameter=0.7283475685355212, ), CaseData( molecule=_macrocycle, @@ -173,9 +173,9 @@ class CaseData: for i in _macrocycle.get_atoms() if i.get_atomic_number() == 6 # noqa: PLR2004 ), - plane_deviation=1.8020628003297954, - plane_span=0.5478779918237081, - planarity_parameter=0.21930239971489357, + plane_deviation=1.7382478774834076, + plane_span=0.5007799125181284, + planarity_parameter=0.20158568952378236, ), CaseData( molecule=_square_planar, diff --git a/tests/calculators/pore/case_data.py b/tests/calculators/pore/case_data.py deleted file mode 100644 index c725e22..0000000 --- a/tests/calculators/pore/case_data.py +++ /dev/null @@ -1,11 +0,0 @@ -import stk - - -class CaseData: - def __init__( - self, - molecule: stk.Molecule, - name: str, - ) -> None: - self.molecule = molecule - self.name = name diff --git a/tests/calculators/pore/conftest.py b/tests/calculators/pore/conftest.py deleted file mode 100644 index 2b35abe..0000000 --- a/tests/calculators/pore/conftest.py +++ /dev/null @@ -1,108 +0,0 @@ -import numpy as np -import pytest -import stk - -from .case_data import CaseData - -_complex = stk.ConstructedMolecule( - topology_graph=stk.metal_complex.OctahedralDelta( - metals=stk.BuildingBlock( - smiles="[Fe+2]", - functional_groups=( - stk.SingleAtom(stk.Fe(0, charge=2)) for _ in range(6) - ), - position_matrix=np.array([[0, 0, 0]]), - ), - ligands=stk.BuildingBlock( - smiles="C1=NC(C=NBr)=CC=C1", - functional_groups=[ - stk.SmartsFunctionalGroupFactory( - smarts="[#6]~[#7X2]~[#35]", - bonders=(1,), - deleters=(), - ), - stk.SmartsFunctionalGroupFactory( - smarts="[#6]~[#7X2]~[#6]", - bonders=(1,), - deleters=(), - ), - ], - ), - optimizer=stk.MCHammer(), - ), -) - - -@pytest.fixture( - scope="session", - params=( - lambda name: CaseData( - molecule=stk.ConstructedMolecule( - topology_graph=stk.cage.FourPlusSix( - building_blocks=( - stk.BuildingBlock( - smiles="NCCN", - functional_groups=[stk.PrimaryAminoFactory()], - ), - stk.BuildingBlock( - smiles="O=CC(C=O)C=O", - functional_groups=[stk.AldehydeFactory()], - ), - ), - optimizer=stk.MCHammer(), - ), - ), - name=name, - ), - lambda name: CaseData( - molecule=stk.ConstructedMolecule( - topology_graph=stk.cage.M4L6TetrahedronSpacer( - building_blocks={ - stk.BuildingBlock.init_from_molecule( - molecule=_complex, - functional_groups=[stk.BromoFactory()], - ): (0, 1, 2, 3), - stk.BuildingBlock( - smiles=("C1=CC(=CC=C1C2=CC=C(C=C2)Br)Br"), - functional_groups=[stk.BromoFactory()], - ): (4, 5, 6, 7, 8, 9), - }, - optimizer=stk.MCHammer(), - ), - ), - name=name, - ), - lambda name: CaseData( - molecule=stk.ConstructedMolecule( - topology_graph=stk.cage.M6L12Cube( - building_blocks=( - stk.BuildingBlock( - smiles="[Pd+2]", - functional_groups=( - stk.SingleAtom(stk.Pd(0, charge=2)) - for _ in range(4) - ), - position_matrix=np.array([[0, 0, 0]]), - ), - stk.BuildingBlock( - smiles=("C1=NC=CC(C2=CC=CC(C3=CC=NC=C3)=C2)=C1"), - functional_groups=[ - stk.SmartsFunctionalGroupFactory( - smarts="[#6]~[#7X2]~[#6]", - bonders=(1,), - deleters=(), - ), - ], - ), - ), - optimizer=stk.Collapser(), - ), - ), - name=name, - ), - ), -) -def case_data(request: pytest.FixtureRequest) -> CaseData: - return request.param( - f"{request.fixturename}{request.param_index}", - ) diff --git a/tests/calculators/rmsd/conftest.py b/tests/calculators/rmsd/conftest.py index fc85717..8a86e30 100644 --- a/tests/calculators/rmsd/conftest.py +++ b/tests/calculators/rmsd/conftest.py @@ -70,8 +70,8 @@ class CaseData: CaseData( mol1=stk.BuildingBlock("NCCN"), mol2=_optimizer.optimize(stk.BuildingBlock("NCCN")), - rmsd=0.24492870054279647, - kabsch_rmsd=0.188295954166067, + rmsd=0.26064179792023834, + kabsch_rmsd=0.19260330679258864, ), CaseData( mol1=stk.BuildingBlock("CCCCCC"), @@ -82,20 +82,20 @@ class CaseData: CaseData( mol1=stk.BuildingBlock("CCCCCC"), mol2=_optimizer.optimize(stk.BuildingBlock("CCCCCC")), - rmsd=0.35636491354918015, - kabsch_rmsd=0.35044001253075, + rmsd=0.19244341360361064, + kabsch_rmsd=0.19223980907993865, ), CaseData( mol1=stk.BuildingBlock("c1ccccc1"), mol2=_optimizer.optimize(stk.BuildingBlock("c1ccccc1")), - rmsd=0.02936762392637932, - kabsch_rmsd=0.02936762392637932, + rmsd=0.032841285146032156, + kabsch_rmsd=0.032795057670018585, ), CaseData( mol1=_polymer, mol2=_optimizer.optimize(_polymer), - rmsd=2.1485735050384, - kabsch_rmsd=1.786251608496134, + rmsd=1.7661731164361503, + kabsch_rmsd=1.7223269859154275, ), ], ) @@ -110,13 +110,13 @@ def case_data(request: pytest.FixtureRequest) -> CaseData: CaseData( mol1=stk.BuildingBlock("NCCN"), mol2=_optimizer.optimize(stk.BuildingBlock("NCCN")), - rmsd=0.20811702035676308, + rmsd=0.21879819525792274, kabsch_rmsd=0.20811702035676308, ), CaseData( mol1=stk.BuildingBlock("CCCCCC"), mol2=_optimizer.optimize(stk.BuildingBlock("CCCCCC")), - rmsd=0.22563756374632568, + rmsd=0.08585307417542548, kabsch_rmsd=0.22563756374632568, ), CaseData( @@ -128,13 +128,13 @@ def case_data(request: pytest.FixtureRequest) -> CaseData: CaseData( mol1=stk.BuildingBlock("c1ccccc1"), mol2=_optimizer.optimize(stk.BuildingBlock("c1ccccc1")), - rmsd=0.029156836455717483, + rmsd=0.03417702414054854, kabsch_rmsd=0.029156836455717483, ), CaseData( mol1=_polymer, mol2=_optimizer.optimize(_polymer), - rmsd=1.792856412415046, + rmsd=1.5861285062968584, kabsch_rmsd=1.792856412415046, ), ], @@ -236,7 +236,7 @@ def ordering_case_data(request: pytest.FixtureRequest) -> CaseData: np.array((0, 0, 0)), ) .with_displacement(np.array((2, 0, 1))), - rmsd=1.1309858484314543, + rmsd=1.1330923155830888, kabsch_rmsd=1.1309858484314543, ), CaseData( @@ -248,26 +248,26 @@ def ordering_case_data(request: pytest.FixtureRequest) -> CaseData: np.array((0, 0, 0)), ) .with_displacement(np.array((0, 0, 1))), - rmsd=0.5922202905739481, + rmsd=0.6239555728484898, kabsch_rmsd=0.5943193981905652, ), CaseData( mol1=stk.BuildingBlock("NCCN"), mol2=stk.BuildingBlock("NCCCN"), - rmsd=0.8832914099448816, + rmsd=0.885665672705266, kabsch_rmsd=0.8832914099448816, ), CaseData( mol1=stk.BuildingBlock("NCOCN"), mol2=stk.BuildingBlock("NCCN"), - rmsd=1.2678595995702466, + rmsd=1.2842057097676525, kabsch_rmsd=1.2678595995702466, ), CaseData( mol1=stk.BuildingBlock("NCCN"), mol2=stk.BuildingBlock("NCOCN"), - rmsd=1.3921770318522637, - kabsch_rmsd=1.3921770318522637, + rmsd=1.4164013380180553, + kabsch_rmsd=1.4164013380180553, ), ], ) diff --git a/tests/molecular/subgroup/conftest.py b/tests/molecular/subgroup/conftest.py index 14561b9..e117794 100644 --- a/tests/molecular/subgroup/conftest.py +++ b/tests/molecular/subgroup/conftest.py @@ -22,7 +22,7 @@ sub_group_data={ "c6_planarity": [], "c5n1_planarity": [], - "x5_planarity": [1.3688005804646254e-06, 0.932064037529801], + "x5_planarity": [1.1395870933572636e-06, 0.927393655328501], "c#c_angle": [], }, name=name, @@ -33,7 +33,7 @@ "c6_planarity": [8.41286151020968e-08], "c5n1_planarity": [5.678704369238556e-08], "x5_planarity": [], - "c#c_angle": [179.00063441359868], + "c#c_angle": [179.45086301233113], }, name=name, ), diff --git a/tests/molecular/z_matrix/conftest.py b/tests/molecular/z_matrix/conftest.py index 5a15039..1aa1c2c 100644 --- a/tests/molecular/z_matrix/conftest.py +++ b/tests/molecular/z_matrix/conftest.py @@ -9,25 +9,16 @@ CaseData( molecule=stk.BuildingBlock("NCCN"), zmatrix=( - "N\n" - "C 1 1.44\n" - "C 2 1.531 54.65\n" - "N 3 1.42 111.07 1 -60.0\n" - "H 4 3.353 114.1 2 49.59\n" - "H 5 1.714 52.52 3 -139.34\n" - "H 6 2.495 49.74 4 65.03\n" - "H 7 1.846 87.9 5 -7.22\n" - "H 8 2.377 85.07 6 -58.27\n" - "H 9 1.818 92.5 7 -59.1\n" - "H 10 2.99 69.57 8 119.38\n" - "H 11 1.7510 51.71 9 -161.42" + "N\nC 1 1.44\nC 2 1.521 54.36\nN 3 1.42 111.18 1 -60.0\n" + "H 4 3.343 114.09 2 49.63\nH 5 1.714 52.7 3 -138.83\n" + "H 6 2.485 49.09 4 65.67\nH 7 1.846 88.39 5 -7.67\n" + "H 8 2.367 85.15 6 -57.42\nH 9 1.818 92.23 7 -59.74\n" + "H 10 2.919 69.69 8 120.27\nH 11 1.7610 51.39 9 -160.62" ), ), CaseData( molecule=stk.BuildingBlock("BrC#CBr"), - zmatrix=( - "Br\nC 1 1.9\nC 2 1.211 0.17\nBr 3 1.892 179.14 1 -171.59" - ), + zmatrix=("Br\nC 1 1.89\nC 2 1.221 0.38\nBr 3 1.92 179.61 1 60.23"), ), ), ) diff --git a/tests/optimizers/aligner/conftest.py b/tests/optimizers/aligner/conftest.py index c4f26a4..14d9f40 100644 --- a/tests/optimizers/aligner/conftest.py +++ b/tests/optimizers/aligner/conftest.py @@ -24,7 +24,7 @@ class CaseData: np.array((0, 0, 0)), ) ), - rmsd=0.28595531556943543, + rmsd=0.16961477113526083, ), CaseData( molecule=stk.BuildingBlock("CCCCCC"), @@ -35,7 +35,7 @@ class CaseData: np.array((0, 0, 0)), ) ), - rmsd=0.12594321424488517, + rmsd=0.20913908038601195, ), ], ) @@ -63,7 +63,7 @@ class CasePotential: np.array((0, 0, 0)), ) ), - potential=16.33559420081716, + potential=16.3130645077078, pairs=(("C", "C"), ("N", "N")), ), CasePotential( @@ -87,7 +87,7 @@ class CasePotential: np.array((0, 0, 0)), ) ), - potential=12.298104523317033, + potential=12.27752809644388, pairs=(("N", "N"),), ), CasePotential( diff --git a/tests/optimizers/openmm/test_openmm.py b/tests/optimizers/openmm/test_openmm.py index 8211429..7ff1f82 100644 --- a/tests/optimizers/openmm/test_openmm.py +++ b/tests/optimizers/openmm/test_openmm.py @@ -16,14 +16,14 @@ def test_openmm(case_molecule: CaseData) -> None: # vacuum calculations (without constraints) force_field=ForceField("openff_unconstrained-2.1.0.offxml"), restricted=False, - partial_charges_method="espaloma-am1bcc", + partial_charges_method="mmff94", ) opt_molecule = optimiser.optimize(case_molecule.molecule) energy = ( stko.OpenMMEnergy( force_field=ForceField("openff_unconstrained-2.1.0.offxml"), - partial_charges_method="espaloma-am1bcc", + partial_charges_method="mmff94", ).get_energy(opt_molecule), ) diff --git a/tests/optimizers/rdkit/conftest.py b/tests/optimizers/rdkit/conftest.py index c245799..49ed2cf 100644 --- a/tests/optimizers/rdkit/conftest.py +++ b/tests/optimizers/rdkit/conftest.py @@ -15,21 +15,21 @@ class CaseData: params=[ CaseData( molecule=stk.BuildingBlock("NCCN"), - unoptimised_energy=18.706050515892986, + unoptimised_energy=18.487222241888883, ), CaseData( molecule=stk.BuildingBlock( "C(#Cc1cccc2ccncc21)c1ccc2[nH]c3ccc(C#Cc4cccc5cnccc54)cc3c2c1" ), - unoptimised_energy=276.0206611549808, + unoptimised_energy=138.73518984157926, ), CaseData( molecule=stk.BuildingBlock("CCCCCC"), - unoptimised_energy=20.722743438967758, + unoptimised_energy=16.949470583172072, ), CaseData( molecule=stk.BuildingBlock("c1ccccc1"), - unoptimised_energy=13.516838919531384, + unoptimised_energy=14.760522274728105, ), CaseData( molecule=stk.ConstructedMolecule( @@ -49,7 +49,7 @@ class CaseData: optimizer=stk.MCHammer(), ), ), - unoptimised_energy=5348.367149383393, + unoptimised_energy=4890.375436145811, ), ], ) @@ -62,21 +62,21 @@ def case_uff_molecule(request: pytest.FixtureRequest) -> CaseData: params=[ CaseData( molecule=stk.BuildingBlock("NCCN"), - unoptimised_energy=26.518703818643935, + unoptimised_energy=26.422861818517934, ), CaseData( molecule=stk.BuildingBlock( "C(#Cc1cccc2ccncc21)c1ccc2[nH]c3ccc(C#Cc4cccc5cnccc54)cc3c2c1" ), - unoptimised_energy=226.18914087716263, + unoptimised_energy=119.52858996294171, ), CaseData( molecule=stk.BuildingBlock("CCCCCC"), - unoptimised_energy=7.607569230469989, + unoptimised_energy=4.036151622820159, ), CaseData( molecule=stk.BuildingBlock("c1ccccc1"), - unoptimised_energy=17.833167064273834, + unoptimised_energy=18.64619045056115, ), CaseData( molecule=stk.ConstructedMolecule( @@ -96,7 +96,7 @@ def case_uff_molecule(request: pytest.FixtureRequest) -> CaseData: optimizer=stk.MCHammer(), ), ), - unoptimised_energy=953.310417015842, + unoptimised_energy=1006.4204295019977, ), ], ) From d5c4de10f7b84af348e14bdc697b91963fceee03 Mon Sep 17 00:00:00 2001 From: Andrew Tarzia Date: Sat, 6 Dec 2025 20:04:48 +0000 Subject: [PATCH 24/33] Update test outputs. --- tests/optimizers/gulp/test_gulp.py | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/tests/optimizers/gulp/test_gulp.py b/tests/optimizers/gulp/test_gulp.py index 3fe7422..86955c4 100644 --- a/tests/optimizers/gulp/test_gulp.py +++ b/tests/optimizers/gulp/test_gulp.py @@ -28,14 +28,10 @@ def optimize(self, mol: stko.MoleculeT) -> stko.MoleculeT: @pytest.fixture def position_section() -> str: return ( - "\ncartesian\n" - "C1 core -0.74031 0.03171 0.10194\n" - "C1 core 0.75974 -0.01804 -0.03434\n" - "H1 core -1.14779 -0.63142 -0.70939\n" - "H1 core -1.11274 -0.39237 1.04655\n" - "H1 core -1.12625 1.0535 -0.10345\n" - "H1 core 0.97939 0.03507 -1.13219\n" - "H1 core 1.25573 0.87341 0.40438\n" + "\ncartesian\nC1 core -0.74031 0.03171 0.10194\nC1 core 0.75639" + " -0.01926 -0.03667\nH1 core -1.14321 -0.62994 -0.70776\nH1 core" + " -1.11397 -0.39262 1.04725\nH1 core -1.12625 1.0535 -0.10345\n" + "H1 core 0.97944 0.0352 -1.13197\nH1 core 1.25569 0.87328 0.40415\n" "H1 core 1.13222 -0.95187 0.4265\n" ) @@ -170,7 +166,7 @@ def test_gulp_convert_traj_to_xyz( opt = FakeGulpUFFMDOptimizer( gulp_path="", ) - test_atom_types, test_trajectory_data, _ = opt._convert_traj_to_xyz( # noqa: SLF001 + test_atom_types, _test_trajectory_data, _ = opt._convert_traj_to_xyz( # noqa: SLF001 output_xyz=test_xyz, output_traj=test_traj, ) @@ -178,8 +174,8 @@ def test_gulp_convert_traj_to_xyz( for i, t in zip(atom_types, test_atom_types, strict=False): assert i == t - for ts, test_ts_dict in trajectory.items(): - ts_dict = trajectory[ts] + for test_ts_dict in trajectory.values(): + ts_dict = test_ts_dict assert test_ts_dict["time"] == ts_dict["time"] assert test_ts_dict["KE"] == ts_dict["KE"] assert test_ts_dict["E"] == ts_dict["E"] @@ -195,7 +191,7 @@ def test_gulp_calculate_lowest_energy_conformer( opt = FakeGulpUFFMDOptimizer( gulp_path="", ) - atom_types, trajectory_data, xyz_traj_lines = opt._convert_traj_to_xyz( # noqa: SLF001 + _atom_types, trajectory_data, _xyz_traj_lines = opt._convert_traj_to_xyz( # noqa: SLF001 output_xyz=test_xyz, output_traj=test_traj, ) @@ -211,7 +207,7 @@ def test_gulp_write_conformer_xyz_file(xyz_string: str) -> None: opt = FakeGulpUFFMDOptimizer( gulp_path="", ) - atom_types, trajectory_data, xyz_traj_lines = opt._convert_traj_to_xyz( # noqa: SLF001 + atom_types, trajectory_data, _xyz_traj_lines = opt._convert_traj_to_xyz( # noqa: SLF001 output_xyz=test_xyz, output_traj=test_traj, ) From 02b785b5eb669011df7715acfc8df04701c01ecc Mon Sep 17 00:00:00 2001 From: Andrew Tarzia Date: Sat, 6 Dec 2025 20:04:54 +0000 Subject: [PATCH 25/33] Remove hardcoded test outputs. --- tests/molecular/constructed/case_data.py | 2 -- tests/molecular/constructed/conftest.py | 25 -------------- .../test_get_building_block_centroids.py | 33 ++++++++++++++----- 3 files changed, 25 insertions(+), 35 deletions(-) diff --git a/tests/molecular/constructed/case_data.py b/tests/molecular/constructed/case_data.py index 8281e96..2509ae6 100644 --- a/tests/molecular/constructed/case_data.py +++ b/tests/molecular/constructed/case_data.py @@ -1,12 +1,10 @@ from dataclasses import dataclass -import numpy as np import stk @dataclass(frozen=True, slots=True) class CaseData: constructed_molecule: stk.ConstructedMolecule - centroids: dict[int, np.ndarray] atom_ids: dict[int, list[int]] name: str diff --git a/tests/molecular/constructed/conftest.py b/tests/molecular/constructed/conftest.py index 06fd4eb..c719ce7 100644 --- a/tests/molecular/constructed/conftest.py +++ b/tests/molecular/constructed/conftest.py @@ -1,4 +1,3 @@ -import numpy as np import pytest import stk @@ -19,12 +18,6 @@ num_repeating_units=2, ), ), - centroids={ - 0: np.array([-0.27896625, 0.78273808, -0.04626922]), - 1: np.array([12.7437916, 1.08096657, 0.04936503]), - 2: np.array([6.39811868, -0.2408838, -0.83794888]), - 3: np.array([19.24738842, -0.13160962, -0.70954977]), - }, atom_ids={ 0: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 1: [10, 11, 12, 13, 14, 15, 16, 17], @@ -45,12 +38,6 @@ optimizer=stk.Collapser(scale_steps=False), ), ), - centroids={ - 0: np.array([3.12249409, 0.62482436, -0.17366926]), - 1: np.array([11.66672552, 0.82049207, -0.11092363]), - 2: np.array([7.50332952, -0.04677396, -0.69309028]), - 3: np.array([15.93373539, 0.02492083, -0.60884763]), - }, atom_ids={ 0: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 1: [10, 11, 12, 13, 14, 15, 16, 17], @@ -74,18 +61,6 @@ ) ), ), - centroids={ - 0: np.array([0.0952583, 0.05782588, 7.70819073]), - 1: np.array([-6.26032559, -3.61722913, -2.67443437]), - 2: np.array([6.26277511, -3.61298643, -2.67443437]), - 3: np.array([-2.44952914e-03, 7.23021556e00, -2.67443437e00]), - 4: np.array([-4.70844968, -2.71842469, 3.85903949]), - 5: np.array([4.71605668, -2.72476131, 3.85903947]), - 6: np.array([-0.00924248, 5.44294872, 3.85903889]), - 7: np.array([-0.01403689, -5.46061179, -3.84785617]), - 8: np.array([-4.73393618, 2.72180559, -3.84785617]), - 9: np.array([4.73604697, 2.71814959, -3.84785617]), - }, atom_ids={ 0: [0, 1, 2, 3, 4, 5, 6, 7], 1: [8, 9, 10, 11, 12, 13, 14, 15], diff --git a/tests/molecular/constructed/test_get_building_block_centroids.py b/tests/molecular/constructed/test_get_building_block_centroids.py index e2ba1f2..7da2c38 100644 --- a/tests/molecular/constructed/test_get_building_block_centroids.py +++ b/tests/molecular/constructed/test_get_building_block_centroids.py @@ -1,3 +1,6 @@ +import json +import pathlib + import numpy as np import stko @@ -6,11 +9,25 @@ def test_get_building_block_centroids(case_data: CaseData) -> None: analyser = stko.molecule_analysis.ConstructedAnalyser() - result = analyser.get_building_block_centroids( - case_data.constructed_molecule - ) - assert len(result) == len(case_data.centroids) - for i in result: - assert np.allclose( - result[i], case_data.centroids[i], rtol=0, atol=1e-3 - ) + result = { + i: list(j) + for i, j in analyser.get_building_block_centroids( + case_data.constructed_molecule + ).items() + } + + parent = pathlib.Path(__file__).resolve().parent + saved_dir = parent / "centroid_jsons" + saved_json = saved_dir / f"{case_data.name}.json" + if not saved_json.exists(): + with saved_json.open("w") as f: + json.dump(result, f, indent=4) + raise AssertionError + + with saved_json.open("r") as f: + known = json.load(f) + + assert len(result) == len(known) + + for i, test in result.items(): + assert np.allclose(test, known[str(i)], rtol=0, atol=1e-3) From 7e22425d0f2f3f4e4ae7013146218e93f1c1fa7a Mon Sep 17 00:00:00 2001 From: Andrew Tarzia Date: Sun, 7 Dec 2025 11:07:27 +0000 Subject: [PATCH 26/33] Update installation flags and dependancies. --- pyproject.toml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index e18825e..6ea91f9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -14,11 +14,7 @@ dependencies = [ "networkx", "rmsd", "mdanalysis", - "openmm[cuda12]", - # Added to handle uv issue with metadata. - # From https://github.com/astral-sh/uv/issues/15876 - "torch>=2.8.0", - "OpenMM-CUDA-12", + "openmm", ] requires-python = ">=3.11" dynamic = ["version"] @@ -40,6 +36,12 @@ dev = [ "sphinx-rtd-theme>0.5.1", "twine", ] +cuda = [ + # Added to handle uv issue with metadata. + # From https://github.com/astral-sh/uv/issues/15876 + "torch>=2.8.0", + "OpenMM-CUDA-12", +] [project.urls] github = "https://github.com/JelfsMaterialsGroup/stko" From fbb4c83539fd4fbe7eeb50cb2d21853fecd7a03a Mon Sep 17 00:00:00 2001 From: Andrew Tarzia Date: Sun, 7 Dec 2025 12:16:41 +0000 Subject: [PATCH 27/33] Bump python version in tests. --- .github/workflows/tests.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 86bb718..267b9a9 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -12,7 +12,7 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: - python-version: "3.11" + python-version: "3.13" cache: "pip" - run: "pip install '.[dev]'" - run: ruff check . @@ -23,7 +23,7 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: - python-version: "3.11" + python-version: "3.13" cache: "pip" - run: "pip install -e '.[dev]'" - run: mypy src examples @@ -34,7 +34,7 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: - python-version: "3.11" + python-version: "3.13" cache: "pip" - run: "pip install -e '.[dev]'" - run: ruff format --check . @@ -52,7 +52,7 @@ jobs: with: miniforge-version: latest - python-version: 3.11 + python-version: 3.13 activate-environment: pytest - name: Build environment @@ -76,7 +76,7 @@ jobs: with: miniforge-version: latest - python-version: 3.11 + python-version: 3.13 activate-environment: pytest - name: Build environment @@ -101,7 +101,7 @@ jobs: with: miniforge-version: latest - python-version: 3.11 + python-version: 3.13 activate-environment: pytest - name: Build environment From cf7c9b070289905bcce69e1f79e58ef910faf884 Mon Sep 17 00:00:00 2001 From: Andrew Tarzia Date: Sun, 7 Dec 2025 12:16:58 +0000 Subject: [PATCH 28/33] Update installation instructions. --- README.rst | 52 +++++++++++++++++------------- docs/source/index.rst | 73 ++++++++++++++++++++++++++++--------------- 2 files changed, 77 insertions(+), 48 deletions(-) diff --git a/README.rst b/README.rst index e865339..533fb3c 100644 --- a/README.rst +++ b/README.rst @@ -6,16 +6,15 @@ .. figure:: docs/source/_static/stko.png -.. image:: https://readthedocs.org/projects/stko-docs/badge/?version=latest - :target: https://stko-docs.readthedocs.io/en/latest/?badge=latest - :alt: Documentation Status - Overview ======== -``stko`` is a Python library which allows for the optimisation and -property calculation of molecules constructed using the library -``stk`` https://github.com/lukasturcani/stk. There is a Discord server +`stko `_ is a Python library for +performing optimizations and calculations on complex molecules built using +`stk `_. In the case of +optimizations, a clone of :class:`stk.Molecule` is returned. For +calculators, a ``Results`` class are used to calculate and extract +properties of an :class:`stk.Molecule`. There is a Discord server for ``stk``, which can be joined through https://discord.gg/zbCUzuxe2B. @@ -28,16 +27,15 @@ To get ``stko``, you can install it with pip: pip install stko -Some optional dependencies are only available through conda: + Some optional dependencies are only available through conda: -.. code-block:: bash + .. code-block:: bash + + # for xtb + mamba install xtb + # for openbabel, assuming you are not using Python >= 3.13! + mamba install openbabel - # for xtb - mamba install xtb - # for openbabel - mamba install openbabel - # for mdanalysis - mamba install mdanalysis With OpenMM ----------- @@ -48,16 +46,26 @@ requirements: .. code-block:: bash - # for OpenMM and espaloma charge - # note the temporary issue with rdkit versions and conda will overwrite pip - # installed software - mamba install -c conda-forge pytorch==2.3.1 torchdata==0.7.1 openff-toolkit openmm openmmtools dgl rdkit==2024.3.4 espaloma_charge + mamba install -c conda-forge openff-toolkit -Then install ``stko`` with pip: +Then install ``stko`` with pip, but with the cuda variant to take advantage +of GPU speed up (note that this is a heavy installation!). .. code-block:: bash - pip install stko + pip install stko[cuda] + +We also removed the default installation of ``espaloma_charge`` that provides +the ML-based ``espaloma-am1bcc`` partial charges method. If users want this +package, create a new environment and install their dependancies (if this +fails, please check their +`instructions `_), then install +``stko``: + +.. code-block:: bash + + mamba install -c conda-forge espaloma_charge openff-toolkit + pip install stko[cuda] Developer Setup @@ -86,7 +94,7 @@ and maintain examples in the doc strings of ``Calculator`` and ``Optimizer`` classes. ``examples/basic_examples.py`` highlights basic optimisation with -``rdkit``, ``openbabel`` and ``xtb`` (if you have ``xtb`` available). +``rdkit``, and ``xtb`` (if you have ``xtb`` available). How To Contribute diff --git a/docs/source/index.rst b/docs/source/index.rst index 088d2d2..bcbc93f 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -32,9 +32,18 @@ Welcome to stko's documentation! .. figure:: _static/logo.png +Overview +======== + +`stko `_ is a Python library for +performing optimizations and calculations on complex molecules built using +`stk `_. In the case of +optimizations, a clone of :class:`stk.Molecule` is returned. For +calculators, a ``Results`` class are used to calculate and extract +properties of an :class:`stk.Molecule`. -Install -======= +Installation +============ :mod:`.stko` can be installed directly with pip: @@ -48,7 +57,7 @@ Some optional dependencies are only available through conda: # for xtb mamba install xtb - # for openbabel + # for openbabel, assuming you are not using Python >= 3.13! mamba install openbabel With OpenMM @@ -60,16 +69,27 @@ requirements: .. code-block:: bash - # for OpenMM and espaloma charge - # note the temporary issue with rdkit versions and conda will overwrite pip - # installed software - mamba install -c conda-forge pytorch==2.3.1 torchdata==0.7.1 openff-toolkit openmm openmmtools dgl rdkit==2024.3.4 espaloma_charge + mamba install -c conda-forge openff-toolkit -Then install :mod:`.stko` with pip: +Then install :mod:`.stko` with pip, but with the cuda variant to take advantage +of GPU speed up (note that this is a heavy installation!). .. code-block:: bash - pip install stko + pip install stko[cuda] + +We also removed the default installation of ``espaloma_charge`` that provides +the ML-based ``espaloma-am1bcc`` partial charges method. If users want this +package, create a new environment and install their dependancies (if this +fails, please check their +`instructions `_), then install +``stko``: + +.. code-block:: bash + + mamba install -c conda-forge espaloma_charge openff-toolkit + pip install stko[cuda] + Developer Setup --------------- @@ -88,10 +108,10 @@ Developer Setup Dependencies ------------ -The software packages we offer optimizers are also depencies depending +The software packages we offer optimizers for are also depencies depending on the desired functions used. These are: -* `MacroModel `_ +* `MacroModel `_ * `GULP `_ * `XTB `_ * `OpenBabel `_ @@ -99,16 +119,6 @@ on the desired functions used. These are: * `OpenFF `_ -Overview -======== - -`stko `_ is a Python library which -performs optimizations and calculations on complex molecules built using -`stk `_. In the case of -optimizations, a clone of :class:`stk.Molecule` is returned. For -calculators, a ``Results`` class are used to calculate and extract -properties of an :class:`stk.Molecule`. - Examples -------- @@ -132,9 +142,20 @@ These cover: * `Analysing torsions `_ * `Converting molecules to their Zmatrix `_ -Indices and Tables -================== +How To Contribute +----------------- + +If you have any questions or find problems with the code, please submit +an issue. + +If you wish to add your own code to this repository, please send us a +Pull Request. Please maintain the testing and style that is used +throughout ```stko``. + + +How To Cite +----------- + +If you use ``stko`` please cite -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` + https://github.com/JelfsMaterialsGroup/stko From 2e989df84b41af3e3a775607a9d3042f92a02652 Mon Sep 17 00:00:00 2001 From: Andrew Tarzia Date: Sun, 7 Dec 2025 12:17:41 +0000 Subject: [PATCH 29/33] Add warnings, update doctests, remove openbabel doctests. --- docs/source/cage_analysis.rst | 10 +++++----- docs/source/cage_optimisation.rst | 11 ++++++++--- docs/source/hg_optimisation.rst | 9 +++++++-- .../_internal/calculators/open_babel_calculators.py | 8 +------- src/stko/_internal/calculators/rdkit_calculators.py | 4 ++-- src/stko/_internal/calculators/shape_calculators.py | 4 ++-- .../_internal/molecular/conversion/md_analysis.py | 2 +- src/stko/_internal/optimizers/open_babel.py | 9 +-------- 8 files changed, 27 insertions(+), 30 deletions(-) diff --git a/docs/source/cage_analysis.rst b/docs/source/cage_analysis.rst index 7d3dd64..530a0d2 100644 --- a/docs/source/cage_analysis.rst +++ b/docs/source/cage_analysis.rst @@ -190,8 +190,8 @@ automatic analyses. .. testcode:: analysing-cage :hide: - assert np.isclose(np.mean(ligand_dict['torsion']), 0.9038734003286987) - assert np.isclose(np.mean(ligand_dict['binder_angle']), 150.0120482677146) + assert np.isclose(np.mean(ligand_dict['torsion']), 0.49899173566371574) + assert np.isclose(np.mean(ligand_dict['binder_angle']), 151.09758819338828) The printing the average of the collated values for all ligands looks like: @@ -225,7 +225,7 @@ molecule. :hide: assert np.allclose( - centroids[0], np.array([9.15025292, 0.20886534, 0.45632129]) + centroids[0], np.array([9.28089495, 0.03605466, 0.71892216]) ) We can get measures of pore size and cage geometry. @@ -257,13 +257,13 @@ We can get measures of pore size and cage geometry. .. testcode:: analysing-cage :hide: - assert np.isclose(analyser.get_min_centroid_distance(apdcage), 6.612215150137052) + assert np.isclose(analyser.get_min_centroid_distance(apdcage), 6.345298744800679) Giving: .. code-block:: - approximate pore size: 6.905031217288509 + approximate pore size: 6.345298744800679 avg cage size: (9.796754899196744, 1.537005741468483) avg. metal distance: 13.760850522272712 avg. metal-centroid-angles: 107.491677523429 diff --git a/docs/source/cage_optimisation.rst b/docs/source/cage_optimisation.rst index c5aaff2..5077600 100644 --- a/docs/source/cage_optimisation.rst +++ b/docs/source/cage_optimisation.rst @@ -1,5 +1,5 @@ -Cage optimisation workflow -========================== +Cage optimisation workflow using OpenMM/OpenFF +============================================== Here we implement a cage optimisation workflow similar to that found `here `_ but using the open-source `OpenMM `_ and @@ -9,6 +9,11 @@ This is shown in an example `script `_ that we run through below. +.. warning:: + + OpenMM/OpenFF workflows are more efficient when using GPUs, which is + possible with ``stko`` if you have a GPU and if you install the `cuda` + option, like so: ``pip install 'stko[cuda]'``. First we build a cage, the classic CC3 porous organic cage. But note, we are not handling the detailed stereochemistry of this system here. @@ -91,7 +96,7 @@ from these settings. # Settings. force_field = ForceField("openff_unconstrained-2.1.0.offxml") - partial_charges = "espaloma-am1bcc" + partial_charges = "mmff94" temperature = 700 * openmm.unit.kelvin friction = 10 / openmm.unit.picoseconds time_step = 1 * openmm.unit.femtoseconds diff --git a/docs/source/hg_optimisation.rst b/docs/source/hg_optimisation.rst index 88bc5d9..bc204c7 100644 --- a/docs/source/hg_optimisation.rst +++ b/docs/source/hg_optimisation.rst @@ -1,5 +1,5 @@ -Host-guest complexes with OpenMM -================================ +Host-guest complexes with OpenMM/OpenFF +======================================= Here we build on the cage optimisation workflow to show how to build host-guest systems using the open-source `OpenMM `_ and @@ -9,6 +9,11 @@ This is shown in an example `script `_ that we run through below. +.. warning:: + + OpenMM/OpenFF workflows are more efficient when using GPUs, which is + possible with ``stko`` if you have a GPU and if you install the `cuda` + option, like so: ``pip install 'stko[cuda]'``. First we load a cage from the previous example, the classic CC3 porous organic cage. And we build to `stk.host_guest.Guest` objects. diff --git a/src/stko/_internal/calculators/open_babel_calculators.py b/src/stko/_internal/calculators/open_babel_calculators.py index 7777399..fcf49d7 100644 --- a/src/stko/_internal/calculators/open_babel_calculators.py +++ b/src/stko/_internal/calculators/open_babel_calculators.py @@ -40,7 +40,7 @@ class OpenBabelEnergy: * OpenBabel: https://github.com/openbabel/openbabel Examples: - .. testcode:: obabel-energy + .. code-block:: python import stk import stko @@ -56,12 +56,6 @@ class OpenBabelEnergy: energy = results.get_energy() unit_string = results.get_unit_string() - .. testcode:: obabel-energy - :hide: - - assert energy == 195.20661518925408 - assert unit_string == "kJ mol-1" - """ def __init__(self, forcefield: str) -> None: diff --git a/src/stko/_internal/calculators/rdkit_calculators.py b/src/stko/_internal/calculators/rdkit_calculators.py index d0b2aab..ec7c28d 100644 --- a/src/stko/_internal/calculators/rdkit_calculators.py +++ b/src/stko/_internal/calculators/rdkit_calculators.py @@ -33,7 +33,7 @@ class MMFFEnergy: .. testcode:: rdkit-mmff-energy :hide: - assert energy == 11.216351101037246 + assert energy == 10.663880787473003 assert unit_string == "kcal mol-1" """ @@ -106,7 +106,7 @@ class UFFEnergy: .. testcode:: rdkit-uff-energy :hide: - assert energy == 23.797137762102494 + assert energy == 22.29256736909674 assert unit_string == "kcal mol-1" """ diff --git a/src/stko/_internal/calculators/shape_calculators.py b/src/stko/_internal/calculators/shape_calculators.py index 256fac8..e1f2a90 100644 --- a/src/stko/_internal/calculators/shape_calculators.py +++ b/src/stko/_internal/calculators/shape_calculators.py @@ -29,8 +29,8 @@ class ShapeCalculator: .. testcode:: shape-rdkit :hide: - assert eccentricity == 0.8144902154190367 - assert shape_results.get_asphericity() == 0.14455881888155714 + assert eccentricity == 0.8147863429806671 + assert shape_results.get_asphericity() == 0.14435990108591792 References: .. [#] https://www.rdkit.org/docs/source/rdkit.Chem.Descriptors3D.html diff --git a/src/stko/_internal/molecular/conversion/md_analysis.py b/src/stko/_internal/molecular/conversion/md_analysis.py index c4bb26a..acb5716 100644 --- a/src/stko/_internal/molecular/conversion/md_analysis.py +++ b/src/stko/_internal/molecular/conversion/md_analysis.py @@ -44,7 +44,7 @@ class MDAnalysis: :hide: assert np.allclose( - universe_com, np.array([9.95245937, 10.06867664, 9.91669654]) + universe_com, np.array([9.95027003, 10.07716244, 9.91280079]) ) assert np.allclose(stk_centroid, np.array([10.0, 10.0, 10.0])) diff --git a/src/stko/_internal/optimizers/open_babel.py b/src/stko/_internal/optimizers/open_babel.py index 900e0ae..946d205 100644 --- a/src/stko/_internal/optimizers/open_babel.py +++ b/src/stko/_internal/optimizers/open_babel.py @@ -54,7 +54,7 @@ class OpenBabel(Optimizer): * OpenBabel: https://github.com/openbabel/openbabel Examples: - .. testcode:: obabel-optimisation + .. code-block:: python import stk import stko @@ -63,13 +63,6 @@ class OpenBabel(Optimizer): openbabel = stko.OpenBabel('uff') opt_mol = openbabel.optimize(mol) - .. testcode:: obabel-optimisation - :hide: - - assert stk.Smiles().get_key(mol) == stk.Smiles().get_key(opt_mol) - opt_e = stko.OpenBabelEnergy('uff').get_energy(opt_mol) - assert opt_e < stko.OpenBabelEnergy('uff').get_energy(mol) - """ def __init__( From f277c42e9329e65512ad9a42f55c52ee083d1d10 Mon Sep 17 00:00:00 2001 From: Andrew Tarzia Date: Sun, 7 Dec 2025 12:18:38 +0000 Subject: [PATCH 30/33] Update readme. --- README.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.rst b/README.rst index 533fb3c..6cd3c14 100644 --- a/README.rst +++ b/README.rst @@ -12,9 +12,9 @@ Overview `stko `_ is a Python library for performing optimizations and calculations on complex molecules built using `stk `_. In the case of -optimizations, a clone of :class:`stk.Molecule` is returned. For +optimizations, a clone of ``stk.Molecule`` is returned. For calculators, a ``Results`` class are used to calculate and extract -properties of an :class:`stk.Molecule`. There is a Discord server +properties of an ``stk.Molecule``. There is a Discord server for ``stk``, which can be joined through https://discord.gg/zbCUzuxe2B. From 136ad91a84fea27ee0d79f337b86a4c6d444cda4 Mon Sep 17 00:00:00 2001 From: Andrew Tarzia Date: Sun, 7 Dec 2025 12:19:04 +0000 Subject: [PATCH 31/33] Update readme. --- README.rst | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.rst b/README.rst index 6cd3c14..daf00ae 100644 --- a/README.rst +++ b/README.rst @@ -27,14 +27,14 @@ To get ``stko``, you can install it with pip: pip install stko - Some optional dependencies are only available through conda: +Some optional dependencies are only available through conda: - .. code-block:: bash +.. code-block:: bash - # for xtb - mamba install xtb - # for openbabel, assuming you are not using Python >= 3.13! - mamba install openbabel + # for xtb + mamba install xtb + # for openbabel, assuming you are not using Python >= 3.13! + mamba install openbabel With OpenMM From ce4397edb2ac0041984cccb1789c3aa8b1881610 Mon Sep 17 00:00:00 2001 From: Andrew Tarzia Date: Sun, 7 Dec 2025 12:39:49 +0000 Subject: [PATCH 32/33] Test workflow installation ordering. --- .github/workflows/tests.yml | 6 +++--- docs/environment.yml | 19 ++++++------------- tests/calculators/pore/__init__.py | 0 3 files changed, 9 insertions(+), 16 deletions(-) delete mode 100644 tests/calculators/pore/__init__.py diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 267b9a9..13a76af 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -58,10 +58,10 @@ jobs: - name: Build environment run: | conda activate pytest - conda install -c conda-forge openff-toolkit python -m pip install --upgrade pip python -m pip install --upgrade setuptools python -m pip install -e '.[dev]' + conda install -c conda-forge openff-toolkit - run: pytest example-tests: @@ -82,10 +82,10 @@ jobs: - name: Build environment run: | conda activate pytest - conda install -c conda-forge openff-toolkit python -m pip install --upgrade pip python -m pip install --upgrade setuptools python -m pip install -e '.[dev]' + conda install -c conda-forge openff-toolkit - name: Run script run: python examples/testable_example.py @@ -107,8 +107,8 @@ jobs: - name: Build environment run: | conda activate pytest - conda install -c conda-forge openff-toolkit python -m pip install --upgrade pip python -m pip install --upgrade setuptools python -m pip install -e '.[dev]' + conda install -c conda-forge openff-toolkit - run: make -C docs doctest diff --git a/docs/environment.yml b/docs/environment.yml index c58ff3e..4ec3e21 100644 --- a/docs/environment.yml +++ b/docs/environment.yml @@ -1,15 +1,8 @@ channels: - - conda-forge - - defaults + - conda-forge + - defaults dependencies: - - openff-toolkit - - openmm - - openmmtools - - dgl - - python=3.11 - - pip - - rdkit==2024.3.4 - - espaloma_charge - - mdanalysis - - openbabel - + - openff-toolkit + - python=3.13 + - pip + - rdkit diff --git a/tests/calculators/pore/__init__.py b/tests/calculators/pore/__init__.py deleted file mode 100644 index e69de29..0000000 From be644b54f5e9b0edd54ad837f0db3cfb48beeb6c Mon Sep 17 00:00:00 2001 From: Andrew Tarzia Date: Sun, 7 Dec 2025 12:46:01 +0000 Subject: [PATCH 33/33] Remove polymer test due to multiple steps of deviation possible. --- tests/calculators/rmsd/conftest.py | 35 ------------------------------ 1 file changed, 35 deletions(-) diff --git a/tests/calculators/rmsd/conftest.py b/tests/calculators/rmsd/conftest.py index 8a86e30..c3772de 100644 --- a/tests/calculators/rmsd/conftest.py +++ b/tests/calculators/rmsd/conftest.py @@ -16,23 +16,6 @@ class CaseData: _optimizer = stko.UFF() -_polymer = stk.ConstructedMolecule( - topology_graph=stk.polymer.Linear( - building_blocks=( - stk.BuildingBlock( - smiles="BrCCBr", - functional_groups=[stk.BromoFactory()], - ), - stk.BuildingBlock( - smiles="BrCNCCBr", - functional_groups=[stk.BromoFactory()], - ), - ), - repeating_unit="AB", - num_repeating_units=2, - optimizer=stk.MCHammer(), - ), -) _cc_molecule = stk.BuildingBlock("[C][C]") @@ -91,12 +74,6 @@ class CaseData: rmsd=0.032841285146032156, kabsch_rmsd=0.032795057670018585, ), - CaseData( - mol1=_polymer, - mol2=_optimizer.optimize(_polymer), - rmsd=1.7661731164361503, - kabsch_rmsd=1.7223269859154275, - ), ], ) def case_data(request: pytest.FixtureRequest) -> CaseData: @@ -131,12 +108,6 @@ def case_data(request: pytest.FixtureRequest) -> CaseData: rmsd=0.03417702414054854, kabsch_rmsd=0.029156836455717483, ), - CaseData( - mol1=_polymer, - mol2=_optimizer.optimize(_polymer), - rmsd=1.5861285062968584, - kabsch_rmsd=1.792856412415046, - ), ], ) def ignore_h_case_data(request: pytest.FixtureRequest) -> CaseData: @@ -169,12 +140,6 @@ def different_case_data(request: pytest.FixtureRequest) -> CaseData: @pytest.fixture( scope="session", params=[ - CaseData( - mol1=_polymer, - mol2=_polymer.with_canonical_atom_ordering(), - rmsd=0.0, - kabsch_rmsd=0.0, - ), CaseData( mol1=stk.BuildingBlock( smiles=(