用于miRNA-seq二代测序数据分析
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

139 lines
4.8KB

  1. import "./tasks/Fastqc.wdl" as Fastqc
  2. import "./tasks/TrimAdapt.wdl" as TrimAdapt
  3. import "./tasks/ReadFilter.wdl" as ReadFilter
  4. import "./tasks/Align.wdl" as Align
  5. import "./tasks/Quantification.wdl" as Quantification
  6. import "./tasks/ReadStats.wdl" as ReadStats
  7. workflow {{ project_name }} {
  8. String sample_id
  9. File raw_fastq
  10. String adapter_seq
  11. Int randomBase_in_adapter
  12. Int sequencing_length
  13. Int qualified_quality_phred
  14. Int unqualified_percent_limit
  15. Int n_base_limit
  16. Int length_required
  17. Int max_mismatch_allowed
  18. File dir_index_miRNA
  19. String prefix_index_miRNA
  20. File dir_index_preMiRNA
  21. String prefix_index_preMiRNA
  22. File dir_index_piRNA
  23. String prefix_index_piRNA
  24. File dir_index_tRNA
  25. String prefix_index_tRNA
  26. File dir_index_RNA
  27. String prefix_index_RNA
  28. File dir_index_hg38
  29. String prefix_index_hg38
  30. String docker_fastqc
  31. String docker_fastp
  32. String docker_bowtie
  33. String cluster_config
  34. String disk_size
  35. call Fastqc.Fastqc as Fastqc {
  36. input:
  37. in_fastq=raw_fastq,
  38. docker=docker_fastqc, cluster_config=cluster_config, disk_size=disk_size
  39. }
  40. call TrimAdapt.TrimAdapt as TrimAdapt {
  41. input:
  42. sample_id=sample_id,in_fastq=raw_fastq,
  43. adapter_seq=adapter_seq, randomBase_in_adapter=randomBase_in_adapter, sequencing_length=sequencing_length,
  44. docker=docker_fastp, cluster_config=cluster_config, disk_size=disk_size
  45. }
  46. call ReadFilter.ReadFilter as ReadFilter {
  47. input:
  48. sample_id=sample_id,
  49. in_fastq=TrimAdapt.out_fastq,
  50. qualified_quality_phred=qualified_quality_phred,unqualified_percent_limit=unqualified_percent_limit,
  51. n_base_limit=n_base_limit,
  52. length_required=length_required,
  53. docker=docker_fastp, cluster_config=cluster_config, disk_size=disk_size
  54. }
  55. call Align.AlignToSenseOnly as Align2miRNA {
  56. input:
  57. sample_id=sample_id,
  58. in_fastq=ReadFilter.out_fastq,
  59. refname="miRNA",dir_index=dir_index_miRNA,prefix_index=prefix_index_miRNA,
  60. max_mismatch_allowed=max_mismatch_allowed,
  61. docker=docker_bowtie, cluster_config=cluster_config, disk_size=disk_size
  62. }
  63. call Align.AlignToSenseOnly as Align2PreMiRNA {
  64. input:
  65. sample_id=sample_id,
  66. in_fastq=Align2miRNA.out_fastq,
  67. refname="preMiRNA",dir_index=dir_index_preMiRNA,prefix_index=prefix_index_preMiRNA,
  68. max_mismatch_allowed=max_mismatch_allowed,
  69. docker=docker_bowtie, cluster_config=cluster_config, disk_size=disk_size
  70. }
  71. call Align.AlignToSenseOnly as Align2tRNA {
  72. input:
  73. sample_id=sample_id,
  74. in_fastq=Align2PreMiRNA.out_fastq,
  75. refname="tRNA",dir_index=dir_index_tRNA,prefix_index=prefix_index_tRNA,
  76. max_mismatch_allowed=max_mismatch_allowed,
  77. docker=docker_bowtie, cluster_config=cluster_config, disk_size=disk_size
  78. }
  79. call Align.AlignToSenseOnly as Align2RNA {
  80. input:
  81. sample_id=sample_id,
  82. in_fastq=Align2tRNA.out_fastq,
  83. refname="RNA",dir_index=dir_index_RNA,prefix_index=prefix_index_RNA,
  84. max_mismatch_allowed=max_mismatch_allowed,
  85. docker=docker_bowtie, cluster_config=cluster_config, disk_size=disk_size
  86. }
  87. call Align.AlignToSenseOnly as Align2piRNA {
  88. input:
  89. sample_id=sample_id,
  90. in_fastq=Align2RNA.out_fastq,
  91. refname="piRNA",dir_index=dir_index_piRNA,prefix_index=prefix_index_piRNA,
  92. max_mismatch_allowed=max_mismatch_allowed,
  93. docker=docker_bowtie, cluster_config=cluster_config, disk_size=disk_size
  94. }
  95. call Align.AlignToBothStrand as Align2Hg38 {
  96. input:
  97. sample_id=sample_id,
  98. in_fastq=Align2piRNA.out_fastq,
  99. refname="Hg38",dir_index=dir_index_hg38,prefix_index=prefix_index_hg38,
  100. max_mismatch_allowed=max_mismatch_allowed,
  101. docker=docker_bowtie, cluster_config=cluster_config, disk_size=disk_size
  102. }
  103. call Quantification.Quantification as Quantification {
  104. input:
  105. sample_id=sample_id,
  106. in_sam=Align2miRNA.out_sam,
  107. cluster_config=cluster_config,disk_size=disk_size
  108. }
  109. call ReadStats.ReadStats as ReadStats {
  110. input:
  111. sample_id=sample_id,
  112. in_log_trimAdatper=TrimAdapt.out_log,in_log_readFilter=ReadFilter.out_log,
  113. in_log_align_miRNA=Align2miRNA.out_log,in_log_align_preMiRNA=Align2PreMiRNA.out_log,in_log_align_piRNA=Align2piRNA.out_log,in_log_align_tRNA=Align2tRNA.out_log,in_log_align_RNA=Align2RNA.out_log,in_log_align_hg38=Align2Hg38.out_log,
  114. in_sam_align_RNA=Align2RNA.out_sam,
  115. cluster_config=cluster_config,disk_size=disk_size
  116. }
  117. }