from fastq to bam files
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.

190 lignes
4.9KB

  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. }