Download and Installation new

From OxDNA
Revision as of 18:49, 14 March 2014 by Rovigattil (talk | contribs) (Installation)

In this section, we outline the procedure for compiling oxDNA.



The recommended compiler is gcc 4.6.x. oxDNA compilation has been thoroughly tested with gcc >= 4.1.x and icpc >= 10. Note that compiling with gcc 4.6.x rather than with gcc 4.1.x results in a significant increase in performances. Since oxDNA is writtern in standard c++, it should be also compatible with other compilers. Optionally, oxDNA can be compiled to run on NVIDIA GPUs by enabling CUDA support at compile time.

Operating system

oxDNA has been tested on Linux (kernel >= 2.6.x) and Mac OS X. Since it is written in ANSI c++, it should also work out-of-the-box on other OSes.


The pre-compilation stage requires cmake, while compilation is carried out with GNU Make.

The CPU-only oxDNA does not depend on any external library apart from the standard c++ library.

The GPU-enabled oxDNA requires CUDA >= 3.2.


There are currently no available binary packages for oxDNA. The last stable source package can be downloaded here, while bleeding edge (possibly unstable) versions are available via a subversion repository, accessible here.


To install the program enter the oxDNA directory. We recommend using an out-of-source build. A standard out-of-source build is as follows

cd oxDNA
mkdir build
cd build
cmake ..           # add cmake options, more on this later
make -j4           # use 4 threads for compilation, sensibly shortening compiling time

The compilation process will generate three executables in the build/bin folder: oxDNA, DNAnalysis and confGenerator.

oxDNA <input>

The complete list of supported input options can be found here. If you want some hands-on examples, there are some in the EXAMPLES directory.

A useful analysis tool that prints out all the interactions for a configuration is in the UTILS/process_data/ directory. To compile it, one needs to go into that directory and type make. The program will be called output_bonds and its usage is described in the Documentation.