Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

210 lines
5.0KB

  1. import "./tasks/rename_vcf.wdl" as rename_vcf
  2. import "./tasks/benchmark.wdl" as benchmark
  3. import "./tasks/multiqc.wdl" as multiqc
  4. import "./tasks/multiqc_hap.wdl" as multiqc_hap
  5. import "./tasks/extract_tables.wdl" as extract_tables
  6. import "./tasks/extract_tables_vcf.wdl" as extract_tables_vcf
  7. import "./tasks/mendelian.wdl" as mendelian
  8. import "./tasks/merge_mendelian.wdl" as merge_mendelian
  9. import "./tasks/merge_family.wdl" as merge_family
  10. import "./tasks/filter_vcf.wdl" as filter_vcf
  11. workflow {{ project_name }} {
  12. File? vcf_D5
  13. File? vcf_D6
  14. File? vcf_F7
  15. File? vcf_M8
  16. File bed
  17. String BENCHMARKdocker
  18. String MENDELIANdocker
  19. String DIYdocker
  20. String MULTIQCdocker
  21. String BEDTOOLSdocker
  22. String fasta
  23. File ref_dir
  24. File dbmills_dir
  25. String db_mills
  26. File dbsnp_dir
  27. String dbsnp
  28. String pl
  29. File reference_bed_dict
  30. File screen_ref_dir
  31. File fastq_screen_conf
  32. File benchmarking_dir
  33. File benchmark_region
  34. String project
  35. String disk_size
  36. String BIGcluster_config
  37. String SMALLcluster_config
  38. if (vcf_D5!= "") {
  39. call rename_vcf.rename_vcf as rename_vcf{
  40. input:
  41. vcf_D5=vcf_D5,
  42. vcf_D6=vcf_D6,
  43. vcf_F7=vcf_F7,
  44. vcf_M8=vcf_M8,
  45. project=project,
  46. docker=DIYdocker,
  47. cluster_config=SMALLcluster_config,
  48. disk_size=disk_size
  49. }
  50. call filter_vcf.filter_vcf as filter_vcf_D5_vcf {
  51. input:
  52. vcf=rename_vcf.vcf_D5_renamed,
  53. bed=bed,
  54. benchmark_region=benchmark_region,
  55. project=project,
  56. docker=BEDTOOLSdocker,
  57. cluster_config=SMALLcluster_config,
  58. disk_size=disk_size
  59. }
  60. call benchmark.benchmark as benchmark_D5_vcf {
  61. input:
  62. filtered_vcf=filter_vcf_D5_vcf.filtered_vcf,
  63. bed=filter_vcf_D5_vcf.filtered_bed,
  64. benchmarking_dir=benchmarking_dir,
  65. ref_dir=ref_dir,
  66. fasta=fasta,
  67. docker=BENCHMARKdocker,
  68. cluster_config=BIGcluster_config,
  69. disk_size=disk_size
  70. }
  71. call filter_vcf.filter_vcf as filter_vcf_D6_vcf {
  72. input:
  73. vcf=rename_vcf.vcf_D6_renamed,
  74. docker=BEDTOOLSdocker,
  75. bed=bed,
  76. benchmark_region=benchmark_region,
  77. project=project,
  78. cluster_config=SMALLcluster_config,
  79. disk_size=disk_size
  80. }
  81. call benchmark.benchmark as benchmark_D6_vcf {
  82. input:
  83. filtered_vcf=filter_vcf_D6_vcf.filtered_vcf,
  84. bed=filter_vcf_D6_vcf.filtered_bed,
  85. benchmarking_dir=benchmarking_dir,
  86. ref_dir=ref_dir,
  87. fasta=fasta,
  88. docker=BENCHMARKdocker,
  89. cluster_config=BIGcluster_config,
  90. disk_size=disk_size
  91. }
  92. call filter_vcf.filter_vcf as filter_vcf_F7_vcf {
  93. input:
  94. vcf=rename_vcf.vcf_F7_renamed,
  95. docker=BEDTOOLSdocker,
  96. bed=bed,
  97. benchmark_region=benchmark_region,
  98. project=project,
  99. cluster_config=SMALLcluster_config,
  100. disk_size=disk_size
  101. }
  102. call benchmark.benchmark as benchmark_F7_vcf {
  103. input:
  104. filtered_vcf=filter_vcf_F7_vcf.filtered_vcf,
  105. bed=filter_vcf_F7_vcf.filtered_bed,
  106. benchmarking_dir=benchmarking_dir,
  107. ref_dir=ref_dir,
  108. fasta=fasta,
  109. docker=BENCHMARKdocker,
  110. cluster_config=BIGcluster_config,
  111. disk_size=disk_size
  112. }
  113. call filter_vcf.filter_vcf as filter_vcf_M8_vcf {
  114. input:
  115. vcf=rename_vcf.vcf_M8_renamed,
  116. docker=BEDTOOLSdocker,
  117. bed=bed,
  118. benchmark_region=benchmark_region,
  119. project=project,
  120. cluster_config=SMALLcluster_config,
  121. disk_size=disk_size
  122. }
  123. call benchmark.benchmark as benchmark_M8_vcf {
  124. input:
  125. filtered_vcf=filter_vcf_M8_vcf.filtered_vcf,
  126. bed=filter_vcf_M8_vcf.filtered_bed,
  127. benchmarking_dir=benchmarking_dir,
  128. ref_dir=ref_dir,
  129. fasta=fasta,
  130. docker=BENCHMARKdocker,
  131. cluster_config=BIGcluster_config,
  132. disk_size=disk_size
  133. }
  134. Array[File] benchmark_summary_hap = [benchmark_D5_vcf.summary, benchmark_D6_vcf.summary, benchmark_F7_vcf.summary, benchmark_M8_vcf.summary]
  135. call multiqc_hap.multiqc_hap as multiqc_hap {
  136. input:
  137. summary=benchmark_summary_hap,
  138. docker=MULTIQCdocker,
  139. cluster_config=SMALLcluster_config,
  140. disk_size=disk_size
  141. }
  142. call extract_tables_vcf.extract_tables_vcf as extract_tables_vcf {
  143. input:
  144. hap=multiqc_hap.hap,
  145. project=project,
  146. docker=DIYdocker,
  147. cluster_config=SMALLcluster_config,
  148. disk_size=disk_size
  149. }
  150. call merge_family.merge_family as merge_family_vcf {
  151. input:
  152. D5_vcf=benchmark_D5_vcf.rtg_vcf,
  153. D6_vcf=benchmark_D6_vcf.rtg_vcf,
  154. F7_vcf=benchmark_F7_vcf.rtg_vcf,
  155. M8_vcf=benchmark_M8_vcf.rtg_vcf,
  156. D5_vcf_tbi=benchmark_D5_vcf.rtg_vcf_index,
  157. D6_vcf_tbi=benchmark_D6_vcf.rtg_vcf_index,
  158. F7_vcf_tbi=benchmark_F7_vcf.rtg_vcf_index,
  159. M8_vcf_tbi=benchmark_M8_vcf.rtg_vcf_index,
  160. project=project,
  161. docker=BENCHMARKdocker,
  162. cluster_config=SMALLcluster_config,
  163. disk_size=disk_size,
  164. }
  165. call mendelian.mendelian as mendelian_vcf {
  166. input:
  167. family_vcf=merge_family_vcf.family_vcf,
  168. ref_dir=ref_dir,
  169. fasta=fasta,
  170. docker=MENDELIANdocker,
  171. cluster_config=BIGcluster_config,
  172. disk_size=disk_size
  173. }
  174. call merge_mendelian.merge_mendelian as merge_mendelian_vcf {
  175. input:
  176. D5_trio_vcf=mendelian_vcf.D5_trio_vcf,
  177. D6_trio_vcf=mendelian_vcf.D6_trio_vcf,
  178. family_vcf=merge_family_vcf.family_vcf,
  179. docker=DIYdocker,
  180. cluster_config=SMALLcluster_config,
  181. disk_size=disk_size
  182. }
  183. }
  184. }