Skip to content

Commit cf9f713

Browse files
committed
dangerously big commit bringing a complete results reporting system, some early multiQC integrations, a refactor bin/lib organization for python modules, and updated docs
1 parent d86b144 commit cf9f713

File tree

94 files changed

+8095
-1108
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

94 files changed

+8095
-1108
lines changed

.github/workflows/docker-image.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ on:
1212
- 'Cargo.toml'
1313
- 'Cargo.lock'
1414
- 'bin/find_and_trim_amplicons.rs'
15+
- 'lib/**'
1516
pull_request:
1617
branches: [ "main" ]
1718
paths:
@@ -23,6 +24,7 @@ on:
2324
- 'Cargo.toml'
2425
- 'Cargo.lock'
2526
- 'bin/find_and_trim_amplicons.rs'
27+
- 'lib/**'
2628

2729
jobs:
2830

.gitignore

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@
6161
!/conf/nanopore_tests/*.config
6262
!/conf/*.config
6363
!/conf/*.yml
64+
!/conf/*.yaml
6465

6566
# bin of executable scripts. Scripts written in Python, Rust (rust-scripts), Typescript
6667
# (which can be executed natively by Deno and Bun now), Javascript, R, Perl, Lua, shell,
@@ -79,19 +80,7 @@
7980
!/bin/*.awk
8081
!/bin/README.md
8182

82-
# oneroof CLI package (Typer-based CLI wrapper)
83-
!/bin/oneroof_cli/
84-
!/bin/oneroof_cli/*.py
85-
!/bin/oneroof_cli/commands/
86-
!/bin/oneroof_cli/commands/*.py
8783

88-
# reporting package (metrics extraction, visualization, report assembly)
89-
!/bin/reporting/
90-
!/bin/reporting/*.py
91-
!/bin/reporting/extractors/
92-
!/bin/reporting/extractors/*.py
93-
!/bin/reporting/visualizations/
94-
!/bin/reporting/visualizations/*.py
9584

9685
# assets (templates, configs)
9786
!/assets/
@@ -102,9 +91,24 @@
10291
!/Cargo.toml
10392
!/Cargo.lock
10493

105-
# groovy libraries
94+
# lib directory: groovy utilities and Python packages
10695
!/lib
10796
!/lib/*.groovy
97+
!/lib/*.py
98+
99+
# oneroof CLI package (Typer-based CLI wrapper)
100+
!/lib/oneroof_cli/
101+
!/lib/oneroof_cli/*.py
102+
!/lib/oneroof_cli/commands/
103+
!/lib/oneroof_cli/commands/*.py
104+
105+
# reporting package (metrics extraction, visualization, report assembly)
106+
!/lib/reporting/
107+
!/lib/reporting/*.py
108+
!/lib/reporting/extractors/
109+
!/lib/reporting/extractors/*.py
110+
!/lib/reporting/visualizations/
111+
!/lib/reporting/visualizations/*.py
108112

109113
# documentation
110114
!/docs

Containerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,10 @@ RUN cd $HOME && dorado download
4646
# Install everything else with Pixi:
4747
# --------------------------------
4848
# 1) copy the required dependency and configuration files into the image
49-
# Note: bin/oneroof_cli/ is needed for the editable install declared in pyproject.toml
49+
# Note: lib/ contains the Python packages needed for the editable install
5050
COPY pyproject.toml $HOME/pyproject.toml
5151
COPY pixi.lock $HOME/pixi.lock
52-
COPY bin/oneroof_cli $HOME/bin/oneroof_cli
52+
COPY lib $HOME/lib
5353

5454
# 2) install pixi
5555
RUN cd $HOME && PIXI_ARCH=x86_64 curl -fsSL https://pixi.sh/install.sh | bash

README.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ Though many excellent pipelines currently exist, e.g. `nf-core/viralrecon`, `ep
3737

3838
Overall, `oneroof` can be summarized as a variant-calling pipeline written in and managed by Nextflow. Its software dependencies are provided through containers or through an environment assembled by [`pixi`](https://prefix.dev/). To run it on your own Nanopore pod5s with Docker containers, simply run something like:
3939

40-
``` bash
40+
```bash
4141
nextflow run nrminor/oneroof \
4242
--pod5_dir my_pod5_dir \
4343
--primer_bed my_primers.bed \
@@ -50,7 +50,7 @@ These are the core elements required to run on Nanopore data: a directory of pod
5050

5151
And for Illumina paired-end reads, it’s even simpler:
5252

53-
``` bash
53+
```bash
5454
nextflow run nrminor/oneroof \
5555
--illumina_fastq_dir my_illumina_reads/
5656
```
@@ -116,25 +116,25 @@ Note that `oneroof` checks for how to gather data in a particular order for Nano
116116

117117
To reproduce the environment required by this pipeline, make sure you are on a Mac, a linux machine, or a Windows machine using Windows Subsystem for Linux. Then, to reproduce the environment, install pixi with:
118118

119-
``` bash
119+
```bash
120120
curl -fsSL https://pixi.sh/install.sh | bash
121121
```
122122

123123
Download the pipeline with:
124124

125-
``` bash
125+
```bash
126126
git clone https://github.com/nrminor/oneroof.git && cd oneroof
127127
```
128128

129129
And then open a `pixi` subshell within your terminal with:
130130

131-
``` bash
131+
```bash
132132
pixi shell --frozen
133133
```
134134

135135
As long as you are using a supported system, the pipeline should run within that subshell. You can also run the pipeline within that subshell without containers using the “containerless” profile:
136136

137-
``` bash
137+
```bash
138138
nextflow run . \
139139
-profile containerless \
140140
--pod5_dir my_pod5_dir \
@@ -160,14 +160,14 @@ For users who have cloned the repository and are working locally, we provide the
160160

161161
The CLI is available automatically when you enter the pixi environment:
162162

163-
``` bash
163+
```bash
164164
pixi shell --frozen
165165
oneroof --help
166166
```
167167

168168
Or install it directly with pip or uv:
169169

170-
``` bash
170+
```bash
171171
# With pip
172172
pip install -e .
173173

@@ -177,7 +177,7 @@ uv pip install -e .
177177

178178
**Example usage:**
179179

180-
``` bash
180+
```bash
181181
# See all available commands
182182
oneroof --help
183183

@@ -213,7 +213,7 @@ OneRoof includes a limited but growing test suite, which validates pipeline func
213213

214214
Before contributing or deploying changes, ensure all tests pass:
215215

216-
``` bash
216+
```bash
217217
# Ensure you're in the Pixi environment
218218
pixi shell --frozen
219219

@@ -253,7 +253,7 @@ Contributions, feature requests, improvement suggestions, and bug reports via Gi
253253

254254
> Lail, Andrew J., William C. Vuyk, Heather Machkovech, Nicholas R. Minor, Nura R. Hassan, Rhea Dalvie, Isla E. Emmen et al. “Amplicon sequencing of pasteurized retail dairy enables genomic surveillance of H5N1 avian influenza virus in United States cattle.” PloS one 20, no. 6 (2025): <https://doi.org/10.1371/journal.pone.0325203>.
255255
256-
``` bibtex
256+
```bibtex
257257
@article{Lail2025-xf,
258258
title = "Amplicon sequencing of pasteurized retail dairy enables genomic surveillance of {H5N1} avian influenza virus in United States cattle",
259259
author = "Lail, Andrew J and Vuyk, William C and Machkovech, Heather and Minor, Nicholas R and Hassan, Nura R and Dalvie, Rhea and Emmen, Isla E and Wolf, Sydney and Kalweit, Annabelle and Wilson, Nancy and Newman, Christina M and Tiburcio, Patrick Barros and Weiler, Andrea and Friedrich, Thomas C and O'Connor, David H",
@@ -271,7 +271,7 @@ Contributions, feature requests, improvement suggestions, and bug reports via Gi
271271

272272
> Kwon, Taeyong, Jessie D. Trujillo, Mariano Carossino, Heather M. Machkovech, Konner Cool, Eu Lim Lyoo, Gagandeep Singh et al. “Pathogenicity and transmissibility of bovine-derived HPAI H5N1 B3. 13 virus in pigs.” Emerging Microbes & Infections just-accepted (2025): <https://doi.org/10.1080/22221751.2025.2509742>.
273273
274-
``` bibtex
274+
```bibtex
275275
@ARTICLE{Kwon2025-yq,
276276
title = "Pathogenicity and transmissibility of bovine-derived {HPAI} {H5N1} B3.13 virus in pigs",
277277
author = "Kwon, Taeyong and Trujillo, Jessie D and Carossino, Mariano and Machkovech, Heather M and Cool, Konner and Lyoo, Eu Lim and Singh, Gagandeep and Kafle, Sujan and Elango, Shanmugasundaram and Vediyappan, Govindsamy and Wei, Wanting and Minor, Nicholas and Matias-Ferreyra, Franco S and Morozov, Igor and Gaudreault, Natasha N and Balasuriya, Udeni B R and Hensley, Lisa E and Diel, Diego G and Ma, Wenjun and Friedrich, Thomas C and Richt, Juergen A",

_quarto.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ website:
2121
href: docs/developer.html
2222
- text: "Architecture"
2323
href: docs/pipeline_architecture.html
24+
- text: "Reporting"
25+
href: docs/reporting.html
2426
- text: "File Reference"
2527
href: docs/whats-that-file.html
2628
- text: "Data Management"

assets/multiqc_config.yaml

Lines changed: 0 additions & 47 deletions
This file was deleted.

bin/__init__.py

Whitespace-only changes.

0 commit comments

Comments
 (0)