/
decompress_mate_pair.workflow.cwl
118 lines (102 loc) · 2.94 KB
/
decompress_mate_pair.workflow.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
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
cwlVersion: v1.0
class: Workflow
label: Decompress
doc: Decompress mate pair fastq files
requirements:
- class: StepInputExpressionRequirement
- class: InlineJavascriptRequirement
- class: ScatterFeatureRequirement
- class: MultipleInputFeatureRequirement
inputs:
mate_pair:
type:
type: record
label: mate_pair
fields:
forward:
type: File
reverse:
type: File
stage:
type: string
default: "0010"
outputs:
mate_pair_files:
type: File[]
outputSource: [decompress_forward/decompressed , decompress_reverse/decompressed]
mate_pair_decompressed:
outputSource: make_return/mate_pair
type: Any
steps:
decompress_forward:
label: STAGE:0010
run: ../Tools/decompress.tool.cwl
in:
file:
source: mate_pair
valueFrom: |
${ return self.forward }
output:
source: mate_pair
valueFrom: |
${
if (!self.forward.basename.match(/\.tap\./) ) {
var prefix = self.forward.basename;
prefix = prefix.replace( /\.fastq.gz$/ , '');
prefix = prefix.replace(/\./ , "_") ;
return prefix + ".tap." + "001" + ".fastq";
} else if (self.forward.basename.match(/\.gz$/) ) {
return self.forward.basename.replace(/\.gz$/ , '') ;
} else {
return self.forward.basename ;
}
}
out: [decompressed]
decompress_reverse:
label: STAGE:0010
run: ../Tools/decompress.tool.cwl
in:
file:
source: mate_pair
valueFrom: |
${ return self.reverse }
output:
source: mate_pair
valueFrom: |
${
if (!self.reverse.basename.match(/\.tap\./) ) {
var prefix = self.reverse.basename;
prefix = prefix.replace( /\.fastq.gz$/ , '');
prefix = prefix.replace(/\./ , "_") ;
return prefix + ".tap." + "001" + ".fastq";
} else if (self.reverse.basename.match(/\.gz$/) ) {
return self.reverse.basename.replace(/\.gz$/ , '') ;
} else {
return self.reverse.basename ;
}
}
out: [decompressed]
make_return:
run:
cwlVersion: v1.0
class: ExpressionTool
inputs:
forward:
type: File
reverse:
type: File
outputs:
mate_pair:
type: Any
expression: |
${
var mate_pair = {
"forward" : inputs.forward ,
"reverse" : inputs.reverse
};
return { 'mate_pair' : mate_pair} ;
}
in:
forward: decompress_forward/decompressed
reverse: decompress_reverse/decompressed
out: [mate_pair]