JSON Scatter Gather Pipeline
Last updated
Was this helpful?
Was this helpful?
process sort {
cpus 1
memory '512 MB'
input:
path x
output:
path '*.sorted.tsv'
"""
sort -gk1,1 $x > ${x.baseName}.sorted.tsv
"""
}process merge {
cpus 1
memory '512 MB'
publishDir 'out', mode: 'move'
input:
path x
output:
path 'merged.tsv'
"""
cat $x > merged.tsv
"""
}nextflow.enable.dsl=2
include { sort } from './sort.nf'
include { split } from './split.nf'
include { merge } from './merge.nf'
params.myinput = "test.test"
workflow {
input_ch = Channel.fromPath(params.myinput)
split(input_ch)
sort(split.out.flatten())
merge(sort.out.collect())
}{
"fields": [
{
"id": "myinput",
"label": "myinput",
"type": "data",
"dataFilter": {
"dataType": "file",
"dataFormat": ["TSV"]
},
"maxValues": 1,
"minValues": 1
}
]
}function onSubmit(input) {
var validationErrors = [];
return {
'settings': input.settings,
'validationErrors': validationErrors
};
}function onRender(input) {
var validationErrors = [];
var validationWarnings = [];
if (input.currentAnalysisSettings === null) {
//null first time, to use it in the remainder of he javascript
input.currentAnalysisSettings = input.analysisSettings;
}
switch(input.context) {
case 'Initial': {
renderInitial(input, validationErrors, validationWarnings);
break;
}
case 'FieldChanged': {
renderFieldChanged(input, validationErrors, validationWarnings);
break;
}
case 'Edited': {
renderEdited(input, validationErrors, validationWarnings);
break;
}
default:
return {};
}
return {
'analysisSettings': input.currentAnalysisSettings,
'settingValues': input.settingValues,
'validationErrors': validationErrors,
'validationWarnings': validationWarnings
};
}
function renderInitial(input, validationErrors, validationWarnings) {
}
function renderEdited(input, validationErrors, validationWarnings) {
}
function renderFieldChanged(input, validationErrors, validationWarnings) {
}
function findField(input, fieldId){
var fields = input.currentAnalysisSettings['fields'];
for (var i = 0; i < fields.length; i++){
if (fields[i].id === fieldId) {
return fields[i];
}
}
return null;
}