The eMolecules page for example offers a complete dataset containing ~26 million structures. They're providing it either as a 300 MB SMILES archive or 6 GB SDF archive (1.5 GB and 50 GB uncompressed respectively).
Does the SDF file contain any information about the chemical structures, that the SMILES format does not contain?
First record in SDF:
Mrv1722001051816042D
37 40 0 0 0 0 999 V2000
4.3268 0.7345 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
3.6124 0.3220 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
2.8979 0.7345 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
2.1834 0.3220 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
1.4690 0.7345 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
0.7545 0.3220 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
0.0400 0.7345 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-0.6744 0.3220 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
4.3268 1.5595 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
5.0413 0.3220 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
5.7558 0.7345 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
6.4703 0.3220 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
7.1847 0.7345 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
5.7558 1.5595 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
6.4703 1.9720 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
6.4703 2.7970 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
7.1847 3.2095 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
7.8992 2.7970 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
8.6137 3.2095 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
8.7852 4.0165 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
9.6057 4.1027 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
9.9412 3.3491 0.0000 C 0 0 2 0 0 0 0 0 0 0 0 0
10.7482 3.1775 0.0000 C 0 0 1 0 0 0 0 0 0 0 0 0
11.3002 3.7906 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
12.1072 3.6191 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
12.6592 4.2322 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
13.4662 4.0607 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
14.0183 4.6738 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
13.7212 3.2760 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
11.0031 2.3929 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
9.3281 2.7970 0.0000 C 0 0 2 0 0 0 0 0 0 0 0 0
10.0818 2.4615 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
9.3281 1.9720 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
8.6137 1.5595 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
7.8992 1.9720 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
7.1847 1.5595 0.0000 C 0 0 1 0 0 0 0 0 0 0 0 0
7.8992 1.1470 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
1 2 1 0 0 0 0
1 9 2 0 0 0 0
1 10 1 0 0 0 0
2 3 1 0 0 0 0
3 4 1 0 0 0 0
4 5 1 0 0 0 0
5 6 1 0 0 0 0
6 7 1 0 0 0 0
7 8 1 0 0 0 0
10 11 1 0 0 0 0
11 12 1 0 0 0 0
11 14 1 0 0 0 0
12 13 1 0 0 0 0
13 36 1 0 0 0 0
14 15 1 0 0 0 0
15 16 2 0 0 0 0
15 36 1 0 0 0 0
16 17 1 0 0 0 0
17 18 1 0 0 0 0
18 19 1 0 0 0 0
18 35 1 0 0 0 0
19 20 1 0 0 0 0
19 31 1 0 0 0 0
20 21 1 0 0 0 0
22 21 1 0 0 0 0
22 23 1 0 0 0 0
22 31 1 6 0 0 0
23 24 1 0 0 0 0
23 30 1 1 0 0 0
24 25 1 0 0 0 0
25 26 1 0 0 0 0
26 27 1 0 0 0 0
27 28 1 0 0 0 0
27 29 1 0 0 0 0
31 32 1 6 0 0 0
31 33 1 0 0 0 0
33 34 1 0 0 0 0
34 35 1 0 0 0 0
35 36 1 0 0 0 0
36 37 1 6 0 0 0
M END
> <EMOL_VERSION_ID>
9986
> <EMOL_PARENT_ID>
9986
> <EMOL_LINK>
https://www.emolecules.com/search/#?query=9986&querytype=emoleculesid
Letting MarvinJs draw it:
The same record in SMILES:
CCCCCCCC(=O)OC1CC[C@]2(C)C3CC[C@]4(C)[C@H](CCC4C3CC=C2C1)[C@H](C)CCCC(C)C 9986 9986
Letting MarvinJs draw it
Obviously it is mirrored. Since I am no chemist, would it make any difference for you? Should I expect more discrepancies like that, even more complicated ones?
The question stated differently: Does it give a scientist searching for a catalogue of structures a real benefit when using the vastly more explicit SDF format? From a programmer's perspective, carrying around gigabytes is far more difficult than megabytes, so the benefit should be reasonable.
curl https://downloads.emolecules.com/free/2021-03-01/version.sdf.gz | zcat > emolecules.sdf.txt
and interrupt it after a few seconds byctrl+c
gives you "enough from the beginning, but not all of it to crash your editor" $\endgroup$less
will open it instantly (f
to move forward,b
to move backward,g
- jump to the beginning,G
- jump to the end). $\endgroup$