Hisat2-stringtie-ballgown pipeline for RNAseq with multiple QC metrics built on Ali-cloud.
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.

3 anni fa
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  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. 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 sample_id
  18. String fastp_docker
  19. String adapter_sequence
  20. String adapter_sequence_r2
  21. String fastp_cluster
  22. String umi_loc
  23. String idx_prefix
  24. String pen_intronlen
  25. String fastqc_cluster_config
  26. String fastqc_docker
  27. String fastqscreen_docker
  28. String fastqscreen_cluster_config
  29. String hisat2_docker
  30. String hisat2_cluster
  31. String qualimapBAMqc_docker
  32. String qualimapBAMqc_cluster_config
  33. String qualimapRNAseq_docker
  34. String qualimapRNAseq_cluster_config
  35. String samtools_docker
  36. String samtools_cluster
  37. String stringtie_docker
  38. String stringtie_cluster
  39. String multiqc_cluster_config
  40. String multiqc_docker
  41. Int multiqc_disk_size
  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 pen_cansplice
  56. Int pen_noncansplice
  57. Int min_intronlen
  58. Int max_intronlen
  59. Int maxins
  60. Int minins
  61. Int fastqc_disk_size
  62. Int fastqscreen_disk_size
  63. Int qualimapBAMqc_disk_size
  64. Int qualimapRNAseq_disk_size
  65. Int insert_size
  66. Int minimum_length_allowed_for_the_predicted_transcripts
  67. Int Junctions_no_spliced_reads
  68. Float minimum_isoform_abundance
  69. Float maximum_fraction_of_muliplelocationmapped_reads
  70. String ballgown_docker
  71. String ballgown_cluster
  72. String disk_size
  73. call fastp.fastp as fastp {
  74. input:
  75. sample_id=sample_id,
  76. read1 = read1,
  77. read2 = read2,
  78. docker = fastp_docker,
  79. cluster = fastp_cluster,
  80. disk_size = disk_size,
  81. adapter_sequence = adapter_sequence,
  82. adapter_sequence_r2 = adapter_sequence_r2,
  83. umi_loc = umi_loc,
  84. trim_front1 = trim_front1,
  85. trim_tail1 = trim_tail1,
  86. max_len1 = max_len1,
  87. trim_front2 = trim_front2,
  88. trim_tail2 = trim_tail2,
  89. max_len2 = max_len2,
  90. disable_adapter_trimming = disable_adapter_trimming,
  91. length_required = length_required,
  92. umi_len = umi_len,
  93. UMI = UMI,
  94. qualified_quality_phred = qualified_quality_phred,
  95. length_required1 = length_required1,
  96. disable_quality_filtering = disable_quality_filtering
  97. }
  98. call fastqc.fastqc as fastqc {
  99. input:
  100. read1 = fastp.Trim_R1,
  101. read2 = fastp.Trim_R2,
  102. docker = fastqc_docker,
  103. cluster_config = fastqc_cluster_config,
  104. disk_size = fastqc_disk_size
  105. }
  106. call fastqscreen.fastq_screen as fastqscreen {
  107. input:
  108. read1 = fastp.Trim_R1,
  109. read2 = fastp.Trim_R2,
  110. screen_ref_dir = screen_ref_dir,
  111. fastq_screen_conf = fastq_screen_conf,
  112. docker = fastqscreen_docker,
  113. cluster_config = fastqscreen_cluster_config,
  114. disk_size = fastqscreen_disk_size
  115. }
  116. call hisat2.hisat2 as hisat2 {
  117. input:
  118. sample_id = sample_id,
  119. idx = idx,
  120. idx_prefix = idx_prefix,
  121. Trim_R1 = fastp.Trim_R1,
  122. Trim_R2 = fastp.Trim_R2,
  123. docker = hisat2_docker,
  124. cluster = hisat2_cluster,
  125. disk_size = disk_size,
  126. pen_intronlen = pen_intronlen,
  127. pen_cansplice = pen_cansplice,
  128. pen_noncansplice = pen_noncansplice,
  129. min_intronlen = min_intronlen,
  130. max_intronlen = max_intronlen,
  131. maxins = maxins,
  132. minins = minins
  133. }
  134. call samtools.samtools as samtools {
  135. input:
  136. sample_id = sample_id,
  137. sam = hisat2.sam,
  138. docker = samtools_docker,
  139. cluster = samtools_cluster,
  140. disk_size = disk_size,
  141. insert_size = insert_size
  142. }
  143. call qualimapBAMqc.qualimapBAMqc as qualimapBAMqc {
  144. input:
  145. bam = samtools.out_percent,
  146. docker = qualimapBAMqc_docker,
  147. cluster_config = qualimapBAMqc_cluster_config,
  148. disk_size = qualimapBAMqc_disk_size
  149. }
  150. call qualimapRNAseq.qualimapRNAseq as qualimapRNAseq {
  151. input:
  152. bam = samtools.out_percent,
  153. docker = qualimapRNAseq_docker,
  154. cluster_config = qualimapRNAseq_cluster_config,
  155. disk_size = qualimapRNAseq_disk_size,
  156. gtf = gtf
  157. }
  158. call stringtie.stringtie as stringtie {
  159. input:
  160. sample_id = sample_id,
  161. gtf = gtf,
  162. bam = samtools.out_bam,
  163. docker = stringtie_docker,
  164. cluster = stringtie_cluster,
  165. disk_size = disk_size,
  166. minimum_length_allowed_for_the_predicted_transcripts = minimum_length_allowed_for_the_predicted_transcripts,
  167. Junctions_no_spliced_reads = Junctions_no_spliced_reads,
  168. minimum_isoform_abundance = minimum_isoform_abundance,
  169. maximum_fraction_of_muliplelocationmapped_reads = maximum_fraction_of_muliplelocationmapped_reads
  170. }
  171. call ballgown.ballgown as ballgown {
  172. input:
  173. sample_id = sample_id,
  174. docker = ballgown_docker,
  175. cluster = ballgown_cluster,
  176. ballgown = stringtie.ballgown,
  177. gene_abundance = stringtie.gene_abundance,
  178. disk_size = disk_size
  179. }
  180. }