/DNACC

Python module for calculating DNACC interaction potentials and binding details

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

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:

   http://github.com/downloads/patvarilly/DNACC/dnacc-1.0.1.tar.gz

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 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)


1.1. Compiling in OS X
----------------------

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:

1. Python 2.7.2 from http://www.python.org/download
2. Latest version of NumPy from http://numpy.org
3. 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:

1. python-2.7.2-macosx10.6.dmg
2. numpy-1.6.1-py2.7-python.org-macosx10.6.dmg
3. 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

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 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


1.2 Compiling on Windows
------------------------
[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 at the
link below

www.microsoft.com/visualstudio/en-us/products/2008-editions/express


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

    python competing_linkages.py
    for f in *.gp; do gnuplot $f; done

MORE DETAILED DESCRIPTIONS TO COME

3. General usage
----------------

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

   http://github.com/downloads/patvarilly/DNACC/dnacc-1.0.1-docs.tar.gz

These are generated using Sphinx as follows:

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