您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

189 行
4.8KB

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