vote up 0 vote down
star

The MDL (now Symyx) molfile specification defines a atom block line as:

xxxxx.xxxxyyyyy.yyyyzzzzz.zzzz aaaddcccssshhhbbbvvvHHHrrriiimmmnnneee

Now, I was wondering in my blog if the last fields are optional or not. Can they be left out? Many cheminformatics tools (like OpenBabel) are happily creating such MDL molfiles:

 OpenBabel02011014062D

  5  4  0  0  0  0  0  0  0  0999 V2000
  206.0000  126.0000    0.0000 C   0  0  0  0  0
  227.0075  113.8713    0.0000 C   0  0  0  0  0
  227.0075   89.6139    0.0000 O   0  0  0  0  0
  248.0151  126.0000    0.0000 O   0  0  0  0  0
  184.9925  113.8713    0.0000 N   0  0  0  0  0
  1  2  1  0  0  0
  1  5  1  0  0  0
  2  3  2  0  0  0
  2  4  1  0  0  0
M  END
flag

2 Answers

vote up 2 vote down

The spec (ctfile.pdf; mine is dated Nov. 2007) goes on to explain those fields:

  • ddd = mass difference = "retained for compatibility" but M ISO takes precedence
  • ccc = charge = "retained for compatibility" but M CHG and M RAD take precedence
  • sss = ignored when read
  • hhh = hydrogen count, and is only used in Query molecules
  • bbb = stereo care box, and is only used in Query molecules
  • vvv = valance, with 0 as the default
  • HHH = H0 designator = "[ISIS/Desktop]" and "May be unsupported in future releases"
  • rrr and iii = "Not used"
  • mmm and nnn are only used in reactions, with 0 meaning "property not applied"
  • eee is only used in reaction and query molecules with 0 meaning "property not applied"

My interpretation is that readers should be able to handle up to the charge field, for compatibility with old connection tables, and should write at least up to the 0 for valance since that's the last "Generic" field.

You are also asking about the difference between a de facto spec and a de jure. I've long pointed out that almost no tool generates a PDB file which actually follows the PDB spec in its entirety. Instead, there's a de facto rough consensus concerning what is right.

The answer to "can they be left out?" is clearly a "yes" since it isn't causing problems.

link|flag
vote up 0 vote down

OpenBabel now includes them (in the development version) as it was reported that Dingo couldn't open SDF files that didn't conform to the published standard. At the first chance, I hope we will drop them again as they are a waste of disk space.

link|flag
According to Andrew's reply, and the Anonymous reply I got in my blog, those fields may be left out, and short line lengths are allowed... so Dingo would be at fault here, just like the CDK was... – Egon Willighagen Feb 2 at 16:48
1 
Hello, Such molfiles with 'nnn' and 'eee' fields dropped are properly loaded by Indigo's MolfileLoader, and Dingo understands them properly. This appears to be this way since Dingo 1.0. With best regards, – Dmitry Pavlov Feb 3 at 18:54
1 
Hi Dmitry - I added a link to the bug report. It could be that the problem was with the bond block or it may now be resolved. – baoilleach Feb 3 at 22:24
Hello Noel, Thanks for the link. Unfortunately, the problem is still not clear to me, as dropped numbers in bond block should not be a problem for MolfileLoader either. Actually, last 10 fields of atom block and last 4 fields of bond block are optional for MolfileLoader. If somebody could provide me with an example of a molfile which Dingo can not load, we could then discuss whether an issue should be fixed in MolfileLoader. With best regards, – Dmitry Pavlov Feb 3 at 23:34
Hi Dmitry, I'm happy to hear that! – Egon Willighagen Feb 4 at 0:00

Your Answer

Get an OpenID
or

Not the answer you're looking for? Browse other questions tagged or ask your own question.