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

224 lines
5.8KB

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