Skip to content

Commit

Permalink
Merge branch 'main' into perf/update-datavzrd-wrapper-to-3-10-2
Browse files Browse the repository at this point in the history
  • Loading branch information
dlaehnemann authored Jun 5, 2024
2 parents c6907ac + 6d568b9 commit 7d4e851
Show file tree
Hide file tree
Showing 9 changed files with 63 additions and 8 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Formatting
uses: github/super-linter@v5
env:
Expand Down
2 changes: 1 addition & 1 deletion .test/config/units.tsv
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
sample unit fragment_len_mean fragment_len_sd fq1 fq2
sample unit fragment_len_mean fragment_len_sd fq1 fq2 bam_single bam_paired
A 1 ngs-test-data/reads/a.chr21.1.fq ngs-test-data/reads/a.chr21.2.fq
B 1 ngs-test-data/reads/b.chr21.1.fq ngs-test-data/reads/b.chr21.2.fq
B 2 300 14 ngs-test-data/reads/b.chr21.1.fq
Expand Down
2 changes: 1 addition & 1 deletion .test/three_prime/config/units.tsv
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
sample unit fragment_len_mean fragment_len_sd fq1 fq2
sample unit fragment_len_mean fragment_len_sd fq1 fq2 bam_single bam_paired
SRR8309096 u1 430 43 quant_seq_test_data/SRR8309096.fastq.gz
SRR8309094 u1 430 43 quant_seq_test_data/SRR8309094.fastq.gz
SRR8309095 u1 430 43 quant_seq_test_data/SRR8309095.fastq.gz
Expand Down
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# Changelog

## [2.6.0](https://github.com/snakemake-workflows/rna-seq-kallisto-sleuth/compare/v2.5.5...v2.6.0) (2024-06-05)


### Features

* Allow bam input files ([#94](https://github.com/snakemake-workflows/rna-seq-kallisto-sleuth/issues/94)) ([4a1f983](https://github.com/snakemake-workflows/rna-seq-kallisto-sleuth/commit/4a1f98320ab1b5f099941f3cd62acef7f861d631))

## [2.5.4](https://github.com/snakemake-workflows/rna-seq-kallisto-sleuth/compare/v2.5.3...v2.5.4) (2024-01-31)


Expand Down
2 changes: 1 addition & 1 deletion config/units.tsv
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
sample unit fragment_len_mean fragment_len_sd fq1 fq2
sample unit fragment_len_mean fragment_len_sd fq1 fq2 bam_single bam_paired
A 1 raw/a.chr21.1.fq raw/a.chr21.2.fq
B 1 raw/b.chr21.1.fq raw/b.chr21.2.fq
B 2 300 14 raw/b.chr21.1.fq
Expand Down
1 change: 1 addition & 0 deletions workflow/Snakefile
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ include: "rules/diffexp.smk"
include: "rules/diffsplice.smk"
include: "rules/enrichment.smk"
include: "rules/datavzrd.smk"
include: "rules/bam.smk"


rule all:
Expand Down
33 changes: 33 additions & 0 deletions workflow/rules/bam.smk
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
rule bam_paired_to_fastq:
input:
lookup(
query="sample == '{sample}' & unit == '{unit}'",
within=units,
cols="bam_paired",
),
output:
"results/fastq/{sample}-{unit}.1.fq.gz",
"results/fastq/{sample}-{unit}.2.fq.gz",
log:
"logs/fastq/{sample}-{unit}.separate.log",
params:
fastq="-n",
threads: 3
wrapper:
"v3.10.2/bio/samtools/fastq/separate"


rule bam_single_to_fastq:
input:
lookup(
query="sample == '{sample}' & unit == '{unit}'",
within=units,
cols="bam_single",
),
output:
"results/fastq/{sample}-{unit}.fq.gz",
log:
"logs/fastq/{sample}-{unit}.interleaved.log",
threads: 3
wrapper:
"v3.10.2/bio/samtools/fastq/interleaved"
11 changes: 9 additions & 2 deletions workflow/rules/common.smk
Original file line number Diff line number Diff line change
Expand Up @@ -88,13 +88,20 @@ def get_model(wildcards):

def is_single_end(sample, unit):
"""Determine whether unit is single-end."""
bam_paired_not_present = pd.isnull(units.loc[(sample, unit), "bam_paired"])
fq2_not_present = pd.isnull(units.loc[(sample, unit), "fq2"])
return fq2_not_present
return fq2_not_present and bam_paired_not_present


def get_fastqs(wildcards):
"""Get raw FASTQ files from unit sheet."""
if is_single_end(wildcards.sample, wildcards.unit):
if not pd.isnull(units.loc[(wildcards.sample, wildcards.unit), "bam_single"]):
return f"results/fastq/{wildcards.sample}-{wildcards.unit}.fq.gz"
elif not pd.isnull(units.loc[(wildcards.sample, wildcards.unit), "bam_paired"]):
fqfrombam1 = f"results/fastq/{wildcards.sample}-{wildcards.unit}.1.fq.gz"
fqfrombam2 = f"results/fastq/{wildcards.sample}-{wildcards.unit}.2.fq.gz"
return [fqfrombam1, fqfrombam2]
elif is_single_end(wildcards.sample, wildcards.unit):
return units.loc[(wildcards.sample, wildcards.unit), "fq1"]
else:
u = units.loc[(wildcards.sample, wildcards.unit), ["fq1", "fq2"]].dropna()
Expand Down
11 changes: 8 additions & 3 deletions workflow/schemas/units.schema.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,16 @@ properties:
description: unit id
fq1:
type: string
description: path to FASTQ file
description: path to FASTQ file (leave empty in case usage of bam_single or bam_paired)
fq2:
type: string
description: path to second FASTQ file (leave empty in case of single-end)
description: path to second FASTQ file (leave empty in case of single-end or usage of bam_single or bam_paired)
bam_single:
type: string
description: path to single bam file (leave empty in case of usage of fastq files)
bam_paired:
type: string
description: path to paired bam file (leave empty in case of usage of fastq files)
required:
- sample
- unit
- fq1

0 comments on commit 7d4e851

Please sign in to comment.