Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

189 lignes
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_fp.wdl" as hisat2_fp
  6. import "./tasks/hisat2.wdl" as hisat2
  7. import "./tasks/samtools.wdl" as samtools
  8. import "./tasks/stringtie.wdl" as stringtie
  9. import "./tasks/ballgown.wdl" as ballgown
  10. import "./tasks/count.wdl" as count
  11. workflow {{ project_name }} {
  12. File read1
  13. File read2
  14. File idx
  15. File screen_ref_dir
  16. File fastq_screen_conf
  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. String qualimap_docker
  36. String qualimap_cluster
  37. String ballgown_docker
  38. String ballgown_cluster
  39. String count_docker
  40. String count_cluster
  41. String count_length
  42. String sample_id
  43. Int trim_front1
  44. Int trim_tail1
  45. Int max_len1
  46. Int trim_front2
  47. Int trim_tail2
  48. Int max_len2
  49. Int disable_adapter_trimming
  50. Int length_required
  51. Int umi_len
  52. Int UMI
  53. Int qualified_quality_phred
  54. Int length_required1
  55. Int disable_quality_filtering
  56. Int insert_size
  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_fp.hisat2_fp as hisat2_fp {
  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. }
  118. if (!fastp_run){
  119. call hisat2.hisat2 as hisat2 {
  120. input:
  121. sample_id=sample_id,
  122. docker=hisat2_docker,
  123. cluster=hisat2_cluster,
  124. idx=idx,
  125. idx_prefix=idx_prefix,
  126. read_1P=read1,
  127. read_2P=read2,
  128. disk_size=disk_size
  129. }
  130. }
  131. call samtools.samtools as samtools {
  132. input:
  133. docker=samtools_docker,
  134. cluster=samtools_cluster,
  135. sam=hisat2.sam,
  136. insert_size=insert_size,
  137. disk_size=disk_size
  138. }
  139. if (qualimap_qc){
  140. call qualimap.qualimap as qualimap {
  141. input:
  142. bam=samtools.out_sort_bam,
  143. gtf=gtf,
  144. docker=qualimap_docker,
  145. cluster=qualimap_cluster,
  146. disk_size=disk_size
  147. }
  148. }
  149. call stringtie.stringtie as stringtie {
  150. input:
  151. docker=stringtie_docker,
  152. cluster=stringtie_cluster,
  153. gtf=gtf,
  154. bam=samtools.out_sort_bam,
  155. disk_size=disk_size
  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. sample_id=sample_id,
  168. docker=count_docker,
  169. cluster=count_cluster,
  170. ballgown=stringtie.ballgown,
  171. disk_size=disk_size,
  172. count_length=count_length
  173. }
  174. }