{
"$schema": "http://json-schema.org/draft-07/schema",
"title": "bedtools_intersect",
"description": "bedtools intersect allows one to screen for overlaps between two sets of genomic features. \nMoreover, it allows one to have fine control as to how the intersections are reported. \nbedtools intersect works with both BED/GFF/VCF and BAM files as input.\n",
"type": "object",
"definitions": {

    
    
    "inputs" : {
    "title": "Inputs",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "input_a": {
                "type":
                "string",
                "description": "Type: `file`, required, example: `input_a.bed`. The input file (BED/GFF/VCF/BAM) to be used as the -a file",
                "help_text": "Type: `file`, required, example: `input_a.bed`. The input file (BED/GFF/VCF/BAM) to be used as the -a file.\n"
            
            }
    

        ,
                "input_b": {
                "type":
                "string",
                "description": "Type: List of `file`, required, example: `input_b.bed`, multiple_sep: `\";\"`. The input file(s) (BED/GFF/VCF/BAM) to be used as the -b file(s)",
                "help_text": "Type: List of `file`, required, example: `input_b.bed`, multiple_sep: `\";\"`. The input file(s) (BED/GFF/VCF/BAM) to be used as the -b file(s).\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 BED file",
                "help_text": "Type: `file`, required, default: `$id.$key.output.bed`, example: `output.bed`. The output BED file. \n"
            ,
                "default": "$id.$key.output.bed"
            }
    

}
},
    
    
    "options" : {
    "title": "Options",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "write_a": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Write the original A entry for each overlap",
                "help_text": "Type: `boolean_true`, default: `false`. Write the original A entry for each overlap."
            ,
                "default": "False"
            }
    

        ,
                "write_b": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Write the original B entry for each overlap",
                "help_text": "Type: `boolean_true`, default: `false`. Write the original B entry for each overlap. \nUseful for knowing _what_ A overlaps. Restricted by -f and -r.\n"
            ,
                "default": "False"
            }
    

        ,
                "left_outer_join": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Perform a \"left outer join\"",
                "help_text": "Type: `boolean_true`, default: `false`. Perform a \"left outer join\". That is, for each feature in A report each overlap with B. \nIf no overlaps are found, report a NULL feature for B.\n"
            ,
                "default": "False"
            }
    

        ,
                "write_overlap": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Write the original A and B entries plus the number of base pairs of overlap between the two features",
                "help_text": "Type: `boolean_true`, default: `false`. Write the original A and B entries plus the number of base pairs of overlap between the two features.\n- Overlaps restricted by -f and -r. \n  Only A features with overlap are reported.\n"
            ,
                "default": "False"
            }
    

        ,
                "write_overlap_plus": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Write the original A and B entries plus the number of base pairs of overlap between the two features",
                "help_text": "Type: `boolean_true`, default: `false`. Write the original A and B entries plus the number of base pairs of overlap between the two features.\n- Overlaps restricted by -f and -r. \n  However, A features w/o overlap are also reported with a NULL B feature and overlap = 0.\n"
            ,
                "default": "False"
            }
    

        ,
                "report_A_if_no_overlap": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Write the original A entry _if_ no overlap is found",
                "help_text": "Type: `boolean_true`, default: `false`. Write the original A entry _if_ no overlap is found. \n- In other words, just report the fact \u003e=1 hit was found.\n- Overlaps restricted by -f and -r. \n"
            ,
                "default": "False"
            }
    

        ,
                "number_of_overlaps_A": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. For each entry in A, report the number of overlaps with B",
                "help_text": "Type: `boolean_true`, default: `false`. For each entry in A, report the number of overlaps with B.\n- Reports 0 for A entries that have no overlap with B.\n- Overlaps restricted by -f and -r.\n"
            ,
                "default": "False"
            }
    

        ,
                "report_no_overlaps_A": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Only report those entries in A that have _no overlaps_ with B",
                "help_text": "Type: `boolean_true`, default: `false`. Only report those entries in A that have _no overlaps_ with B.\n- Similar to \"grep -v\" (an homage).\n"
            ,
                "default": "False"
            }
    

        ,
                "uncompressed_bam": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Write uncompressed BAM output",
                "help_text": "Type: `boolean_true`, default: `false`. Write uncompressed BAM output. Default writes compressed BAM."
            ,
                "default": "False"
            }
    

        ,
                "same_strand": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Require same strandedness",
                "help_text": "Type: `boolean_true`, default: `false`. Require same strandedness.  That is, only report hits in B.\nthat overlap A on the _same_ strand.\n- By default, overlaps are reported without respect to strand.\n"
            ,
                "default": "False"
            }
    

        ,
                "opposite_strand": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Require different strandedness",
                "help_text": "Type: `boolean_true`, default: `false`. Require different strandedness.  That is, only report hits in B\nthat overlap A on the _opposite_ strand.\n- By default, overlaps are reported without respect to strand.\n"
            ,
                "default": "False"
            }
    

        ,
                "min_overlap_A": {
                "type":
                "number",
                "description": "Type: `double`, example: `0.5`. Minimum overlap required as a fraction of A",
                "help_text": "Type: `double`, example: `0.5`. Minimum overlap required as a fraction of A.\n- Default is 1E-9 (i.e., 1bp).\n- FLOAT (e.g. 0.50)\n"
            
            }
    

        ,
                "min_overlap_B": {
                "type":
                "number",
                "description": "Type: `double`, example: `0.5`. Minimum overlap required as a fraction of B",
                "help_text": "Type: `double`, example: `0.5`. Minimum overlap required as a fraction of B.\n- Default is 1E-9 (i.e., 1bp).\n- FLOAT (e.g. 0.50)\n"
            
            }
    

        ,
                "reciprocal_overlap": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Require that the fraction overlap be reciprocal for A AND B",
                "help_text": "Type: `boolean_true`, default: `false`. Require that the fraction overlap be reciprocal for A AND B.\n- In other words, if -f is 0.90 and -r is used, this requires\nthat B overlap 90% of A and A _also_ overlaps 90% of B.\n"
            ,
                "default": "False"
            }
    

        ,
                "either_overlap": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Require that the minimum fraction be satisfied for A OR B",
                "help_text": "Type: `boolean_true`, default: `false`. Require that the minimum fraction be satisfied for A OR B.\n- In other words, if -e is used with -f 0.90 and -F 0.10 this requires\nthat either 90% of A is covered OR 10% of B is covered.\nWithout -e, both fractions would have to be satisfied.\n"
            ,
                "default": "False"
            }
    

        ,
                "split": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Treat \"split\" BAM or BED12 entries as distinct BED intervals",
                "help_text": "Type: `boolean_true`, default: `false`. Treat \"split\" BAM or BED12 entries as distinct BED intervals."
            ,
                "default": "False"
            }
    

        ,
                "genome": {
                "type":
                "string",
                "description": "Type: `file`, example: `genome.txt`. Provide a genome file to enforce consistent chromosome \nsort order across input files",
                "help_text": "Type: `file`, example: `genome.txt`. Provide a genome file to enforce consistent chromosome \nsort order across input files. Only applies when used \nwith -sorted option.\n"
            
            }
    

        ,
                "nonamecheck": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. For sorted data, don\u0027t throw an error if the file \nhas different naming conventions for the same chromosome \n(e",
                "help_text": "Type: `boolean_true`, default: `false`. For sorted data, don\u0027t throw an error if the file \nhas different naming conventions for the same chromosome \n(e.g., \"chr1\" vs \"chr01\").\n"
            ,
                "default": "False"
            }
    

        ,
                "sorted": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Use the \"chromsweep\" algorithm for sorted (-k1,1 -k2,2n) input",
                "help_text": "Type: `boolean_true`, default: `false`. Use the \"chromsweep\" algorithm for sorted (-k1,1 -k2,2n) input.\n"
            ,
                "default": "False"
            }
    

        ,
                "names": {
                "type":
                "string",
                "description": "Type: `string`. When using multiple databases, provide an alias \nfor each that will appear instead of a fileId when \nalso printing the DB record",
                "help_text": "Type: `string`. When using multiple databases, provide an alias \nfor each that will appear instead of a fileId when \nalso printing the DB record.\n"
            
            }
    

        ,
                "filenames": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. When using multiple databases, show each complete filename instead of a fileId when also printing the DB record",
                "help_text": "Type: `boolean_true`, default: `false`. When using multiple databases, show each complete filename instead of a fileId when also printing the DB record."
            ,
                "default": "False"
            }
    

        ,
                "sortout": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. When using multiple databases, sort the output DB hits for each record",
                "help_text": "Type: `boolean_true`, default: `false`. When using multiple databases, sort the output DB hits for each record."
            ,
                "default": "False"
            }
    

        ,
                "bed": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. If using BAM input, write output as BED",
                "help_text": "Type: `boolean_true`, default: `false`. If using BAM input, write output as BED."
            ,
                "default": "False"
            }
    

        ,
                "header": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Print the header from the A file prior to results",
                "help_text": "Type: `boolean_true`, default: `false`. Print the header from the A file prior to results."
            ,
                "default": "False"
            }
    

        ,
                "no_buffer_output": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Disable buffered output",
                "help_text": "Type: `boolean_true`, default: `false`. Disable buffered output. Using this option will cause each line\nof output to be printed as it is generated, rather than saved\nin a buffer. This will make printing large output files \nnoticeably slower, but can be useful in conjunction with\nother software tools and scripts that need to process one\nline of bedtools output at a time.\n"
            ,
                "default": "False"
            }
    

        ,
                "io_buffer_size": {
                "type":
                "integer",
                "description": "Type: `integer`. Specify amount of memory to use for input buffer",
                "help_text": "Type: `integer`. Specify amount of memory to use for input buffer.\nTakes an integer argument. Optional suffixes K/M/G supported.\nNote: currently has no effect with compressed files.       \n"
            
            }
    

}
},
    
    
    "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"
    }
]
}
