There are a number of open source packages dealing with aspects of [[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]]).
PackageLicensePurpose
calibcantGPL v3+ Cantilever thermal calibration
fs_kitGPL v2+ Force spectra analysis pattern recognition
HookeLGPL v3+ Force spectra analysis and unfolding force extraction
sawsimGPL v3+ Monte Carlo unfolding/refolding simulation and fitting
refoldingApache v2.0 Double-pulse experiment control and analysis
calibcant ========= [[Calibcant]] is my [[Python]] module for AFM cantilever calibration via the thermal tune method. It's based on [[Comedi]], so it needs work if you want to use it on a non-Linux system. If you're running a Linux kernel, it should be pretty easy to get it running on your system. Email me if there's any way I can help set it up for your lab. 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 ([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 their code with: $ cvs -d:pserver:anonymous@bioinformatics.org:/cvsroot checkout fskit 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" sort="title" archive=yes quick=yes]] but when I emailed Michael with the patches I got this: On Thu, Oct 23, 2008 at 11:21:42PM +0200, Michael Kuhn wrote: > Hi Trevor, > > I'm glad you could fix fs-kit, the project is otherwise pretty dead, > as was the link. I found an old file which should be the tutorial, > hopefully in the latest version. The PDF is probably lost. > > bw, Michael 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.pdf]] of the tutorial Michael sent me in case you're interested. Hooke ===== [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]; 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 commands for manipulating and analyzing the data. I liked Hooke so much I threw out my already-written package that had been performing a similar role and proceeded to work over Hooke to merge together the diverging command-line and GUI forks. Unfortunately, my fork has not yet been merged back in as the main branch, but I'm optimistic that it will eventually. The homepage for my branch is [[here|Hooke]]. sawsim ====== While programs like Hooke can extract unfolding forces from 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 [[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, flexible, and convenient. refolding ========= [Refolding][refolding] is a suite for performing and analyzing double-pulse refolding experiments. It was initially developed by Daniel Aioanei, also at the Samorí lab in Bologna (these guys are great!). The experiment-driver is mostly written in [[Java]] with the 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. 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 [wxWidgets]: http://www.wxwidgets.org/ [Hooke]: http://code.google.com/p/hooke/ [Hooke_paper]: http://dx.doi.org/10.1093/bioinformatics/btp180 [sawsim_paper]: http://dx.doi.org/10.1016/j.ijbiomac.2009.12.001 [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]]