1 There are a number of open source packages dealing with aspects of
2 [[single-molecule force spectroscopy|force_spectroscopy]]. Here's a
3 list of everything I've heard about to date (for more details on
4 calibcant, Hooke, and sawsim, see my [[thesis|Thesis]]).
8 <tr><th>Package</th><th>License</th><th>Purpose</th></tr>
11 <tr><td>calibcant</td><td>GPL v3+</td>
12 <td>Cantilever thermal calibration</td></tr>
13 <tr><td>fs_kit</td><td>GPL v2+</td>
14 <td>Force spectra analysis pattern recognition</td></tr>
15 <tr><td>Hooke</td><td>LGPL v3+</td>
16 <td>Force spectra analysis and unfolding force extraction</td></tr>
17 <tr><td>sawsim</td><td>GPL v3+</td>
18 <td>Monte Carlo unfolding/refolding simulation and fitting</td></tr>
19 <tr><td>refolding</td><td>Apache v2.0</td>
20 <td>Double-pulse experiment control and analysis</td></tr>
27 [[Calibcant]] is my [[Python]] module for AFM cantilever calibration
28 via the thermal tune method. It's based on [[Comedi]], so it needs
29 work if you want to use it on a non-Linux system. If you're running a
30 Linux kernel, it should be pretty easy to get it running on your
31 system. Email me if there's any way I can help set it up for your
37 [fs_kit][] is a package for force spectra analysis pattern
38 recognition. It was developed by Michael Kuhn and Maurice Hubain at
39 Daniel Müller's lab when they were at TU Dresden
40 ([paper][fs_kit_paper]). It has an [[Igor]] interface, but the bulk
41 of the project is in [[C++]] with a [wxWidgets][] interface. fs_kit
42 is versioned in CVS at `bioinformatics.org`, and you can check out
45 $ cvs -d:pserver:anonymous@bioinformatics.org:/cvsroot checkout fskit
47 The last commit was on 2005/05/16, so it's a bit crusty. I patched
48 things up back in 2008 so it would compile again,
50 [[!inline pages="./Open_source_force_spectroscopy/*.patch"
51 sort="title" archive=yes quick=yes]]
53 but when I emailed Michael with the patches I got this:
55 On Thu, Oct 23, 2008 at 11:21:42PM +0200, Michael Kuhn wrote:
58 > I'm glad you could fix fs-kit, the project is otherwise pretty dead,
59 > as was the link. I found an old file which should be the tutorial,
60 > hopefully in the latest version. The PDF is probably lost.
64 So, it's a bit of a fixer-upper, but it was the first open source
65 package in this field that I know of. I've put up a [[PDF
66 version|fs_kit_tutorial.pdf]] of the tutorial Michael sent me in case
72 [Hooke][] is a force spectroscopy data analysis package written in
73 [[Python]]. It was initially developed by Massimo Sandal, Fabrizio
74 Benedetti, Marco Brucale, Alberto Gomez-Casado while at Bruno Samorì's
75 lab at U Bologna ([paper][hooke_paper]; surprisingly, there are
76 commits by all of the authors except Samorì himself). Hooke provides
77 the interface between your raw data and theory. It has a drivers for
78 reading most force spectroscopy file formats, and a large number of
79 commands for manipulating and analyzing the data.
81 I liked Hooke so much I threw out my already-written package that had
82 been performing a similar role and proceeded to work over Hooke to
83 merge together the diverging command-line and GUI forks.
84 Unfortunately, my fork has not yet been merged back in as the main
85 branch, but I'm optimistic that it will eventually. The homepage for
86 my branch is [[here|Hooke]].
91 While programs like Hooke can extract unfolding forces from
92 velocity-clamp experiments, the unfolding force histograms are
93 generally compared to simulated data to estimate the underlying
94 kinetic parameters. [[Sawsim]] is my package for performing such
95 simulations and fitting them to the experimental histograms
96 ([paper][sawsim_paper]). The single-pull simulator is written in
97 [[C]], and there is a nice [[Python]] wrapper that manages the
98 thousands of simulated pulls needed to explore the possible model
99 parameter space. The whole package ends up being pretty fast,
100 flexible, and convenient.
105 [Refolding][refolding] is a suite for performing and analyzing
106 double-pulse refolding experiments. It was initially developed by
107 Daniel Aioanei, also at the Samorí lab in Bologna (these guys are
108 great!). The experiment-driver is mostly written in [[Java]] with the
109 analysis code in [[Python]]. The driver is curious; it uses the
110 NanoScope scripting interface to drive the experiment *through* the
111 NanoScope software by impersonating a mouse-wielding user (like
112 [Selenium][] does for web browsers). See the `RobotNanoDriver.java`
113 code for details. There is also [support for automatic velocity clamp
114 analysis][refolding-vclamp].
116 The official paper for the project is by [Aioanei][]. The earlier
117 paper by [Materassi][] may be related, but Aioanei doesn't cite it in
118 his paper, and Materassi doesn't give a URL for his code.
123 Nice software doesn't do you much good if you don't have the hardware
124 to control. There are a number of quasi-open hardware solutions for
125 building your own AFM (and other types of scanning probe microscopes).
126 There's [a good list on opencircuits][opencircuits]. Interesting
129 * Glenn Durden's [STM][GD] (1992–1998)
130 * Jim Rice's [Homebrew STM][JR] (1995)
131 * The Peddie School's [STM Project][PS] (1997–2002)
132 * Jürgen Müller's [home-built STMs][JM] (1999–2006)
133 * John D. Alexander's [STM Project][JDA] (2000–2003)
134 * The Münster Interface Physics Group's [SXM Project][MIPG] (free
135 except for commercial use, 2000–2005).
136 * Joseph Gatt's [Amateur STM][JG] (2003)
137 * Maxim Shusteff's [AFM for the instructional laboratory][MS] (2006)
138 * Dominik, Ivan, and Sandro's [STM-DIY project][DIS] (2009)
143 The [Gnome X Scanning Miscroscopy (GXSM)][GXSM] project provides GPL
144 software to perform standard SPM imaging. The list of supported
145 hardware is currently limited to the SignalRanger series by SoftdB,
146 via GXSM-specific kernel modules like `sranger-mk23-dkms`. There is
147 an obsolete [[Comedi]] driver for GXSM that Percy Zahl wrote back in
148 1999, but [it has been deprecated][issue1649579] since at least 2007.
150 [fs_kit]: http://fskit.blogspot.com/
151 [fs_kit_paper]: http://dx.doi.org/10.1111/j.1365-2818.2005.01478.x
152 [wxWidgets]: http://www.wxwidgets.org/
153 [Hooke]: http://code.google.com/p/hooke/
154 [Hooke_paper]: http://dx.doi.org/10.1093/bioinformatics/btp180
155 [sawsim_paper]: http://dx.doi.org/10.1016/j.ijbiomac.2009.12.001
156 [refolding]: http://code.google.com/p/refolding/
157 [refolding_paper]: http://dx.doi.org/10.1093/bioinformatics/btq663
158 [Selenium]: http://seleniumhq.org/
159 [refolding-vclamp]: http://code.google.com/p/refolding/wiki/BatchApproachRetractionAnalysis
160 [Aioanei]: http://dx.doi.org/10.1093/bioinformatics/btq663
161 [Materassi]: http://dx.doi.org/10.1063/1.3194046
162 [opencircuits]: http://www.opencircuits.com/Atomic_microscope
163 [GD]: http://web.archive.org/web/20010810000325/http://nemesis.com.au/alfa/mystm.htm
164 [JR]: http://web.archive.org/web/20010210003357/http://atom.snu.ac.kr/stmwebpage.html
165 [PS]: http://web.archive.org/web/20021219052018/http://www.peddie.k12.nj.us/Research/STMProject/e.html
166 [JM]: http://www.e-basteln.de/
167 [JDA]: http://www.geocities.com/spm_stm/Project.html
168 [MIPG]: http://sxm4.uni-muenster.de/
169 [JG]: http://www.angelfire.com/electronic2/spm/
170 [MS]: http://www.media.mit.edu/nanoscale/courses/AFMsite/
171 [DIS]: http://www.stm-diy.ch/
172 [GXSM]: http://gxsm.sourceforge.net/
173 [issue1649579]: http://sourceforge.net/tracker/?func=detail&aid=1649579&group_id=12992&atid=479639
175 [[!tag tags/programming]]