I've just used Open Babel to convert .sdf and .mol2 files to SMARTS, and I'm a bit surprised the output can be different for the same structure. It's confusing me that one structure, one piece of information can be different depending on the file format in which it was saved.
I converted a ligand 1N7 in two available formats (.sdf and .mol2) of the 7RDX structure from RSCB PDB for chain N, and also for chain U. After the conversion, the SMARTS strings for the ligand in both chains are not the same for both input files types (i.e. the difference between the same ligand, from the same chain, just in two different formats available to download from RSCB PDB):
example no. 1:
[additional @H
added in places, some square brackets added]
$ cat ./7rdx_N_1N7_from_mol2.smi
C1[C@@]2(C)[C@@H](C[C@@H](C1)O)[C][C]([C]1[C@H]3[C@]([C@H](C[C]21)O)([C@H](CC3)[C]([C])[C][C])C)O 1N7
$ cat ./7rdx_N_1N7_from_sdf.smi
C1[C@@]2(C)[C@@H](C[C@@H](C1)O)C[C@H]([C@H]1[C@H]3[C@]([C@H](C[C@H]21)O)([C@H](CC3)[C@H](C)CC)C)O 1N7
example no. 2:
[some square brackets added]
$ cat ./7rdx_U_1N7_from_mol2.smi
C1[C@@]2(C)[C@@H](C[C@@H](C1)O)C[C@H]([C@H]1[C@H]3[C@]([C@H](C[C@H]21)O)([C@H](CC3)[C@H](C)CCC(=O)NC[C][C][N+]([C])([C])[C])C)O 1N7
$ cat ./7rdx_U_1N7_from_sdf.smi
C1[C@@]2(C)[C@@H](C[C@@H](C1)O)C[C@H]([C@H]1[C@H]3[C@]([C@H](C[C@H]21)O)([C@H](CC3)[C@H](C)CCC(=O)NCCC[N+](C)(C)C)C)O 1N7
In both examples, the structures look quite similar to each other, but the difference is a little worrisome, because there is no chance to check every output by hand.
Is it a normal behaviour during the conversion?
Is it related to a different notation in the input files?
Which input format is better?