uht-tooling 0.1.2__py3-none-any.whl → 0.1.3__py3-none-any.whl
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.
- uht_tooling/cli.py +29 -3
- {uht_tooling-0.1.2.dist-info → uht_tooling-0.1.3.dist-info}/METADATA +20 -15
- {uht_tooling-0.1.2.dist-info → uht_tooling-0.1.3.dist-info}/RECORD +6 -6
- {uht_tooling-0.1.2.dist-info → uht_tooling-0.1.3.dist-info}/WHEEL +0 -0
- {uht_tooling-0.1.2.dist-info → uht_tooling-0.1.3.dist-info}/entry_points.txt +0 -0
- {uht_tooling-0.1.2.dist-info → uht_tooling-0.1.3.dist-info}/top_level.txt +0 -0
uht_tooling/cli.py
CHANGED
|
@@ -18,6 +18,7 @@ from uht_tooling.workflows.umi_hunter import (
|
|
|
18
18
|
expand_fastq_inputs as expand_fastq_inputs_umi,
|
|
19
19
|
run_umi_hunter,
|
|
20
20
|
)
|
|
21
|
+
from uht_tooling.workflows.gui import launch_gui
|
|
21
22
|
|
|
22
23
|
app = typer.Typer(help="Command-line interface for the uht-tooling package.")
|
|
23
24
|
|
|
@@ -355,9 +356,34 @@ def profile_inserts_command(
|
|
|
355
356
|
typer.echo(f" Sample {entry['sample']}: {entry['directory']}")
|
|
356
357
|
|
|
357
358
|
|
|
358
|
-
@app.command("gui", help="Launch the graphical interface
|
|
359
|
-
def gui_command(
|
|
360
|
-
|
|
359
|
+
@app.command("gui", help="Launch the graphical interface.")
|
|
360
|
+
def gui_command(
|
|
361
|
+
server_name: str = typer.Option(
|
|
362
|
+
"127.0.0.1",
|
|
363
|
+
"--server-name",
|
|
364
|
+
"-n",
|
|
365
|
+
help="Hostname or IP address to bind the GUI server.",
|
|
366
|
+
),
|
|
367
|
+
server_port: Optional[int] = typer.Option(
|
|
368
|
+
7860,
|
|
369
|
+
"--server-port",
|
|
370
|
+
"-p",
|
|
371
|
+
help="Preferred port for the GUI (falls back automatically if unavailable).",
|
|
372
|
+
),
|
|
373
|
+
share: bool = typer.Option(
|
|
374
|
+
False,
|
|
375
|
+
"--share",
|
|
376
|
+
help="Enable Gradio's public sharing tunnel (requires network access).",
|
|
377
|
+
),
|
|
378
|
+
):
|
|
379
|
+
"""Launch the Gradio GUI."""
|
|
380
|
+
try:
|
|
381
|
+
launch_gui(server_name=server_name, server_port=server_port, share=share)
|
|
382
|
+
except KeyboardInterrupt:
|
|
383
|
+
typer.echo("GUI stopped by user.")
|
|
384
|
+
except Exception as exc:
|
|
385
|
+
typer.echo(f"Failed to start GUI: {exc}")
|
|
386
|
+
raise typer.Exit(1)
|
|
361
387
|
|
|
362
388
|
|
|
363
389
|
def main():
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: uht-tooling
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.3
|
|
4
4
|
Summary: Tooling for ultra-high throughput screening workflows.
|
|
5
5
|
Author: Matt115A
|
|
6
6
|
License: MIT
|
|
@@ -27,7 +27,7 @@ Requires-Dist: ruff==0.14.4; extra == "dev"
|
|
|
27
27
|
|
|
28
28
|
# uht-tooling
|
|
29
29
|
|
|
30
|
-
Automation helpers for ultra-high-throughput molecular biology workflows. The package ships both a
|
|
30
|
+
Automation helpers for ultra-high-throughput molecular biology workflows. The package ships both a CLI and an optional GUI that wrap the same workflow code paths.
|
|
31
31
|
|
|
32
32
|
---
|
|
33
33
|
|
|
@@ -35,19 +35,20 @@ Automation helpers for ultra-high-throughput molecular biology workflows. The pa
|
|
|
35
35
|
|
|
36
36
|
### Quick install (recommended, easiest file maintainance)
|
|
37
37
|
```bash
|
|
38
|
-
|
|
38
|
+
pip install "uht-tooling[gui]==0.1.3"
|
|
39
|
+
|
|
39
40
|
```
|
|
40
41
|
|
|
41
42
|
This installs the core workflows plus the optional GUI dependencies (Gradio, pandas). Omit the `[gui]` extras if you only need the CLI:
|
|
42
43
|
|
|
43
44
|
```bash
|
|
44
|
-
|
|
45
|
+
pip install uht-tooling
|
|
45
46
|
```
|
|
46
47
|
|
|
47
48
|
### Development install
|
|
48
49
|
```bash
|
|
49
|
-
git clone https://github.com/Matt115A/uht-tooling.git
|
|
50
|
-
cd uht-tooling
|
|
50
|
+
git clone https://github.com/Matt115A/uht-tooling-packaged.git
|
|
51
|
+
cd uht-tooling-packaged
|
|
51
52
|
python -m pip install -e ".[gui,dev]"
|
|
52
53
|
```
|
|
53
54
|
|
|
@@ -57,7 +58,7 @@ The editable install exposes the latest sources, while the `dev` extras add lint
|
|
|
57
58
|
|
|
58
59
|
## Directory layout
|
|
59
60
|
|
|
60
|
-
- Reference inputs
|
|
61
|
+
- Reference inputs can be found anywhere (you specify in the cli), but we recommend using `data/<workflow>/`.
|
|
61
62
|
- Outputs (CSV, FASTA, plots, logs) are written to `results/<workflow>/`.
|
|
62
63
|
- All workflows log to `results/<workflow>/run.log` for reproducibility and debugging.
|
|
63
64
|
|
|
@@ -79,9 +80,9 @@ Each command mirrors a workflow module. Common entry points:
|
|
|
79
80
|
| `uht-tooling design-slim` | Design SLIM mutagenesis primers from FASTA/CSV inputs. |
|
|
80
81
|
| `uht-tooling design-gibson` | Produce Gibson mutagenesis primers and assembly plans. |
|
|
81
82
|
| `uht-tooling mutation-caller` | Summarise amino-acid substitutions from long-read FASTQ files. |
|
|
82
|
-
| `uht-tooling umi-hunter` | Cluster UMIs and call consensus
|
|
83
|
-
| `uht-tooling ep-library-profile` | Measure mutation rates without UMIs. |
|
|
84
|
-
| `uht-tooling profile-inserts` | Extract inserts defined by probe pairs. |
|
|
83
|
+
| `uht-tooling umi-hunter` | Cluster UMIs and call consensus genes. |
|
|
84
|
+
| `uht-tooling ep-library-profile` | Measure mutation rates in plasmid libraries without UMIs. |
|
|
85
|
+
| `uht-tooling profile-inserts` | Extract and analyse inserts defined by flanking probe pairs. |
|
|
85
86
|
|
|
86
87
|
Each command provides detailed help, including option descriptions and expected file formats:
|
|
87
88
|
|
|
@@ -107,13 +108,13 @@ You can pass multiple FASTQ paths using repeated `--fastq` options or glob patte
|
|
|
107
108
|
```
|
|
108
109
|
4. Primer CSVs will be written to `results/nextera_designer/`, accompanied by a log file.
|
|
109
110
|
|
|
110
|
-
The helper is preloaded with twelve i5 and twelve i7 indices, enabling up to 144 unique amplicons.
|
|
111
|
+
The helper is preloaded with twelve i5 and twelve i7 indices, enabling up to 144 unique amplicons.
|
|
111
112
|
|
|
112
113
|
#### Wet-lab workflow notes
|
|
113
114
|
|
|
114
115
|
- Perform the initial amplification with an i5/i7 primer pair and monitor a small aliquot by qPCR. Cap thermocycling early so you only generate ~10% of the theoretical yield—this minimizes amplification bias.
|
|
115
116
|
- Purify the product with SPRIselect beads at approximately a 0.65:1 bead:DNA volume ratio to remove residual primers and short fragments.
|
|
116
|
-
- Confirm primer removal using electrophoresis (e.g., BioAnalyzer DNA chip) before moving to
|
|
117
|
+
- Confirm primer removal and quantify DNA using electrophoresis (e.g., BioAnalyzer DNA chip) before moving to the flow cell.
|
|
117
118
|
|
|
118
119
|
### SLIM primer design
|
|
119
120
|
|
|
@@ -158,7 +159,7 @@ Mutation nomenclature examples:
|
|
|
158
159
|
```
|
|
159
160
|
- Outputs include primer sets and an assembly-plan CSV.
|
|
160
161
|
|
|
161
|
-
If mutations fall within overlapping primer windows, design sequential reactions
|
|
162
|
+
If mutations fall within overlapping primer windows, design sequential reactions.
|
|
162
163
|
|
|
163
164
|
### Mutation caller (no UMIs)
|
|
164
165
|
|
|
@@ -175,7 +176,7 @@ If mutations fall within overlapping primer windows, design sequential reactions
|
|
|
175
176
|
--output-dir results/mutation_caller/ \
|
|
176
177
|
--threshold 10
|
|
177
178
|
```
|
|
178
|
-
3. Outputs: per-sample subdirectories with substitution summaries, co-occurrence matrices, and logs.
|
|
179
|
+
3. Outputs: per-sample subdirectories with substitution summaries, co-occurrence matrices, and logs. Co-occurence matrices are experimental and are not yet to be relied on.
|
|
179
180
|
|
|
180
181
|
### UMI Hunter
|
|
181
182
|
|
|
@@ -189,6 +190,10 @@ If mutations fall within overlapping primer windows, design sequential reactions
|
|
|
189
190
|
--output-dir results/umi_hunter/
|
|
190
191
|
```
|
|
191
192
|
- Tunable parameters include `--umi-identity-threshold` and `--consensus-mutation-threshold`.
|
|
193
|
+
- --umi-identity-threshold is a decimal between 0-1 and defines how similar two UMIs have to be to be considered grouped.
|
|
194
|
+
- --consensus-mutation-threshold is the minimum group size to report a consensus sequence.
|
|
195
|
+
|
|
196
|
+
Please be aware, this toolkit will not scale well beyond around 50k reads/sample. See UMIC-seq pipelines for efficient UMI-gene dictionary generation.
|
|
192
197
|
|
|
193
198
|
### Profile inserts
|
|
194
199
|
|
|
@@ -229,7 +234,7 @@ python -m uht_tooling.workflows.gui
|
|
|
229
234
|
```
|
|
230
235
|
|
|
231
236
|
Key points:
|
|
232
|
-
- The server binds to `http://127.0.0.1:7860` by default and falls back to an available port if 7860 is busy. Copy http://127.0.0.1:7860 into your browser.
|
|
237
|
+
- The server binds to `http://127.0.0.1:7860` by default and falls back to an available port if 7860 is busy. Copy http://127.0.0.1:7860 into your browser to interface with the GUI.
|
|
233
238
|
- Temporary working directories are created under the system temp folder and cleaned automatically.
|
|
234
239
|
- Output archives (ZIP files) mirror the directory structure produced by the CLI.
|
|
235
240
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
uht_tooling/__init__.py,sha256=hf0tJaa4_9y9aYb8OB1FtJh1FOuX08dQ6_MCveWFNAc,242
|
|
2
|
-
uht_tooling/cli.py,sha256=
|
|
2
|
+
uht_tooling/cli.py,sha256=sQU0duLmMOqvqzB6hDV7GIQYdvzAKKK3rLx0Iq07ZR4,12432
|
|
3
3
|
uht_tooling/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
4
|
uht_tooling/workflows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
5
|
uht_tooling/workflows/design_gibson.py,sha256=SQEThq6dxPMPCsUrwqMUaG5I-diE9jUXPRii9Y7O_7U,13617
|
|
@@ -10,8 +10,8 @@ uht_tooling/workflows/mutation_caller.py,sha256=BczuNATOSUcmlw-x6qTzEQfW8MBbvGcl
|
|
|
10
10
|
uht_tooling/workflows/nextera_designer.py,sha256=8MZ_DyQ0JwPojXH5mZ6bAGAkqki_0qQGac45T_Ll8FQ,6170
|
|
11
11
|
uht_tooling/workflows/profile_inserts.py,sha256=C-SZ10YefiV_4QZbo1oEkI4qYipwaYqPP5jF-MC5O58,16947
|
|
12
12
|
uht_tooling/workflows/umi_hunter.py,sha256=kXR7Tw3vK4TnL8OShRt9kZ36ONpOSd-1txwB95Ldi-I,14470
|
|
13
|
-
uht_tooling-0.1.
|
|
14
|
-
uht_tooling-0.1.
|
|
15
|
-
uht_tooling-0.1.
|
|
16
|
-
uht_tooling-0.1.
|
|
17
|
-
uht_tooling-0.1.
|
|
13
|
+
uht_tooling-0.1.3.dist-info/METADATA,sha256=0bPz8odnvbX13BvlQC4HsXvJwu7dRK7YyQ2nD7KwHEA,11220
|
|
14
|
+
uht_tooling-0.1.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
15
|
+
uht_tooling-0.1.3.dist-info/entry_points.txt,sha256=t3_bMkEnlnV4vd6nrjNQxHDsHzHHoZenhmxuIYLcRBY,53
|
|
16
|
+
uht_tooling-0.1.3.dist-info/top_level.txt,sha256=iTCCiSn0OjrTx1VOdxXhUlPi1TR9LxaJEZJoMyRcv9c,12
|
|
17
|
+
uht_tooling-0.1.3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|