Written by Patrick Varilly and Stefano Angioletti-Uberti Last updated: 17 Oct 2015
This program accompanies the papers:
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)
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).
We kindly ask to cite those papers in any publication where this code is used.
You can download the Python package here.
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 setup.py 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 setup.py 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)
In Mac OS X, the usual automatic downloading of dependencies during a
python setup.py 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 http://www.python.org, not the version that ships with OS X!
So you have to download and install three things:
- Python 2.7.2 from http://www.python.org/download
- Latest version of NumPy from http://numpy.org
- Latest version of SciPy from http://scipy.org
This is far less painful than it sounds. In my own case, the disk images that I ended up downloading were:
- python-2.7.2-macosx10.6.dmg
- numpy-1.6.1-py2.7-python.org-macosx10.6.dmg
- scipy-0.10.0-py2.7-python.org-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 setup.py install --user
The DNACC package will be installed in
~/Library/Python/2.7/lib/python/site-packages
Thanks to Stefano Angioletti-Uberti for pointing this out.
You may or may not have problems with getting python setup.py 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
Thanks to Bortolo M. Mognetti for these instructions.
With a DOS prompt go into the dnacc directory and launch setup.py 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 here.
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
python competing_linkages.py
for f in *.gp; do gnuplot $f; done
MORE DETAILED DESCRIPTIONS TO COME
For detailed instructions, take a look at the HTML documentation.
These are generated using Sphinx as follows:
cd docs
make clean
make html
firefox _build/html/index.html