You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

109 lines
2.3KB

  1. import "./tasks/fastp.wdl" as fastp
  2. import "./tasks/hisat2.wdl" as hisat2
  3. import "./tasks/samtools.wdl" as samtools
  4. import "./tasks/stringtie.wdl" as stringtie
  5. import "./tasks/fastqc.wdl" as fastqc
  6. import "./tasks/fastqscreen.wdl" as fastqscreen
  7. import "./tasks/qualimapBAMqc.wdl" as qualimapBAMqc
  8. import "./tasks/multiqc.wdl" as multiqc
  9. workflow {{ project_name }} {
  10. File inputSamplesFile
  11. Array[Array[File]] inputSamples = read_tsv(inputSamplesFile)
  12. String fasta
  13. String idx_prefix
  14. String hisat2.docker
  15. String samtools.docker
  16. String stringtie.docker
  17. String fastp.docker
  18. String fastqscreen.docker
  19. String multiqc.docker
  20. String qualimapBAMqc.docker
  21. String fastqc.docker
  22. String hisat2.cluster
  23. String samtools.cluster
  24. String stringtie.cluster
  25. String fastp.cluster
  26. String fastqc.disk_size
  27. String fastqscreen.cluster_config
  28. String fastqc.cluster_config
  29. String qualimapBAMqc.disk_size
  30. String multiqc.cluster_config
  31. String qualimapRNAseq.disk_size
  32. String qualimapBAMqc.cluster_config
  33. String qualimapRNAseq.cluster_config
  34. String fastqscreen.disk_size
  35. String multiqc.disk_size
  36. File screen_ref_dir
  37. File fastq_screen_conf
  38. File idx
  39. File gtf
  40. File ref_dir
  41. scatter (quartet in inputSamples){
  42. call fastp.fastp as fastp {
  43. input:
  44. sample_id=quartet[2],
  45. read1=quartet[0],
  46. read2=quartet[1],
  47. adapter_sequence=quartet[3],
  48. adapter_sequence_r2=quartet[4]
  49. }
  50. call fastqc.fastqc as fastqc {
  51. input:
  52. read1=fastp.Trim_R1,
  53. read2=fastp.Trim_R2
  54. }
  55. call fastqscreen.fastqscreen as fastqscreen {
  56. input:
  57. read1=fastp.Trim_R1,
  58. read2=fastp.Trim_R2,
  59. screen_ref_dir=screen_ref_dir,
  60. fastq_screen_conf=fastq_screen_conf
  61. }
  62. call hisat2.hisat2 as hisat2 {
  63. input:
  64. sample_id=quartet[2],
  65. idx=idx,
  66. idx_prefix=idx_prefix,
  67. Trim_R1=fastp.Trim_R1,
  68. Trim_R2=fastp.Trim_R2
  69. }
  70. call samtools.samtools as samtools {
  71. input:
  72. sample_id=quartet[2],
  73. sam = hisat2.sam
  74. }
  75. call qualimapBAMqc.qualimapBAMqc as qualimapBAMqc {
  76. input:
  77. bam= samtools.out_bam
  78. }
  79. call stringtie.stringtie as stringtie {
  80. input:
  81. sample_id=quartet[2],
  82. gtf = gtf,
  83. bam = samtools.out_bam
  84. }
  85. }
  86. call multiqc.multiqc as multiqc {
  87. input:
  88. read1_zip=fastqc.read1_zip,
  89. read2_zip=fastqc.read2_zip,
  90. txt1=fastqscreen.txt1,
  91. txt2=fastqscreen.txt2,
  92. rnaseq_zip=qualimapRNAseq.rnaseq_zip
  93. }
  94. }