Skip to content
Snippets Groups Projects
Commit f54971f5 authored by fisched99's avatar fisched99
Browse files

Merge branch 'david' into 'main'

how much is the fish

See merge request !1
parents dd054a60 11c94d69
No related branches found
No related tags found
1 merge request!1how much is the fish
...@@ -5,7 +5,6 @@ if config["input_directory"]: ...@@ -5,7 +5,6 @@ if config["input_directory"]:
include: "scripts/create_input_tsv.py" include: "scripts/create_input_tsv.py"
include: "rules/bowtie2.smk" include: "rules/bowtie2.smk"
include: "rules/samtools.smk" include: "rules/samtools.smk"
include: "rules/qc.smk"
# get IDs from input directory # get IDs from input directory
#IDS, = glob_wildcards(os.path.join(config['input_directory'], "{id}.sam")) #IDS, = glob_wildcards(os.path.join(config['input_directory'], "{id}.sam"))
...@@ -16,8 +15,15 @@ if config['samples']: ...@@ -16,8 +15,15 @@ if config['samples']:
else: else:
SAMPLES = "input.tsv" SAMPLES = "input.tsv"
samples = pd.read_csv(SAMPLES, index_col = "sample", sep = '\t') samples = pd.read_csv(SAMPLES, index_col = "sample", sep = '\t')
if not config["input_directory"]:
INPUT_DIR = os.path.dirname(samples.iloc[0, 0])
include: "rules/qc.smk"
rule all: rule all:
input: input:
expand(os.path.join(config['output_directory'], "05-IDXSTATS", "augmented", "{id}_stats_aug.txt"), id = list(samples.index)), expand(os.path.join(config['output_directory'], "05-IDXSTATS", "augmented", "{id}_stats_aug.txt"), id = list(samples.index)),
...@@ -25,7 +31,7 @@ rule all: ...@@ -25,7 +31,7 @@ rule all:
expand(os.path.join(config["output_directory"], "01-QC", "qc_post", "{sample}.{R}_fastqc.html"), sample = list(samples.index), R = [1,2]), expand(os.path.join(config["output_directory"], "01-QC", "qc_post", "{sample}.{R}_fastqc.html"), sample = list(samples.index), R = [1,2]),
expand(os.path.join(config['output_directory'], "00-Log", "trim", "{sample}_trimmomatic.log"), sample = list(samples.index)), expand(os.path.join(config['output_directory'], "00-Log", "trim", "{sample}_trimmomatic.log"), sample = list(samples.index)),
expand(os.path.join(config["output_directory"], "01-QC", "qualimap", "{sample}"), sample = list(samples.index)), expand(os.path.join(config["output_directory"], "01-QC", "qualimap", "{sample}"), sample = list(samples.index)),
expand(os.path.join(config["output_directory"], "01-QC", "multiqc")) os.path.join(config["output_directory"], "01-QC", "multiqc")
onsuccess: onsuccess:
print(f"{bcolors.OKGREEN}Workflow finished, no error{bcolors.ENDC}") print(f"{bcolors.OKGREEN}Workflow finished, no error{bcolors.ENDC}")
......
...@@ -6,4 +6,4 @@ channels: ...@@ -6,4 +6,4 @@ channels:
dependencies: dependencies:
- fastqc==0.12.1 - fastqc==0.12.1
- qualimap==2.2.2d - qualimap==2.2.2d
- multiqc==v1.14 - multiqc==1.14
\ No newline at end of file \ No newline at end of file
rule fastqc_pre: rule fastqc_pre:
input: input:
os.path.join(config["input_directory"], "{sample}{R}.fastq.gz") os.path.join(INPUT_DIR, "{sample}{R}.fastq.gz")
output: output:
hmtl = os.path.join(config["output_directory"], "01-QC", "qc_pre", "{sample}{R}_fastqc.html"), hmtl = os.path.join(config["output_directory"], "01-QC", "qc_pre", "{sample}{R}_fastqc.html"),
zip = os.path.join(config["output_directory"], "01-QC", "qc_pre", "{sample}{R}_fastqc.zip") zip = os.path.join(config["output_directory"], "01-QC", "qc_pre", "{sample}{R}_fastqc.zip")
...@@ -24,11 +24,11 @@ rule trimmomatic_pe: ...@@ -24,11 +24,11 @@ rule trimmomatic_pe:
r1 = lambda wildcards: samples.at[wildcards.sample, 'fq1'], r1 = lambda wildcards: samples.at[wildcards.sample, 'fq1'],
r2 = lambda wildcards: samples.at[wildcards.sample, 'fq2'] r2 = lambda wildcards: samples.at[wildcards.sample, 'fq2']
output: output:
r1 = os.path.join(config['output_directory'], "00-QC", "trim", "{sample}.1.fastq.gz"), r1 = os.path.join(config['output_directory'], "01-QC", "trim", "{sample}.1.fastq.gz"),
r2 = os.path.join(config['output_directory'], "00-QC", "trim", "{sample}.2.fastq.gz"), r2 = os.path.join(config['output_directory'], "01-QC", "trim", "{sample}.2.fastq.gz"),
# reads where trimming entirely removed the mate # reads where trimming entirely removed the mate
r1_unpaired = os.path.join(config['output_directory'], "00-QC", "trim", "{sample}.1.unpaired.fastq.gz"), r1_unpaired = os.path.join(config['output_directory'], "01-QC", "trim", "{sample}.1.unpaired.fastq.gz"),
r2_unpaired = os.path.join(config['output_directory'], "00-QC", "trim", "{sample}.2.unpaired.fastq.gz"), r2_unpaired = os.path.join(config['output_directory'], "01-QC", "trim", "{sample}.2.unpaired.fastq.gz")
log: log:
os.path.join(config['output_directory'], "00-Log", "trim", "{sample}_trimmomatic.log") os.path.join(config['output_directory'], "00-Log", "trim", "{sample}_trimmomatic.log")
params: params:
...@@ -50,10 +50,10 @@ rule trimmomatic_pe: ...@@ -50,10 +50,10 @@ rule trimmomatic_pe:
rule fastqc_post: rule fastqc_post:
input: input:
os.path.join(config['output_directory'], "00-QC", "trim", "{sample}.{R}.fastq.gz") os.path.join(config['output_directory'], "01-QC", "trim", "{sample}{R}.fastq.gz")
output: output:
hmtl = os.path.join(config["output_directory"], "01-QC", "qc_post", "{sample}.{R}_fastqc.html"), hmtl = os.path.join(config["output_directory"], "01-QC", "qc_post", "{sample}{R}_fastqc.html"),
zip = os.path.join(config["output_directory"], "01-QC", "qc_post", "{sample}.{R}_fastqc.zip") zip = os.path.join(config["output_directory"], "01-QC", "qc_post", "{sample}{R}_fastqc.zip")
log: log:
os.path.join(config['output_directory'], "00-Log", "qc_post", "{sample}{R}_fastqc_post.log") os.path.join(config['output_directory'], "00-Log", "qc_post", "{sample}{R}_fastqc_post.log")
conda: conda:
...@@ -83,20 +83,21 @@ rule qualimap: ...@@ -83,20 +83,21 @@ rule qualimap:
qualimap bamqc -bam {input} -outdir {output} > {log} qualimap bamqc -bam {input} -outdir {output} > {log}
""" """
rule multiqc: rule multiqc:
input: input:
a = os.path.join(config["output_directory"], "01-QC", "qualimap"), fasqtcpre = expand(os.path.join(config["output_directory"], "01-QC", "qc_pre", "{sample}{R}_fastqc.zip"), sample = list(samples.index), R = [1, 2]),
b = os.path.join(config["output_directory"], "01-QC", "qc_post"), fasqtcpost = expand(os.path.join(config["output_directory"], "01-QC", "qc_post", "{sample}.{R}_fastqc.zip"), sample = list(samples.index), R = [1, 2]),
c = os.path.join(config["output_directory"], "01-QC", "qc_pre") qualimap = expand(os.path.join(config["output_directory"], "01-QC", "qualimap", "{sample}"), sample = list(samples.index))
output: output:
directory(os.path.join(config["output_directory"], "01-QC", "multiqc")) directory(os.path.join(config["output_directory"], "01-QC", "multiqc"))
params:
"" # Optional: extra parameters for multiqc.
log: log:
os.path.join(config['output_directory'], "00-Log", "multiqc.log") os.path.join(config['output_directory'], "00-Log", "multiqc", "multiqc.log")
conda: conda:
os.path.join("..", "envs", "qc.yaml") os.path.join("..", "envs", "qc.yaml")
threads:
1
shell: shell:
""" """
multiqc --quiet {input.a} {input.b} {input.c} --outdir {output} 2> {log} multiqc --quiet {input[0]} {input[1]} {input[2]} --outdir {output} 2> {log}
""" """
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment