Discrepancy when calulating mol weights with ChemSketch and Python RDKit
I am an IT guy with little knowledge of Chemistry, so please bear with me...
For context: I am working with a system which has a lot of structures, their .mol files and some meta data (like mol weights) in a database. Due to an error, some of the meta data 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. 373
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 -<PHONE_NUMBER> C 0 0 0 0 0 19.4429 -<PHONE_NUMBER> C 0 0 0 0 0 18.3905 -<PHONE_NUMBER> C 0 0 0 0 0 17.2059 -5.9960 0.0000 C 0 0 0 0 0 20.5930 -<PHONE_NUMBER> N 0 0 0 0 0 19.4429 -<PHONE_NUMBER> O 0 0 0 0 0 17.2059 -<PHONE_NUMBER> C 0 0 0 0 0 16.0211 -<PHONE_NUMBER> C 0 0 0 0 0 21.7398 -<PHONE_NUMBER> C 0 0 0 0 0 16.0211 -<PHONE_NUMBER> C 0 0 0 0 0 22.5401 -<PHONE_NUMBER> C 0 0 0 0 0 14.8742 -<PHONE_NUMBER> N 0 0 0 0 0 23.6965 -<PHONE_NUMBER> N 0 0 0 0 0 24.8434 -<PHONE_NUMBER> C 0 0 0 0 0 23.6965 -<PHONE_NUMBER> C 0 0 0 0 0 25.9934 -<PHONE_NUMBER> C 0 0 0 0 0 24.8434 -<PHONE_NUMBER> 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? 268