3DNA, following SCHNArP, uses the alchemy file format for the schematic base-pair rectangular block representation. Alchemy is a simple molecular file format, suitable for chemical compounds by specifying atom positions and bond linkages explicitly. By checking a sample alchemy file (here for drug aspirin), scientists with chemistry knowledge should have little problem in figuring out what each field means. As it happens, the 3DNA alchemy representation of the base-pair rectangular block is much simpler than that of a typical chemical compound (e.g., aspirin). No different partial atomic charges or atom types, no distinction between single-, double- or aromatic bond types, the base-pair block can be specified with uniform pseudo-atoms (nodes) and pseudo-bonds (edges). Apart from being simple, alchemy was one of the common file formats supported by RasMol — that’s the pragmatic reason why I adopted the format in SCHNArP and 3DNA.
Over the years, 3DNA has been continuously using the alchemy format for base and base-pair rectangular blocks. It forms the basis of the Calladine-Drew style schematic representation images in PostScript (.eps), Xfig (.fig) and Raster3d (.r3d) formats. However, outside 3DNA, the alchemy format is not widely supported by popular molecular graphics programs, including RasMol, Jmol and PyMOL:
- RasMol v2.6.4, from Roger Sayle (the original author of RasMol), is mostly fine, except that the
-noconnect
option should be specified. As noted in the 3DNA Nature Protocols (2008) paper, The option ‘-noconnect’ makes sure that RasMol uses only the linkage information specified in the Alchemy file (by setting the CalcBondsFlag to false). … The … Alchemy files [can] contain explicitly specified coordinate axes, which would interfere with the default bond-calculation algorithm in RasMol. - RasMol v2.7.x has a bug in displaying alchemy files.
- Jmol begins to support the alchemy format as of 11.7.18 (December 2008), following my request [see initial discussion and follow-up].
- PyMOL does not recognize the alchemy format.
To make the schematic base-pair rectangular block representation more broadly accessible, I have recently added the -mol
option to alc2img
in 3DNA v2.1 to readily convert an alchemy file to the well-documented and widely supported MDL molfile format. The usage is very simple — take the standard base-pair rectangular block file (Block_BP.alc
) as an example, the conversion can be performed as below:
alc2img -mol Block_BP.alc Block_BP.mol
alc2img -molv3000 Block_BP.alc Block_BP_v3000.mol
Note the followings:
- By default, the
-mol
option converts alchemy to V2000 molfile format. However, if the number of atoms/bonds is greater then 999, the extended V3000 molfile format is used. - The V3000 molfile format can be explicitly specified with
-molv3000
(or-mol3
), as shown above. - Only V2000 molfile is consistently supported by RasMol, Jmol and PyMOL. On the other hand, while Jmol recognizes V3000 molfile, RasMol and PyMOL do not.
- For reference, the three files — Block_BP.alc, Block_BP.mol, and Block_BP_v3000.mol — are enclosed below.
Content of ‘Block_BP.alc’
12 ATOMS, 12 BONDS 1 N -2.2500 5.0000 0.2500 2 N -2.2500 -5.0000 0.2500 3 N -2.2500 -5.0000 -0.2500 4 N -2.2500 5.0000 -0.2500 5 C 2.2500 5.0000 0.2500 6 C 2.2500 -5.0000 0.2500 7 C 2.2500 -5.0000 -0.2500 8 C 2.2500 5.0000 -0.2500 9 C -2.2500 5.0000 0.2500 10 C -2.2500 -5.0000 0.2500 11 C -2.2500 -5.0000 -0.2500 12 C -2.2500 5.0000 -0.2500 1 1 2 2 2 3 3 3 4 4 4 1 5 5 6 6 6 7 7 7 8 8 5 8 9 9 5 10 10 6 11 11 7 12 12 8
Content of ‘Block_BP.mol’ (V2000)
Block_BP.alc XL 3DNAv2 Converted from Alchemy format: Thu May 3 23:35:20 2012 12 12 0 0 0 1 V2000 -2.2500 5.0000 0.2500 N 0 0 0 0 0 0 0 0 0 0 0 0 -2.2500 -5.0000 0.2500 N 0 0 0 0 0 0 0 0 0 0 0 0 -2.2500 -5.0000 -0.2500 N 0 0 0 0 0 0 0 0 0 0 0 0 -2.2500 5.0000 -0.2500 N 0 0 0 0 0 0 0 0 0 0 0 0 2.2500 5.0000 0.2500 C 0 0 0 0 0 0 0 0 0 0 0 0 2.2500 -5.0000 0.2500 C 0 0 0 0 0 0 0 0 0 0 0 0 2.2500 -5.0000 -0.2500 C 0 0 0 0 0 0 0 0 0 0 0 0 2.2500 5.0000 -0.2500 C 0 0 0 0 0 0 0 0 0 0 0 0 -2.2500 5.0000 0.2500 C 0 0 0 0 0 0 0 0 0 0 0 0 -2.2500 -5.0000 0.2500 C 0 0 0 0 0 0 0 0 0 0 0 0 -2.2500 -5.0000 -0.2500 C 0 0 0 0 0 0 0 0 0 0 0 0 -2.2500 5.0000 -0.2500 C 0 0 0 0 0 0 0 0 0 0 0 0 1 2 1 0 0 0 2 3 1 0 0 0 3 4 1 0 0 0 4 1 1 0 0 0 5 6 1 0 0 0 6 7 1 0 0 0 7 8 1 0 0 0 5 8 1 0 0 0 9 5 1 0 0 0 10 6 1 0 0 0 11 7 1 0 0 0 12 8 1 0 0 0 M END
Content of ‘Block_BP_v3000.mol’ (V3000)
Block_BP.alc XL 3DNAv2 Converted from Alchemy format: Thu May 3 23:22:04 2012 0 0 0 0 0 999 V3000 M V30 BEGIN CTAB M V30 COUNTS 12 12 0 0 0 M V30 BEGIN ATOM M V30 1 N -2.2500 5.0000 0.2500 0 M V30 2 N -2.2500 -5.0000 0.2500 0 M V30 3 N -2.2500 -5.0000 -0.2500 0 M V30 4 N -2.2500 5.0000 -0.2500 0 M V30 5 C 2.2500 5.0000 0.2500 0 M V30 6 C 2.2500 -5.0000 0.2500 0 M V30 7 C 2.2500 -5.0000 -0.2500 0 M V30 8 C 2.2500 5.0000 -0.2500 0 M V30 9 C -2.2500 5.0000 0.2500 0 M V30 10 C -2.2500 -5.0000 0.2500 0 M V30 11 C -2.2500 -5.0000 -0.2500 0 M V30 12 C -2.2500 5.0000 -0.2500 0 M V30 END ATOM M V30 BEGIN BOND M V30 1 1 1 2 M V30 2 1 2 3 M V30 3 1 3 4 M V30 4 1 4 1 M V30 5 1 5 6 M V30 6 1 6 7 M V30 7 1 7 8 M V30 8 1 5 8 M V30 9 1 9 5 M V30 10 1 10 6 M V30 11 1 11 7 M V30 12 1 12 8 M V30 END BOND M V30 END CTAB M END