Skip to content
Python module for calculating DNACC interaction potentials and binding details
Python Shell
Branch: master
Clone or download
patvarilly Merge pull request #1 from sangiole/master
I just updated the references for our papers.
Latest commit a7ddc9d Oct 19, 2015
Type Name Latest commit message Commit time
Failed to load latest commit information.


Python module for calculating DNA-coated colloid interactions
and binding details
Written by Patrick Varilly and Stefano Angioletti-Uberti
Last updated: 17 Oct 2015

This program accompanies the papers:

     1) P. Varilly, S. Angioletti-Uberti, B.M. Mognetti, and D. Frenkel. “A general theory 
     of DNA-mediated and other valence-limited colloidal interactions”. 
     The Journal of Chemical Physics, 137:094108–094122, 2012.
     arXiv:1205.6921 (2012)

     2) S. Angioletti-Uberti, P. Varilly, B.M. Mognetti, A.V. Tkachenko, and D. Frenkel. 
     “Communication: A simple analytical formula for the free energy of ligand-receptor-mediated interactions”. 
     The Journal of Chemical Physics, 138:021102–021106, 2013.
     arXiv:1211.1873 (2013).

0. Downloading

You can download the Python package at:

1. Compiling

[For compiling on OS X or Windows, see below]

It should be nearly trivial to build and install this module, since I'm
using Python's built-in setup tools.  From the main directory, just run

      python install --user

That will build and install the module in the folder
~/.local/lib/pythonX.X/site-packages/dnacc, where X.X is your version
of python.

If you want to run a script like simple_dnacc without installing
the whole module, make sure that the inner loops in C get built by
issuing the following command:

      python build_ext --inplace

(If you're seeing the following warning:

  Could not import extension code to speed up inner loops
  -- using much slower pure Python version instead.

then issuing the above command should solve the problem)

1.1. Compiling in OS X

In Mac OS X, the usual automatic downloading of dependencies during a
python install isn't able to successfully install NumPy and SciPy
(in my machine, it's the lack of a Fortran compiler, but the SciPy docs
point to other potential problems).  So you have to download and install
NumPy and SciPy manually.

The good news: binaries are easily available
The bad news: they only work with the version of Python from, not the version that ships with OS X!

So you have to download and install three things:

1. Python 2.7.2 from
2. Latest version of NumPy from
3. Latest version of SciPy from

This is far less painful than it sounds.  In my own case, the disk images
that I ended up downloading were:

1. python-2.7.2-macosx10.6.dmg

CAREFUL: for some of these packages, the "link to the latest version" that
SourceForge suggests may be incorrect!  Do look at the full list of downloads
available and pick the one that is most appropriate to your own setup

Once you've installed python2.7, numpy and scipy, you can run the command

    python install --user

The DNACC package will be installed in

Extra Note on GCC on Mac OS X
[thanks to Stefano Angioletti-Uberti for pointing this out]

You may or may not have problems with getting python to find gcc on
your Mac.  Typically, if you installed gcc using the Xcode package provided
by Apple, its name is not simply "gcc-4.2" but something longer like
"i686-apple-darwin11-llvm-gcc-4.2". This is a link to the gcc compiler, whose
full path name is (in my system, but I just used the automatic installation
done by Xcode)

path-to-compiler = "/Developer/usr/llvm-gcc-4.2/bin/llvm-gcc-4.2"

You can create a softlink that corrects this problem as follows:

sudo ln -s path-to-compiler /usr/bin/gcc-4.2
sudo ln -s path-to-compiler /usr/local/bin/gcc-4.2

1.2 Compiling on Windows
[Thanks to Bortolo M. Mognetti for these instructions]

With a DOS prompt go into the dnacc directory and launch ' install'

Be sure that NumPy and Scipy have been installed. A C++ compiler is also
required. A Visual C++ 2008 Express edition is available for free at the
link below

2. Test programs

All the calculations that I have ever run on DNA-coated colloids are
included in the "examples" folder.  Generally, these have a .py file
that you should run.  They produce lots of data which can then be plotted.
For example, in competing_linkages, type

    for f in *.gp; do gnuplot $f; done


3. General usage

For detailed instructions, take a look at the HTML documentation,
rooted at:

These are generated using Sphinx as follows:

   cd docs
   make clean
   make html
   firefox _build/html/index.html

You can’t perform that action at this time.