A Dynamic Programming Approach to Segment ONT Signals. Dynamont is a segmentation/resquiggling tool for ONT signals. Dynamont was tested on
- RNA002
- RNA004
- DNA R10.4.1 5kHz (I applied the trained transition parameters from the RNA004 model to the DNA R10 models. These should be fine-tuned for the DNA models.)
Please cite 10.1093/gigascience/giag005.
Segmentation Comparison
For further details please read: 10.1093/gigascience/giag005
Installation
Pypi/pip
Recommendation: use uv
uv venv path/to/venv/dynamont
source path/to/venv/dynamont/bin/activate
uv pip install dynamont
Usage
# segment a dataset
dynamont-resquiggle -r <path/to/pod5/dataset/> -b <basecalls.bam> --mode basic -o <output.csv> -p <pore>
# train model
dynamont-train -r <path/to/pod5/dataset/> -b <basecalls.bam> --mode basic -o <output/path> -p <pore>
# choosing a pore will automatically load the default model for that pore, a custom model can be used with the parameter --pore_model <model/path>
Default models:
- rna002 (tested)
- rna004 (tested)
- dna_r9 not available
- dna_r10.4.1 260 bps (not tested)
- dna_r10.4.1 400 bps (tested)
Output
Dynamont produces a tabular output with the following columns:
| Column Name | Description |
|---|---|
| readid | Unique identifier for the read. |
| signalid | Identifier for the signal corresponding to the read. |
| start | Start position of the signal segment in the read. |
| end | End position of the signal segment in the read. |
| basepos | Base position in the read. |
| base | The detected base at this position. |
| motif | The surrounding sequence motif in which the base appears. |
| state | The methylation state (or modification state) of the base. |
| posterior_probability | Probability assigned to the predicted segment. |
| polish | Polished kmer, only available in resquiggle mode. |
Example Output
Below is an example of the output generated by Dynamont:
readid,signalid,start,end,basepos,base,motif,state,posterior_probability,polish
476b4ed2-7865-4f81-9f78-82d614fb40a2,476b4ed2-7865-4f81-9f78-82d614fb40a2,12762,12777,53,A,AAAAAAAAA,M,0.12434,NA
476b4ed2-7865-4f81-9f78-82d614fb40a2,476b4ed2-7865-4f81-9f78-82d614fb40a2,12777,12791,52,A,AAAAAAAAA,M,0.12146,NA
476b4ed2-7865-4f81-9f78-82d614fb40a2,476b4ed2-7865-4f81-9f78-82d614fb40a2,12791,12806,51,A,AAAAAAAAA,M,0.11881,NA
476b4ed2-7865-4f81-9f78-82d614fb40a2,476b4ed2-7865-4f81-9f78-82d614fb40a2,12806,12820,50,A,AAAAAAAAA,M,0.11665,NA
Differences Segmentation Tools
Metadata
Release files for dynamont 0.9.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dynamont-0.9.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 | Details |
| dynamont-0.9.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.11 | CPython 3.11 | Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 | Details |
| dynamont-0.9.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.10 | CPython 3.10 | Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 | Details |
Total release size: 29.1 MB
Release files / dynamont-0.9.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | dynamont-0.9.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 9.7 MB |
| Tags | CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
582da23f59dc4d4bbb4bc2c4f140a6d6a32226459278ee28cb09bd08fb71e477
|
|
BLAKE2b-256 checksum How to use checksums |
c2302bcf75ede1cadb4c8a030af310d3254ac00c4409e42d1771f25d98c891de
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.2
|
Release files / dynamont-0.9.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | dynamont-0.9.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 9.7 MB |
| Tags | CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
010220758342a46c56ace12d66f08161a90fe7a578bba637388bcd656139615c
|
|
BLAKE2b-256 checksum How to use checksums |
e945408b5106111bc934e8ec03c2b202d422e058ba4b3aec52e94ecb91e1120d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.2
|
Release files / dynamont-0.9.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | dynamont-0.9.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 9.7 MB |
| Tags | CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
1860a7841a6486c8fea1448499a251cfb511562dcb6dfcba2d3a8effc7ce03dc
|
|
BLAKE2b-256 checksum How to use checksums |
19390e6e76d59d59c70bf550747e25d78d5c7af02c015827e539e621e67bd5b3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.2
|