viralQC 0.1.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.
- viralqc-0.1.0/.gitignore +15 -0
- viralqc-0.1.0/LICENSE +21 -0
- viralqc-0.1.0/MANIFEST.in +4 -0
- viralqc-0.1.0/PKG-INFO +195 -0
- viralqc-0.1.0/README.md +157 -0
- viralqc-0.1.0/env.yml +13 -0
- viralqc-0.1.0/pyproject.toml +62 -0
- viralqc-0.1.0/test_data/sequences.fasta +1245 -0
- viralqc-0.1.0/viralqc/__init__.py +7 -0
- viralqc-0.1.0/viralqc/api.py +102 -0
- viralqc-0.1.0/viralqc/cli.py +169 -0
- viralqc-0.1.0/viralqc/config/nextclade_datasets.yml +73 -0
- viralqc-0.1.0/viralqc/core/__init__.py +0 -0
- viralqc-0.1.0/viralqc/core/datasets.py +35 -0
- viralqc-0.1.0/viralqc/core/errors.py +18 -0
- viralqc-0.1.0/viralqc/core/models.py +40 -0
- viralqc-0.1.0/viralqc/core/run_nextclade.py +46 -0
- viralqc-0.1.0/viralqc/core/utils.py +79 -0
- viralqc-0.1.0/viralqc/scripts/__init__.py +0 -0
- viralqc-0.1.0/viralqc/scripts/get_blast_database.smk +31 -0
- viralqc-0.1.0/viralqc/scripts/get_public_datasets.smk +42 -0
- viralqc-0.1.0/viralqc/scripts/python/__init__.py +0 -0
- viralqc-0.1.0/viralqc/scripts/python/format_nextclade_sort.py +132 -0
- viralqc-0.1.0/viralqc/scripts/python/post_process_nextclade.py +302 -0
- viralqc-0.1.0/viralqc/scripts/run_nextclade.smk +234 -0
viralqc-0.1.0/.gitignore
ADDED
viralqc-0.1.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Instituto Todos pela Saúde (ITpS)
|
|
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.
|
viralqc-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: viralQC
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: A tool and package for quality control of consensus virus genomes.
|
|
5
|
+
Project-URL: Homepage, https://github.com/InstitutoTodosPelaSaude/viralQC
|
|
6
|
+
Author-email: Filipe Zimmer Dezordi <zimmer.filipe@gmail.com>
|
|
7
|
+
License: MIT
|
|
8
|
+
License-File: LICENSE
|
|
9
|
+
Keywords: python,quality-control,snakemake,virus
|
|
10
|
+
Classifier: Development Status :: 3 - Alpha
|
|
11
|
+
Classifier: Intended Audience :: Science/Research
|
|
12
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
13
|
+
Classifier: Operating System :: OS Independent
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
16
|
+
Classifier: Topic :: Utilities
|
|
17
|
+
Requires-Python: <3.12,>=3.8
|
|
18
|
+
Requires-Dist: colorlog>=6.3
|
|
19
|
+
Requires-Dist: fastapi>=0.116
|
|
20
|
+
Requires-Dist: pandas>=2.2
|
|
21
|
+
Requires-Dist: python-multipart==0.0.20
|
|
22
|
+
Requires-Dist: pyyaml>=6.0
|
|
23
|
+
Requires-Dist: typer>=0.16
|
|
24
|
+
Requires-Dist: uvicorn[standard]>=0.35
|
|
25
|
+
Provides-Extra: all
|
|
26
|
+
Requires-Dist: vqc[api,cli]; extra == 'all'
|
|
27
|
+
Provides-Extra: api
|
|
28
|
+
Requires-Dist: fastapi>=0.116; extra == 'api'
|
|
29
|
+
Requires-Dist: python-multipart==0.0.20; extra == 'api'
|
|
30
|
+
Requires-Dist: uvicorn[standard]>=0.35; extra == 'api'
|
|
31
|
+
Provides-Extra: cli
|
|
32
|
+
Requires-Dist: colorlog>=6.3; extra == 'cli'
|
|
33
|
+
Requires-Dist: typer>=0.16; extra == 'cli'
|
|
34
|
+
Provides-Extra: dev
|
|
35
|
+
Requires-Dist: black>=24.3; extra == 'dev'
|
|
36
|
+
Requires-Dist: pytest>=8.0; extra == 'dev'
|
|
37
|
+
Description-Content-Type: text/markdown
|
|
38
|
+
|
|
39
|
+
## Install
|
|
40
|
+
|
|
41
|
+
### From pip
|
|
42
|
+
|
|
43
|
+
First, install the dependencies:
|
|
44
|
+
|
|
45
|
+
- [Snakemake 7.32](https://snakemake.readthedocs.io/en/v7.32.0/getting_started/installation.html)
|
|
46
|
+
- [Ncbi-blast 2.16](https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/2.16.0/)
|
|
47
|
+
- [Nextclade 3.15](https://docs.nextstrain.org/projects/nextclade/en/3.15.3/user/nextclade-cli/installation/)
|
|
48
|
+
- [Seqtk 1.5](https://github.com/lh3/seqtk/releases/tag/v1.5)
|
|
49
|
+
- [Python < 3.12](https://www.python.org/downloads/)
|
|
50
|
+
|
|
51
|
+
or with micromamba
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
micromamba install \
|
|
55
|
+
-c conda-forge \
|
|
56
|
+
-c bioconda \
|
|
57
|
+
"python>=3.8.0,<3.12.0" \
|
|
58
|
+
"snakemake-minimal>=7.32.0,<7.33.0" \
|
|
59
|
+
"blast>=2.16.0,<2.17.0" \
|
|
60
|
+
"nextclade>=3.15.0,<3.16.0" \
|
|
61
|
+
"seqtk>=1.5.0,<1.6.0"
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Then, install viralQC
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
pip install viralQC
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### From Source
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
git clone https://github.com/InstitutoTodosPelaSaude/viralQC.git
|
|
74
|
+
cd viralQC
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
#### Dependencies
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
micromamba env create -f env.yml
|
|
81
|
+
micromamba activate viralQC
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
#### viralQC
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
pip install .
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Check installation (CLI)
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
vqc --help
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Usage (CLI)
|
|
97
|
+
|
|
98
|
+
### get-nextclade-datasets
|
|
99
|
+
|
|
100
|
+
This command configures local datasets using nextclade. It is necessary to run at least once to generate a local copy of the nextclade datasets, before running the `run-from-fasta` command
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
vqc get-nextclade-datasets --cores 2
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
A directory name can be specified, the default is `datasets`.
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
vqc get-nextclade-datasets --cores 2 --datasets-dir <directory_name>
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### run-from-fasta
|
|
113
|
+
|
|
114
|
+
This command runs several steps to identify viruses represented in the input FASTA file and executes Nextclade for each identified virus/dataset. There are two modes for viral identification:
|
|
115
|
+
|
|
116
|
+
- nextclade (default): Run `nextclade sort`
|
|
117
|
+
- blast: Run `blastn`.
|
|
118
|
+
|
|
119
|
+
#### run-from-fasta (nextclade)
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
vqc run-from-fasta --sequences-fasta test_data/sequences.fasta
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Some parameters can be specified:
|
|
126
|
+
|
|
127
|
+
- `--output-dir` — Output directory name. **Default:** `output`
|
|
128
|
+
- `--datasets-dir` — Path to the local Nextclade datasets directory. **Default:** `datasets`
|
|
129
|
+
- `--ns-min-score` — Minimum score used by the Nextclade `sort` command. **Default:** `0.1`
|
|
130
|
+
- `--ns-min-hits` — Minimum number of hits for Nextclade to consider a dataset. **Default:** `10`
|
|
131
|
+
- `--cores` — Number of threads used in `nextclade sort` and `nextclade run`. **Default:** `1`
|
|
132
|
+
|
|
133
|
+
The output directory has the following structure:
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
├── <datasets> # Output from nextclade sort; sequences for each dataset split into sequences.fa files.
|
|
137
|
+
├── datasets_selected.tsv # Formatted nextclade sort output showing the mapping between input sequences and local datasets.
|
|
138
|
+
├── <virus/dataset>.nextclade.tsv # Nextclade run output for each identified virus, including clade assignments and QC metrics.
|
|
139
|
+
├── unmapped_sequences.txt # Names of input sequences that were not mapped to any virus.
|
|
140
|
+
└── viruses.tsv # Nextclade sort output showing the mapping between input sequences and remote
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
#### run-from-fasta (nextclade)
|
|
144
|
+
|
|
145
|
+
For a run-from-fasta analysis using BLAST to identify the corresponding virus, a BLAST database must first be created:
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
vqc get-blast-database
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
Some parameters can be specified:
|
|
152
|
+
|
|
153
|
+
- `--output-dir` — Path to store the BLAST database.. **Default:** `datasets`
|
|
154
|
+
- `--datasets-dir` — Path of local nextclade datasets. **Default:** `datasets`
|
|
155
|
+
- `--cores` — Number of threads used in `nextclade sort` and `nextclade run`. **Default:** `1`
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
Then:
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
vqc run-from-fasta --sequences-fasta test_data/sequences.fasta --sort-mode blast
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
Some parameters can be specified:
|
|
165
|
+
|
|
166
|
+
- `--output-dir` — Output directory name. **Default:** `output`
|
|
167
|
+
- `--datasets-dir` — Path to the local BLAST database directory. **Default:** `datasets`
|
|
168
|
+
- `--cores` — Number of threads used in `nextclade sort` and `nextclade run`. **Default:** `1`
|
|
169
|
+
|
|
170
|
+
The output directory has the following structure:
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
├── datasets_selected.tsv # Mapping between input sequences and local datasets.
|
|
174
|
+
├── <virus/dataset>.nextclade.tsv # Nextclade run output for each identified virus, including clade assignments and QC metrics.
|
|
175
|
+
├── sequences.<virus/dataset>.fasta # Input sequences split by virus/dataset.
|
|
176
|
+
├── unmapped_sequences.txt # Names of input sequences that were not mapped to any virus.
|
|
177
|
+
└── viruses.tsv # BLAST output.
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## Usage (API)
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
vqc-server
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
Go to `http://127.0.0.1:8000/docs`
|
|
187
|
+
|
|
188
|
+
### Development
|
|
189
|
+
|
|
190
|
+
Install development dependencies and run `black` into `viralqc` directory.
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
pip install -e ".[dev]"
|
|
194
|
+
black viralqc
|
|
195
|
+
```
|
viralqc-0.1.0/README.md
ADDED
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
## Install
|
|
2
|
+
|
|
3
|
+
### From pip
|
|
4
|
+
|
|
5
|
+
First, install the dependencies:
|
|
6
|
+
|
|
7
|
+
- [Snakemake 7.32](https://snakemake.readthedocs.io/en/v7.32.0/getting_started/installation.html)
|
|
8
|
+
- [Ncbi-blast 2.16](https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/2.16.0/)
|
|
9
|
+
- [Nextclade 3.15](https://docs.nextstrain.org/projects/nextclade/en/3.15.3/user/nextclade-cli/installation/)
|
|
10
|
+
- [Seqtk 1.5](https://github.com/lh3/seqtk/releases/tag/v1.5)
|
|
11
|
+
- [Python < 3.12](https://www.python.org/downloads/)
|
|
12
|
+
|
|
13
|
+
or with micromamba
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
micromamba install \
|
|
17
|
+
-c conda-forge \
|
|
18
|
+
-c bioconda \
|
|
19
|
+
"python>=3.8.0,<3.12.0" \
|
|
20
|
+
"snakemake-minimal>=7.32.0,<7.33.0" \
|
|
21
|
+
"blast>=2.16.0,<2.17.0" \
|
|
22
|
+
"nextclade>=3.15.0,<3.16.0" \
|
|
23
|
+
"seqtk>=1.5.0,<1.6.0"
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Then, install viralQC
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
pip install viralQC
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### From Source
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
git clone https://github.com/InstitutoTodosPelaSaude/viralQC.git
|
|
36
|
+
cd viralQC
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
#### Dependencies
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
micromamba env create -f env.yml
|
|
43
|
+
micromamba activate viralQC
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
#### viralQC
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
pip install .
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Check installation (CLI)
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
vqc --help
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Usage (CLI)
|
|
59
|
+
|
|
60
|
+
### get-nextclade-datasets
|
|
61
|
+
|
|
62
|
+
This command configures local datasets using nextclade. It is necessary to run at least once to generate a local copy of the nextclade datasets, before running the `run-from-fasta` command
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
vqc get-nextclade-datasets --cores 2
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
A directory name can be specified, the default is `datasets`.
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
vqc get-nextclade-datasets --cores 2 --datasets-dir <directory_name>
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### run-from-fasta
|
|
75
|
+
|
|
76
|
+
This command runs several steps to identify viruses represented in the input FASTA file and executes Nextclade for each identified virus/dataset. There are two modes for viral identification:
|
|
77
|
+
|
|
78
|
+
- nextclade (default): Run `nextclade sort`
|
|
79
|
+
- blast: Run `blastn`.
|
|
80
|
+
|
|
81
|
+
#### run-from-fasta (nextclade)
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
vqc run-from-fasta --sequences-fasta test_data/sequences.fasta
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Some parameters can be specified:
|
|
88
|
+
|
|
89
|
+
- `--output-dir` — Output directory name. **Default:** `output`
|
|
90
|
+
- `--datasets-dir` — Path to the local Nextclade datasets directory. **Default:** `datasets`
|
|
91
|
+
- `--ns-min-score` — Minimum score used by the Nextclade `sort` command. **Default:** `0.1`
|
|
92
|
+
- `--ns-min-hits` — Minimum number of hits for Nextclade to consider a dataset. **Default:** `10`
|
|
93
|
+
- `--cores` — Number of threads used in `nextclade sort` and `nextclade run`. **Default:** `1`
|
|
94
|
+
|
|
95
|
+
The output directory has the following structure:
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
├── <datasets> # Output from nextclade sort; sequences for each dataset split into sequences.fa files.
|
|
99
|
+
├── datasets_selected.tsv # Formatted nextclade sort output showing the mapping between input sequences and local datasets.
|
|
100
|
+
├── <virus/dataset>.nextclade.tsv # Nextclade run output for each identified virus, including clade assignments and QC metrics.
|
|
101
|
+
├── unmapped_sequences.txt # Names of input sequences that were not mapped to any virus.
|
|
102
|
+
└── viruses.tsv # Nextclade sort output showing the mapping between input sequences and remote
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
#### run-from-fasta (nextclade)
|
|
106
|
+
|
|
107
|
+
For a run-from-fasta analysis using BLAST to identify the corresponding virus, a BLAST database must first be created:
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
vqc get-blast-database
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Some parameters can be specified:
|
|
114
|
+
|
|
115
|
+
- `--output-dir` — Path to store the BLAST database.. **Default:** `datasets`
|
|
116
|
+
- `--datasets-dir` — Path of local nextclade datasets. **Default:** `datasets`
|
|
117
|
+
- `--cores` — Number of threads used in `nextclade sort` and `nextclade run`. **Default:** `1`
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
Then:
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
vqc run-from-fasta --sequences-fasta test_data/sequences.fasta --sort-mode blast
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Some parameters can be specified:
|
|
127
|
+
|
|
128
|
+
- `--output-dir` — Output directory name. **Default:** `output`
|
|
129
|
+
- `--datasets-dir` — Path to the local BLAST database directory. **Default:** `datasets`
|
|
130
|
+
- `--cores` — Number of threads used in `nextclade sort` and `nextclade run`. **Default:** `1`
|
|
131
|
+
|
|
132
|
+
The output directory has the following structure:
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
├── datasets_selected.tsv # Mapping between input sequences and local datasets.
|
|
136
|
+
├── <virus/dataset>.nextclade.tsv # Nextclade run output for each identified virus, including clade assignments and QC metrics.
|
|
137
|
+
├── sequences.<virus/dataset>.fasta # Input sequences split by virus/dataset.
|
|
138
|
+
├── unmapped_sequences.txt # Names of input sequences that were not mapped to any virus.
|
|
139
|
+
└── viruses.tsv # BLAST output.
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
## Usage (API)
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
vqc-server
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
Go to `http://127.0.0.1:8000/docs`
|
|
149
|
+
|
|
150
|
+
### Development
|
|
151
|
+
|
|
152
|
+
Install development dependencies and run `black` into `viralqc` directory.
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
pip install -e ".[dev]"
|
|
156
|
+
black viralqc
|
|
157
|
+
```
|
viralqc-0.1.0/env.yml
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "viralQC"
|
|
3
|
+
version = "0.1.0"
|
|
4
|
+
description = "A tool and package for quality control of consensus virus genomes."
|
|
5
|
+
authors = [
|
|
6
|
+
{ name = "Filipe Zimmer Dezordi", email = "zimmer.filipe@gmail.com" }
|
|
7
|
+
]
|
|
8
|
+
readme = "README.md"
|
|
9
|
+
requires-python = ">=3.8,<3.12"
|
|
10
|
+
license = { text = "MIT" }
|
|
11
|
+
dependencies = [
|
|
12
|
+
"typer>=0.16",
|
|
13
|
+
"fastapi>=0.116",
|
|
14
|
+
"uvicorn[standard]>=0.35",
|
|
15
|
+
"colorlog>=6.3",
|
|
16
|
+
"pyyaml>=6.0",
|
|
17
|
+
"pandas>=2.2",
|
|
18
|
+
"python-multipart==0.0.20"
|
|
19
|
+
]
|
|
20
|
+
|
|
21
|
+
keywords = ["virus", "quality-control", "python", "snakemake"]
|
|
22
|
+
classifiers = [
|
|
23
|
+
"Programming Language :: Python :: 3",
|
|
24
|
+
"License :: OSI Approved :: MIT License",
|
|
25
|
+
"Operating System :: OS Independent",
|
|
26
|
+
"Intended Audience :: Science/Research",
|
|
27
|
+
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
28
|
+
"Topic :: Utilities",
|
|
29
|
+
"Development Status :: 3 - Alpha"
|
|
30
|
+
]
|
|
31
|
+
|
|
32
|
+
[project.optional-dependencies]
|
|
33
|
+
cli = [
|
|
34
|
+
"typer>=0.16",
|
|
35
|
+
"colorlog>=6.3"
|
|
36
|
+
]
|
|
37
|
+
api = [
|
|
38
|
+
"fastapi>=0.116",
|
|
39
|
+
"uvicorn[standard]>=0.35",
|
|
40
|
+
"python-multipart==0.0.20"
|
|
41
|
+
]
|
|
42
|
+
all = [
|
|
43
|
+
"vqc[cli,api]"
|
|
44
|
+
]
|
|
45
|
+
dev = [
|
|
46
|
+
"black>=24.3",
|
|
47
|
+
"pytest>=8.0",
|
|
48
|
+
]
|
|
49
|
+
|
|
50
|
+
[project.scripts]
|
|
51
|
+
vqc = "viralqc.cli:app"
|
|
52
|
+
vqc-server = "viralqc.api:start"
|
|
53
|
+
|
|
54
|
+
[build-system]
|
|
55
|
+
requires = ["hatchling"]
|
|
56
|
+
build-backend = "hatchling.build"
|
|
57
|
+
|
|
58
|
+
[tool.setuptools.package-data]
|
|
59
|
+
viralqc = ["config/nextclade_datasets.yml"]
|
|
60
|
+
|
|
61
|
+
[project.urls]
|
|
62
|
+
Homepage = "https://github.com/InstitutoTodosPelaSaude/viralQC"
|