unduliner 1.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- unduliner-1.0.0/DESCRIPTION.md +7 -0
- unduliner-1.0.0/LICENSE +21 -0
- unduliner-1.0.0/MANIFEST.in +2 -0
- unduliner-1.0.0/PKG-INFO +61 -0
- unduliner-1.0.0/README.md +134 -0
- unduliner-1.0.0/pyproject.toml +51 -0
- unduliner-1.0.0/setup.cfg +4 -0
- unduliner-1.0.0/setup.py +5 -0
- unduliner-1.0.0/unduliner/__init__.py +1 -0
- unduliner-1.0.0/unduliner/cli.py +1031 -0
- unduliner-1.0.0/unduliner/model/__init__.py +0 -0
- unduliner-1.0.0/unduliner/model/pretrained80.pth +0 -0
- unduliner-1.0.0/unduliner.egg-info/PKG-INFO +61 -0
- unduliner-1.0.0/unduliner.egg-info/SOURCES.txt +16 -0
- unduliner-1.0.0/unduliner.egg-info/dependency_links.txt +1 -0
- unduliner-1.0.0/unduliner.egg-info/entry_points.txt +2 -0
- unduliner-1.0.0/unduliner.egg-info/requires.txt +11 -0
- unduliner-1.0.0/unduliner.egg-info/top_level.txt +1 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
Unduliner is a Python command-line tool for predicting whether genomic variants are associated with
|
|
2
|
+
local DNA methylation changes using nanopore long-read sequencing data.
|
|
3
|
+
|
|
4
|
+
It integrates MM/ML-tagged BAM files, VCFs, and a pre-trained deep learning model to evaluate methylation
|
|
5
|
+
differences around SNVs and structural variants.
|
|
6
|
+
|
|
7
|
+
Usage details and test data are available on the [Github page](https://github.com/Chisomgold/unduliner/tree/main)
|
unduliner-1.0.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Halimat Chisom Atanda
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
unduliner-1.0.0/PKG-INFO
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: unduliner
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: CLI tool to link variants to methylation changes from nanopore data
|
|
5
|
+
Author-email: Halimat Chisom Atanda <gearthdexter@gmail.com>
|
|
6
|
+
License: MIT License
|
|
7
|
+
|
|
8
|
+
Copyright (c) 2025 Halimat Chisom Atanda
|
|
9
|
+
|
|
10
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
11
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
12
|
+
in the Software without restriction, including without limitation the rights
|
|
13
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
14
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
15
|
+
furnished to do so, subject to the following conditions:
|
|
16
|
+
|
|
17
|
+
The above copyright notice and this permission notice shall be included in all
|
|
18
|
+
copies or substantial portions of the Software.
|
|
19
|
+
|
|
20
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
21
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
22
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
23
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
24
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
25
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
26
|
+
SOFTWARE.
|
|
27
|
+
|
|
28
|
+
Project-URL: Source, https://github.com/Chisomgold/unduliner
|
|
29
|
+
Project-URL: Documentation, https://github.com/Chisomgold/unduliner/tree/main#unduliner
|
|
30
|
+
Keywords: genomics,bioinformatics,dna-methylation,variant-calling
|
|
31
|
+
Classifier: Development Status :: 4 - Beta
|
|
32
|
+
Classifier: Intended Audience :: Science/Research
|
|
33
|
+
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
|
|
34
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
35
|
+
Classifier: Programming Language :: Python :: 3
|
|
36
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
37
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
38
|
+
Classifier: Operating System :: OS Independent
|
|
39
|
+
Requires-Python: >=3.10
|
|
40
|
+
Description-Content-Type: text/markdown
|
|
41
|
+
License-File: LICENSE
|
|
42
|
+
Requires-Dist: torch
|
|
43
|
+
Requires-Dist: torch-summary
|
|
44
|
+
Requires-Dist: torchvision
|
|
45
|
+
Requires-Dist: matplotlib
|
|
46
|
+
Requires-Dist: seaborn
|
|
47
|
+
Requires-Dist: pysam
|
|
48
|
+
Requires-Dist: bx-python
|
|
49
|
+
Requires-Dist: scikit-learn
|
|
50
|
+
Requires-Dist: scipy
|
|
51
|
+
Requires-Dist: numpy
|
|
52
|
+
Requires-Dist: pillow
|
|
53
|
+
Dynamic: license-file
|
|
54
|
+
|
|
55
|
+
Unduliner is a Python command-line tool for predicting whether genomic variants are associated with
|
|
56
|
+
local DNA methylation changes using nanopore long-read sequencing data.
|
|
57
|
+
|
|
58
|
+
It integrates MM/ML-tagged BAM files, VCFs, and a pre-trained deep learning model to evaluate methylation
|
|
59
|
+
differences around SNVs and structural variants.
|
|
60
|
+
|
|
61
|
+
Usage details and test data are available on the [Github page](https://github.com/Chisomgold/unduliner/tree/main)
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
# **unduliner**
|
|
2
|
+
|
|
3
|
+
### *Predicting methylation-altering single nucleotide variants (SNVs) and structural variants (SVs) from nanopore sequencing*
|
|
4
|
+
|
|
5
|
+
`unduliner` is a Python package designed to predict whether a somatic variant is associated with local methylation change,
|
|
6
|
+
using nanopore long-read sequencing and a pre-trained deep learning model.
|
|
7
|
+
|
|
8
|
+
The tool takes as input:
|
|
9
|
+
|
|
10
|
+
* One BAM file (Nanopore reads with MM/ML tags)
|
|
11
|
+
* One VCF file
|
|
12
|
+
* A trained model (`.pth`, included in the `model/` directory and added by default to options)
|
|
13
|
+
|
|
14
|
+
It extracts genomic regions around each variants, evaluates methylation differences using a statistical and deep learning pipeline,
|
|
15
|
+
and predicts whether the variant is likely to cause a methylation shift.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## **Features**
|
|
20
|
+
|
|
21
|
+
* Predicts SNV- and SV-associated methylation alterations
|
|
22
|
+
* Works directly on Nanopore MM/ML–tagged BAMs
|
|
23
|
+
* User-configurable methylation thresholds
|
|
24
|
+
* Outputs an interpretable table including DMRs and methylation deltas
|
|
25
|
+
* Supports GTF and regulatory elements annotation of identified regions
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## **Installation**
|
|
30
|
+
|
|
31
|
+
`pip install unduliner`
|
|
32
|
+
|
|
33
|
+
### **Alternatively, clone the repository**
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
git clone https://github.com/Chisomgold/unduliner.git
|
|
37
|
+
cd unduliner
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### **Create environment**
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
conda env create -f unduliner.yml
|
|
44
|
+
conda activate unduliner
|
|
45
|
+
pip install -e $PWD
|
|
46
|
+
unduliner -h
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## **Usage**
|
|
54
|
+
|
|
55
|
+
### **Required arguments**
|
|
56
|
+
|
|
57
|
+
| Argument | Description |
|
|
58
|
+
| --------- | -------------------------------------------------------- |
|
|
59
|
+
| `--bam` | Nanopore BAM file with MM/ML tags |
|
|
60
|
+
| `--vcf` | VCF file containing SNVs |
|
|
61
|
+
|
|
62
|
+
### **Some optional arguments**
|
|
63
|
+
|
|
64
|
+
| Argument | Default | Description |
|
|
65
|
+
| ----------------- | ---------------------- | -------------------------------------------------------------- |
|
|
66
|
+
| `--chromosome` | - | Chromosome of interest (e.g., chr10) |
|
|
67
|
+
| `--region` | - | Region of interest (e.g. chr10:3000-4000) |
|
|
68
|
+
| `--mincov` | 3 | Minimum read coverage per allele |
|
|
69
|
+
| `--mincpgs` | 3 | Minimum CpGs required within region |
|
|
70
|
+
| `--cpgdist` | 50 | Maximum distance allowed between consecutive CpGs |
|
|
71
|
+
| `--meth_cutoff` | 0.8 | Probability threshold for calling methylated |
|
|
72
|
+
| `--unmeth_cutoff` | 0.2 | Probability threshold for calling unmethylated |
|
|
73
|
+
| `--tmp` | working dir | Dir that supports read/write of many files |
|
|
74
|
+
| `--gtf` | - | Tabix-indexed GTF file to annotated diff methylated regions |
|
|
75
|
+
| `--cre` | - | CRE file for annotation |
|
|
76
|
+
| `--sv` | - | Activates functions for SVs - INS,DEL,BND,DUP,INV |
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## **Example command**
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
unduliner -b testdata/chr17_2M_225M.bam -v testdata/chr17atcc.vcf.gz
|
|
83
|
+
|
|
84
|
+
#optionally add --gtf path/to/sorted.gtf.gz --cre path/to/promoters.bed --cre path/to/repeatsWG.bed
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### for SV
|
|
88
|
+
```bash
|
|
89
|
+
unduliner -b sample.bam -v SV.vcf.gz --model model/pretrained80.pth --sv
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
# **Output**
|
|
96
|
+
|
|
97
|
+
`unduliner` generates a tab-delimited table summarising methylation effects per variant.
|
|
98
|
+
|
|
99
|
+
### **Minimal Output Table**
|
|
100
|
+
|
|
101
|
+
| Chr | Start | End | Ref | Alt | Reads_with_Ref | Reads_with_Alt | Prediction | Top 5 DMHs | Meth-prop-diffs |
|
|
102
|
+
| ---- | --------- | --------- | --- | --- | ------------- | -------------- | ---------- | --------------------------- | ---------------- |
|
|
103
|
+
| chr17 | 21552714 | 21552715 | C | T | 26 | 6 | Positive | 21551211-21551853=2.854e-56 | 0.642 |
|
|
104
|
+
| chr17 | 20194148 | 20194149 | A | G | 8 | 25 | Negative | 20174773-20174843=5.040e-02 | 0.376 |
|
|
105
|
+
| chr17 | 21276148 | 21276149 | C | A | 8 | 12 | Amb | 21275234-21276360=2.852e-04 | 0.180 |
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
### Column descriptions
|
|
110
|
+
|
|
111
|
+
* **Prediction:** “Positive” = variant likely associated with nearby methylation change, "Amb" = unsure (e.g., insufficient reads)
|
|
112
|
+
* **Top 5 DMHs:** <= 5 Genomic intervals with smallest adjusted p-values
|
|
113
|
+
* **Meth-prop-diffs:** Δ(methylation) between ref-allele reads and alt-allele reads, where a negative value means reduced
|
|
114
|
+
methylation on the variant reads compared to the reference.
|
|
115
|
+
* **Start/End:** The SNV genomic coordinate (End = variant position)
|
|
116
|
+
* Extra columns for GTF and CREs by user-request. The `--cre` option can be used multiple times; files should be tab/space-delimited.
|
|
117
|
+
Only the first 4 columns will be used with chr, start, end, as the first 3 columns respectively and the fourth column is a
|
|
118
|
+
genomic feature relevant to that region like promoter, enhancer, repeats, etc.
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
## **Citing unduliner**
|
|
124
|
+
|
|
125
|
+
If you use **unduliner** in your research, please cite the repository:
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
A manuscript is in preparation.
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## **License**
|
|
133
|
+
|
|
134
|
+
MIT License
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "unduliner"
|
|
7
|
+
version = "1.0.0"
|
|
8
|
+
description = "CLI tool to link variants to methylation changes from nanopore data"
|
|
9
|
+
readme = "DESCRIPTION.md"
|
|
10
|
+
license = { file = "LICENSE" }
|
|
11
|
+
authors = [
|
|
12
|
+
{ name = "Halimat Chisom Atanda", email = "gearthdexter@gmail.com" }
|
|
13
|
+
]
|
|
14
|
+
requires-python = ">=3.10"
|
|
15
|
+
|
|
16
|
+
dependencies = [
|
|
17
|
+
"torch",
|
|
18
|
+
"torch-summary",
|
|
19
|
+
"torchvision",
|
|
20
|
+
"matplotlib",
|
|
21
|
+
"seaborn",
|
|
22
|
+
"pysam",
|
|
23
|
+
"bx-python",
|
|
24
|
+
"scikit-learn",
|
|
25
|
+
"scipy",
|
|
26
|
+
"numpy",
|
|
27
|
+
"pillow"
|
|
28
|
+
]
|
|
29
|
+
|
|
30
|
+
keywords = ["genomics", "bioinformatics", "dna-methylation", "variant-calling"]
|
|
31
|
+
|
|
32
|
+
classifiers = [
|
|
33
|
+
"Development Status :: 4 - Beta",
|
|
34
|
+
"Intended Audience :: Science/Research",
|
|
35
|
+
"Topic :: Scientific/Engineering :: Bio-Informatics",
|
|
36
|
+
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
37
|
+
"Programming Language :: Python :: 3",
|
|
38
|
+
"Programming Language :: Python :: 3.10",
|
|
39
|
+
"Programming Language :: Python :: 3.11",
|
|
40
|
+
"Operating System :: OS Independent",
|
|
41
|
+
]
|
|
42
|
+
|
|
43
|
+
[project.scripts]
|
|
44
|
+
unduliner = "unduliner.cli:main"
|
|
45
|
+
|
|
46
|
+
[tool.setuptools]
|
|
47
|
+
packages = ["unduliner", "unduliner.model"]
|
|
48
|
+
|
|
49
|
+
[project.urls]
|
|
50
|
+
Source = "https://github.com/Chisomgold/unduliner"
|
|
51
|
+
Documentation = "https://github.com/Chisomgold/unduliner/tree/main#unduliner"
|
unduliner-1.0.0/setup.py
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|