Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
103 commits
Select commit Hold shift + click to select a range
75d046c
add bgzip module
madscort Sep 10, 2025
3847f18
add matrix context
madscort Sep 10, 2025
963b05c
update pooltable to include dimension
madscort Sep 10, 2025
551445a
Change load format of pooltable and add to pinpoint
madscort Sep 10, 2025
7f12a2d
add new method for pinpointing and combining call output
madscort Sep 10, 2025
f69dff2
add module for capturing all unique variants in vcf collection
madscort Sep 10, 2025
34baf96
add module for annotating unique variants using vep
madscort Sep 10, 2025
c7d174f
add vep dependencies
madscort Sep 10, 2025
69472e1
update pinpoint subworkflow with simplified output
madscort Sep 10, 2025
b941d46
add vep container
madscort Sep 10, 2025
e8272cb
add pileup calling method
madscort Sep 15, 2025
e9cd143
bump marbl version
madscort Sep 15, 2025
a72d228
rename
madscort Sep 15, 2025
f9afdca
fix output naming
madscort Sep 15, 2025
4ad05ad
change output structure
madscort Sep 15, 2025
ef6e7ae
add environment for rescue
madscort Sep 15, 2025
5d2e819
add decodetable creation from pooltable
madscort Sep 15, 2025
86ba641
make module emit decode table
madscort Sep 15, 2025
4ab2894
add matrix context as optional source of decodetable to workflow
madscort Sep 15, 2025
aee0127
Add annotations config for ngc
madscort Sep 16, 2025
cd985df
update singularity vs docker configuration
Sep 17, 2025
df81e71
fix gene naming in bed
Sep 17, 2025
4cffa94
add missing container
Sep 17, 2025
7310aa3
add confirmation of lof plugin availability
Sep 17, 2025
373c7ec
remove fgbio launch param
Sep 17, 2025
11e7cce
Remove modules from conf
Sep 17, 2025
6b8f106
remove fbio launch param
Sep 17, 2025
e94d526
add correct loftee plugin dir
Sep 17, 2025
8380cd2
add function for file and index tuple import
Sep 17, 2025
2503bbe
update container cache to private cache, and add new modules
Sep 17, 2025
fe0b130
update ubuntu
madscort Sep 17, 2025
7cbc983
verify loftee
madscort Sep 17, 2025
ec0f1eb
separate pinpoint output methods
madscort Sep 17, 2025
ba06422
merge
madscort Sep 17, 2025
56e95b1
adjust input channelse
madscort Sep 17, 2025
e336514
add backslash
madscort Sep 17, 2025
9af0cc7
Update envs/rescue/environment.yaml
madscort Sep 17, 2025
5d0e798
change to input variable file naming
madscort Sep 17, 2025
3a71c75
Merge pull request #17 from RasmussenLab/change_decode_method
madscort Sep 17, 2025
b8ec1ee
fix input params for pinpoint step
madscort Sep 17, 2025
ec63a92
Merge pull request #18 from RasmussenLab/change_decode_method
madscort Sep 17, 2025
882ce7c
fix column naming
madscort Sep 18, 2025
465f1a2
add arm64 support for R container
madscort Sep 18, 2025
8782f1a
add simple html reporting
madscort Sep 18, 2025
4faaf62
Merge pull request #19 from RasmussenLab/update_envs_and_report
madscort Sep 18, 2025
9e4e2b7
fix CI container owner confusion
madscort Sep 18, 2025
c771218
force CI writability
madscort Sep 18, 2025
17b6dcc
test user override with env variable
madscort Sep 18, 2025
784c6b4
change user of docker
madscort Sep 18, 2025
d12ff7f
Update container versions
madscort Sep 18, 2025
3b8b754
add decode to rescue
madscort Sep 18, 2025
2514f22
update loftee args
madscort Sep 18, 2025
b0cb608
update merge by columns
madscort Sep 18, 2025
51a6d75
force root in docker
madscort Sep 18, 2025
bbcaf87
Switch GATK to picard container for including R. Remove duplicate met…
madscort Sep 19, 2025
9a7e99a
update memory allocation for java to reflect task availability
madscort Sep 19, 2025
f3cb7d3
Add conda picard environment
madscort Sep 19, 2025
b7767bf
fix bgzip stub
madscort Sep 20, 2025
c391086
Update conda picard version
madscort Sep 20, 2025
649045c
update readme
madscort Sep 20, 2025
a512732
add snpeff version to ngc config
madscort Sep 20, 2025
a5d3543
bump rescue
madscort Sep 20, 2025
88eba62
change default config
madscort Sep 21, 2025
e1e094f
update base config files
madscort Sep 21, 2025
736ebb9
update base config
madscort Sep 22, 2025
5e6b6b7
update report
madscort Sep 22, 2025
572811e
change sort method
madscort Sep 23, 2025
06bacbe
remove dup metrics leftover
madscort Sep 23, 2025
ea8d107
update marbl
madscort Sep 23, 2025
ce908cd
update container versions
madscort Sep 23, 2025
8c4740c
remove node type pbs script
madscort Sep 23, 2025
8caae32
update report
madscort Sep 23, 2025
63366a1
Merge pull request #20 from RasmussenLab/dbds_update
madscort Sep 29, 2025
a4af788
add new module ngsep
madscort Oct 15, 2025
3eb98ca
Merge pull request #21 from RasmussenLab/add_ngsep
madscort Oct 15, 2025
4f2c856
update report + resource limits
Oct 20, 2025
f400970
downgrade samtools for pinpy
Oct 20, 2025
2d0380f
fix shebang
Oct 20, 2025
541674e
prevent compiler issues
Oct 20, 2025
0281fec
update vep
Oct 20, 2025
829c881
fix loftee path
Oct 20, 2025
117180c
add loftee path
Oct 20, 2025
5c8f3cb
add ssi specifc conf
Oct 20, 2025
ad201e8
tmp fasta suffix fix
Oct 20, 2025
e5d5a43
update freebayes
madscort Nov 18, 2025
bc43659
update sensible defaults
Nov 22, 2025
8077bc4
Update next.ssi
madscort Nov 22, 2025
e1446dc
Update next.ssi
madscort Nov 22, 2025
562bdce
Update next.ssi
madscort Nov 22, 2025
3486dc5
Update next.ssi
madscort Nov 22, 2025
4ccea02
minor resource update
madscort Feb 10, 2026
f4e61b5
remove hard-coding ref genome
madscort Feb 10, 2026
8a969f1
limit haplotypes for ssi hpc
madscort Feb 10, 2026
7b49889
Merge pull request #23 from RasmussenLab/bc_update
madscort Mar 6, 2026
e31d1ec
Merge branch 'dev' of https://github.com/madscort/DoBSeqWF into dev
madscort Mar 6, 2026
826ebca
re-add reference
madscort Mar 6, 2026
7982ccf
remove ngsep and freebayes as defaults
madscort Mar 9, 2026
3fe82cb
update configs
May 25, 2026
4e818c2
update attributes for line-endings
May 26, 2026
7c05387
update to lf eol
May 26, 2026
90eb7ad
DSL compliance
madscort Jun 26, 2026
2ab4806
downgrade parser
madscort Jun 26, 2026
45a50c4
fix referencing in ngsep
madscort Jun 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,2 +1,19 @@
# SCM syntax highlighting
pixi.lock linguist-language=YAML linguist-generated=true

# Force windows not to reformat line-endings
*.sh text eol=lf
*.bash text eol=lf
*.py text eol=lf
*.pl text eol=lf
*.R text eol=lf
*.pbs text eol=lf
*.slurm text eol=lf
*.config text eol=lf
*.yaml text eol=lf
*.nf text eol=lf
*.md text eol=lf
*.Rmd text eol=lf
*.groovy text eol=lf
*.json text eol=lf
*.ssi text eol=lf
3 changes: 3 additions & 0 deletions .github/workflows/nextflow-test-conda.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ jobs:
test:
runs-on: ubuntu-latest

env:
NXF_SYNTAX_PARSER: v1

steps:
- name: Checkout repository
uses: actions/checkout@v4
Expand Down
7 changes: 5 additions & 2 deletions .github/workflows/nextflow-test-container.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,10 @@ on:
jobs:
test:
runs-on: ubuntu-latest


env:
NXF_SYNTAX_PARSER: v1

steps:
- name: Checkout repository
uses: actions/checkout@v4
Expand All @@ -28,7 +31,7 @@ jobs:
key: docker-cache-${{ runner.os }}-${{ hashFiles('**/nextflow.config', '**/modules.config') }}
restore-keys: |
docker-cache-${{ runner.os }}-

- name: Install Nextflow
run: |
curl -s https://get.nextflow.io | bash
Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
Expand Down Expand Up @@ -185,3 +184,4 @@ vcftable.tsv
pixi.toml
pixi.lock
.DS_Store
.vscode
55 changes: 46 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,29 +43,36 @@ Configurations can be supplied a configuration file, see ```config.json```, and
nextflow run main.nf \
(-with-docker/-with-apptainer/-with-conda) \
--pooltable <path to pool fastq file table> \
--decodetable <path to pool decode tsv> \
(--decodetable <path to pool decode tsv> \)
--reference_genome <path to indexed reference genome> \
--bedfile <path to bedfile with target regions> \
--ploidy <integer>
```
The ```pooltable.tsv``` should connect (user assigned) pool id's to input FASTQ files; one entry for each pool.
The ```pooltable.tsv``` should connect (user assigned) pool id's and their row/column arrangement to input FASTQ files; one tab-separated line for each pool.
```Bash
pool_row_1 path/to/sample1_R1.fq.gz path/to/sample1_R2.fq.gz
pool_column_1 path/to/sample2_R1.fq.gz path/to/sample2_R2.fq.gz
pool_1 row path/to/sample1_R1.fq.gz path/to/sample1_R2.fq.gz
pool_2 row path/to/sample2_R1.fq.gz path/to/sample2_R2.fq.gz
pool_3 column path/to/sample3_R1.fq.gz path/to/sample3_R2.fq.gz
pool_4 column path/to/sample4_R1.fq.gz path/to/sample4_R2.fq.gz
```
The ```decodetable.tsv``` should map (user assigned) individual id's in the matrix to the corresponding row and column id's of each pool; one entry for each element in the matrix.
The optional ```decodetable.tsv``` should map (user assigned) individual id's in the matrix to the corresponding row and column id's of each pool; one entry for each element in the matrix.
```Bash
individual1 pool_row_1 pool_column_1
individual1 pool_1 pool_3
individual2 pool_2 pool_3
individual3 pool_1 pool_4
individual4 pool_2 pool_4
```
### 6. Pipeline output
The workflow will output a results folder containing multiple config dependent output files:
```Bash
results
├── pinpointables.vcf # Merged VCF file containing all assigned variants
├── cram/ # CRAM files for each pool
├── context/ # TSV and JSON files with matrix information and pool-individual linkage.
├── logs/ # Log files for each process
├── variants/ # VCF files for each pool
├── variant_tables/ # TSV files converted from pool VCFs
├── variant_compilation/ # TSV files with aggregated variants, annotations and rescue probabilities
└── pinpoint_variants/
├── all_pins/ # All pinpointables for each sample in individual vcfs (*note)
├── unique_pins/ # All unique pinpointables for each sample in individual vcfs (*note)
Expand All @@ -75,6 +82,34 @@ results
```
A central files is the ```pinpointables.vcf```. This file contains all individually assigned variants. Since each variant contains information from two pools, these a presented as the sample columns: ROW and COLUMN.

## Variant annotation
Two annotations workflows are currently available. SnpEff for VCF output files and VEP for tabular compiled output. They can be applied by adding the following configurations and absolute paths to the JSON params file.
```Bash
config.json
{
# Annotate output VCFs with SnpEff and clinvar
annotate: true
snpeff_db: "GRCh38.99"
snpeff_config: "snpEff.config"
snpeff_cache: "cache/"
clinvar_db: "clinvar_20230903.vcf.gz" # (*.tbi in same folder)

# Annotate tabular output with VEP
annotate_vep: true
vep_cache: "cache/" # (Current version 111.x)
# Optional VEP input:
danmac_db: "danmac.vcf.gz" # (*.tbi in same folder)
blacklist_bed: "hg38-blacklist.v2.sorted.bed.gz" # (*.tbi in same folder)
repeatmasker_bed: "repeatmasker.sorted.bed.gz" # (*.tbi in same folder)
gnomad_vcf: "gnomad.vcf.bgz" # (*.tbi in same folder)
utr_file: "uORF_5UTR_GRCh38_PUBLIC.txt"
alphamissense_tsv: "AlphaMissense_hg38.tsv.gz"
loftee_gerp_bw: "gerp_conservation_scores.homo_sapiens.GRCh38.bw"
loftee_human_ancestor: "human_ancestor.fa.gz"
loftee_sqlite: "loftee.sql"
}
```

# Workflow repository contents:

```Bash
Expand All @@ -95,6 +130,7 @@ DoBSeqWF
│ │ ├── pooltable.tsv
│ │ ├── snvlist.tsv
│ │ └── target_calling.bed
│ ├── filter/ # Filter model modules and parameters
│ └── helper_scripts
│ └── simulator.py # Script for simulating minimal pipeline data
├── bin # Executable pipeline scripts
Expand All @@ -106,11 +142,12 @@ DoBSeqWF
├── envs
│ └── <name>/
│ └── environment.yaml # Conda environment definitions
├── lib/ # Pipeline groovy utility functions
├── main.nf # Main workflow
├── modules/
│ └── <module>.nf # Module scripts
├── subworkflows/
│ └── <subworkflow>.nf # Module scripts
│ └── <subworkflow>.nf # Subworkflow scripts
├── next.pbs # Helper script for running on NGC-HPC
└── nextflow.config # Workflow parameters
```
Expand Down Expand Up @@ -180,8 +217,8 @@ predisposed
├── <batch_id_I>/
│ ├── DoBSeqWF/ # Clone repository here
│ │ ├── config.json # Configuration file
│ │ ├── pooltable.tsv # Pool table (create with helper script)
│ │ └── decodetable.tsv # Decode table (we need a convention for this)
│ │ ├── pooltable.tsv # Pool table
│ │ └── decodetable.tsv # Decode table
│ └── results
│ ├── cram/ # CRAM files for each pool
│ ├── logs/ # Log files for each process
Expand Down
8 changes: 4 additions & 4 deletions assets/data/test_data/pooltable.tsv
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
B0_H0 assets/data/test_data/pools/B0_H0_1.fq.gz assets/data/test_data/pools/B0_H0_2.fq.gz
B0_H1 assets/data/test_data/pools/B0_H1_1.fq.gz assets/data/test_data/pools/B0_H1_2.fq.gz
B0_V0 assets/data/test_data/pools/B0_V0_1.fq.gz assets/data/test_data/pools/B0_V0_2.fq.gz
B0_V1 assets/data/test_data/pools/B0_V1_1.fq.gz assets/data/test_data/pools/B0_V1_2.fq.gz
B0_H0 row assets/data/test_data/pools/B0_H0_1.fq.gz assets/data/test_data/pools/B0_H0_2.fq.gz
B0_H1 row assets/data/test_data/pools/B0_H1_1.fq.gz assets/data/test_data/pools/B0_H1_2.fq.gz
B0_V0 column assets/data/test_data/pools/B0_V0_1.fq.gz assets/data/test_data/pools/B0_V0_2.fq.gz
B0_V1 column assets/data/test_data/pools/B0_V1_1.fq.gz assets/data/test_data/pools/B0_V1_2.fq.gz
4 changes: 2 additions & 2 deletions assets/data/test_data/target_calling.bed
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
small_ref 1 710
small_ref 720 1300
small_ref 1 710 gene1
small_ref 720 1300 gene2
Loading
Loading