Transalyzer
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
It was written by Calin Plesa as part of his PhD research in the Cees Dekker lab at Delft University of Technology.
Reference
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.
News
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.
Download
Packaged releases:
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.
Video Tutorials
Documentation
- Installation
- 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
- FAQ
Requirements
- Matlab R2011b (some features may not work on older versions)
- Statistics Toolbox
- Signal Processing Toolbox (some features)
- export_fig (for publication quality figures)
Features
Detection
- 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
- Trace
- 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
- Trace
- Detection Options
- Baseline
- 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
- Down (normal)
- Up (low salt, Smeets et al.)
- Both (Kowalczyk and Dekker)
- 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)
- Baseline
- 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
Selection Criteria
- Dwell time
- Amplitude
- Baseline
- Event number
- Event Charge Deficit (Integral)
Analysis
- Event rate calculation
- Event rate over experimental time (Plesa et al.)
- Gaussian / Multi-Gaussian fitting of dwell, amplitude, and current histogram distributions.
Output
- 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.
Name | Author | Licence |
---|---|---|
abfload | Harald Hentschke | BSD |
em_1dim | Eric Pauwels | Used with permission |
histnorm | Arturo Serrano | BSD |
lmax, lmin | Sergei Koptenko | BSD |
movingstd | John D'Errico | BSD |
peakfinder | Nathanael Yoder | BSD |
fwhm | Patrick Egan | 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.
Links
- 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