NanoBoost: a wavelet transform-enhanced machine learning algorithm for nanopore sensing
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nanoboost-0.1.0.tar.gz.
File metadata
- Download URL: nanoboost-0.1.0.tar.gz
- Upload date:
- Size: 29.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.8.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ec31065b99efce6258ab852e44a7b9c805ed825edbfca3c933ab4a0418ce7f92
|
|
| MD5 |
a11bd4c73850e5d883a27beef0106ae1
|
|
| BLAKE2b-256 |
6a06b4a765c55243bd81603def51369b1ff4e23b5cdf1ce6be49d151b407d93b
|
File details
Details for the file nanoboost-0.1.0-py3-none-any.whl.
File metadata
- Download URL: nanoboost-0.1.0-py3-none-any.whl
- Upload date:
- Size: 35.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.8.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4a47d6e4e3052e84ef98a2fb50be50cf63c8e5fc68fd481f89f80d23e2f74c6f
|
|
| MD5 |
5e7610fe207c7fdaca07703cdb0d2feb
|
|
| BLAKE2b-256 |
dc55a5af5d1526d1766fcc34323e58741866511b1e2f61a4241ea642e3d7963c
|