-
Notifications
You must be signed in to change notification settings - Fork 4
/
sc_atac_seq_prep_process_analyze.cwl
169 lines (141 loc) · 4.06 KB
/
sc_atac_seq_prep_process_analyze.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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
cwlVersion: v1.2
class: Workflow
requirements:
SubworkflowFeatureRequirement: {}
ScatterFeatureRequirement: {}
InlineJavascriptRequirement: {}
inputs:
assay: string
sequence_directory: Directory[]
threads: int?
exclude_bam: boolean?
metadata_file: File?
outputs:
fastqc_dir:
type: Directory[]
outputSource: sc_atac_seq_prep_process_init/fastqc_dir
bam_file:
type: File?
outputSource: maybe_save_bam_file/bam_output
fragment_file:
type: File
outputSource: sc_atac_seq_prep_process_init/fragment_file
Fragment_Size_Distribution_pdf:
type: File
outputSource: sc_atac_seq_prep_process_init/Fragment_Size_Distribution_pdf
TSS_by_Unique_Frags_pdf:
type: File
outputSource: sc_atac_seq_prep_process_init/TSS_by_Unique_Frags_pdf
QC-Sample-FragSizes-TSSProfile_pdf:
type: File
outputSource: sc_atac_seq_prep_process_init/QC-Sample-FragSizes-TSSProfile_pdf
QC-Sample-Statistics_pdf:
type: File
outputSource: sc_atac_seq_prep_process_init/QC-Sample-Statistics_pdf
TSS-vs-Frags_pdf:
type: File
outputSource: sc_atac_seq_prep_process_init/TSS-vs-Frags_pdf
Peak-Call-Summary_pdf:
type: File
outputSource: analyze_with_ArchR/Peak-Call-Summary_pdf
Plot-UMAP-Sample-Clusters_pdf:
type: File
outputSource: analyze_with_ArchR/Plot-UMAP-Sample-Clusters_pdf
gene_row_data_csv:
type: File
outputSource: sc_atac_seq_prep_process_init/gene_row_data_csv
cell_column_data_csv:
type: File
outputSource: sc_atac_seq_prep_process_init/cell_column_data_csv
umap_coords_clusters_csv:
type: File
outputSource: analyze_with_ArchR/umap_coords_clusters_csv
cell_by_bin_h5ad:
type: File
outputSource: sc_atac_seq_prep_process_init/cell_by_bin_h5ad
cell_by_gene_h5ad:
type: File
outputSource: sc_atac_seq_prep_process_init/cell_by_gene_h5ad
genome_build_json:
type: File
outputSource: sc_atac_seq_prep_process_init/genome_build_json
peaks_csv:
type: File
outputSource: analyze_with_ArchR/peaks_csv
peaks_bed:
type: File
outputSource: analyze_with_ArchR/peaks_bed
qc_report:
type: File
outputSource: qc_measures/qc_report
steps:
sc_atac_seq_prep_process_init:
run: steps/sc_atac_seq_prep_process_init.cwl
in:
assay: assay
sequence_directory: sequence_directory
threads: threads
metadata_file: metadata_file
out:
- fastqc_dir
- bam_file
- bam_index
- gene_row_data_csv
- cell_column_data_csv
- fragment_file
- TSS_by_Unique_Frags_pdf
- Fragment_Size_Distribution_pdf
- image_file
- archr_project
- cell_by_bin_h5ad
- cell_by_gene_h5ad
- QC-Sample-FragSizes-TSSProfile_pdf
- QC-Sample-Statistics_pdf
- TSS-vs-Frags_pdf
- genome_build_json
analyze_with_ArchR:
run: steps/sc_atac_seq_analyze_steps/archr_clustering.cwl
in:
image_file: sc_atac_seq_prep_process_init/image_file
archr_project: sc_atac_seq_prep_process_init/archr_project
out:
- Peak-Call-Summary_pdf
- Plot-UMAP-Sample-Clusters_pdf
- peaks_bed
- peaks_csv
- umap_coords_clusters_csv
qc_measures:
run: steps/qc_measures.cwl
in:
bam_file: sc_atac_seq_prep_process_init/bam_file
bam_index: sc_atac_seq_prep_process_init/bam_index
peak_file: analyze_with_ArchR/peaks_bed
cell_by_bin_h5ad: sc_atac_seq_prep_process_init/cell_by_bin_h5ad
out:
- qc_report
#thanks to @pvanheus in the CWL gitter instance
maybe_save_bam_file:
in:
bam_input: sc_atac_seq_prep_process_init/bam_file
exclude_bam: exclude_bam
out:
- bam_output
run:
class: ExpressionTool
inputs:
bam_input:
type: File
exclude_bam:
type: boolean?
default: false
outputs:
bam_output:
type: File?
expression: |-
${
if (inputs.exclude_bam) {
return { 'bam_output': null };
} else {
return { 'bam_output': inputs.bam_input };
}
}