- Overview
- Event extraction
- Analysis
pore_stats is a software library written in Python for analyzing resistive pulse experimental data. The library consists of a GUI program written in PyQt for extracting pulses from the baseline, and modules for analyzing the extracted events.
- Single events are detected and extracted automatically, even from signals with drifting or jagged baselines.
-
The program allows the user to change the parameters most relevant to the detection algorithm.
-
A low-pass filter can be used to reduce noise and find events that are buried in the baseline.
- Detected events can be rejected after detection in one of three ways:
-
Manual accept/reject decision making
- Commands to scroll through events and accept/reject are bound to simple hot keys that make manual review of the events as fast as possible.
-
Population slicing
- A region-of-interest (ROI) square can be dragged on the amplitude-duration scatter plot to remove events from regions known to contain undesirable events (e.g., double events with amplitudes that are too large, spurious short-lived noise spikes that were detected as events, etc.)
- Machine learning
- Whenever the event data is saved, the raw data and decision for each event is saved to a separate file. The saved data for all the events constitutes a data set for training a model to make future accept/reject binary decisions on new events. Currently the training data is saved automatically, but the model must be trained manually. After training a model in scikit-learn, it must be pickled and placed in the correct directory for the GUI program to locate it. This method is functional, but will require some hacking to work; unlike the other two methods, this method doesn't work out of the box (for now).
-
The pore_stats event analysis libraries can automatically determine the event amplitude, duration, local minima and maxima, and current levels for non-constant pulses.
-
Events are loaded in from the file produced by the event extraction program. An RP event is instantiated as an object of type RPEvent, a class that bundles the event's data and methods for performing calculations and transformations on the data.
Here are some plots of the data created by using the pore_stats analysis library.