Moltric Molecular Metric
Project description
For installation of Moltric, use pip: pip install moltric
For questions or suggestions for features to add, contact Kazuumi Fujioka: kazuumi@hawaii.edu
How do you best overlap two molecules?
Finding the best algorithm to do this is a Holy Grail
Many groups have searched for this, but there is no consensus on a best method. For example:
Comparing Software
We can see which software best optimizes the molecular overlap by seeing whether they find the minimum RMSD (among the permutations checked). The software above are compared (ArbAlign, MolAlign, OTMol, and FASTOVERLAP "FO" with and without Branch-and-Bound "BnB").
The RMSDs are compared over a few different sets of data, or benchmarks:
- C10H9 (Bimolecular Reaction of CH + C9H8 and C2H4 + C8H5)
- BrCH5 (Bimolecular Reaction of HBr+ + CH4)
- Ne20 (20-atom Subsets of a Neon200 Cluster) [source]
- Ne180 (180-atom Subsets of a Neon200 Cluster) [source]
- FGG (FGG tripeptide C13H17N3O4 Conformers) [source]
- SMAW (Sulfate-Methylammonium-Water Cluster CH9NO5S Conformers) [source]
These software are designed to optimize overlap by minimizing RMSD. If instead, we want to minimize the distance matrix deviation (DMD), we could instead use Moltric. We can now see how these "optimal overlaps" work for DMD.
Usage
Comparing two sets of molecules:
From a terminal, prepare two xyz files of the two sets of molecules. Then call Moltric, like so:
moltric-cli examples/fromFujioka_CH.indene_19atoms.xyz examples/fromFujioka_CH.indene_19atoms.xyz
this produces:
# Number of points found in 'examples/fromFujioka_CH.indene_19atoms.xyz': 81
# Number of points found in 'examples/fromFujioka_CH.indene_19atoms.xyz': 81
# i j DMD
0 0 0.0000
0 1 2.1084
0 2 3.9254
0 3 3.9358
0 4 1.7824
0 5 2.6834
0 6 5.1325
0 7 3.6761
0 8 6.9604
0 9 2.2738
.
.
.
Benchmarking the RMSD or DMD:
Moltric and other methods can be compared with the benchmarking scripts like benchmarking/compare_methods.py from the terminal on an example xyz file:
cat examples/fromFujioka_H5CBr_7atoms.xyz | benchmarking/compare_methods.py 0.00001 output.xyz
this produces:
.
.
.
DMDbound# i j ArbAlign OTMol MolAlign Umeyama FAQ GOATf GOAT minimum (Nf) (N)
Adding index 0 to the training set ... Sparsity 1.0000 = 1/1
1.5928# 1 0 25.4432 31.6604 19.0167 13.8631 17.9570 21.2356 4.2362 4.2362 (21) (467)
Adding index 1 to the training set ... Sparsity 1.0000 = 2/2
2.4458# 2 0 39.6316 29.3163 32.7360 11.1385 26.1334 21.7794 5.2278 5.2278 (26) (482)
1.7212# 2 1 33.6609 12.9877 9.0464 3.5600 3.5600 3.5600 3.5600 3.5600 (18) (389)
Adding index 2 to the training set ... Sparsity 1.0000 = 3/3
1.8722# 3 0 33.3322 21.9517 28.5810 9.6538 21.7277 21.1000 4.4000 4.4000 (20) (449)
1.5957# 3 1 24.4360 17.1308 17.4071 3.6724 3.6724 3.6724 3.6724 3.6724 (16) (403)
0.9671# 3 2 29.2970 22.7893 20.3330 2.0084 2.0084 2.0084 2.0084 2.0084 (18) (474)
Adding index 3 to the training set ... Sparsity 1.0000 = 4/4
2.8128# 4 0 41.7131 22.6670 23.5538 11.3122 23.8455 22.5683 6.1147 6.1147 (21) (461)
2.3773# 4 1 34.7580 31.9236 32.2770 4.3386 4.3386 4.3386 4.3386 4.3386 (17) (390)
0.3376# 4 2 8.8606 6.1540 15.8762 0.7083 0.7083 0.7083 0.7083 0.7083 (18) (385)
0.7713# 4 3 17.4316 4.9512 8.0874 1.3402 1.3402 1.3402 1.3402 1.3402 (17) (360)
Adding index 4 to the training set ... Sparsity 1.0000 = 5/5
0.9072# 5 0 19.7347 18.7131 22.0875 2.7445 14.5171 14.5171 2.4299 2.4299 (18) (432)
0.9114# 5 1 19.6808 3.3077 3.3077 12.6573 3.3077 3.3077 1.8983 1.8983 (16) (366)
1.9796# 5 2 37.5165 9.5294 11.2601 14.6674 8.1114 6.3697 4.8420 4.8420 (18) (396)
1.6283# 5 3 23.7955 15.7882 18.5697 9.7445 5.6637 5.6637 4.1777 4.1777 (17) (443)
2.3768# 5 4 43.0193 24.0932 29.3850 19.2532 6.4887 6.4887 5.0040 5.0040 (17) (396)
.
.
.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file moltric-1.0.0.tar.gz.
File metadata
- Download URL: moltric-1.0.0.tar.gz
- Upload date:
- Size: 38.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6374822e8beaffa9c426065c956a8cc49527c05b378426162d1ca144e7ae90d1
|
|
| MD5 |
6996e0838ae7449fb53cbc54c1ca8ea8
|
|
| BLAKE2b-256 |
d49a9dea0aec9338e32c9f3e534b4be01cfd7dc12b3ec2001e05454ac512eea4
|
Provenance
The following attestation bundles were made for moltric-1.0.0.tar.gz:
Publisher:
publish.yml on kaka-zuumi/Moltric
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
moltric-1.0.0.tar.gz -
Subject digest:
6374822e8beaffa9c426065c956a8cc49527c05b378426162d1ca144e7ae90d1 - Sigstore transparency entry: 2141492556
- Sigstore integration time:
-
Permalink:
kaka-zuumi/Moltric@30d896d2c918c78d8613b1d449156885e70653e0 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/kaka-zuumi
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@30d896d2c918c78d8613b1d449156885e70653e0 -
Trigger Event:
release
-
Statement type:
File details
Details for the file moltric-1.0.0-py3-none-any.whl.
File metadata
- Download URL: moltric-1.0.0-py3-none-any.whl
- Upload date:
- Size: 43.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b4a5029e716b87a4a897d3b9c71a9cb84c0e918011c38dff47f300a84f2afe31
|
|
| MD5 |
2be905934230283071f091f40d6691b1
|
|
| BLAKE2b-256 |
c8afdb64964e5ab33819a4f7d5f04269819f742aef2926bf1aa6379648d508c9
|
Provenance
The following attestation bundles were made for moltric-1.0.0-py3-none-any.whl:
Publisher:
publish.yml on kaka-zuumi/Moltric
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
moltric-1.0.0-py3-none-any.whl -
Subject digest:
b4a5029e716b87a4a897d3b9c71a9cb84c0e918011c38dff47f300a84f2afe31 - Sigstore transparency entry: 2141492570
- Sigstore integration time:
-
Permalink:
kaka-zuumi/Moltric@30d896d2c918c78d8613b1d449156885e70653e0 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/kaka-zuumi
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@30d896d2c918c78d8613b1d449156885e70653e0 -
Trigger Event:
release
-
Statement type: