[Pipeline] 在Anaconda下用Snakemake構建ChIP-seq流程(2)

(2)質量控制

正常的fastQC命令,如果用while寫,為:

ls *fastq | while read id; do fastqc -f fastq $id; done

可以使用-t 參數設定線程,加快運行速度。

fastQC做質量評估時會輸出多個文件,我們只選用一個放在output下就可以,滿足了Snakemake對rule執行完成的確認。

放到Snakefile里,將輸出的文件放在目錄qc_file下:

rule perform_qc:
input:
fastq_file/{sample}.fastq
params:
out_dir = qc
output:
qc/{sample}_fastqc.html,
shell:
r
fastqc -o qc_file -t 4 -f fastq {input}

如果我們手動去對我們的fastq文件進行修剪,需要一個個去看,不能放在流程裡面。所以我們可以選擇安裝seqtk,自動為我們的數據進行修剪。

安裝:

conda install -y seqtk

正常自動修剪的命令:

seqtk trimfq -l 30 XXXXXX.fastq > trimed_file/XXXXXX.fastq

在Snakemake里,保存在trimed_file下就變成:

rule seq_trim:
input:
fastq_file/{sample}.fastq
output:
trimed_file/{sample}.fastq
shell:
r
seqtk trimfq -l 30 {input} > {output}

最後別忘了在rule all下面加上這兩個output:

rule all:
input:
expand(fastq_file/{sample}.fastq, sample=SAMPLES),
expand(qc_file/{sample}_fastqc.html, sample=SAMPLES),
expand(trimed_file/{sample}.fastq, sample=SAMPLES)

推薦閱讀:

TAG:Python | Anaconda | 生物信息學 |