Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

pirms 5 gadiem
pirms 4 gadiem
pirms 4 gadiem
pirms 5 gadiem
pirms 4 gadiem
pirms 5 gadiem
pirms 4 gadiem
pirms 5 gadiem
pirms 4 gadiem
pirms 5 gadiem
pirms 4 gadiem
pirms 5 gadiem
pirms 4 gadiem
pirms 4 gadiem
pirms 5 gadiem
pirms 4 gadiem
pirms 5 gadiem
pirms 4 gadiem
pirms 5 gadiem
pirms 4 gadiem
pirms 5 gadiem
pirms 4 gadiem
pirms 5 gadiem
pirms 4 gadiem
pirms 5 gadiem
pirms 4 gadiem
pirms 5 gadiem
pirms 4 gadiem
pirms 5 gadiem
pirms 4 gadiem
pirms 5 gadiem
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303
  1. import "./tasks/mapping.wdl" as mapping
  2. import "./tasks/Metrics.wdl" as Metrics
  3. import "./tasks/Dedup.wdl" as Dedup
  4. import "./tasks/deduped_Metrics.wdl" as deduped_Metrics
  5. import "./tasks/Realigner.wdl" as Realigner
  6. import "./tasks/BQSR.wdl" as BQSR
  7. import "./tasks/Haplotyper_gVCF.wdl" as Haplotyper_gVCF
  8. import "./tasks/GVCFtyper.wdl" as GVCFtyper
  9. import "./tasks/split_gvcf_files.wdl" as split_gvcf_files
  10. import "./tasks/benchmark.wdl" as benchmark
  11. import "./tasks/multiqc.wdl" as multiqc
  12. import "./tasks/mendelian.wdl" as mendelian
  13. import "./tasks/merge_mendelian.wdl" as merge_mendelian
  14. import "./tasks/quartet_mendelian.wdl" as quartet_mendelian
  15. import "./tasks/fastqc.wdl" as fastqc
  16. import "./tasks/fastqscreen.wdl" as fastqscreen
  17. import "./tasks/qualimap.wdl" as qualimap
  18. import "./tasks/extract_multiqc.wdl" as extract_multiqc
  19. import "./tasks/D5_D6.wdl" as D5_D6
  20. import "./tasks/merge_family.wdl" as merge_family
  21. workflow {{ project_name }} {
  22. File inputSamplesFile
  23. Array[Array[File]] inputSamples = read_tsv(inputSamplesFile)
  24. String SENTIEON_INSTALL_DIR
  25. String SENTIEONdocker
  26. String FASTQCdocker
  27. String FASTQSCREENdocker
  28. String QUALIMAPdocker
  29. String BENCHMARKdocker
  30. String MENDELIANdocker
  31. String DIYdocker
  32. String MULTIQCdocker
  33. String fasta
  34. File ref_dir
  35. File dbmills_dir
  36. String db_mills
  37. File dbsnp_dir
  38. String dbsnp
  39. File screen_ref_dir
  40. File fastq_screen_conf
  41. File benchmarking_dir
  42. String project
  43. String disk_size
  44. String BIGcluster_config
  45. String SMALLcluster_config
  46. scatter (quartet in inputSamples){
  47. call mapping.mapping as mapping {
  48. input:
  49. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  50. group=quartet[2],
  51. sample=quartet[2],
  52. pl="ILLUMINAL",
  53. fasta=fasta,
  54. ref_dir=ref_dir,
  55. fastq_1=quartet[0],
  56. fastq_2=quartet[1],
  57. docker=SENTIEONdocker,
  58. disk_size=disk_size,
  59. cluster_config=BIGcluster_config
  60. }
  61. call fastqc.fastqc as fastqc {
  62. input:
  63. read1=quartet[0],
  64. read2=quartet[1],
  65. docker=FASTQCdocker,
  66. cluster_config=BIGcluster_config,
  67. disk_size=disk_size
  68. }
  69. call fastqscreen.fastq_screen as fastqscreen {
  70. input:
  71. read1=quartet[0],
  72. read2=quartet[1],
  73. screen_ref_dir=screen_ref_dir,
  74. fastq_screen_conf=fastq_screen_conf,
  75. docker=FASTQSCREENdocker,
  76. cluster_config=BIGcluster_config,
  77. disk_size=disk_size
  78. }
  79. call Metrics.Metrics as Metrics {
  80. input:
  81. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  82. fasta=fasta,
  83. ref_dir=ref_dir,
  84. sorted_bam=mapping.sorted_bam,
  85. sorted_bam_index=mapping.sorted_bam_index,
  86. sample=quartet[2],
  87. docker=SENTIEONdocker,
  88. disk_size=disk_size,
  89. cluster_config=BIGcluster_config
  90. }
  91. call Dedup.Dedup as Dedup {
  92. input:
  93. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  94. sorted_bam=mapping.sorted_bam,
  95. sorted_bam_index=mapping.sorted_bam_index,
  96. sample=quartet[2],
  97. docker=SENTIEONdocker,
  98. disk_size=disk_size,
  99. cluster_config=BIGcluster_config
  100. }
  101. call qualimap.qualimap as qualimap {
  102. input:
  103. bam=Dedup.Dedup_bam,
  104. bai=Dedup.Dedup_bam_index,
  105. docker=QUALIMAPdocker,
  106. cluster_config=BIGcluster_config,
  107. disk_size=disk_size
  108. }
  109. call deduped_Metrics.deduped_Metrics as deduped_Metrics {
  110. input:
  111. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  112. fasta=fasta,
  113. ref_dir=ref_dir,
  114. Dedup_bam=Dedup.Dedup_bam,
  115. Dedup_bam_index=Dedup.Dedup_bam_index,
  116. sample=quartet[2],
  117. docker=SENTIEONdocker,
  118. disk_size=disk_size,
  119. cluster_config=BIGcluster_config
  120. }
  121. call Realigner.Realigner as Realigner {
  122. input:
  123. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  124. fasta=fasta,
  125. ref_dir=ref_dir,
  126. Dedup_bam=Dedup.Dedup_bam,
  127. Dedup_bam_index=Dedup.Dedup_bam_index,
  128. db_mills=db_mills,
  129. dbmills_dir=dbmills_dir,
  130. sample=quartet[2],
  131. docker=SENTIEONdocker,
  132. disk_size=disk_size,
  133. cluster_config=BIGcluster_config
  134. }
  135. call BQSR.BQSR as BQSR {
  136. input:
  137. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  138. fasta=fasta,
  139. ref_dir=ref_dir,
  140. realigned_bam=Realigner.realigner_bam,
  141. realigned_bam_index=Realigner.realigner_bam_index,
  142. db_mills=db_mills,
  143. dbmills_dir=dbmills_dir,
  144. dbsnp=dbsnp,
  145. dbsnp_dir=dbsnp_dir,
  146. sample=quartet[2],
  147. docker=SENTIEONdocker,
  148. disk_size=disk_size,
  149. cluster_config=BIGcluster_config
  150. }
  151. call Haplotyper_gVCF.Haplotyper_gVCF as Haplotyper_gVCF {
  152. input:
  153. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  154. fasta=fasta,
  155. ref_dir=ref_dir,
  156. recaled_bam=BQSR.recaled_bam,
  157. recaled_bam_index=BQSR.recaled_bam_index,
  158. sample=quartet[2],
  159. docker=SENTIEONdocker,
  160. disk_size=disk_size,
  161. cluster_config=BIGcluster_config
  162. }
  163. }
  164. call GVCFtyper.GVCFtyper as GVCFtyper {
  165. input:
  166. ref_dir=ref_dir,
  167. SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
  168. fasta=fasta,
  169. vcf=Haplotyper_gVCF.vcf,
  170. vcf_idx=Haplotyper_gVCF.vcf_idx,
  171. project=project,
  172. docker=SENTIEONdocker,
  173. cluster_config=BIGcluster_config,
  174. disk_size=disk_size
  175. }
  176. call split_gvcf_files.split_gvcf_files as split_gvcf_files {
  177. input:
  178. gvcf=GVCFtyper.gvcf,
  179. docker=DIYdocker,
  180. project=project,
  181. cluster_config=SMALLcluster_config,
  182. disk_size=disk_size
  183. }
  184. Array[File] single_gvcf = split_gvcf_files.splited_vcf
  185. scatter (idx in range(length(single_gvcf))) {
  186. call benchmark.benchmark as benchmark {
  187. input:
  188. vcf=single_gvcf[idx],
  189. benchmarking_dir=benchmarking_dir,
  190. ref_dir=ref_dir,
  191. fasta=fasta,
  192. docker=BENCHMARKdocker,
  193. cluster_config=BIGcluster_config,
  194. disk_size=disk_size,
  195. }
  196. }
  197. call multiqc.multiqc as multiqc {
  198. input:
  199. read1_zip=fastqc.read1_zip,
  200. read2_zip=fastqc.read2_zip,
  201. txt1=fastqscreen.txt1,
  202. txt2=fastqscreen.txt2,
  203. zip=qualimap.zip,
  204. summary=benchmark.summary,
  205. docker=MULTIQCdocker,
  206. cluster_config=SMALLcluster_config,
  207. disk_size=disk_size
  208. }
  209. call extract_multiqc.extract_multiqc as extract_multiqc {
  210. input:
  211. fastqc_qualimap=multiqc.fastqc_qualimap,
  212. fastqc=multiqc.fastqc,
  213. fastqscreen=multiqc.fastqscreen,
  214. hap=multiqc.hap,
  215. docker=DIYdocker,
  216. cluster_config=SMALLcluster_config,
  217. disk_size=disk_size
  218. }
  219. Boolean sister_tag = read_boolean(split_gvcf_files.sister_tag)
  220. Boolean quartet_tag = read_boolean(split_gvcf_files.quartet_tag)
  221. if (sister_tag) {
  222. call D5_D6.D5_D6 as D5_D6 {
  223. input:
  224. splited_vcf=split_gvcf_files.splited_vcf,
  225. project=project,
  226. docker=DIYdocker,
  227. cluster_config=SMALLcluster_config,
  228. disk_size=disk_size,
  229. }
  230. }
  231. if (quartet_tag) {
  232. call merge_family.merge_family as merge_family {
  233. input:
  234. splited_vcf=split_gvcf_files.splited_vcf,
  235. project=project,
  236. docker=DIYdocker,
  237. cluster_config=SMALLcluster_config,
  238. disk_size=disk_size,
  239. }
  240. Array[File] family_vcfs = merge_family.family_vcf
  241. scatter (idx in range(length(family_vcfs))) {
  242. call mendelian.mendelian as mendelian {
  243. input:
  244. family_vcf=family_vcfs[idx],
  245. ref_dir=ref_dir,
  246. fasta=fasta,
  247. docker=MENDELIANdocker,
  248. cluster_config=BIGcluster_config,
  249. disk_size=disk_size
  250. }
  251. call merge_mendelian.merge_mendelian as merge_mendelian {
  252. input:
  253. D5_trio_vcf=mendelian.D5_trio_vcf,
  254. D6_trio_vcf=mendelian.D6_trio_vcf,
  255. family_vcf=family_vcfs[idx],
  256. docker=DIYdocker,
  257. cluster_config=SMALLcluster_config,
  258. disk_size=disk_size
  259. }
  260. }
  261. call quartet_mendelian.quartet_mendelian as quartet_mendelian {
  262. input:
  263. project_mendelian_summary=merge_mendelian.project_mendelian_summary,
  264. project=project,
  265. docker=DIYdocker,
  266. cluster_config=SMALLcluster_config,
  267. disk_size=disk_size
  268. }
  269. }
  270. }