-
Notifications
You must be signed in to change notification settings - Fork 3
/
relabel-and-merge.cwl
75 lines (67 loc) · 1.77 KB
/
relabel-and-merge.cwl
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
cwlVersion: v1.0
class: Workflow
label: TAP 0.9
doc: todo
requirements:
- class: StepInputExpressionRequirement
- class: InlineJavascriptRequirement
- class: ScatterFeatureRequirement
inputs:
sequence_files:
type: File[]
# format: fasta
outputs:
concatenated:
type: File
outputSource: concatenate/concatenated
steps:
# Add filname prefix to sequence header
relabel:
label: Relabel
doc: regexp tool
run: ../Tools/regexp.tool.cwl
scatter: [input]
in:
regexp:
default: 's/\(^.*\)|.*/\1barcodelabel=test;/g'
# var regexp = 's/^\u005c(>.*\u005c)|.*/\u005c\u0031' + 'barcodelabel=' + name + ';/g' ;
valueFrom: |
${
var name = inputs.input.basename.replace(/\.(tap)?.*/ , "") ;
var regexp = 's/^\u005c(>.*\u005c)/\u005c\u0031;' + 'barcodelabel=' + name + ';/g' ;
return regexp ;
}
input: sequence_files
output:
default: test.output.txt
valueFrom: |
${
return inputs.input.basename.replace(/\.?tap.*/ , "") + ".tap.relabeled.fasta" ;
}
out: [modified]
concatenate:
label: Concatenation
doc: Merge files into one
run:
class: CommandLineTool
stdout: |
${
var time = new Date().valueOf() ;
return 'merged.' + time + '.fasta' ;
}
inputs:
files:
type: File[]
inputBinding:
position: 1
outputs:
concatenated:
type: File
# format: fasta
outputBinding:
glob: merged.*.fasta
# type: stdout
baseCommand: [cat]
in:
files: relabel/modified
out: [concatenated]