Given 2 MOL files (0.mol and 1.mol) and an SD file containing these MOL files in the order 0/1 (01.sdf) I do get different results for the second compound in the SD file (actually, for any compound other than the first, if this example is extended to more compounds). The results in detail are:
0.mol:
E N E R G Y
TOTAL BOND STRETCHING ENERGY = 885.142 kJ/mol TOTAL ANGLE BENDING ENERGY = 0.000 kJ/mol TOTAL TORSIONAL ENERGY = 0.000 kJ/mol TOTAL VAN DER WAALS ENERGY = 28.637 kJ/mol
TOTAL ENERGY = 913.77844 kJ/mol
1.mol:
E N E R G Y
TOTAL BOND STRETCHING ENERGY = 885.082 kJ/mol TOTAL ANGLE BENDING ENERGY = 0.000 kJ/mol TOTAL TORSIONAL ENERGY = 0.000 kJ/mol TOTAL VAN DER WAALS ENERGY = 40.619 kJ/mol
TOTAL ENERGY = 925.70114 kJ/mol
Feeding SD file 01.sdf:
E N E R G Y
TOTAL BOND STRETCHING ENERGY = 885.142 kJ/mol
TOTAL ANGLE BENDING ENERGY = 0.000 kJ/mol
TOTAL TORSIONAL ENERGY = 0.000 kJ/mol
TOTAL VAN DER WAALS ENERGY = 28.637 kJ/mol
TOTAL ENERGY = 913.77844 kJ/mol
E N E R G Y
TOTAL BOND STRETCHING ENERGY = 25051.011 kJ/mol TOTAL ANGLE BENDING ENERGY = 4739.340 kJ/mol TOTAL TORSIONAL ENERGY = 0.000 kJ/mol TOTAL VAN DER WAALS ENERGY = 30521.391 kJ/mol
TOTAL ENERGY = 60311.74191 kJ/mol
One cleary sees that the result for compound 1 from the SD file is not even close to the one which processing the MOL file of the compound gives (e.g. total energy 925.70114 kJ/mol (MOL) vs. 60311.74191 kJ/mol (SDF).
The behaviour is reproducible on both Windows and Linux (OB 2.2.1 and 2.2.3) .
The same is true for obminimize. If I minimize the above compounds (e.g. obminimize -h -c 1e-4 -o mol 0.mol > 0.min.mol), I do get these results:
0.min.mol:
OpenBabel08070915532D
21 21 0 0 0 0 0 0 0 0999 V2000
-2.4575 5.8304 0.0019 C 0 0 0 0 0
-1.3334 3.7826 0.0003 C 0 0 0 0 0
-0.0840 1.5542 -0.0001 C 0 0 0 0 0
-1.2704 -0.5623 -0.0000 C 0 0 0 0 0
-2.4873 1.5297 -0.0001 C 0 0 0 0 0
-2.4795 0.1324 -0.0000 C 0 0 0 0 0
-1.2974 2.2633 -0.0001 C 0 0 0 0 0
-0.0744 0.1570 -0.0000 C 0 0 0 0 0
-3.7739 6.5786 -0.0053 C 0 0 0 0 0
1.1240 2.2511 -0.0000 O 0 0 0 0 0
-1.4212 6.4741 -0.0002 O 0 0 0 0 0
-0.2658 4.3741 0.0007 O 0 0 0 0 0
-2.4936 4.4784 0.0002 O 0 0 0 0 0
-1.2579 -1.6475 0.0000 H 0 0 0 0 0
-3.4377 2.0474 0.0000 H 0 0 0 0 0
-3.4111 -0.4215 0.0000 H 0 0 0 0 0
0.8601 -0.3966 0.0000 H 0 0 0 0 0
-3.5839 7.6653 0.0048 H 0 0 0 0 0
-4.3770 6.3346 0.8821 H 0 0 0 0 0
-4.3580 6.3482 -0.9090 H 0 0 0 0 0
1.8727 1.6653 0.0000 H 0 0 0 0 0
11 1 2 0 0 0
9 1 1 0 0 0
1 13 1 0 0 0
12 2 2 0 0 0
2 7 1 0 0 0
2 13 1 0 0 0
8 3 2 0 0 0
3 7 1 0 0 0
3 10 1 0 0 0
6 4 2 0 0 0
8 4 1 0 0 0
4 14 1 0 0 0
6 5 1 0 0 0
5 7 2 0 0 0
5 15 1 0 0 0
6 16 1 0 0 0
8 17 1 0 0 0
9 18 1 0 0 0
9 19 1 0 0 0
9 20 1 0 0 0
10 21 1 0 0 0
M END
1.min.mol:
CDK 8/6/09,16:11
13 13 0 0 0 0 0 0 0 0999 V2000
2.5981 1.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-1.2990 3.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
0.0000 1.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-1.2990 -0.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-2.5981 1.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-2.5981 -0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-1.2990 2.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
0.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
3.8971 2.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-2.5981 4.5000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
2.5981 -0.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
0.0000 4.5000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
1.2990 2.2500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
12 2 2 0 0 0 0
11 1 2 0 0 0 0
6 4 2 0 0 0 0
6 5 1 0 0 0 0
8 4 1 0 0 0 0
8 3 2 0 0 0 0
5 7 2 0 0 0 0
3 7 1 0 0 0 0
3 13 1 0 0 0 0
2 7 1 0 0 0 0
2 10 1 0 0 0 0
9 1 1 0 0 0 0
1 13 1 0 0 0 0
M END
01.min.sdf:
OpenBabel08070915532D
21 21 0 0 0 0 0 0 0 0999 V2000
-2.4575 5.8304 0.0019 C 0 0 0 0 0
-1.3334 3.7826 0.0003 C 0 0 0 0 0
-0.0840 1.5542 -0.0001 C 0 0 0 0 0
-1.2704 -0.5623 -0.0000 C 0 0 0 0 0
-2.4873 1.5297 -0.0001 C 0 0 0 0 0
-2.4795 0.1324 -0.0000 C 0 0 0 0 0
-1.2974 2.2633 -0.0001 C 0 0 0 0 0
-0.0744 0.1570 -0.0000 C 0 0 0 0 0
-3.7739 6.5786 -0.0053 C 0 0 0 0 0
1.1240 2.2511 -0.0000 O 0 0 0 0 0
-1.4212 6.4741 -0.0002 O 0 0 0 0 0
-0.2658 4.3741 0.0007 O 0 0 0 0 0
-2.4936 4.4784 0.0002 O 0 0 0 0 0
-1.2579 -1.6475 0.0000 H 0 0 0 0 0
-3.4377 2.0474 0.0000 H 0 0 0 0 0
-3.4111 -0.4215 0.0000 H 0 0 0 0 0
0.8601 -0.3966 0.0000 H 0 0 0 0 0
-3.5839 7.6653 0.0048 H 0 0 0 0 0
-4.3770 6.3346 0.8821 H 0 0 0 0 0
-4.3580 6.3482 -0.9090 H 0 0 0 0 0
1.8727 1.6653 0.0000 H 0 0 0 0 0
11 1 2 0 0 0
9 1 1 0 0 0
1 13 1 0 0 0
12 2 2 0 0 0
2 7 1 0 0 0
2 13 1 0 0 0
8 3 2 0 0 0
3 7 1 0 0 0
3 10 1 0 0 0
6 4 2 0 0 0
8 4 1 0 0 0
4 14 1 0 0 0
6 5 1 0 0 0
5 7 2 0 0 0
5 15 1 0 0 0
6 16 1 0 0 0
8 17 1 0 0 0
9 18 1 0 0 0
9 19 1 0 0 0
9 20 1 0 0 0
10 21 1 0 0 0
M END
$$$$
OpenBabel08070915532D
21 21 0 0 0 0 0 0 0 0999 V2000
2.5889 1.4557 0.0001 C 0 0 0 0 0
-0.2646 2.9608 -0.3000 C 0 0 0 0 0
-0.9937 2.1520 -0.3002 C 0 0 0 0 0
-1.2674 -0.7325 -0.0021 C 0 0 0 0 0
-2.5829 1.4912 0.3000 C 0 0 0 0 0
-2.5829 0.0087 0.0369 C 0 0 0 0 0
-1.3235 2.2022 0.3000 C 0 0 0 0 0
-0.6217 0.0084 -0.3001 C 0 0 0 0 0
3.8996 2.2528 -0.0004 C 0 0 0 0 0
-2.6800 3.8801 -0.2449 O 0 0 0 0 0
3.2209 0.0641 -0.3553 O 0 0 0 0 0
-0.6533 4.4795 -0.3000 O 0 0 0 0 0
1.4140 2.4476 0.2457 O 0 0 0 0 0
-1.4931 -1.2499 -0.0139 H 0 0 0 0 0
-2.9507 1.4500 -0.0024 H 0 0 0 0 0
-2.9507 0.0500 -0.0084 H 0 0 0 0 0
0.3301 -0.5576 -0.3001 H 0 0 0 0 0
4.7614 1.5120 0.6001 H 0 0 0 0 0
3.9595 2.9287 0.9095 H 0 0 0 0 0
3.3563 2.8945 -0.9342 H 0 0 0 0 0
-2.5949 4.9500 -0.0222 H 0 0 0 0 0
11 1 2 0 0 0
9 1 1 0 0 0
1 13 1 0 0 0
12 2 2 0 0 0
2 7 1 0 0 0
2 10 1 0 0 0
8 3 2 0 0 0
3 7 1 0 0 0
3 13 1 0 0 0
6 4 2 0 0 0
8 4 1 0 0 0
4 14 1 0 0 0
6 5 1 0 0 0
5 7 2 0 0 0
5 15 1 0 0 0
6 16 1 0 0 0
8 17 1 0 0 0
9 18 1 0 0 0
9 19 1 0 0 0
9 20 1 0 0 0
10 21 1 0 0 0
M END
$$$$
Here, one sees different coordinates for the second compound (which is the same MOL file as 1.mol).
Submitted by: Timo Reiss spaceghost@gmx.li
Example MOL/SD files
Dreaded Copy & Paste ... The resulting MOL file of 1.mol is of course not the input but the output: Sorry ... Here is the correct version of 1.min.mol (which still differs from the result of compound 1 from the SD file):
1.min.mol:
OpenBabel08070915522D
21 21 0 0 0 0 0 0 0 0999 V2000
2.5105 1.4619 0.0030 C 0 0 0 0 0
-1.2960 3.7419 -0.0000 C 0 0 0 0 0
-0.0015 1.4855 0.0001 C 0 0 0 0 0
-1.2936 -0.6432 0.0000 C 0 0 0 0 0
-2.4365 1.4754 -0.0000 C 0 0 0 0 0
-2.4850 0.0975 0.0000 C 0 0 0 0 0
-1.2235 2.2114 -0.0000 C 0 0 0 0 0
-0.1100 0.0548 0.0000 C 0 0 0 0 0
3.8173 2.2548 -0.0045 C 0 0 0 0 0
-2.4895 4.3980 -0.0000 O 0 0 0 0 0
2.6968 0.2578 -0.0000 O 0 0 0 0 0
-0.2670 4.3799 0.0000 O 0 0 0 0 0
1.2859 2.0877 0.0000 O 0 0 0 0 0
-1.3016 -1.7291 -0.0000 H 0 0 0 0 0
-3.3772 1.9973 -0.0000 H 0 0 0 0 0
-3.4290 -0.4497 -0.0000 H 0 0 0 0 0
0.7677 -0.5599 0.0000 H 0 0 0 0 0
4.6793 1.5577 0.0039 H 0 0 0 0 0
3.9209 2.8928 0.8810 H 0 0 0 0 0
3.9189 2.8675 -0.9078 H 0 0 0 0 0
-2.4423 5.3543 0.0000 H 0 0 0 0 0
11 1 2 0 0 0
9 1 1 0 0 0
1 13 1 0 0 0
12 2 2 0 0 0
2 7 1 0 0 0
2 10 1 0 0 0
8 3 2 0 0 0
3 7 1 0 0 0
3 13 1 0 0 0
6 4 2 0 0 0
8 4 1 0 0 0
4 14 1 0 0 0
6 5 1 0 0 0
5 7 2 0 0 0
5 15 1 0 0 0
6 16 1 0 0 0
8 17 1 0 0 0
9 18 1 0 0 0
9 19 1 0 0 0
9 20 1 0 0 0
10 21 1 0 0 0
M END
I stumbled also over another issue (?) : obenergy uses an empty string as its default force field. The Linux and Windows version seemingly differ in what they return as the default (Windows gets an UFF, wheras Linux gets a Gheminal force field).
And another issue (maybe) : The results of obminimize and obenergy differ between versions 2.2.1 and 2.2.3. Using the same input files and parameters for both (obminimize -c 1e-4 -ff Ghemical -h resp. obenergy -h -ff UFF).
Another piece of the puzzle: As zou may already have noticed, the original files I reported the problem for are 'special', i.e. the compounds contained therein are actually different structures for the same sum formula.
Now, just out of curiosity, I re-ran the test with two completely unrelated compounds (vanilin and morphine). And what can I say? The programs perform as they should, i.e. the results do not differ if the calculations are performed on the individual MOL files or an SD file containing both compounds.
Maybe this hints you in the correct direction.
It would be useful if you could file different bug reports for different issues.