Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

189 lines
3.9KB

  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. File gtf
  17. String disk_size
  18. String fastqc_docker
  19. String fastqc_cluster
  20. String fastqscreen_docker
  21. String fastqscreen_cluster
  22. String fastp_docker
  23. String fastp_cluster
  24. String adapter_sequence
  25. String adapter_sequence_r2
  26. String umi_loc
  27. String hisat2_docker
  28. String hisat2_cluster
  29. String idx_prefix
  30. String stringtie_docker
  31. String stringtie_cluster
  32. String samtools_docker
  33. String samtools_cluster
  34. String qualimap_docker
  35. String qualimap_cluster
  36. String ballgown_docker
  37. String ballgown_cluster
  38. String count_docker
  39. String count_cluster
  40. String count_length
  41. String sample_id
  42. Int trim_front1
  43. Int trim_tail1
  44. Int max_len1
  45. Int trim_front2
  46. Int trim_tail2
  47. Int max_len2
  48. Int disable_adapter_trimming
  49. Int length_required
  50. Int umi_len
  51. Int UMI
  52. Int qualified_quality_phred
  53. Int length_required1
  54. Int disable_quality_filtering
  55. Int insert_size
  56. Boolean pre_alignment_qc
  57. Boolean qualimap_qc
  58. Boolean fastp_run
  59. if (pre_alignment_qc) {
  60. call fastqc.fastqc as fastqc {
  61. input:
  62. read1=read1,
  63. read2=read2,
  64. docker=fastqc_docker,
  65. cluster=fastqc_cluster,
  66. disk_size=disk_size
  67. }
  68. call fastqscreen.fastqscreen as fastqscreen {
  69. input:
  70. read1=read1,
  71. read2=read2,
  72. docker=fastqscreen_docker,
  73. cluster=fastqscreen_cluster,
  74. screen_ref_dir=screen_ref_dir,
  75. fastq_screen_conf=fastq_screen_conf,
  76. disk_size=disk_size
  77. }
  78. }
  79. if (fastp_run){
  80. call fastp.fastp as fastp {
  81. input:
  82. sample_id=sample_id,
  83. read1=read1,
  84. read2=read2,
  85. docker=fastp_docker,
  86. cluster=fastp_cluster,
  87. disk_size=disk_size,
  88. adapter_sequence=adapter_sequence,
  89. adapter_sequence_r2=adapter_sequence_r2,
  90. umi_loc=umi_loc,
  91. trim_front1=trim_front1,
  92. trim_tail1=trim_tail1,
  93. max_len1=max_len1,
  94. trim_front2=trim_front2,
  95. trim_tail2=trim_tail2,
  96. max_len2=max_len2,
  97. disable_adapter_trimming=disable_adapter_trimming,
  98. length_required=length_required,
  99. umi_len=umi_len,
  100. UMI=UMI,
  101. qualified_quality_phred=qualified_quality_phred,
  102. length_required1=length_required1,
  103. disable_quality_filtering=disable_quality_filtering
  104. }
  105. call hisat2.hisat2 as hisat2 {
  106. input:
  107. sample_id=sample_id,
  108. idx=idx,
  109. idx_prefix=idx_prefix,
  110. read_1P=fastp.Trim_R1,
  111. read_2P=fastp.Trim_R2,
  112. docker=hisat2_docker,
  113. cluster=hisat2_cluster,
  114. disk_size=disk_size
  115. }
  116. }
  117. if (!fastp_run){
  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. }