122 lines
3.2 KiB
Plaintext
Executable File
122 lines
3.2 KiB
Plaintext
Executable File
#qc
|
|
|
|
task runqc {
|
|
String name
|
|
String input_dir
|
|
String output_dir
|
|
|
|
command <<<
|
|
# echo "###### ${name} fastp beginning at: $(date) ######"
|
|
|
|
if [ ! -d ${output_dir}/qc ];then
|
|
mkdir ${output_dir}/qc
|
|
fi
|
|
|
|
fastp \
|
|
-i ${input_dir}/*_${name}_*1.fq.gz \
|
|
-o ${output_dir}/qc/${name}_clean_R1.fq.gz \
|
|
-I ${input_dir}/*_${name}_*2.fq.gz \
|
|
-O ${output_dir}/qc/${name}_clean_R2.fq.gz \
|
|
-w 10 \
|
|
-e 20 \
|
|
--correction \
|
|
--overlap_len_require 10 \
|
|
-j ${output_dir}/qc/${name}.json \
|
|
-h ${output_dir}/qc/${name}.html \
|
|
--report_title ${name}
|
|
|
|
>>>
|
|
output {
|
|
String r1 = "${output_dir}/qc/${name}_clean_R1.fq.gz "
|
|
String r2 = "${output_dir}/qc/${name}_clean_R2.fq.gz "
|
|
String json = "${output_dir}/qc/${name}.json"
|
|
}
|
|
|
|
}
|
|
|
|
task umiqc {
|
|
String name
|
|
String input_dir
|
|
String output_dir
|
|
|
|
command <<<
|
|
# echo "###### ${name} fastp beginning at: $(date) ######"
|
|
|
|
if [ ! -d ${output_dir}/qc ];then
|
|
mkdir ${output_dir}/qc
|
|
fi
|
|
|
|
fastp -i ${input_dir}/*_${name}_*1.fq.gz -o ${output_dir}/qc/${name}_clean_R1.fq.gz \
|
|
-I ${input_dir}/*_${name}_*2.fq.gz -O ${output_dir}/qc/${name}_clean_R2.fq.gz \
|
|
-w 10 \
|
|
-U --umi_loc=per_read --umi_len=4 --umi_prefix=UMI --umi_skip=3 \
|
|
--disable_trim_poly_g \
|
|
--disable_quality_filtering \
|
|
--adapter_sequence AGATCGGAAGAGCACACGTCTGAACTCCAGTCA \
|
|
--adapter_sequence_r2 AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGT \
|
|
--correction \
|
|
--overlap_len_require 10 \
|
|
-j ${output_dir}/qc/${name}.json \
|
|
-h ${output_dir}/qc/${name}.html \
|
|
--report_title ${name}
|
|
|
|
>>>
|
|
|
|
output {
|
|
String r1 = "${output_dir}/qc/${name}_clean_R1.fq.gz "
|
|
String r2 = "${output_dir}/qc/${name}_clean_R2.fq.gz "
|
|
String json = "${output_dir}/qc/${name}.json"
|
|
}
|
|
|
|
}
|
|
|
|
workflow qc {
|
|
|
|
Boolean run=true
|
|
|
|
String tumor
|
|
String? normal
|
|
Boolean umi
|
|
String input_dir
|
|
String output_dir
|
|
|
|
if (run) {
|
|
if (umi) {
|
|
call umiqc as run_umi_qc {
|
|
input:
|
|
name=tumor,
|
|
input_dir=input_dir,
|
|
output_dir=output_dir
|
|
}
|
|
}
|
|
if (!umi) {
|
|
call runqc as run_tumor_qc {
|
|
input:
|
|
name=tumor,
|
|
input_dir=input_dir,
|
|
output_dir=output_dir
|
|
}
|
|
}
|
|
if (defined(normal)) {
|
|
call runqc as run_normal_qc {
|
|
input:
|
|
name=normal,
|
|
input_dir=input_dir,
|
|
output_dir=output_dir
|
|
}
|
|
}
|
|
}
|
|
|
|
output {
|
|
String tumor_r1 = "${output_dir}/qc/${tumor}_clean_R1.fq.gz"
|
|
String tumor_r2 = "${output_dir}/qc/${tumor}_clean_R2.fq.gz"
|
|
String tumor_json = "${output_dir}/qc/${tumor}.json"
|
|
String normal_r1 = "${output_dir}/qc/${normal}_clean_R1.fq.gz"
|
|
String normal_r2 = "${output_dir}/qc/${normal}_clean_R2.fq.gz"
|
|
String normal_json = "${output_dir}/qc/${normal}.json"
|
|
}
|
|
}
|
|
|
|
|
|
|