scanitd 0.9.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.

Potentially problematic release.


This version of scanitd might be problematic. Click here for more details.

scanitd-0.9.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024, Ting-You Wang
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.
scanitd-0.9.0/PKG-INFO ADDED
@@ -0,0 +1,103 @@
1
+ Metadata-Version: 2.1
2
+ Name: scanitd
3
+ Version: 0.9.0
4
+ Summary: ScanITD
5
+ Home-page: https://github.com/ylab-hi/ScanITD
6
+ License: MIT
7
+ Author: Ting-You Wang
8
+ Author-email: tywang@northwestern.edu
9
+ Requires-Python: >=3.9,<4.0
10
+ Classifier: Development Status :: 4 - Beta
11
+ Classifier: License :: OSI Approved :: MIT License
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3.9
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Programming Language :: Python :: 3.13
18
+ Requires-Dist: loguru (>=0.7.0,<0.8.0)
19
+ Requires-Dist: numpy (>=2.0.0,<3.0.0)
20
+ Requires-Dist: psutil (>=5.9.5,<6.0.0)
21
+ Requires-Dist: pyfaidx (>=0.7.2,<0.8.0)
22
+ Requires-Dist: pysam (>=0.22.0,<0.23.0)
23
+ Requires-Dist: rich (>=13.7.0,<14.0.0)
24
+ Requires-Dist: ssw-py (>=1.0.1,<2.0.0)
25
+ Requires-Dist: typer (>=0.12.5,<0.13.0)
26
+ Project-URL: Changelog, https://github.com/ylab-hi/ScanITD/releases
27
+ Project-URL: Documentation, https://scanitd.readthedocs.io
28
+ Project-URL: Repository, https://github.com/ylab-hi/ScanITD
29
+ Description-Content-Type: text/markdown
30
+
31
+ # ScanITD
32
+
33
+ [![PyPI version](https://img.shields.io/pypi/v/scanitd.svg)](https://pypi.python.org/pypi/scanitd)
34
+ [![PyPI - Wheel](https://img.shields.io/pypi/wheel/scanitd)](https://pypi.org/project/scanitd/#files)
35
+ [![license](https://img.shields.io/pypi/l/scanitd.svg)](https://github.com/ylab-hi/ScanITD/blob/main/LICENSE)
36
+
37
+ - **PyPI**
38
+
39
+ ```bash
40
+ pip install scanitd
41
+ ```
42
+
43
+ # Usage
44
+
45
+ Usage: scanitd [OPTIONS]
46
+
47
+ ScanITD: Detecting internal tandem duplication with robust variant allele frequency estimation
48
+ ## Required Arguments
49
+ * `--input`, `-i` PATH
50
+ - Aligned BAM file
51
+ - Required
52
+
53
+ * `--ref`, `-r` PATH
54
+ - Reference genome in FASTA format (with fai index)
55
+ - Required
56
+
57
+ * `--output`, `-o` TEXT
58
+ - Output VCF file
59
+ - Required
60
+
61
+ ## Optional Arguments
62
+ * `--mapq`, `-m` INTEGER
63
+ - Minimum MAPQ in BAM for calling ITD
64
+ - Default: 15
65
+
66
+ * `--ao`, `-c` INTEGER
67
+ - Minimum observation count for ITD
68
+ - Default: 4
69
+
70
+ * `--depth`, `-d` INTEGER
71
+ - Minimum depth to call ITD
72
+ - Default: 10
73
+
74
+ * `--vaf`, `-f` FLOAT
75
+ - Minimum variant allele frequency
76
+ - Default: 0.1
77
+
78
+ * `--length` INTEGER
79
+ - Minimum ITD length to report
80
+ - Default: 10
81
+
82
+ * `--aln-mismatches`, `-n` INTEGER
83
+ - Maximum allowed mismatches for pairwise local alignment
84
+ - Default: 1
85
+
86
+ * `--ins-mismatches` INTEGER
87
+ - Maximum allowed mismatches for insertion-inferred duplication
88
+ - Default: 2
89
+
90
+ * `--target`, `-t` TEXT
91
+ - Limit analysis to targets listed in the BED-format file or a samtools region string
92
+
93
+ * `--log-level`, `-l` [info|warning|error|debug|trace]
94
+ - Set the logging level
95
+ - Default: info
96
+
97
+ * `--version`, `-v`
98
+ - Show version and exit
99
+
100
+ # Citation
101
+
102
+ Wang TY. and Yang R. [ScanITD: Detecting internal tandem duplication with robust variant allele frequency estimation](https://doi.org/10.1093/gigascience/giaa089 "ScanITD: Detecting internal tandem duplication with robust variant allele frequency estimation").
103
+
@@ -0,0 +1,72 @@
1
+ # ScanITD
2
+
3
+ [![PyPI version](https://img.shields.io/pypi/v/scanitd.svg)](https://pypi.python.org/pypi/scanitd)
4
+ [![PyPI - Wheel](https://img.shields.io/pypi/wheel/scanitd)](https://pypi.org/project/scanitd/#files)
5
+ [![license](https://img.shields.io/pypi/l/scanitd.svg)](https://github.com/ylab-hi/ScanITD/blob/main/LICENSE)
6
+
7
+ - **PyPI**
8
+
9
+ ```bash
10
+ pip install scanitd
11
+ ```
12
+
13
+ # Usage
14
+
15
+ Usage: scanitd [OPTIONS]
16
+
17
+ ScanITD: Detecting internal tandem duplication with robust variant allele frequency estimation
18
+ ## Required Arguments
19
+ * `--input`, `-i` PATH
20
+ - Aligned BAM file
21
+ - Required
22
+
23
+ * `--ref`, `-r` PATH
24
+ - Reference genome in FASTA format (with fai index)
25
+ - Required
26
+
27
+ * `--output`, `-o` TEXT
28
+ - Output VCF file
29
+ - Required
30
+
31
+ ## Optional Arguments
32
+ * `--mapq`, `-m` INTEGER
33
+ - Minimum MAPQ in BAM for calling ITD
34
+ - Default: 15
35
+
36
+ * `--ao`, `-c` INTEGER
37
+ - Minimum observation count for ITD
38
+ - Default: 4
39
+
40
+ * `--depth`, `-d` INTEGER
41
+ - Minimum depth to call ITD
42
+ - Default: 10
43
+
44
+ * `--vaf`, `-f` FLOAT
45
+ - Minimum variant allele frequency
46
+ - Default: 0.1
47
+
48
+ * `--length` INTEGER
49
+ - Minimum ITD length to report
50
+ - Default: 10
51
+
52
+ * `--aln-mismatches`, `-n` INTEGER
53
+ - Maximum allowed mismatches for pairwise local alignment
54
+ - Default: 1
55
+
56
+ * `--ins-mismatches` INTEGER
57
+ - Maximum allowed mismatches for insertion-inferred duplication
58
+ - Default: 2
59
+
60
+ * `--target`, `-t` TEXT
61
+ - Limit analysis to targets listed in the BED-format file or a samtools region string
62
+
63
+ * `--log-level`, `-l` [info|warning|error|debug|trace]
64
+ - Set the logging level
65
+ - Default: info
66
+
67
+ * `--version`, `-v`
68
+ - Show version and exit
69
+
70
+ # Citation
71
+
72
+ Wang TY. and Yang R. [ScanITD: Detecting internal tandem duplication with robust variant allele frequency estimation](https://doi.org/10.1093/gigascience/giaa089 "ScanITD: Detecting internal tandem duplication with robust variant allele frequency estimation").
@@ -0,0 +1,209 @@
1
+ [tool.poetry]
2
+ name = "scanitd"
3
+ version = "0.9.0"
4
+ description = "ScanITD"
5
+ authors = [
6
+ "Ting-You Wang <tywang@northwestern.edu>",
7
+ ]
8
+ license = "MIT"
9
+ readme = "README.md"
10
+ homepage = "https://github.com/ylab-hi/ScanITD"
11
+ repository = "https://github.com/ylab-hi/ScanITD"
12
+ documentation = "https://scanitd.readthedocs.io"
13
+ classifiers = [
14
+ "Development Status :: 4 - Beta",
15
+ "Programming Language :: Python :: 3.9",
16
+ "Programming Language :: Python :: 3.10",
17
+ "Programming Language :: Python :: 3.11",
18
+ "Programming Language :: Python :: 3.12",
19
+ ]
20
+
21
+ [tool.poetry.urls]
22
+ Changelog = "https://github.com/ylab-hi/ScanITD/releases"
23
+
24
+ [tool.poetry.dependencies]
25
+ python = "^3.9"
26
+ numpy = "^2.0.0"
27
+ pysam = "^0.22.0"
28
+ pyfaidx = "^0.7.2"
29
+ psutil = "^5.9.5"
30
+ ssw-py = "^1.0.1"
31
+ loguru = "^0.7.0"
32
+ typer = "^0.12.5"
33
+ rich = "^13.7.0"
34
+
35
+ [tool.poetry.extras]
36
+
37
+ [tool.poetry.build]
38
+ generate-setup-file = true
39
+
40
+ [tool.poetry.scripts]
41
+ scanitd = "scanitd.cli.cli:app"
42
+
43
+ [tool.poetry.group.dev.dependencies]
44
+ ruff = "^0.1.6"
45
+ codespell = "^2.2.2"
46
+ ipdb = "^0.13.11"
47
+ isort = "^5.12.0"
48
+ pytest = "^7.4.3"
49
+ coverage = { extras = ["toml"], version = "^7.3" }
50
+ safety = "^2.1.1"
51
+ mypy = "^1.7"
52
+ typeguard = "^4.1.5"
53
+ xdoctest = { extras = ["colors"], version = "^1.1.2" }
54
+ sphinx = "^7.2.6"
55
+ myst-parser= "3.0.0"
56
+ sphinx-autobuild = "^2021.3.14"
57
+ pre-commit = "^3.3.3"
58
+ flake8 = "^6.1.0"
59
+ black = "^23.3"
60
+ bandit = "^1.7.3"
61
+ flake8-bandit = ">=4.1"
62
+ flake8-bugbear = "^23.9.16"
63
+ flake8-docstrings = "^1.6.0"
64
+ flake8-rst-docstrings = "^0.3.0"
65
+ pep8-naming = "^0.13.2"
66
+ reorder-python-imports = "^3.8.2"
67
+ pre-commit-hooks = "^4.3.0"
68
+ sphinx-rtd-theme = "^1.3.0"
69
+ sphinx-click = "^5.0.1"
70
+ Pygments = "^2.17.1"
71
+ pytest-mock = "^3.11.1"
72
+ nox = "^2023.4.22"
73
+ flake8-broken-line = "^1.0.0"
74
+ flake8-comprehensions = "^3.13.0"
75
+ flake8-eradicate = "^1.5.0"
76
+ flake8-simplify = "^0.21.0"
77
+ pynvim = "^0.4.3"
78
+ flake8-2020 = "^1.8.1"
79
+ flake8-alfred = "^1.1.1"
80
+ cohesion = "^1.0.0"
81
+
82
+
83
+ [tool.mypy]
84
+ strict = false
85
+ pretty = true
86
+ show_column_numbers = true
87
+ show_error_codes = true
88
+ show_error_context = true
89
+ exclude = "cppext"
90
+ allow_untyped_calls = true
91
+ ignore_missing_imports = true
92
+
93
+ [tool.pytest.ini_options]
94
+ norecursedirs = ["cppext"]
95
+
96
+ [tool.bandit]
97
+ exclude_dirs = ['tests']
98
+ skips = ["B602", "B404", "B603"]
99
+
100
+ [tool.isort]
101
+ profile = "black"
102
+
103
+ [tool.ruff]
104
+ lint.select = [
105
+ # "ANN",
106
+ # "D",
107
+ "A",
108
+ "F",
109
+ "E",
110
+ "W",
111
+ "C90",
112
+ "I",
113
+ "UP",
114
+ "N",
115
+ "YTT",
116
+ "TID",
117
+ "S",
118
+ "BLE",
119
+ "FBT",
120
+ "PLR",
121
+ "B",
122
+ "B9",
123
+ "A",
124
+ "C4",
125
+ "T10",
126
+ "EM",
127
+ "ICN",
128
+ "T20",
129
+ "Q",
130
+ "RET",
131
+ "SIM",
132
+ "ARG",
133
+ "DTZ",
134
+ "ERA",
135
+ "PD",
136
+ "PGH",
137
+ "PLC",
138
+ "PLE",
139
+ "PLW",
140
+ "RUF",
141
+ "PL",
142
+ "TD",
143
+ "FIX",
144
+ "PTH",
145
+ "TCH",
146
+ "SLOT",
147
+ "PT",
148
+ "PYI",
149
+ "PIE",
150
+ "ISC",
151
+ "FA",
152
+ "EXE",
153
+ # "CPY",
154
+ "COM",
155
+ ]
156
+ line-length = 200
157
+ exclude = ["tests"]
158
+ lint.ignore = [
159
+ "ANN001",
160
+ "D203",
161
+ "D213",
162
+ "PGH003",
163
+ "PLR0911", # Too many return statements
164
+ "PLR0913", # Too many arguments to function call
165
+ "PLR0912", # Too many branches
166
+ "PLR0915", # Too many statements
167
+ "DTZ005", # Without `tz` argument
168
+ "C901", # Too complex
169
+ 'PLC0415',
170
+ 'PLR1702',
171
+ 'PLR0917',
172
+ # formater conflict
173
+ 'COM812',
174
+ 'COM819',
175
+ 'D206',
176
+ 'ISC001',
177
+ 'Q000',
178
+ 'Q001',
179
+ 'Q002',
180
+ 'Q003',
181
+ 'W191',
182
+ "PLR0904",
183
+ ]
184
+ target-version = "py310"
185
+
186
+
187
+ [tool.ruff.format]
188
+ # Like Black, use double quotes for strings.
189
+ quote-style = "double"
190
+ # Like Black, indent with spaces, rather than tabs.
191
+ indent-style = "space"
192
+ # Like Black, respect magic trailing commas.
193
+ # magic-trailing-comma = "respect"
194
+ # Like Black, automatically detect the appropriate line ending.
195
+ line-ending = "auto"
196
+
197
+
198
+ [tool.ruff.lint.per-file-ignores]
199
+
200
+ [tool.commitizen]
201
+ name = "cz_conventional_commits"
202
+ tag_format = "$version"
203
+ version_scheme = "pep440"
204
+ version_provider = "poetry"
205
+ major_version_zero = true
206
+
207
+ [build-system]
208
+ requires = ["poetry-core>=1.6.0", "setuptools>=68.0.0"]
209
+ build-backend = "poetry.core.masonry.api"
scanitd-0.9.0/setup.py ADDED
@@ -0,0 +1,49 @@
1
+ # -*- coding: utf-8 -*-
2
+ from setuptools import setup
3
+
4
+ package_dir = \
5
+ {'': 'src'}
6
+
7
+ packages = \
8
+ ['scanitd',
9
+ 'scanitd.base',
10
+ 'scanitd.cli',
11
+ 'scanitd.inference',
12
+ 'scanitd.writer']
13
+
14
+ package_data = \
15
+ {'': ['*']}
16
+
17
+ install_requires = \
18
+ ['loguru>=0.7.0,<0.8.0',
19
+ 'numpy>=2.0.0,<3.0.0',
20
+ 'psutil>=5.9.5,<6.0.0',
21
+ 'pyfaidx>=0.7.2,<0.8.0',
22
+ 'pysam>=0.22.0,<0.23.0',
23
+ 'rich>=13.7.0,<14.0.0',
24
+ 'ssw-py>=1.0.1,<2.0.0',
25
+ 'typer>=0.12.5,<0.13.0']
26
+
27
+ entry_points = \
28
+ {'console_scripts': ['scanitd = scanitd.cli.cli:app']}
29
+
30
+ setup_kwargs = {
31
+ 'name': 'scanitd',
32
+ 'version': '0.9.0',
33
+ 'description': 'ScanITD',
34
+ 'long_description': '# ScanITD\n\n[![PyPI version](https://img.shields.io/pypi/v/scanitd.svg)](https://pypi.python.org/pypi/scanitd)\n[![PyPI - Wheel](https://img.shields.io/pypi/wheel/scanitd)](https://pypi.org/project/scanitd/#files)\n[![license](https://img.shields.io/pypi/l/scanitd.svg)](https://github.com/ylab-hi/ScanITD/blob/main/LICENSE)\n\n- **PyPI**\n\n```bash\npip install scanitd\n```\n\n# Usage\n\n Usage: scanitd [OPTIONS]\n\n ScanITD: Detecting internal tandem duplication with robust variant allele frequency estimation\n## Required Arguments\n* `--input`, `-i` PATH\n - Aligned BAM file\n - Required\n\n* `--ref`, `-r` PATH\n - Reference genome in FASTA format (with fai index)\n - Required\n\n* `--output`, `-o` TEXT\n - Output VCF file\n - Required\n\n## Optional Arguments\n* `--mapq`, `-m` INTEGER\n - Minimum MAPQ in BAM for calling ITD\n - Default: 15\n\n* `--ao`, `-c` INTEGER\n - Minimum observation count for ITD\n - Default: 4\n\n* `--depth`, `-d` INTEGER\n - Minimum depth to call ITD\n - Default: 10\n\n* `--vaf`, `-f` FLOAT\n - Minimum variant allele frequency\n - Default: 0.1\n\n* `--length` INTEGER\n - Minimum ITD length to report\n - Default: 10\n\n* `--aln-mismatches`, `-n` INTEGER\n - Maximum allowed mismatches for pairwise local alignment\n - Default: 1\n\n* `--ins-mismatches` INTEGER\n - Maximum allowed mismatches for insertion-inferred duplication\n - Default: 2\n\n* `--target`, `-t` TEXT\n - Limit analysis to targets listed in the BED-format file or a samtools region string\n\n* `--log-level`, `-l` [info|warning|error|debug|trace]\n - Set the logging level\n - Default: info\n\n* `--version`, `-v`\n - Show version and exit\n\n# Citation\n\nWang TY. and Yang R. [ScanITD: Detecting internal tandem duplication with robust variant allele frequency estimation](https://doi.org/10.1093/gigascience/giaa089 "ScanITD: Detecting internal tandem duplication with robust variant allele frequency estimation").\n',
35
+ 'author': 'Ting-You Wang',
36
+ 'author_email': 'tywang@northwestern.edu',
37
+ 'maintainer': 'None',
38
+ 'maintainer_email': 'None',
39
+ 'url': 'https://github.com/ylab-hi/ScanITD',
40
+ 'package_dir': package_dir,
41
+ 'packages': packages,
42
+ 'package_data': package_data,
43
+ 'install_requires': install_requires,
44
+ 'entry_points': entry_points,
45
+ 'python_requires': '>=3.9,<4.0',
46
+ }
47
+
48
+
49
+ setup(**setup_kwargs)
@@ -0,0 +1,5 @@
1
+ """Top-level package for ScanITD."""
2
+
3
+ __author__ = """Ting-You Wang"""
4
+ __version__ = "0.9.0"
5
+ __PACKAGE_NAME__ = "ScanITD"
@@ -0,0 +1,27 @@
1
+ """Init file for scanitd2.
2
+
3
+ @Filename: __init__.py
4
+ """
5
+
6
+ from .basic import (
7
+ CigarCode,
8
+ Event,
9
+ Interval,
10
+ Intervals,
11
+ MappingMode,
12
+ MicroRegion,
13
+ Strand,
14
+ )
15
+ from .basic_read import Read, reverse_complement
16
+
17
+ __all__ = [
18
+ "CigarCode",
19
+ "Event",
20
+ "Interval",
21
+ "Intervals",
22
+ "MappingMode",
23
+ "MicroRegion",
24
+ "Read",
25
+ "Strand",
26
+ "reverse_complement",
27
+ ]