|
- import "./tasks/fastp.wdl" as fastp
- import "./tasks/hisat2.wdl" as hisat2
- import "./tasks/samtools.wdl" as samtools
- import "./tasks/stringtie.wdl" as stringtie
- import "./tasks/fastqc.wdl" as fastqc
- import "./tasks/fastqscreen.wdl" as fastqscreen
- import "./tasks/qualimapBAMqc.wdl" as qualimapBAMqc
- import "./tasks/qualimapRNAseq.wdl" as qualimapRNAseq
- import "./tasks/multiqc.wdl" as multiqc
-
- workflow {{ project_name }} {
-
- File inputSamplesFile
- File idx
- File screen_ref_dir
- File fastq_screen_conf
- File gtf
- Array[Array[File]] inputSamples = read_tsv(inputSamplesFile)
- String fastp_docker
- String adapter_sequence
- String adapter_sequence_r2
- String fastp_cluster
- String umi_loc
- String idx_prefix
- String pen_intronlen
- String fastqc_cluster_config
- String fastqc_docker
- String fastqscreen_docker
- String fastqscreen_cluster_config
- String hisat2_docker
- String hisat2_cluster
- String qualimapBAMqc_docker
- String qualimapBAMqc_cluster_config
- String qualimapRNAseq_docker
- String qualimapRNAseq_cluster_config
- String samtools_docker
- String samtools_cluster
- String stringtie_docker
- String stringtie_cluster
- String multiqc_cluster_config
- String multiqc_docker
- String multiqc_disk_size
- Int trim_front1
- Int trim_tail1
- Int max_len1
- Int trim_front2
- Int trim_tail2
- Int max_len2
- Int disable_adapter_trimming
- Int length_required
- Int umi_len
- Int UMI
- Int qualified_quality_phred
- Int length_required1
- Int disable_quality_filtering
- Int pen_cansplice
- Int pen_noncansplice
- Int min_intronlen
- Int max_intronlen
- Int maxins
- Int minins
- Int fastqc_disk_size
- Int fastqscreen_disk_size
- Int qualimapBAMqc_disk_size
- Int qualimapRNAseq_disk_size
- Int insert_size
- Int minimum_length_allowed_for_the_predicted_transcripts
- Int Junctions_no_spliced_reads
- Float minimum_isoform_abundance
- Float maximum_fraction_of_muliplelocationmapped_reads
-
- scatter (quartet in inputSamples){
-
- call fastp.fastp as fastp {
- input:
- sample_id= quartet[2],
- read1= quartet[0],
- read2= quartet[1],
- docker = fastp_docker,
- cluster = fastp_cluster,
- adapter_sequence = adapter_sequence,
- adapter_sequence_r2 = adapter_sequence_r2,
- umi_loc = umi_loc,
- trim_front1 = trim_front1,
- trim_tail1 = trim_tail1,
- max_len1 = max_len1,
- trim_front2 = trim_front2,
- trim_tail2 = trim_tail2,
- max_len2 = max_len2,
- disable_adapter_trimming = disable_adapter_trimming,
- length_required = length_required,
- umi_len = umi_len,
- UMI = UMI,
- qualified_quality_phred = qualified_quality_phred,
- length_required1 = length_required1,
- disable_quality_filtering = disable_quality_filtering
- }
-
- call fastqc.fastqc as fastqc {
- input:
- read1=fastp.Trim_R1,
- read2=fastp.Trim_R2,
- docker=fastqc_docker,
- cluster_config=fastqc_cluster_config,
- disk_size=fastqc_cluster_config
- }
-
- call fastqscreen.fastq_screen as fastqscreen {
- input:
- read1=fastp.Trim_R1,
- read2=fastp.Trim_R2,
- screen_ref_dir=screen_ref_dir,
- fastq_screen_conf=fastq_screen_conf,
- docker = fastqscreen_docker,
- cluster_config = fastqscreen_cluster_config,
- disk_size= fastqscreen_disk_size
- }
-
- call hisat2.hisat2 as hisat2 {
- input:
- sample_id = quartet[2],
- idx = idx,
- idx_prefix = idx_prefix,
- Trim_R1 = fastp.Trim_R1,
- Trim_R2 = fastp.Trim_R2,
- docker = hisat2_docker,
- cluster = hisat2_cluster,
- pen_intronlen = pen_intronlen,
- pen_cansplice = pen_cansplice,
- pen_noncansplice = pen_noncansplice,
- min_intronlen = min_intronlen,
- max_intronlen = max_intronlen,
- maxins = maxins,
- minins = minins
- }
-
- call samtools.samtools as samtools {
- input:
- sample_id = quartet[2],
- sam = hisat2.sam,
- docker = samtools_docker,
- cluster = samtools_cluster,
- insert_size = insert_size
- }
-
- call qualimapBAMqc.qualimapBAMqc as qualimapBAMqc {
- input:
- bam = samtools.out_percent,
- docker = qualimapBAMqc_docker,
- cluster_config = qualimapBAMqc_cluster_config,
- disk_size = qualimapBAMqc_disk_size
- }
-
- call qualimapRNAseq.qualimapRNAseq as qualimapRNAseq {
- input:
- bam = samtools.out_percent,
- docker = qualimapRNAseq_docker,
- cluster_config = qualimapRNAseq_cluster_config,
- disk_size = qualimapRNAseq_disk_size,
- gtf = gtf
- }
-
- call stringtie.stringtie as stringtie {
- input:
- sample_id = quartet[2],
- gtf = gtf,
- bam = samtools.out_bam,
- docker = stringtie_docker,
- cluster = stringtie_cluster,
- minimum_length_allowed_for_the_predicted_transcripts = minimum_length_allowed_for_the_predicted_transcripts,
- Junctions_no_spliced_reads = Junctions_no_spliced_reads,
- minimum_isoform_abundance = minimum_isoform_abundance,
- maximum_fraction_of_muliplelocationmapped_reads = maximum_fraction_of_muliplelocationmapped_reads
- }
- }
-
-
- call multiqc.multiqc as multiqc {
- input:
- docker = multiqc_docker,
- cluster_config = multiqc_cluster_config,
- disk_size = multiqc_disk_size,
- read1_zip = fastqc.read1_zip,
- read2_zip = fastqc.read2_zip,
- txt1 = fastqscreen.txt1,
- txt2 = fastqscreen.txt2,
- bamqc_zip = qualimapBAMqc.bamqc_zip,
- RNAseqqc_zip = qualimapRNAseq.rnaseq_zip
- }
- }
|