From 33a80bfa42ad558c3a1fd6a8b6aba6de391dc8bb Mon Sep 17 00:00:00 2001 From: seehagec01 <seehagec01@fu-berlin.de> Date: Mon, 21 Mar 2022 12:06:44 +0100 Subject: [PATCH] fix#1 --- tutorial/config/config.yaml | 4 +++- tutorial/resources/adapter/TruSeq3-PE.fa | 4 ++++ tutorial/resources/sample/samples.tsv | 7 +++++++ tutorial/workflow/Snakefile | 6 ++++++ tutorial/workflow/envs/yourenv.yaml | 5 +++-- tutorial/workflow/rules/bowtie.smk | 4 ++-- tutorial/workflow/rules/samtools.smk | 3 +-- tutorial/workflow/rules/trimming.smk | 13 +++++++++++-- 8 files changed, 37 insertions(+), 9 deletions(-) create mode 100644 tutorial/resources/adapter/TruSeq3-PE.fa create mode 100644 tutorial/resources/sample/samples.tsv diff --git a/tutorial/config/config.yaml b/tutorial/config/config.yaml index 8442899..37cdf79 100644 --- a/tutorial/config/config.yaml +++ b/tutorial/config/config.yaml @@ -1,7 +1,7 @@ --- index: "results/reference/index" -samples: "resources/samples.tsv" +samples: "resources/sample/samples.tsv" bowtieparams: "-q" @@ -10,3 +10,5 @@ bowtie: N: 0 # Sets the number of mismatches to allowed in a seed alignment during multiseed alignment. L: 22 # Sets the length of the seed substrings to align during multiseed alignment. extra: "--ignore-quals --end-to-end" # users can put here all other parameters or simply leave empty + +adapter: "resources/adapter/TruSeq3-PE.fa" diff --git a/tutorial/resources/adapter/TruSeq3-PE.fa b/tutorial/resources/adapter/TruSeq3-PE.fa new file mode 100644 index 0000000..f38a9d5 --- /dev/null +++ b/tutorial/resources/adapter/TruSeq3-PE.fa @@ -0,0 +1,4 @@ +>PrefixPE/1 +TACACTCTTTCCCTACACGACGCTCTTCCGATCT +>PrefixPE/2 +GTGACTGGAGTTCAGACGTGTGCTCTTCCGATCT diff --git a/tutorial/resources/sample/samples.tsv b/tutorial/resources/sample/samples.tsv new file mode 100644 index 0000000..fbcea5f --- /dev/null +++ b/tutorial/resources/sample/samples.tsv @@ -0,0 +1,7 @@ +sample fq1 fq2 +ERR024604 results/fastq/ERR024604_1.fastq.gz results/fastq/ERR024604_2.fastq.gz +ERR024605 results/fastq/ERR024605_1.fastq.gz results/fastq/ERR024605_2.fastq.gz +ERR024606 results/fastq/ERR024606_1.fastq.gz results/fastq/ERR024606_2.fastq.gz +ERR024607 results/fastq/ERR024607_1.fastq.gz results/fastq/ERR024607_2.fastq.gz +ERR024608 results/fastq/ERR024608_1.fastq.gz results/fastq/ERR024608_2.fastq.gz +ERR024609 results/fastq/ERR024609_1.fastq.gz results/fastq/ERR024609_2.fastq.gz diff --git a/tutorial/workflow/Snakefile b/tutorial/workflow/Snakefile index 70a6239..d20a56c 100644 --- a/tutorial/workflow/Snakefile +++ b/tutorial/workflow/Snakefile @@ -6,6 +6,10 @@ samples = pd.read_table(config["samples"], index_col="sample") rule all: input: + expand("results/trimmed/{sample}_forward_paired.fq.gz", sample=samples.index), + expand("results/trimmed/{sample}_forward_unpaired.fq.gz", sample=samples.index), + expand("results/trimmed/{sample}_reverse_paired.fq.gz", sample=samples.index), + expand("results/trimmed/{sample}_reverse_unpaired.fq.gz", sample=samples.index), "results/aggregate/mappedcounts.csv", expand("results/stats/{sample}.stats.txt", sample=samples.index), expand("results/fastqc/{sample}_1_fastqc.html", sample=samples.index), @@ -20,3 +24,5 @@ include:"rules/bowtie.smk" include:"rules/samtools.smk" include:"rules/aggregate.smk" + +include:"rules/trimming.smk" diff --git a/tutorial/workflow/envs/yourenv.yaml b/tutorial/workflow/envs/yourenv.yaml index fb2f959..bba82dd 100644 --- a/tutorial/workflow/envs/yourenv.yaml +++ b/tutorial/workflow/envs/yourenv.yaml @@ -3,6 +3,7 @@ channels: - bioconda - defaults dependencies: + - pandas=1.3.5 - bowtie2=2.3.5.1=py37h2dec4b4_0 - c-ares=1.18.1=hca72f7f_0 - ca-certificates=2022.2.1=hecd8cb5_0 @@ -22,10 +23,10 @@ dependencies: - pip=21.2.2=py37hecd8cb5_0 - python=3.7.11=h88f2d9e_0 - readline=8.1.2=hca72f7f_1 - - samtools=1.4.1=0 + - samtools=1.3.1=0 - setuptools=58.0.4=py37hecd8cb5_0 - sqlite=3.37.2=h707629a_0 - - tbb=2021.5.0=haf03e11_0 + - tbb=2020.2 - tk=8.6.11=h7bc2e8c_0 - wheel=0.37.1=pyhd3eb1b0_0 - xz=5.2.5=h1de35cc_0 diff --git a/tutorial/workflow/rules/bowtie.smk b/tutorial/workflow/rules/bowtie.smk index b60c52e..de9b355 100644 --- a/tutorial/workflow/rules/bowtie.smk +++ b/tutorial/workflow/rules/bowtie.smk @@ -16,8 +16,8 @@ rule refindex: rule map: input: "results/reference/index.bt2", - r1 = lambda wildcards: samples.at[wildcards.sample,'fq1'] if wildcards.sample in samples.index else ' ', - r2 = lambda wildcards: samples.at[wildcards.sample,'fq2'] if wildcards.sample in samples.index else ' ' + "results/trimmed/{sample}_forward_paired.fq.gz", + "results/trimmed/{sample}_reverse_paired.fq.gz" params: prefix=config["index"], bowtieparams=config["bowtieparams"] diff --git a/tutorial/workflow/rules/samtools.smk b/tutorial/workflow/rules/samtools.smk index dc63db9..5c1d010 100644 --- a/tutorial/workflow/rules/samtools.smk +++ b/tutorial/workflow/rules/samtools.smk @@ -42,8 +42,7 @@ rule stats: "results/bam_sorted/{sample}.bam.bai" output: "results/stats/{sample}.stats.txt" - threads:4 conda: "../envs/yourenv.yaml" shell: - "samtools idxstats --threads={threads} {input[0]} > {output}" + "samtools idxstats {input[0]} > {output}" diff --git a/tutorial/workflow/rules/trimming.smk b/tutorial/workflow/rules/trimming.smk index 9ee44de..f2fb3f1 100644 --- a/tutorial/workflow/rules/trimming.smk +++ b/tutorial/workflow/rules/trimming.smk @@ -2,7 +2,16 @@ rule trimming: input: rt1 = lambda wildcards: samples.at[wildcards.sample,'fq1'] if wildcards.sample in samples.index else ' ', rt2 = lambda wildcards: samples.at[wildcards.sample,'fq2'] if wildcards.sample in samples.index else ' ' + params: + adapter=config["adapter"] output: - "results/trimmed/{sample}.fq.gz" + "results/trimmed/{sample}_forward_paired.fq.gz", + "results/trimmed/{sample}_forward_unpaired.fq.gz", + "results/trimmed/{sample}_reverse_paired.fq.gz", + "results/trimmed/{sample}_reverse_unpaired.fq.gz" + conda: + "../envs/yourenv.yaml" + log: + "workflow/report/trimming/{sample}.log" shell: - "java -jar trimmomatic-0.39.jar PE {input[0]} {input[1]} {output} ILLUMINACLIP:TruSeq3-PE.fa:2:30:10:2:True LEADING:3 TRAILING:3 MINLEN:36" + "trimmomatic PE {input[0]} {input[1]} {output} ILLUMINACLIP:{params.adapter}:2:30:10:2:True LEADING:3 TRAILING:3 MINLEN:36" -- GitLab