Table 1
Tools and frameworks previously published for nanopore data analysis, included as Data plugins with Poriscope version 1.5.0.
| PLUGIN FUNCTION | PLUGIN NAME | FUNCTION |
|---|---|---|
| Load raw data | ABF2Reader | Read ABF files that conform to the TCossaLab standard (to be deprecated and renamed TCossaLabABFReader in version 1.6.0) |
| BinaryReader | Map any arbitrary binary file format that contains interleaved signal arrays | |
| BinaryReader1X | Map any arbitrary binary format that contains a single data channel | |
| ChimeraReader20240101 | Read data written by the ChimeraVC400 | |
| ChimeraReader20240501 | Read data written by the ChimeraVC400 | |
| ChimeraReaderVC100 | Read data written by the ChimeraVC100 | |
| SingleBinaryDecoder | Map a single binary file that conforms to the TCossaLab standard | |
| Filter time series data | BesselFilter | Apply a digital low-pass Bessel filter [14, 18] |
| WaveletFilter | Apply a wavelet filter [19] | |
| Find events | ClassicBlockageFinder | Find events that deviate from the local baseline by a preset amount [12] |
| BoundedBlockageFinder | Find events that deviate from the local baseline by a preset amount, only if the local baseline is within bounds | |
| Write event data to disk | SQLiteEventWriter | Store information about events found in SQLite format |
| Load events from disk | SQLiteEventLoader | Load information about events written by SQLiteEventWriter |
| Fit events | CUSUM | Fit events using the CUSUM algorithm [12, 14] |
| IntraCUSUM | Same as CUSUM, but also extracts additional event metadata | |
| NanoTrees | Fit events using Nano Trees [20] | |
| PeakFinder | Find and characterize sharp peaks in events | |
| Write event metadata | SQLiteDBWriter | Write event fit metadata to SQLite format |
| Load event metadata | SQLiteDBLoader | Load event fit metadata written by SQLiteDBWriter |

Figure 1
Poriscope Analysis Pipeline. First, raw data is loaded into the Event Finding Module. Preprocessing (e.g., digital low-pass filtering) can be performed before the events are identified (e.g., using a simple thresholding) and stored in a database. Second, the data from this database is loaded, and preprocessing can be performed prior to event fitting (e.g., using CUSUM), followed by storing of the fit metadata in a database. Finally, for visualization, the fit metadata is loaded and specific subsets can be selected (e.g., via SQL queries) before the data is displayed, labeled, and classified.

Figure 2
System Architecture Overview showing the nested MVC structure in which Controllers handle communication between the frontend and backend, and plugins are isolated from one another to enforce a high degree of modularity and extensibility.
Table 2
Map of existing nanopore analysis tools to possible future Poriscope plugins.
| EXISTING SOFTWARE TOOL | BASE CLASS | METHOD/PURPOSE |
|---|---|---|
| AutoNanopore [10] | MetaEventFinder | Automated adaptive event detection with trace segmentation, statistical outlier identification, and baseline variation handling |
| OpenNanopore [8] | MetaEventFinder, MetaEventFitter | Adaptive threshold-based event detection with baseline tracking; multi-level current blockade fitting using CUSUM algorithm for dwell time and amplitude extraction |
| PETR (Pulse Detection Transformer) [9] | MetaEventFinder | Machine learning-based threshold-free pulse detection using transformer architecture for start/end point determination |
| EventPro [13] | MetaEventFinder, MetaEventFitter | Event detection with adaptive baseline methods (mean, linear, Gaussian, regression-mixed); multilevel fitting via DBSCAN clustering and iterative level refinement |
| MOSAIC [12] | MetaEventFinder, MetaEventFitter, MetaWriter, MetaDatabaseWriter, MetaLoader, MetaDatabaseLoader | ADEPT: physical model for transient sub-steady-state events; CUSUM+: optimized for longer steady-state events; other modular pipeline segments can translate directly to Poriscope plugins |
| Transalyzer [6] | MetaEventFinder, MetaEventFitter, | Iterative baseline reconstruction via event removal; current spike extraction within events; unfolded event separation |
