Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

269 lines
7.3KB

  1. import "./tasks/fastp.wdl" as fastp
  2. import "./tasks/hisat2.wdl" as hisat2
  3. import "./tasks/hisat2_unstrand.wdl" as hisat2_unstrand
  4. import "./tasks/samtools.wdl" as samtools
  5. import "./tasks/stringtie.wdl" as stringtie
  6. import "./tasks/stringtie_unstrand.wdl" as stringtie_unstrand
  7. import "./tasks/fastqc.wdl" as fastqc
  8. import "./tasks/fastqscreen.wdl" as fastqscreen
  9. import "./tasks/qualimapBAMqc.wdl" as qualimapBAMqc
  10. import "./tasks/qualimapRNAseq.wdl" as qualimapRNAseq
  11. import "./tasks/ballgown.wdl" as ballgown
  12. workflow {{ project_name }} {
  13. File read1
  14. File read2
  15. File idx
  16. File screen_ref_dir
  17. File fastq_screen_conf
  18. File gtf
  19. String sample_id
  20. String fastp_docker
  21. String adapter_sequence
  22. String adapter_sequence_r2
  23. String fastp_cluster
  24. String umi_loc
  25. String idx_prefix
  26. String pen_intronlen
  27. String fastqc_cluster_config
  28. String fastqc_docker
  29. String fastqscreen_docker
  30. String fastqscreen_cluster_config
  31. String hisat2_docker
  32. String hisat2_cluster
  33. String qualimapBAMqc_docker
  34. String qualimapBAMqc_cluster_config
  35. String qualimapRNAseq_docker
  36. String qualimapRNAseq_cluster_config
  37. String samtools_docker
  38. String samtools_cluster
  39. String stringtie_docker
  40. String stringtie_cluster
  41. String multiqc_cluster_config
  42. String multiqc_docker
  43. Int multiqc_disk_size
  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. Int pen_cansplice
  58. Int pen_noncansplice
  59. Int pen_noncansplice_unstrand
  60. Int min_intronlen
  61. Int min_intronlen_unstrand
  62. Int max_intronlen
  63. Int maxins
  64. Int minins
  65. Int fastqc_disk_size
  66. Int fastqscreen_disk_size
  67. Int qualimapBAMqc_disk_size
  68. Int qualimapRNAseq_disk_size
  69. Int insert_size
  70. Int minimum_length_allowed_for_the_predicted_transcripts
  71. Int Junctions_no_spliced_reads
  72. Float minimum_isoform_abundance
  73. Float maximum_fraction_of_muliplelocationmapped_reads
  74. String ballgown_docker
  75. String ballgown_cluster
  76. String disk_size
  77. Boolean strand_specific
  78. call fastp.fastp as fastp {
  79. input:
  80. sample_id=sample_id,
  81. read1 = read1,
  82. read2 = read2,
  83. docker = fastp_docker,
  84. cluster = fastp_cluster,
  85. disk_size = disk_size,
  86. adapter_sequence = adapter_sequence,
  87. adapter_sequence_r2 = adapter_sequence_r2,
  88. umi_loc = umi_loc,
  89. trim_front1 = trim_front1,
  90. trim_tail1 = trim_tail1,
  91. max_len1 = max_len1,
  92. trim_front2 = trim_front2,
  93. trim_tail2 = trim_tail2,
  94. max_len2 = max_len2,
  95. disable_adapter_trimming = disable_adapter_trimming,
  96. length_required = length_required,
  97. umi_len = umi_len,
  98. UMI = UMI,
  99. qualified_quality_phred = qualified_quality_phred,
  100. length_required1 = length_required1,
  101. disable_quality_filtering = disable_quality_filtering
  102. }
  103. call fastqc.fastqc as fastqc {
  104. input:
  105. read1 = fastp.Trim_R1,
  106. read2 = fastp.Trim_R2,
  107. docker = fastqc_docker,
  108. cluster_config = fastqc_cluster_config,
  109. disk_size = fastqc_disk_size
  110. }
  111. call fastqscreen.fastq_screen as fastqscreen {
  112. input:
  113. read1 = fastp.Trim_R1,
  114. read2 = fastp.Trim_R2,
  115. screen_ref_dir = screen_ref_dir,
  116. fastq_screen_conf = fastq_screen_conf,
  117. docker = fastqscreen_docker,
  118. cluster_config = fastqscreen_cluster_config,
  119. disk_size = fastqscreen_disk_size
  120. }
  121. if (strand_specific){
  122. call hisat2.hisat2 as hisat2 {
  123. input:
  124. sample_id = sample_id,
  125. idx = idx,
  126. idx_prefix = idx_prefix,
  127. Trim_R1 = fastp.Trim_R1,
  128. Trim_R2 = fastp.Trim_R2,
  129. docker = hisat2_docker,
  130. cluster = hisat2_cluster,
  131. disk_size = disk_size,
  132. pen_intronlen = pen_intronlen,
  133. pen_cansplice = pen_cansplice,
  134. pen_noncansplice = pen_noncansplice,
  135. min_intronlen = min_intronlen,
  136. max_intronlen = max_intronlen,
  137. maxins = maxins,
  138. minins = minins
  139. }
  140. call samtools.samtools as samtools {
  141. input:
  142. sample_id = sample_id,
  143. sam = hisat2.sam,
  144. docker = samtools_docker,
  145. cluster = samtools_cluster,
  146. disk_size = disk_size,
  147. insert_size = insert_size
  148. }
  149. call stringtie.stringtie as stringtie {
  150. input:
  151. sample_id = sample_id,
  152. gtf = gtf,
  153. bam = samtools.out_bam,
  154. docker = stringtie_docker,
  155. cluster = stringtie_cluster,
  156. disk_size = disk_size,
  157. minimum_length_allowed_for_the_predicted_transcripts = minimum_length_allowed_for_the_predicted_transcripts,
  158. Junctions_no_spliced_reads = Junctions_no_spliced_reads,
  159. minimum_isoform_abundance = minimum_isoform_abundance,
  160. maximum_fraction_of_muliplelocationmapped_reads = maximum_fraction_of_muliplelocationmapped_reads
  161. }
  162. call ballgown.ballgown as ballgown {
  163. input:
  164. sample_id = sample_id,
  165. docker = ballgown_docker,
  166. cluster = ballgown_cluster,
  167. ballgown = stringtie.ballgown,
  168. gene_abundance = stringtie.gene_abundance,
  169. disk_size = disk_size
  170. }
  171. call qualimapBAMqc.qualimapBAMqc as qualimapBAMqc {
  172. input:
  173. bam = samtools.out_percent,
  174. docker = qualimapBAMqc_docker,
  175. cluster_config = qualimapBAMqc_cluster_config,
  176. disk_size = qualimapBAMqc_disk_size
  177. }
  178. call qualimapRNAseq.qualimapRNAseq as qualimapRNAseq {
  179. input:
  180. bam = samtools.out_percent,
  181. docker = qualimapRNAseq_docker,
  182. cluster_config = qualimapRNAseq_cluster_config,
  183. disk_size = qualimapRNAseq_disk_size,
  184. gtf = gtf
  185. }
  186. }
  187. if (!strand_specific){
  188. call hisat2_unstrand.hisat2 as hisat2_unstrand {
  189. input:
  190. sample_id = sample_id,
  191. idx = idx,
  192. idx_prefix = idx_prefix,
  193. Trim_R1 = fastp.Trim_R1,
  194. Trim_R2 = fastp.Trim_R2,
  195. docker = hisat2_docker,
  196. cluster = hisat2_cluster,
  197. disk_size = disk_size,
  198. pen_intronlen = pen_intronlen,
  199. pen_cansplice = pen_cansplice,
  200. pen_noncansplice_unstrand = pen_noncansplice_unstrand,
  201. min_intronlen_unstrand = min_intronlen_unstrand,
  202. max_intronlen = max_intronlen,
  203. maxins = maxins,
  204. minins = minins
  205. }
  206. call samtools.samtools as samtools_unstrand {
  207. input:
  208. sample_id = sample_id,
  209. sam = hisat2_unstrand.sam,
  210. docker = samtools_docker,
  211. cluster = samtools_cluster,
  212. disk_size = disk_size,
  213. insert_size = insert_size
  214. }
  215. call stringtie_unstrand.stringtie as stringtie_unstrand {
  216. input:
  217. sample_id = sample_id,
  218. gtf = gtf,
  219. bam = samtools_unstrand.out_bam,
  220. docker = stringtie_docker,
  221. cluster = stringtie_cluster,
  222. disk_size = disk_size,
  223. minimum_length_allowed_for_the_predicted_transcripts = minimum_length_allowed_for_the_predicted_transcripts,
  224. Junctions_no_spliced_reads = Junctions_no_spliced_reads,
  225. minimum_isoform_abundance = minimum_isoform_abundance,
  226. maximum_fraction_of_muliplelocationmapped_reads = maximum_fraction_of_muliplelocationmapped_reads
  227. }
  228. call ballgown.ballgown as ballgown_unstrand {
  229. input:
  230. sample_id = sample_id,
  231. docker = ballgown_docker,
  232. cluster = ballgown_cluster,
  233. ballgown = stringtie_unstrand.ballgown,
  234. gene_abundance = stringtie_unstrand.gene_abundance,
  235. disk_size = disk_size
  236. }
  237. call qualimapBAMqc.qualimapBAMqc as qualimapBAMqc_unstrand {
  238. input:
  239. bam = samtools_unstrand.out_percent,
  240. docker = qualimapBAMqc_docker,
  241. cluster_config = qualimapBAMqc_cluster_config,
  242. disk_size = qualimapBAMqc_disk_size
  243. }
  244. call qualimapRNAseq.qualimapRNAseq as qualimapRNAseq_unstrand {
  245. input:
  246. bam = samtools_unstrand.out_percent,
  247. docker = qualimapRNAseq_docker,
  248. cluster_config = qualimapRNAseq_cluster_config,
  249. disk_size = qualimapRNAseq_disk_size,
  250. gtf = gtf
  251. }
  252. }
  253. }