Matlab GUI based package for nanopore signal analysis
This project consists of a series of Matlab based GUIs designed to:
- detect events in nanopore signals
- sort event populations / extract populations / remove clogs
- analyze events and generate various statistics
- detect and characterize spikes present within events
If you use these scripts for your research, please cite:
C. Plesa & C. Dekker, Data analysis methods for solid-state nanopores. Nanotechnology 26 (2015) 084003.
April 29, 2015 - Transalyzer has now moved to GitHub since Google Code will be shutting down later this year.
Feb 4, 2015 - First public code release.
Mar 25, 2015 - Download latest release Transalyzer RC1b . Added ABF2.0 support and fixed issues with iterative detection.
Feb 4, 2015 - Release of Transalyzer RC1a.
- File Preparation
- Guide to GUI_detect
- Guide to GUI_events
- Guide to GUI_eventrate
- Guide to GUI_gaussian
- Guide to GUI_ghost
- Guide to GUI_noise
- Guide to GUI_localstructures
- Matlab R2011b (some features may not work on older versions)
- Statistics Toolbox
- Signal Processing Toolbox (some features)
- export_fig (for publication quality figures)
- Supported Input File Formats
- LabView TDMS (binary)
- LabView DTLG (binary)
- Axon ABF (binary) (currently only versions <2)
- Axon Clampex ATF (text)
- Text (two column (Time & Current), or single column (Current))
- Splitting of files into small segments for detection
- Save and auto load detection parameters
- Analyze multiple experiments by auto-cycling through sub-folders
- IV plot and data for Clampex IV files
- Filtering options: None, Gaussian, Butterworth 2nd or 4th order
- Input for Axon gain factor
- Input for voltage (needed for conductance)
- Plot options
- Moving average
- Sigma levels
- Detection level
- Detected events
- Individual events
- Current in nA or nS, with or without baseline removed
- Browse through detected events
- Individual event info
- Detection Options
- Moving average
- Manual input
- Auto detect from current histogram peak
- Sigma level
- Full trace (low event rate, stable baseline)
- Manual input
- Auto detect from STD histogram peak
- Iterative detection (as described in Plesa and Dekker 2015)
- Event type
- Other input options
- Peak detection factor (detection level = Sigma*PDF)
- Min and Max dwell time allowed
- Extra points to save
- Minimum gap between events (in points)
- Dwell time: (1) FWHM (2) baseline crossing
- Amplitude: (1) Maximum (for spikes) (2) Integral/FWHM (3) Between extreme local minima
- Concatenate detected events
- Tracking of experimental time for all data
- Save options
- Event traces and information
- Unfiltered trace data
- Export detected events to OpenNanopore
Event Selection and Analysis
- Dwell time
- Event number
- Event Charge Deficit (Integral)
- Event rate calculation
- Event rate over experimental time (Plesa et al.)
- Gaussian / Multi-Gaussian fitting of dwell, amplitude, and current histogram distributions.
- Scatter, Scatter Histogram, Scatter Denisty (Amplitude vs Dwell time)
- Dwell time histogram
- Amplitude histogram
- Current histogram
- Integral histogram
- Baseline vs event number
- Pore resistance over time
- Automated plot export
Local Structures Detection and Analysis
- Detect and quantify spikes present within events.
Source Code Acknowledgements
Transalyzer uses various functions and code written by different people and provided for free. I would like to acknowledge their contributions in this section.
|em_1dim||Eric Pauwels||Used with permission|
|lmax, lmin||Sergei Koptenko||BSD|
|TDMS Reader||Jim Hokanson||BSD|
Additionally I would like to thank the following people for code contributions, bug reports, ideas, and productive discussions:
- Chun Heung Wong
- Auke Booij
- Mathijs Rozemuller
- Nima Arjmandi (See Improved Algorithms for Nanopore Signal Processing)
Future Feature List
Here is a list of useful features which still remain to be implemented:
- GUI_detect: Split LabView binary files into segments
- GUI_detect: Determine filter delay, in order to sync filtered and unfiltered traces
- GUI_detect: A more elegant way to deal with the moving average at the start of the trace.
- GUI_detect: Open and analyze segments smaller than the segment file (at the end of abf files). Currently these are ignored, so several seconds of trace can be lost.
- GUI_detect: Finding the local baseline crossing point from the detection level crossing point is currently implemented with a while loop. This should be recoded with vector operations for improved speed.
- GUI_detect: Improved error catching code.
- GUI_detect: Optimize code to build the master event trace.
- GUI_events: Remove global variables (used for passing plot limits).
- GUI_events: Log dwell time histogram.
- GUI_events: Implement a moving average and threshold selection to the local baseline selection.
- Command line versions of all of the scripts.
It's Not A Bug It's A Feature
Known bugs and issues:
- GUI_detect: The code treats short-duration spikes (only 1 local minimum) and longer events (>1 local minima) slightly differently. In certain situations this can lead to a discontinuity in the event populations around the transition area which is an analysis artifact.
- GUI_detect: When using abf files, it will only read segments equal to the segment time which is set. Since the total trace time in a abf file is typically not evenly divisible (without a remainder) by the segment time, a small part of the trace (several seconds) can be lost at the end of each file.
- OpenNanopore - A Matlab based tool for data analysis of nanopore experiments that is based on the cumulative sums algorithm (CUSUM algorithm) developed by the Radenovic Lab at EPFL.
- Pyth-ion - pore analysis software from the Wanunu Lab at Northeastern University.
- Nanopore Analysis - Nanopore data analysis software developed by Yi-Tao Long's group at East China University of Science and Technology.
- poretools - a toolkit for working with nanopore sequencing data from Oxford Nanopore.
- MOSAIC - a modular single-molecule nanopore analysis toolbox to decode multi-state nanopore data.
- signalstepdetector - Matlab based algorithm for detecting multiple steps in nanopore signal
- NanoFabricator - Create nanopores with this Labview program by Harold Kwok of the T.-Cossa Lab
- NanoID - Labview IV and PSD characterization of a nanopore by Harold Kwok of the T.-Cossa Lab
- Resistive-Pulse Analyzer - Labview analyze resistive pulse current data by Harold Kwok of the T.-Cossa Lab