import "./tasks/Fastqc.wdl" as Fastqc import "./tasks/TrimAdapt.wdl" as TrimAdapt import "./tasks/ReadFilter.wdl" as ReadFilter import "./tasks/Align.wdl" as Align import "./tasks/Quantification.wdl" as Quantification import "./tasks/ReadStats.wdl" as ReadStats workflow {{ project_name }} { String sample_id File raw_fastq String adapter_seq Int randomBase_in_adapter Int sequencing_length Int qualified_quality_phred Int unqualified_percent_limit Int n_base_limit Int length_required Int max_mismatch_allowed File dir_index_miRNA String prefix_index_miRNA File dir_index_rn7 String prefix_index_rn7 String docker_fastqc String docker_fastp String docker_bowtie String cluster_config String disk_size call Fastqc.Fastqc as Fastqc { input: in_fastq=raw_fastq, docker=docker_fastqc, cluster_config=cluster_config, disk_size=disk_size } call TrimAdapt.TrimAdapt as TrimAdapt { input: sample_id=sample_id,in_fastq=raw_fastq, adapter_seq=adapter_seq, randomBase_in_adapter=randomBase_in_adapter, sequencing_length=sequencing_length, docker=docker_fastp, cluster_config=cluster_config, disk_size=disk_size } call ReadFilter.ReadFilter as ReadFilter { input: sample_id=sample_id, in_fastq=TrimAdapt.out_fastq, qualified_quality_phred=qualified_quality_phred,unqualified_percent_limit=unqualified_percent_limit, n_base_limit=n_base_limit, length_required=length_required, docker=docker_fastp, cluster_config=cluster_config, disk_size=disk_size } call Align.AlignToSenseOnly as Align2miRNA { input: sample_id=sample_id, in_fastq=ReadFilter.out_fastq, refname="miRNA",dir_index=dir_index_miRNA,prefix_index=prefix_index_miRNA, max_mismatch_allowed=max_mismatch_allowed, docker=docker_bowtie, cluster_config=cluster_config, disk_size=disk_size } call Align.AlignToBothStrand as Align2rn7 { input: sample_id=sample_id, in_fastq=ReadFilter.out_fastq, refname="rn7",dir_index=dir_index_rn7,prefix_index=prefix_index_rn7, max_mismatch_allowed=max_mismatch_allowed, docker=docker_bowtie, cluster_config=cluster_config, disk_size=disk_size } call Quantification.Quantification as Quantification { input: sample_id=sample_id, in_sam=Align2miRNA.out_sam, cluster_config=cluster_config,disk_size=disk_size } call ReadStats.ReadStats as ReadStats { input: sample_id=sample_id, in_log_trimAdatper=TrimAdapt.out_log,in_log_readFilter=ReadFilter.out_log, in_log_align_miRNA=Align2miRNA.out_log,in_log_align_rn7=Align2rn7.out_log, cluster_config=cluster_config,disk_size=disk_size } }