選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

202 行
5.1KB

  1. import "./tasks/variantsNorm.wdl" as variantsNorm
  2. import "./tasks/mendelian.wdl" as mendelian
  3. import "./tasks/zipIndex.wdl" as zipIndex
  4. import "./tasks/VCFrename.wdl" as VCFrename
  5. import "./tasks/mergeSister.wdl" as mergeSister
  6. import "./tasks/reformVCF.wdl" as reformVCF
  7. import "./tasks/merge.wdl" as merge
  8. workflow {{ project_name }} {
  9. File inputSamplesFile
  10. Array[Array[File]] inputSamples = read_tsv(inputSamplesFile)
  11. File ref_dir
  12. String fasta
  13. String cluster_config
  14. String disk_size
  15. scatter (quartet in inputSamples){
  16. call variantsNorm.variantsNorm as LCL5variantsNorm{
  17. input:
  18. vcf=quartet[0],
  19. ref_dir=ref_dir,
  20. fasta=fasta,
  21. sampleName=quartet[4],
  22. cluster_config=cluster_config,
  23. disk_size=disk_size
  24. }
  25. call variantsNorm.variantsNorm as LCL6variantsNorm{
  26. input:
  27. vcf=quartet[1],
  28. ref_dir=ref_dir,
  29. fasta=fasta,
  30. sampleName=quartet[5],
  31. cluster_config=cluster_config,
  32. disk_size=disk_size
  33. }
  34. call variantsNorm.variantsNorm as LCL7variantsNorm{
  35. input:
  36. vcf=quartet[2],
  37. ref_dir=ref_dir,
  38. fasta=fasta,
  39. sampleName=quartet[6],
  40. cluster_config=cluster_config,
  41. disk_size=disk_size
  42. }
  43. call variantsNorm.variantsNorm as LCL8variantsNorm{
  44. input:
  45. vcf=quartet[3],
  46. ref_dir=ref_dir,
  47. fasta=fasta,
  48. sampleName=quartet[7],
  49. cluster_config=cluster_config,
  50. disk_size=disk_size
  51. }
  52. call mendelian.mendelian as LCL5mendelian {
  53. input:
  54. child_vcf=LCL5variantsNorm.normed_vcf,
  55. LCL7_vcf=LCL7variantsNorm.normed_vcf,
  56. LCL8_vcf=LCL8variantsNorm.normed_vcf,
  57. LCL7_name=quartet[6],
  58. LCL8_name=quartet[7],
  59. child_name=quartet[4],
  60. ref_dir=ref_dir,
  61. fasta=fasta,
  62. cluster_config=cluster_config,
  63. disk_size=disk_size
  64. }
  65. call mendelian.mendelian as LCL6mendelian {
  66. input:
  67. child_vcf=LCL6variantsNorm.normed_vcf,
  68. LCL7_vcf=LCL7variantsNorm.normed_vcf,
  69. LCL8_vcf=LCL8variantsNorm.normed_vcf,
  70. LCL7_name=quartet[6],
  71. LCL8_name=quartet[7],
  72. child_name=quartet[5],
  73. ref_dir=ref_dir,
  74. fasta=fasta,
  75. cluster_config=cluster_config,
  76. disk_size=disk_size
  77. }
  78. call zipIndex.zipIndex as LCL5zipIndex {
  79. input:
  80. vcf=LCL5mendelian.trio_vcf,
  81. sample="LCL5",
  82. family_name=quartet[8],
  83. cluster_config=cluster_config,
  84. disk_size=disk_size
  85. }
  86. call zipIndex.zipIndex as LCL6zipIndex {
  87. input:
  88. vcf=LCL6mendelian.trio_vcf,
  89. sample="LCL6",
  90. family_name=quartet[8],
  91. cluster_config=cluster_config,
  92. disk_size=disk_size
  93. }
  94. call VCFrename.VCFrename as LCL5VCFrename {
  95. input:
  96. trio_vcf_gz=LCL5zipIndex.vcf_gz,
  97. trio_vcf_idx=LCL5zipIndex.vcf_idx,
  98. mother_name=quartet[7],
  99. father_name=quartet[6],
  100. child_name=quartet[4],
  101. family_name=quartet[8],
  102. child="LCL5",
  103. cluster_config=cluster_config,
  104. disk_size=disk_size
  105. }
  106. call VCFrename.VCFrename as LCL6VCFrename {
  107. input:
  108. trio_vcf_gz=LCL6zipIndex.vcf_gz,
  109. trio_vcf_idx=LCL6zipIndex.vcf_idx,
  110. mother_name=quartet[7],
  111. father_name=quartet[6],
  112. child_name=quartet[5],
  113. family_name=quartet[8],
  114. child="LCL6",
  115. cluster_config=cluster_config,
  116. disk_size=disk_size
  117. }
  118. call mergeSister.mergeSister as mergeSister {
  119. input:
  120. LCL5_trio_vcf_gz=LCL5VCFrename.rename_trio_vcf_gz,
  121. LCL5_trio_vcf_idx=LCL5VCFrename.rename_trio_vcf_idx,
  122. LCL6_trio_vcf_gz=LCL6VCFrename.rename_trio_vcf_gz,
  123. LCL6_trio_vcf_idx=LCL6VCFrename.rename_trio_vcf_idx,
  124. family_name=quartet[8],
  125. cluster_config=cluster_config,
  126. disk_size=disk_size
  127. }
  128. call reformVCF.reformVCF as reformVCF {
  129. input:
  130. family_mendelian_info=mergeSister.family_mendelian_info,
  131. family_name=quartet[8],
  132. cluster_config=cluster_config,
  133. disk_size=disk_size
  134. }
  135. call zipIndex.zipIndex as LCL5familyzipIndex {
  136. input:
  137. vcf=reformVCF.LCL5_family_info,
  138. sample='LCL5',
  139. family_name=quartet[8],
  140. cluster_config=cluster_config,
  141. disk_size=disk_size
  142. }
  143. call zipIndex.zipIndex as LCL6familyzipIndex {
  144. input:
  145. vcf=reformVCF.LCL6_family_info,
  146. sample='LCL6',
  147. family_name=quartet[8],
  148. cluster_config=cluster_config,
  149. disk_size=disk_size
  150. }
  151. call zipIndex.zipIndex as LCL7familyzipIndex {
  152. input:
  153. vcf=reformVCF.LCL7_family_info,
  154. sample='LCL7',
  155. family_name=quartet[8],
  156. cluster_config=cluster_config,
  157. disk_size=disk_size
  158. }
  159. call zipIndex.zipIndex as LCL8familyzipIndex {
  160. input:
  161. vcf=reformVCF.LCL8_family_info,
  162. sample='LCL8',
  163. family_name=quartet[8],
  164. cluster_config=cluster_config,
  165. disk_size=disk_size
  166. }
  167. }
  168. call merge.merge as LCL5merge {
  169. input:
  170. family_vcf_gz=LCL5familyzipIndex.vcf_gz,
  171. family_vcf_idx=LCL5familyzipIndex.vcf_idx,
  172. sample="LCL5",
  173. cluster_config=cluster_config,
  174. disk_size=disk_size
  175. }
  176. call merge.merge as LCL6merge {
  177. input:
  178. family_vcf_gz=LCL6familyzipIndex.vcf_gz,
  179. family_vcf_idx=LCL6familyzipIndex.vcf_idx,
  180. sample="LCL6",
  181. cluster_config=cluster_config,
  182. disk_size=disk_size
  183. }
  184. call merge.merge as LCL7merge {
  185. input:
  186. family_vcf_gz=LCL7familyzipIndex.vcf_gz,
  187. family_vcf_idx=LCL7familyzipIndex.vcf_idx,
  188. sample="LCL7",
  189. cluster_config=cluster_config,
  190. disk_size=disk_size
  191. }
  192. call merge.merge as LCL8merge {
  193. input:
  194. family_vcf_gz=LCL8familyzipIndex.vcf_gz,
  195. family_vcf_idx=LCL8familyzipIndex.vcf_idx,
  196. sample="LCL8",
  197. cluster_config=cluster_config,
  198. disk_size=disk_size
  199. }
  200. }