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.
@@ -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)
@@ -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.
@@ -0,0 +1,2 @@
1
+ recursive-include unduliner/model *.pth
2
+ include *.md
@@ -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"
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env python
2
+
3
+ from setuptools import setup, find_packages
4
+
5
+ setup()
@@ -0,0 +1 @@
1
+