[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)
推薦閱讀: