NanoBoost
A Wavelet Transform-Enhanced Machine Learning Algorithm for Next-Generation Nanopore Multiplexing
NanoBoost is a machine learning pipeline combining XGBoost with a novel event-specific Discrete Wavelet Transform (DWT) for nanopore translocation event classification. It achieved 91% accuracy in nanoparticle size classification (5 nm vs 10 nm nanospheres) and 99% in shape classification (nanospheres vs nanorods).
Installation
git clone https://github.com/joehart2001/nanoboost.git
cd nanoboost
pip install -e .
For unsupervised learning and plotting dependencies:
pip install -e ".[full]"
Usage
End-to-end run
Edit config.yaml to point to your ABF files and set labels, then:
nanoboost run config.yaml
Step-by-step
# 1. Isolate events from a raw ABF recording
nanoboost preprocess recording.abf events.pkl
# 2. Apply per-event DWT and extract features (label: 5 or 10 for nm, NR or NS for shape)
nanoboost transform events.pkl features.pkl 10
# 3. Train a classifier across one or more feature sets
nanoboost train features_5nm.pkl features_10nm.pkl --output model.pkl
Use nanoboost <command> --help for full options on any command.
Configuration
config.yaml controls all parameters. Paper-optimal defaults are pre-set:
data:
files:
- path: recordings/5nm.abf
label: 5
- path: recordings/10nm.abf
label: 10
output_dir: results/
preprocessing:
resistive: false # true for biphasic events with a resistive (trough) component
transform:
wavelet: bior3.3 # paper-optimal mother wavelet
threshold: 0.2 # paper-optimal DWT coefficient threshold
training:
model: xgboost # xgboost | rf | svm | dt
search: random # random | bayes | sobol | grid
CLI flags override config values for individual commands:
nanoboost transform events.pkl features.pkl 10 --wavelet haar --threshold 0.3
nanoboost train features.pkl --model rf --search bayes
Citation
If you use this code or methodology in your research, please cite this repository (paper details to be added upon publication). Here is a suggested BibTeX entry:
@software{nanoboost,
author = {Hart, Joseph},
title = {NanoBoost: A Wavelet Transform-Enhanced Machine Learning Algorithm for Next-Generation Nanopore Multiplexing},
year = {2025},
url = {https://github.com/joehart2001/nanoboost}
}
For the complete citation information, see CITATION.cff.
License
MIT — see LICENSE.
Metadata
Release files for nanoboost 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| nanoboost-0.1.0.tar.gz | 29.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| nanoboost-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 64.7 kB
Release files / nanoboost-0.1.0.tar.gz
| Download URL | nanoboost-0.1.0.tar.gz |
|---|---|
| Size | 29.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ec31065b99efce6258ab852e44a7b9c805ed825edbfca3c933ab4a0418ce7f92
|
|
BLAKE2b-256 checksum How to use checksums |
6a06b4a765c55243bd81603def51369b1ff4e23b5cdf1ce6be49d151b407d93b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.8.18
|
Release files / nanoboost-0.1.0-py3-none-any.whl
| Download URL | nanoboost-0.1.0-py3-none-any.whl |
|---|---|
| Size | 35.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4a47d6e4e3052e84ef98a2fb50be50cf63c8e5fc68fd481f89f80d23e2f74c6f
|
|
BLAKE2b-256 checksum How to use checksums |
dc55a5af5d1526d1766fcc34323e58741866511b1e2f61a4241ea642e3d7963c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.8.18
|