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
|
#!/usr/bin/env cwl-runner
cwlVersion: v1.1
class: Workflow
requirements:
ScatterFeatureRequirement: {}
StepInputExpressionRequirement: {}
inputs:
inputReads: File[]
metadata: File[]
metadataSchema: File
subjects: string[]
exclude: 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
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/reads_dedupped_sorted_by_quality_and_len
mergedMetadata:
type: File
outputSource: mergeMetadata/merged
indexed_paths:
type: File
outputSource: index_paths/indexed_paths
colinear_components:
type: Directory
outputSource: segment_components/colinear_components
steps:
relabel:
in:
readsFA: inputReads
subjects: subjects
exclude: exclude
out: [relabeledSeqs, originalLabels]
run: relabel-seqs.cwl
dedup_and_sort_by_quality_and_len:
in: {reads: relabel/relabeledSeqs}
out: [reads_dedupped_sorted_by_quality_and_len, dups]
run: sort_fasta_by_quality_and_len.cwl
induceGraph:
in:
readsFA: dedup_and_sort_by_quality_and_len/reads_dedupped_sorted_by_quality_and_len
out: [spoaGFA]
run: spoa.cwl
buildGraph:
in: {inputGFA: induceGraph/spoaGFA}
out: [odgiGraph]
run: odgi-build-from-spoa-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]
run: ../tools/odgi/odgi_viz.cwl
odgi2rdf:
in: {odgi: buildGraph/odgiGraph}
out: [rdf]
run: odgi_to_rdf.cwl
mergeMetadata:
in:
metadata: metadata
metadataSchema: metadataSchema
subjects: subjects
dups: dedup_and_sort_by_quality_and_len/dups
originalLabels: relabel/originalLabels
out: [merged]
run: merge-metadata.cwl
bin_paths:
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
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 ]
|