{
"$schema": "http://json-schema.org/draft-07/schema",
"title": "bedtools_groupby",
"description": "Summarizes a dataset column based upon common column groupings. \nAkin to the SQL \"group by\" command.\n",
"type": "object",
"definitions": {

    
    
    "inputs" : {
    "title": "Inputs",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "input": {
                "type":
                "string",
                "description": "Type: `file`, required, example: `input_a.bed`. The input BED file to be used",
                "help_text": "Type: `file`, required, example: `input_a.bed`. The input BED file to be used.\n"
            
            }
    

}
},
    
    
    "outputs" : {
    "title": "Outputs",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "output": {
                "type":
                "string",
                "description": "Type: `file`, required, default: `$id.$key.output.bed`, example: `output.bed`. The output groupby BED file",
                "help_text": "Type: `file`, required, default: `$id.$key.output.bed`, example: `output.bed`. The output groupby BED file. \n"
            ,
                "default": "$id.$key.output.bed"
            }
    

}
},
    
    
    "options" : {
    "title": "Options",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "groupby": {
                "type":
                "string",
                "description": "Type: `string`, required. Specify the columns (1-based) for the grouping",
                "help_text": "Type: `string`, required. Specify the columns (1-based) for the grouping.\nThe columns must be comma separated.\n- Default: 1,2,3  \n"
            
            }
    

        ,
                "column": {
                "type":
                "integer",
                "description": "Type: `integer`, required. Specify the column (1-based) that should be summarized",
                "help_text": "Type: `integer`, required. Specify the column (1-based) that should be summarized.\n"
            
            }
    

        ,
                "operation": {
                "type":
                "string",
                "description": "Type: `string`. Specify the operation that should be applied to opCol",
                "help_text": "Type: `string`. Specify the operation that should be applied to opCol.\nValid operations:\n    sum, count, count_distinct, min, max,\n    mean, median, mode, antimode,\n    stdev, sstdev (sample standard dev.),\n    collapse (i.e., print a comma separated list (duplicates allowed)), \n    distinct (i.e., print a comma separated list (NO duplicates allowed)), \n    distinct_sort_num (as distinct, but sorted numerically, ascending), \n    distinct_sort_num_desc (as distinct, but sorted numerically, descending), \n    concat   (i.e., merge values into a single, non-delimited string), \n    freqdesc (i.e., print desc. list of values:freq)\n    freqasc (i.e., print asc. list of values:freq)\n    first (i.e., print first value)\n    last (i.e., print last value)\n\nDefault value: sum   \n\nIf there is only column, but multiple operations, all operations will be\napplied on that column. Likewise, if there is only one operation, but\nmultiple columns, that operation will be applied to all columns.\nOtherwise, the number of columns must match the the number of operations,\nand will be applied in respective order.\nE.g., \"-c 5,4,6 -o sum,mean,count\" will give the sum of column 5,\nthe mean of column 4, and the count of column 6.\nThe order of output columns will match the ordering given in the command.\n"
            
            }
    

        ,
                "full": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Print all columns from input file",
                "help_text": "Type: `boolean_true`, default: `false`. Print all columns from input file. The first line in the group is used.\nDefault: print only grouped columns.\n"
            ,
                "default": "False"
            }
    

        ,
                "inheader": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Input file has a header line - the first line will be ignored",
                "help_text": "Type: `boolean_true`, default: `false`. Input file has a header line - the first line will be ignored.\n"
            ,
                "default": "False"
            }
    

        ,
                "outheader": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Print header line in the output, detailing the column names",
                "help_text": "Type: `boolean_true`, default: `false`. Print header line in the output, detailing the column names. \nIf the input file has headers (-inheader), the output file\nwill use the input\u0027s column names.\nIf the input file has no headers, the output file\nwill use \"col_1\", \"col_2\", etc. as the column names.\n"
            ,
                "default": "False"
            }
    

        ,
                "header": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. same as \u0027-inheader -outheader\u0027",
                "help_text": "Type: `boolean_true`, default: `false`. same as \u0027-inheader -outheader\u0027."
            ,
                "default": "False"
            }
    

        ,
                "ignorecase": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Group values regardless of upper/lower case",
                "help_text": "Type: `boolean_true`, default: `false`. Group values regardless of upper/lower case.\n"
            ,
                "default": "False"
            }
    

        ,
                "precision": {
                "type":
                "integer",
                "description": "Type: `integer`, default: `5`. Sets the decimal precision for output",
                "help_text": "Type: `integer`, default: `5`. Sets the decimal precision for output. \n"
            ,
                "default": "5"
            }
    

        ,
                "delimiter": {
                "type":
                "string",
                "description": "Type: `string`, default: `,`, example: `|`. Specify a custom delimiter for the collapse operations",
                "help_text": "Type: `string`, default: `,`, example: `|`. Specify a custom delimiter for the collapse operations.\n"
            ,
                "default": ","
            }
    

}
},
    
    
    "nextflow input-output arguments" : {
    "title": "Nextflow input-output arguments",
    "type": "object",
    "description": "Input/output parameters for Nextflow itself. Please note that both publishDir and publish_dir are supported but at least one has to be configured.",
    "properties": {
    
        
                "publish_dir": {
                "type":
                "string",
                "description": "Type: `string`, required, example: `output/`. Path to an output directory",
                "help_text": "Type: `string`, required, example: `output/`. Path to an output directory."
            
            }
    

        ,
                "param_list": {
                "type":
                "string",
                "description": "Type: `string`, example: `my_params.yaml`. Allows inputting multiple parameter sets to initialise a Nextflow channel",
                "help_text": "Type: `string`, example: `my_params.yaml`. Allows inputting multiple parameter sets to initialise a Nextflow channel. A `param_list` can either be a list of maps, a csv file, a json file, a yaml file, or simply a yaml blob.\n\n* A list of maps (as-is) where the keys of each map corresponds to the arguments of the pipeline. Example: in a `nextflow.config` file: `param_list: [ [\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027], [\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027] ]`.\n* A csv file should have column names which correspond to the different arguments of this pipeline. Example: `--param_list data.csv` with columns `id,input`.\n* A json or a yaml file should be a list of maps, each of which has keys corresponding to the arguments of the pipeline. Example: `--param_list data.json` with contents `[ {\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027}, {\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027} ]`.\n* A yaml blob can also be passed directly as a string. Example: `--param_list \"[ {\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027}, {\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027} ]\"`.\n\nWhen passing a csv, json or yaml file, relative path names are relativized to the location of the parameter file. No relativation is performed when `param_list` is a list of maps (as-is) or a yaml blob.",
                "hidden": true
            
            }
    

}
}
},
"allOf": [

    {
    "$ref": "#/definitions/inputs"
    },

    {
    "$ref": "#/definitions/outputs"
    },

    {
    "$ref": "#/definitions/options"
    },

    {
    "$ref": "#/definitions/nextflow input-output arguments"
    }
]
}
