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.

187 lines
3.8KB

  1. import "./tasks/fastqc.wdl" as fastqc
  2. import "./tasks/fastqscreen.wdl" as fastqscreen
  3. import "./tasks/fastp.wdl" as fastp
  4. import "./tasks/qualimap.wdl" as qualimap
  5. import "./tasks/hisat2.wdl" as hisat2
  6. import "./tasks/samtools.wdl" as samtools
  7. import "./tasks/stringtie.wdl" as stringtie
  8. import "./tasks/ballgown.wdl" as ballgown
  9. import "./tasks/count.wdl" as count
  10. workflow {{ project_name }} {
  11. File read1
  12. File read2
  13. File idx
  14. File screen_ref_dir
  15. File fastq_screen_conf
  16. String idx_prefix
  17. File gtf
  18. String disk_size
  19. String fastqc_docker
  20. String fastqc_cluster
  21. String fastqscreen_docker
  22. String fastqscreen_cluster
  23. String fastp_docker
  24. String fastp_cluster
  25. String adapter_sequence
  26. String adapter_sequence_r2
  27. String umi_loc
  28. String hisat2_docker
  29. String hisat2_cluster
  30. String idx_prefix
  31. String stringtie_docker
  32. String stringtie_cluster
  33. String samtools_docker
  34. String samtools_cluster
  35. Int insert_size
  36. String qualimap_docker
  37. String qualimap_cluster
  38. String ballgown_docker
  39. String ballgown_cluster
  40. String count_docker
  41. String count_cluster
  42. String count_length
  43. String sample_id
  44. Int trim_front1
  45. Int trim_tail1
  46. Int max_len1
  47. Int trim_front2
  48. Int trim_tail2
  49. Int max_len2
  50. Int disable_adapter_trimming
  51. Int length_required
  52. Int umi_len
  53. Int UMI
  54. Int qualified_quality_phred
  55. Int length_required1
  56. Int disable_quality_filtering
  57. Boolean pre_alignment_qc
  58. Boolean qualimap_qc
  59. Boolean fastp_run
  60. if (pre_alignment_qc) {
  61. call fastqc.fastqc as fastqc {
  62. input:
  63. read1=read1,
  64. read2=read2,
  65. docker=fastqc_docker,
  66. cluster=fastqc_cluster,
  67. disk_size=disk_size
  68. }
  69. call fastqscreen.fastqscreen as fastqscreen {
  70. input:
  71. read1=read1,
  72. read2=read2,
  73. docker=fastqscreen_docker,
  74. cluster=fastqscreen_cluster,
  75. screen_ref_dir=screen_ref_dir,
  76. fastq_screen_conf=fastq_screen_conf,
  77. disk_size=disk_size
  78. }
  79. }
  80. if (fastp_run){
  81. call fastp.fastp as fastp {
  82. input:
  83. sample_id=sample_id,
  84. read1=read1,
  85. read2=read2,
  86. docker=fastp_docker,
  87. cluster=fastp_cluster,
  88. disk_size=disk_size,
  89. adapter_sequence=adapter_sequence,
  90. adapter_sequence_r2=adapter_sequence_r2,
  91. umi_loc=umi_loc,
  92. trim_front1=trim_front1,
  93. trim_tail1=trim_tail1,
  94. max_len1=max_len1,
  95. trim_front2=trim_front2,
  96. trim_tail2=trim_tail2,
  97. max_len2=max_len2,
  98. disable_adapter_trimming=disable_adapter_trimming,
  99. length_required=length_required,
  100. umi_len=umi_len,
  101. UMI=UMI,
  102. qualified_quality_phred=qualified_quality_phred,
  103. length_required1=length_required1,
  104. disable_quality_filtering=disable_quality_filtering
  105. }
  106. call hisat2.hisat2 as hisat2 {
  107. input:
  108. sample_id=sample_id,
  109. idx=idx,
  110. idx_prefix=idx_prefix,
  111. read_1P=fastp.Trim_R1,
  112. read_2P=fastp.Trim_R2,
  113. docker=hisat2_docker,
  114. cluster=hisat2_cluster,
  115. disk_size=disk_size
  116. }
  117. } else {
  118. call hisat2.hisat2 as hisat2 {
  119. input:
  120. docker=hisat2_docker,
  121. cluster=hisat2_cluster,
  122. idx=idx,
  123. idx_prefix=idx_prefix,
  124. read_1P=read1,
  125. read_2P=read2,
  126. disk_size=disk_size
  127. }
  128. }
  129. call samtools.samtools as samtools {
  130. input:
  131. docker=samtools_docker,
  132. cluster=samtools_cluster,
  133. sam=hisat2.sam,
  134. insert_size = insert_size,
  135. disk_size=disk_size
  136. }
  137. if (qualimap_qc){
  138. call qualimap.qualimap as qualimap {
  139. input:
  140. bam=samtools.out_sort_bam,
  141. gtf=gtf,
  142. docker=qualimap_docker,
  143. cluster=qualimap_cluster,
  144. disk_size=disk_size
  145. }
  146. }
  147. call stringtie.stringtie as stringtie {
  148. input:
  149. docker=stringtie_docker,
  150. cluster=stringtie_cluster,
  151. gtf=gtf,
  152. bam=samtools.out_sort_bam,
  153. disk_size=disk_size
  154. }
  155. call ballgown.ballgown as ballgown {
  156. input:
  157. docker=ballgown_docker,
  158. cluster=ballgown_cluster,
  159. ballgown=stringtie.ballgown,
  160. gene_abundance=stringtie.gene_abundance,
  161. disk_size=disk_size
  162. }
  163. call count.count as count {
  164. input:
  165. sample_id=sample_id,
  166. docker=count_docker,
  167. cluster=count_cluster,
  168. ballgown=stringtie.ballgown,
  169. disk_size=disk_size,
  170. count_length=count_length
  171. }
  172. }