3DNA: a versatile, integrated software system for the analysis, rebuilding and visualization of three-dimensional nucleic-acid structures

Xiang-Jun Lu & Wilma Olson

Welcome to the 3DNA (v2.0) Homepage

  • It is time to upgrade to 3DNA v2.0 – it is simply better than v1.5! Please visit the post with title How to download 3DNA v2.0? at the 3DNA forum for details. While 3DNA v1.5 is still available for download without registration, it is out of date and no longer supported.
  • Thanks to Professor Robert Hanson, Jmol 11.7.17 and up supports 3DNA-generated Calladine-Drew style rectangular base and base-pair schematic representation in alchemy format. Read the following posts for background information: the thread was somehow broken into two, which are interwined – initial thread and follow-ups.

Seeing is believing – a composite of eight figures from the 3DNA Nature Protocols paper

Composite images based on Figures in 3DNA 2008 Nature Protocols paper

Some background information

3DNA v1.5 was released near the end of 2002. Over the years, we are pleased to see 3DNA being widely used by the community, and we have been happily answering hundreds of questions from 3DNA users all over the world.

With its original design, the 3DNA software has well-withstood extensive real-world tests. Thus while there have been numerous refinements and minor bug-fixes, the v1.5 download-able version has never been updated. During this time, it has also become obvious to us that 3DNA can be further improved, both in functionality and in documentation, to make it even more useful to the community.

When the 3DNA server was first set up during the summer of 2006, we started by creating the 3DNA forum. In the meantime, we have been researching to find a suitable web framework that will make long-term development and maintenance easy, and we are now set with Ruby on Rails. As time goes, we will set up a complete web-interface to the most common 3DNA functionalities (e.g., generating a fiber model, creating the block-view images etc.) Thus ordinary users won’t be scared off by its current Unix style command-line driven interface. We would imagine the web-based 3DNA server would also be a useful education tool on nucleic acid structures.

Technical details

The current version is tagged as v2.0 instead of v1.6 due to many changes as outlined below:

  • Compliant with the remediated PDB format. The updated “baselist.dat” handles “DA/DC/DG/DT” and all other uncommon nucleotide residue names from all NDB entries up to the October 2008 releases.
  • Addition of Perl script “x3dna_r3d2png” to convert ”.r3d” files from 3DNA “alc2img”, “stack2img”, “r3d_atom” etc directly to PNG images using “render” from Raster3D or ray-traced image using PyMOL.
  • Addition of Perl script “nmr_ensemble” to generate automatically “blocview” style NMR ensemble image.
  • The format of file misc_3dna.par is now much more appreciable than the original cryptic format, which was added on piece by piece as the software evolved.
  • The -t option is now the default for “find_pair”, thus HETATM records are automatically taken into consideration for finding pairs. To account for only ATOM records, try the newly added “-a” option. Note that “-t” still is accepted for backward compatibility.
  • The -xml option has been added for “fiber” and “rebuild” to output nucleic acid structures in PDBML format. Both fully marked-up and simplified PDBML atom record are supported. This format bypasses the f8.3 xyz coordinates size limitation in the original PDB format.
  • The preset MAXBASE (30000) limit for fiber model structures has been eliminated. Users trying to generating very large structures noticed this issue. The sort of arbitrary limit was orginally set due to the consideration of the f8.3 PDB coordinates limition.
  • Nucleic acid structures containing B-Z junction (e.g., PD0693/2ACJ) can be handled automatically. The “analyze” program detects the B-Z transition based on pure geometric features, and calculate parameters accordingly.
  • All Perl scripts have been “cleaned up” by adding “use strict; use warnings;” pragmas. A new utility script “pdb_frag” was added for extracting arbitrary fragments based on chain IDs and residue numbers from a PDB file.
  • Model number is now taken into consideration when distinguishing residues.
  • Add a new functionality in “rotate_mol” so that the rebuilt structure can be transformed into the same orientation as in the original one.
  • Added functionalities in “analyze” to generate the O1P/O2P coordinates with reference to the middle-frame. Wrote Perl script “OP_Mxyz” to extract the info in tabular format.
  • Improved algorithms for identifying pairs and H-bonding patterns.
  • Add option -fit to “std_base” which uses only base ring atoms to set a residue in the standard geometry to be applied in “analyze”, “rebuild” etc.
  • Numerious minor improvements and bug-fixes.