posts:socks: Fix 'SSH tunneled' -> 'SSH-tunneled'
[blog.git] / posts / Open_source_force_spectroscopy.mdwn
index 7987ea30b6d0c601b648860208922fa7fd7f41d1..5f9fa960bde02beed4dbd4468063bc5a3de11101 100644 (file)
@@ -1,16 +1,25 @@
 There are a number of open source packages dealing with aspects of
-single-molecule force spectroscopy.  Here's a list of everything I've
-heard about to date.
-
-=============  ===========  ======================================================
-Package        License      Purpose
-=============  ===========  ======================================================
-[[calibcant]]  GPL v3+      Cantilever thermal calibration
-[fs_kit][]     GPL v2+      Force spectra analysis pattern recognition
-[Hooke][]      LGPL v3+     Force spectra analysis and unfolding force extraction
-[[sawsim]]     GPL v3+      Monte Carlo unfolding/refolding simulation and fitting
-[refolding][]  Apache v2.0  Double-pulse experiment control and analysis
-=============  ===========  ======================================================
+[[single-molecule force spectroscopy|force_spectroscopy]].  Here's a
+list of everything I've heard about to date (for more details on
+calibcant, Hooke, and sawsim, see my [[thesis|Thesis]]).
+
+<table>
+       <thead>
+    <tr><th>Package</th><th>License</th><th>Purpose</th></tr>
+  </thead>
+  <tbody>
+    <tr><td>calibcant</td><td>GPL v3+</td>
+        <td>Cantilever thermal calibration</td></tr>
+    <tr><td>fs_kit</td><td>GPL v2+</td>
+        <td>Force spectra analysis pattern recognition</td></tr>
+    <tr><td>Hooke</td><td>LGPL v3+</td>
+        <td>Force spectra analysis and unfolding force extraction</td></tr>
+    <tr><td>sawsim</td><td>GPL v3+</td>
+        <td>Monte Carlo unfolding/refolding simulation and fitting</td></tr>
+    <tr><td>refolding</td><td>Apache v2.0</td>
+        <td>Double-pulse experiment control and analysis</td></tr>
+  </tbody>
+</table>
 
 calibcant
 =========
@@ -27,7 +36,7 @@ fs_kit
 
 [fs_kit][] is a package for force spectra analysis pattern
 recognition.  It was developed by Michael Kuhn and Maurice Hubain at
-Daniel Müller's lab when they were at TU~Dresden
+Daniel Müller's lab when they were at TU Dresden
 ([paper][fs_kit_paper]).  It has an [[Igor]] interface, but the bulk
 of the project is in [[C++]] with a [wxWidgets][] interface.  fs_kit
 is versioned in CVS at `bioinformatics.org`, and you can check out
@@ -38,7 +47,8 @@ their code with:
 The last commit was on 2005/05/16, so it's a bit crusty.  I patched
 things up back in 2008 so it would compile again,
 
-[[!inline pages="./Open_source_force_spectroscopy/*.patch" archive=yes quick=yes]]
+[[!inline pages="./Open_source_force_spectroscopy/*.patch"
+  sort="title" archive=yes quick=yes]]
 
 but when I emailed Michael with the patches I got this:
 
@@ -53,16 +63,16 @@ but when I emailed Michael with the patches I got this:
 
 So, it's a bit of a fixer-upper, but it was the first open source
 package in this field that I know of.  I've put up a [[PDF
-version|fs_kit_tutorial]] of the tutorial Michael sent me in case
+version|fs_kit_tutorial.pdf]] of the tutorial Michael sent me in case
 you're interested.
 
 Hooke
 =====
 
-[Hooke][] is a [[force spectroscopy]] data analysis package written in
+[Hooke][] is a force spectroscopy data analysis package written in
 [[Python]].  It was initially developed by Massimo Sandal, Fabrizio
 Benedetti, Marco Brucale, Alberto Gomez-Casado while at Bruno Samorì's
-lab at U~Bologna ([paper][hooke_paper].  Suprisingly, there are
+lab at U Bologna ([paper][hooke_paper]; surprisingly, there are
 commits by all of the authors except Samorì himself).  Hooke provides
 the interface between your raw data and theory.  It has a drivers for
 reading most force spectroscopy file formats, and a large number of
@@ -83,7 +93,7 @@ velocity-clamp experiments, the unfolding force histograms are
 generally compared to simulated data to estimate the underlying
 kinetic parameters.  [[Sawsim]] is my package for performing such
 simulations and fitting them to the experimental histograms
-([paper][sawsim_paper).  The single-pull simulator is written in
+([paper][sawsim_paper]).  The single-pull simulator is written in
 [[C]], and there is a nice [[Python]] wrapper that manages the
 thousands of simulated pulls needed to explore the possible model
 parameter space.  The whole package ends up being pretty fast,
@@ -100,7 +110,42 @@ analysis code in [[Python]].  The driver is curious; it uses the
 NanoScope scripting interface to drive the experiment *through* the
 NanoScope software by impersonating a mouse-wielding user (like
 [Selenium][] does for web browsers).  See the `RobotNanoDriver.java`
-code for details.
+code for details.  There is also [support for automatic velocity clamp
+analysis][refolding-vclamp].
+
+The official paper for the project is by [Aioanei][].  The earlier
+paper by [Materassi][] may be related, but Aioanei doesn't cite it in
+his paper, and Materassi doesn't give a URL for his code.
+
+Hardware
+========
+
+Nice software doesn't do you much good if you don't have the hardware
+to control.  There are a number of quasi-open hardware solutions for
+building your own AFM (and other types of scanning probe microscopes).
+There's [a good list on opencircuits][opencircuits].  Interesting
+projects include:
+
+* Glenn Durden's [STM][GD] (1992–1998)
+* Jim Rice's [Homebrew STM][JR] (1995)
+* The Peddie School's [STM Project][PS] (1997–2002)
+* Jürgen Müller's [home-built STMs][JM] (1999–2006)
+* John D. Alexander's [STM Project][JDA] (2000–2003)
+* The Münster Interface Physics Group's [SXM Project][MIPG] (free
+  except for commercial use, 2000–2005).
+* Joseph Gatt's [Amateur STM][JG] (2003)
+* Maxim Shusteff's [AFM for the instructional laboratory][MS] (2006)
+* Dominik, Ivan, and Sandro's [STM-DIY project][DIS] (2009)
+
+Other software
+==============
+
+The [Gnome X Scanning Miscroscopy (GXSM)][GXSM] project provides GPL
+software to perform standard SPM imaging.  The list of supported
+hardware is currently limited to the SignalRanger series by SoftdB,
+via GXSM-specific kernel modules like `sranger-mk23-dkms`.  There is
+an obsolete [[Comedi]] driver for GXSM that Percy Zahl wrote back in
+1999, but [it has been deprecated][issue1649579] since at least 2007.
 
 [fs_kit]: http://fskit.blogspot.com/
 [fs_kit_paper]: http://dx.doi.org/10.1111/j.1365-2818.2005.01478.x
@@ -111,6 +156,21 @@ code for details.
 [refolding]: http://code.google.com/p/refolding/
 [refolding_paper]: http://dx.doi.org/10.1093/bioinformatics/btq663
 [Selenium]: http://seleniumhq.org/
+[refolding-vclamp]: http://code.google.com/p/refolding/wiki/BatchApproachRetractionAnalysis
+[Aioanei]: http://dx.doi.org/10.1093/bioinformatics/btq663
+[Materassi]: http://dx.doi.org/10.1063/1.3194046
+[opencircuits]: http://www.opencircuits.com/Atomic_microscope
+[GD]: http://web.archive.org/web/20010810000325/http://nemesis.com.au/alfa/mystm.htm
+[JR]: http://web.archive.org/web/20010210003357/http://atom.snu.ac.kr/stmwebpage.html
+[PS]: http://web.archive.org/web/20021219052018/http://www.peddie.k12.nj.us/Research/STMProject/e.html
+[JM]: http://www.e-basteln.de/
+[JDA]: http://www.geocities.com/spm_stm/Project.html
+[MIPG]: http://sxm4.uni-muenster.de/
+[JG]: http://www.angelfire.com/electronic2/spm/
+[MS]: http://www.media.mit.edu/nanoscale/courses/AFMsite/
+[DIS]: http://www.stm-diy.ch/
+[GXSM]: http://gxsm.sourceforge.net/
+[issue1649579]: http://sourceforge.net/tracker/?func=detail&aid=1649579&group_id=12992&atid=479639
 
 [[!tag tags/programming]]
 [[!tag tags/theory]]