aboutsummaryrefslogtreecommitdiff
path: root/workflows/pangenome-generate/pangenome-generate_spoa.cwl
blob: fa168094cb73eba2657a641124006a916824e437 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#!/usr/bin/env cwl-runner
cwlVersion: v1.1
class: Workflow
requirements:
  ScatterFeatureRequirement: {}
  StepInputExpressionRequirement: {}
inputs:
  seqs: File
  metadata: File
  bin_widths:
    type: int[]
    default: [ 1, 4, 16, 64, 256, 1000, 4000, 16000]
    doc: width of each bin in basepairs along the graph vector
  cells_per_file:
    type: int
    default: 100
    doc: Cells per file on component_segmentation
  reversed_sort:
    type: string
    default: "true"
outputs:
  odgiGraph:
    type: File
    outputSource: buildGraph/odgiGraph
  odgiPNG:
   type: File
   outputSource: vizGraph/graph_image
  spoaGFA:
    type: File
    outputSource: induceGraph/spoaGFA
#  odgiRDF:
#    type: File
#    outputSource: odgi2rdf/rdf
  readsMergeDedupSortedByQualAndLen:
    type: File
    outputSource: dedup_and_sort_by_quality_and_len/sortedReadsFA
  mergedMetadata:
    type: File
    outputSource: dups2metadata/merged
#  indexed_paths:
#    type: File
#    outputSource: index_paths/indexed_paths
#  colinear_components:
#    type: Directory
#    outputSource: segment_components/colinear_components
steps:
  dedup_and_sort_by_quality_and_len:
    in: {readsFA: seqs, reversed_sorting: reversed_sort}
    out: [sortedReadsFA, dups]
    run: sort_fasta_by_quality_and_len.cwl
  induceGraph:
    in:
      readsFA: dedup_and_sort_by_quality_and_len/sortedReadsFA
    out: [spoaGFA]
    run: spoa.cwl
  buildGraph:
    in: {inputGFA: induceGraph/spoaGFA}
    out: [odgiGraph]
    run: odgi-build-from-xpoa-gfa.cwl
  vizGraph:
    in:
      sparse_graph_index: buildGraph/odgiGraph
      width:
        default: 50000
      height:
        default: 500
      path_per_row:
        default: true
      path_height:
        default: 4
    out: [graph_image]
    requirements:
      ResourceRequirement:
        ramMin: $(15 * 1024)
        outdirMin: 10
    run: ../tools/odgi/odgi_viz.cwl
  # odgi2rdf:
  #  in: {odgi: buildGraph/odgiGraph}
  #  out: [rdf]
  #  run: odgi_to_rdf.cwl
  dups2metadata:
    in:
      metadata: metadata
      dups: dedup_and_sort_by_quality_and_len/dups
    out: [merged]
    run: dups2metadata.cwl
  # bin_paths:
  #   requirements:
  #     ResourceRequirement:
  #       ramMin: 3000
  #       outdirMin: 10
  #   run: ../tools/odgi/odgi_bin.cwl
  #   in:
  #     sparse_graph_index: buildGraph/odgiGraph
  #     bin_width: bin_widths
  #   scatter: bin_width
  #   out: [ bins, pangenome_sequence ]
  # index_paths:
  #   label: Create path index
  #   requirements:
  #     ResourceRequirement:
  #       ramMin: 3000
  #       outdirMin: 10
  #   run: ../tools/odgi/odgi_pathindex.cwl
  #   in:
  #     sparse_graph_index: buildGraph/odgiGraph
  #   out: [ indexed_paths ]
  # segment_components:
  #   label: Run component segmentation
  #   run: ../tools/graph-genome-segmentation/component_segmentation.cwl
  #   in:
  #     bins: bin_paths/bins
  #     cells_per_file: cells_per_file
  #     pangenome_sequence:
  #       source: bin_paths/pangenome_sequence
  #       valueFrom: $(self[0])
  #       # the bin_paths step is scattered over the bin_width array, but always using the same sparse_graph_index
  #       # the pangenome_sequence that is extracted is exactly the same for the same sparse_graph_index
  #       # regardless of bin_width, so we take the first pangenome_sequence as input for this step
  #   out: [ colinear_components ]