Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

115 lines
2.5KB

  1. import "./tasks/split_gvcf_files.wdl" as split_gvcf_files
  2. import "./tasks/benchmark.wdl" as benchmark
  3. import "./tasks/mendelian.wdl" as mendelian
  4. import "./tasks/merge_mendelian.wdl" as merge_mendelian
  5. import "./tasks/quartet_mendelian.wdl" as quartet_mendelian
  6. import "./tasks/D5_D6.wdl" as D5_D6
  7. import "./tasks/merge_family.wdl" as merge_family
  8. workflow {{ project_name }} {
  9. File gvcf
  10. String BENCHMARKdocker
  11. String MENDELIANdocker
  12. String DIYdocker
  13. String fasta
  14. File ref_dir
  15. File benchmarking_dir
  16. String project
  17. String disk_size
  18. String BIGcluster_config
  19. String SMALLcluster_config
  20. call split_gvcf_files.split_gvcf_files as split_gvcf_files {
  21. input:
  22. gvcf=gvcf,
  23. docker=DIYdocker,
  24. project=project,
  25. cluster_config=SMALLcluster_config,
  26. disk_size=disk_size
  27. }
  28. Array[File] single_gvcf = split_gvcf_files.splited_vcf
  29. scatter (idx in range(length(single_gvcf))) {
  30. call benchmark.benchmark as benchmark {
  31. input:
  32. vcf=single_gvcf[idx],
  33. benchmarking_dir=benchmarking_dir,
  34. ref_dir=ref_dir,
  35. fasta=fasta,
  36. docker=BENCHMARKdocker,
  37. cluster_config=BIGcluster_config,
  38. disk_size=disk_size,
  39. }
  40. }
  41. Boolean sister_tag = read_boolean(split_gvcf_files.sister_tag)
  42. Boolean quartet_tag = read_boolean(split_gvcf_files.quartet_tag)
  43. if (sister_tag) {
  44. call D5_D6.D5_D6 as D5_D6 {
  45. input:
  46. splited_vcf=split_gvcf_files.splited_vcf,
  47. project=project,
  48. docker=DIYdocker,
  49. cluster_config=SMALLcluster_config,
  50. disk_size=disk_size,
  51. }
  52. }
  53. if (quartet_tag) {
  54. call merge_family.merge_family as merge_family {
  55. input:
  56. splited_vcf=split_gvcf_files.splited_vcf,
  57. project=project,
  58. docker=DIYdocker,
  59. cluster_config=SMALLcluster_config,
  60. disk_size=disk_size,
  61. }
  62. Array[File] family_vcfs = merge_family.family_vcf
  63. scatter (idx in range(length(family_vcfs))) {
  64. call mendelian.mendelian as mendelian {
  65. input:
  66. family_vcf=family_vcfs[idx],
  67. ref_dir=ref_dir,
  68. fasta=fasta,
  69. docker=MENDELIANdocker,
  70. cluster_config=BIGcluster_config,
  71. disk_size=disk_size
  72. }
  73. call merge_mendelian.merge_mendelian as merge_mendelian {
  74. input:
  75. D5_trio_vcf=mendelian.D5_trio_vcf,
  76. D6_trio_vcf=mendelian.D6_trio_vcf,
  77. family_vcf=family_vcfs[idx],
  78. docker=DIYdocker,
  79. cluster_config=SMALLcluster_config,
  80. disk_size=disk_size
  81. }
  82. }
  83. call quartet_mendelian.quartet_mendelian as quartet_mendelian {
  84. input:
  85. project_mendelian_summary=merge_mendelian.project_mendelian_summary,
  86. project=project,
  87. docker=DIYdocker,
  88. cluster_config=SMALLcluster_config,
  89. disk_size=disk_size
  90. }
  91. }
  92. }