You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

186 lines
4.7KB

  1. import "./tasks/fastp.wdl" as fastp
  2. import "./tasks/hisat2.wdl" as hisat2
  3. import "./tasks/samtools.wdl" as samtools
  4. import "./tasks/stringtie.wdl" as stringtie
  5. import "./tasks/fastqc.wdl" as fastqc
  6. import "./tasks/fastqscreen.wdl" as fastqscreen
  7. import "./tasks/qualimapBAMqc.wdl" as qualimapBAMqc
  8. import "./tasks/qualimapRNAseq.wdl" as qualimapRNAseq
  9. import "./tasks/ballgown.wdl" as ballgown
  10. import "./tasks/count.wdl" as count
  11. workflow {{ project_name }} {
  12. File read
  13. File idx
  14. File screen_ref_dir
  15. File fastq_screen_conf
  16. File gtf
  17. String fastp_docker
  18. String adapter_sequence
  19. String fastp_cluster
  20. String umi_loc
  21. String idx_prefix
  22. String pen_intronlen
  23. String fastqc_cluster_config
  24. String fastqc_docker
  25. String fastqscreen_docker
  26. String fastqscreen_cluster_config
  27. String hisat2_docker
  28. String hisat2_cluster
  29. String qualimapBAMqc_docker
  30. String qualimapBAMqc_cluster_config
  31. String qualimapRNAseq_docker
  32. String qualimapRNAseq_cluster_config
  33. String samtools_docker
  34. String samtools_cluster
  35. String stringtie_docker
  36. String stringtie_cluster
  37. String multiqc_cluster_config
  38. String multiqc_docker
  39. Int multiqc_disk_size
  40. Int trim_front1
  41. Int trim_tail1
  42. Int max_len1
  43. Int disable_adapter_trimming
  44. Int length_required
  45. Int umi_len
  46. Int UMI
  47. Int qualified_quality_phred
  48. Int length_required1
  49. Int disable_quality_filtering
  50. Int pen_cansplice
  51. Int pen_noncansplice
  52. Int min_intronlen
  53. Int max_intronlen
  54. Int maxins
  55. Int minins
  56. Int fastqc_disk_size
  57. Int fastqscreen_disk_size
  58. Int qualimapBAMqc_disk_size
  59. Int qualimapRNAseq_disk_size
  60. Int insert_size
  61. Int minimum_length_allowed_for_the_predicted_transcripts
  62. Int Junctions_no_spliced_reads
  63. Int count_length
  64. Float minimum_isoform_abundance
  65. Float maximum_fraction_of_muliplelocationmapped_reads
  66. String ballgown_docker
  67. String ballgown_cluster
  68. String disk_size
  69. String count_docker
  70. String count_cluster
  71. call fastp.fastp as fastp {
  72. input:
  73. read = read,
  74. docker = fastp_docker,
  75. cluster = fastp_cluster,
  76. disk_size = disk_size,
  77. adapter_sequence = adapter_sequence,
  78. umi_loc = umi_loc,
  79. trim_front1 = trim_front1,
  80. trim_tail1 = trim_tail1,
  81. max_len1 = max_len1,
  82. disable_adapter_trimming = disable_adapter_trimming,
  83. length_required = length_required,
  84. umi_len = umi_len,
  85. UMI = UMI,
  86. qualified_quality_phred = qualified_quality_phred,
  87. length_required1 = length_required1,
  88. disable_quality_filtering = disable_quality_filtering
  89. }
  90. call fastqc.fastqc as fastqc {
  91. input:
  92. read = fastp.Trim,
  93. docker = fastqc_docker,
  94. cluster_config = fastqc_cluster_config,
  95. disk_size = fastqc_disk_size
  96. }
  97. call fastqscreen.fastq_screen as fastqscreen {
  98. input:
  99. read = fastp.Trim,
  100. screen_ref_dir = screen_ref_dir,
  101. fastq_screen_conf = fastq_screen_conf,
  102. docker = fastqscreen_docker,
  103. cluster_config = fastqscreen_cluster_config,
  104. disk_size = fastqscreen_disk_size
  105. }
  106. call hisat2.hisat2 as hisat2 {
  107. input:
  108. idx = idx,
  109. idx_prefix = idx_prefix,
  110. Trim = fastp.Trim,
  111. docker = hisat2_docker,
  112. cluster = hisat2_cluster,
  113. disk_size = disk_size,
  114. pen_intronlen = pen_intronlen,
  115. pen_cansplice = pen_cansplice,
  116. pen_noncansplice = pen_noncansplice,
  117. min_intronlen = min_intronlen,
  118. max_intronlen = max_intronlen,
  119. maxins = maxins,
  120. minins = minins
  121. }
  122. call samtools.samtools as samtools {
  123. input:
  124. sam = hisat2.sam,
  125. docker = samtools_docker,
  126. cluster = samtools_cluster,
  127. disk_size = disk_size,
  128. insert_size = insert_size
  129. }
  130. call qualimapBAMqc.qualimapBAMqc as qualimapBAMqc {
  131. input:
  132. bam = samtools.out_percent,
  133. docker = qualimapBAMqc_docker,
  134. cluster_config = qualimapBAMqc_cluster_config,
  135. disk_size = qualimapBAMqc_disk_size
  136. }
  137. call qualimapRNAseq.qualimapRNAseq as qualimapRNAseq {
  138. input:
  139. bam = samtools.out_percent,
  140. docker = qualimapRNAseq_docker,
  141. cluster_config = qualimapRNAseq_cluster_config,
  142. disk_size = qualimapRNAseq_disk_size,
  143. gtf = gtf
  144. }
  145. call stringtie.stringtie as stringtie {
  146. input:
  147. gtf = gtf,
  148. bam = samtools.out_bam,
  149. docker = stringtie_docker,
  150. cluster = stringtie_cluster,
  151. disk_size = disk_size,
  152. minimum_length_allowed_for_the_predicted_transcripts = minimum_length_allowed_for_the_predicted_transcripts,
  153. Junctions_no_spliced_reads = Junctions_no_spliced_reads,
  154. minimum_isoform_abundance = minimum_isoform_abundance,
  155. maximum_fraction_of_muliplelocationmapped_reads = maximum_fraction_of_muliplelocationmapped_reads
  156. }
  157. call ballgown.ballgown as ballgown {
  158. input:
  159. docker = ballgown_docker,
  160. cluster = ballgown_cluster,
  161. ballgown = stringtie.ballgown,
  162. gene_abundance = stringtie.gene_abundance,
  163. disk_size = disk_size
  164. }
  165. call count.count as count {
  166. input:
  167. docker = count_docker,
  168. cluster = count_cluster,
  169. ballgown = stringtie.ballgown,
  170. disk_size = disk_size,
  171. gene_abundance = stringtie.gene_abundance,
  172. count_length = count_length
  173. }
  174. }