I am an IT guy with little knowledge of Chemistry, so please bear with me...
For context: I am working with a system that has a lot of structures, their .mol
files and some metadata (like mol weights) in a database. Due to an error, some of the metadata was lost and needs to be recalculated. Since there are a lot of structures, I need to automate this.
Originally, the mol weights were calculated using the Freeware version of ACD ChemSketch. Since I did not find a way to call ChemSketch and have it return the mol weight or otherwise automate ChemSketch itself, I looked at RDKit for Python as an alternative.
In my tests, I noticed that ChemSketch and RDKit produced slightly different results when calculating the mol weights. I used m = Chem.MolFromMolFile('amisalin.mol')
to load the file and then MolWt(m)
respectively ExactMolWt(m)
.
Example mol file amisalin.mol
:
-ACD/LAB-
18 17 0 0 0 0 0 0 0 0 0 V2000
18.3905 -6.6892 0.0000 C 0 0 0 0 0
19.4429 -6.0748 0.0000 C 0 0 0 0 0
18.3905 -8.0661 0.0000 C 0 0 0 0 0
17.2059 -5.9960 0.0000 C 0 0 0 0 0
20.5930 -6.7427 0.0000 N 0 0 0 0 0
19.4429 -4.2757 0.0000 O 0 0 0 0 0
17.2059 -8.7560 0.0000 C 0 0 0 0 0
16.0211 -6.6892 0.0000 C 0 0 0 0 0
21.7398 -6.0748 0.0000 C 0 0 0 0 0
16.0211 -8.0661 0.0000 C 0 0 0 0 0
22.5401 -6.5380 0.0000 C 0 0 0 0 0
14.8742 -8.7309 0.0000 N 0 0 0 0 0
23.6965 -5.8762 0.0000 N 0 0 0 0 0
24.8434 -6.5380 0.0000 C 0 0 0 0 0
23.6965 -4.0709 0.0000 C 0 0 0 0 0
25.9934 -5.8762 0.0000 C 0 0 0 0 0
24.8434 -3.4124 0.0000 C 0 0 0 0 0
21.0845 -12.6663 0.0000 Cl 0 0 0 0 0
1 2 1 0 2 0 0
1 3 2 0 1 0 0
1 4 1 0 1 0 0
2 5 1 0 2 0 0
2 6 2 0 2 0 0
3 7 1 0 1 0 0
4 8 2 0 1 0 0
5 9 1 0 2 0 0
7 10 2 0 1 0 0
9 11 1 0 2 0 0
10 12 1 0 2 0 0
11 13 1 0 2 0 0
13 14 1 0 2 0 0
13 15 1 0 2 0 0
14 16 1 0 2 0 0
15 17 1 0 2 0 0
8 10 1 0 1 0 0
M END
Results:
Average molar weight | Exact molar weight | |
---|---|---|
Chemsketch | 271.78628 | 271.14514 |
RDKit | 271.7919999999999 | 271.145140004 |
As you can see, the results are slightly different. Since the input data is identical, I assume this is due to some internal differences when calculating the weights, possibly due to rounding (?).
My question now is: Is the difference negligible? Does anyone know where it comes from? Is one of the results "correct" / more accurate than the other?
.mol
files? Often, it they are used as a descriptor of the structure, how the atoms are bound together and having an idea about the molecular mass is a nicety, but not a must have. For example, if the .mol files «anyway» are rewritten later into an other format to perform subsequent (e.g., quantum chemical) computations. $\endgroup$pyautogui
but went another way since I'd ideally like my solution to run "headless". However, thanks to your help, I'm now equipped to discuss this with the users. If the discrepancy shouldn't be acceptable to them, as an alternative, I also found that the most recent version ofopenbabel
yields almost exactly the same results for average mol weight as ChemSketch. $\endgroup$