{
"$schema": "http://json-schema.org/draft-07/schema",
"title": "lofreq_call",
"description": "Call variants from a BAM file.\n\nLoFreq* (i.e. LoFreq version 2) is a fast and sensitive variant-caller for inferring SNVs and indels from next-generation sequencing data. It makes full use of base-call qualities and other sources of errors inherent in sequencing (e.g. mapping or base/indel alignment uncertainty), which are usually ignored by other methods or only used for filtering.\n\nLoFreq* can run on almost any type of aligned sequencing data (e.g. Illumina, IonTorrent or Pacbio) since no machine- or sequencing-technology dependent thresholds are used. It automatically adapts to changes in coverage and sequencing quality and can therefore be applied to a variety of data-sets e.g. viral/quasispecies, bacterial, metagenomics or somatic data.\n\nLoFreq* is very sensitive; most notably, it is able to predict variants below the average base-call quality (i.e. sequencing error rate). Each variant call is assigned a p-value which allows for rigorous false positive control. Even though it uses no approximations or heuristics, it is very efficient due to several runtime optimizations and also provides a (pseudo-)parallel implementation. LoFreq* is generic and fast enough to be applied to high-coverage data and large genomes. On a single processor it takes a minute to analyze Dengue genome sequencing data with nearly 4000X coverage, roughly one hour to call SNVs on a 600X coverage E.coli genome and also roughly an hour to run on a 100X coverage human exome dataset.\n",
"type": "object",
"definitions": {

    
    
    "inputs" : {
    "title": "Inputs",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "input": {
                "type":
                "string",
                "description": "Type: `file`, required, example: `normal.bam`. Input BAM file",
                "help_text": "Type: `file`, required, example: `normal.bam`. Input BAM file.\n"
            
            }
    

        ,
                "input_bai": {
                "type":
                "string",
                "description": "Type: `file`, required, example: `normal.bai`. Index file for the input BAM file",
                "help_text": "Type: `file`, required, example: `normal.bai`. Index file for the input BAM file.\n"
            
            }
    

        ,
                "ref": {
                "type":
                "string",
                "description": "Type: `file`, required, example: `reference.fasta`. Indexed reference fasta file (gzip supported)",
                "help_text": "Type: `file`, required, example: `reference.fasta`. Indexed reference fasta file (gzip supported). Default: none.\n"
            
            }
    

}
},
    
    
    "outputs" : {
    "title": "Outputs",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "out": {
                "type":
                "string",
                "description": "Type: `file`, required, default: `$id.$key.out.vcf`, example: `output.vcf`. Vcf output file",
                "help_text": "Type: `file`, required, default: `$id.$key.out.vcf`, example: `output.vcf`. Vcf output file. Default: stdout.\n"
            ,
                "default": "$id.$key.out.vcf"
            }
    

}
},
    
    
    "arguments" : {
    "title": "Arguments",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "region": {
                "type":
                "string",
                "description": "Type: `string`, example: `chr1:1000-2000`. Limit calls to this region (chrom:start-end)",
                "help_text": "Type: `string`, example: `chr1:1000-2000`. Limit calls to this region (chrom:start-end). Default: none.\n"
            
            }
    

        ,
                "bed": {
                "type":
                "string",
                "description": "Type: `file`, example: `regions.bed`. List of positions (chr pos) or regions (BED)",
                "help_text": "Type: `file`, example: `regions.bed`. List of positions (chr pos) or regions (BED). Default: none.\n"
            
            }
    

        ,
                "min_bq": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `6`. Skip any base with baseQ smaller than INT",
                "help_text": "Type: `integer`, example: `6`. Skip any base with baseQ smaller than INT. Default: 6.\n"
            
            }
    

        ,
                "min_alt_bq": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `6`. Skip alternate bases with baseQ smaller than INT",
                "help_text": "Type: `integer`, example: `6`. Skip alternate bases with baseQ smaller than INT. Default: 6.\n"
            
            }
    

        ,
                "def_alt_bq": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `0`. Overwrite baseQs of alternate bases (that passed bq filter) with this value (-1: use median ref-bq; 0: keep)",
                "help_text": "Type: `integer`, example: `0`. Overwrite baseQs of alternate bases (that passed bq filter) with this value (-1: use median ref-bq; 0: keep). Default: 0.\n"
            
            }
    

        ,
                "min_jq": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `0`. Skip any base with joinedQ smaller than INT",
                "help_text": "Type: `integer`, example: `0`. Skip any base with joinedQ smaller than INT. Default: 0.\n"
            
            }
    

        ,
                "min_alt_jq": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `0`. Skip alternate bases with joinedQ smaller than INT",
                "help_text": "Type: `integer`, example: `0`. Skip alternate bases with joinedQ smaller than INT. Default: 0.\n"
            
            }
    

        ,
                "def_alt_jq": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `0`. Overwrite joinedQs of alternate bases (that passed jq filter) with this value (-1: use median ref-bq; 0: keep)",
                "help_text": "Type: `integer`, example: `0`. Overwrite joinedQs of alternate bases (that passed jq filter) with this value (-1: use median ref-bq; 0: keep). Default: 0.\n"
            
            }
    

        ,
                "no_baq": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Disable use of base-alignment quality (BAQ)",
                "help_text": "Type: `boolean_true`, default: `false`. Disable use of base-alignment quality (BAQ).\n"
            ,
                "default": "False"
            }
    

        ,
                "no_idaq": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Don\u0027t use IDAQ values (NOT recommended under ANY circumstances other than debugging)",
                "help_text": "Type: `boolean_true`, default: `false`. Don\u0027t use IDAQ values (NOT recommended under ANY circumstances other than debugging).\n"
            ,
                "default": "False"
            }
    

        ,
                "del_baq": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Delete pre-existing BAQ values, i",
                "help_text": "Type: `boolean_true`, default: `false`. Delete pre-existing BAQ values, i.e. compute even if already present in BAM.\n"
            ,
                "default": "False"
            }
    

        ,
                "no_ext_baq": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Use \u0027normal\u0027 BAQ (samtools default) instead of extended BAQ (both computed on the fly if not already present in lb tag)",
                "help_text": "Type: `boolean_true`, default: `false`. Use \u0027normal\u0027 BAQ (samtools default) instead of extended BAQ (both computed on the fly if not already present in lb tag).\n"
            ,
                "default": "False"
            }
    

        ,
                "min_mq": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `0`. Skip reads with mapping quality smaller than INT",
                "help_text": "Type: `integer`, example: `0`. Skip reads with mapping quality smaller than INT. Default: 0.\n"
            
            }
    

        ,
                "max_mq": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `255`. Cap mapping quality at INT",
                "help_text": "Type: `integer`, example: `255`. Cap mapping quality at INT. Default: 255.\n"
            
            }
    

        ,
                "no_mq": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Don\u0027t merge mapping quality in LoFreq\u0027s model",
                "help_text": "Type: `boolean_true`, default: `false`. Don\u0027t merge mapping quality in LoFreq\u0027s model.\n"
            ,
                "default": "False"
            }
    

        ,
                "call_indels": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Enable indel calls (note: preprocess your file to include indel alignment qualities!)",
                "help_text": "Type: `boolean_true`, default: `false`. Enable indel calls (note: preprocess your file to include indel alignment qualities!).\n"
            ,
                "default": "False"
            }
    

        ,
                "only_indels": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Only call indels; no SNVs",
                "help_text": "Type: `boolean_true`, default: `false`. Only call indels; no SNVs.\n"
            ,
                "default": "False"
            }
    

        ,
                "src_qual": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Enable computation of source quality",
                "help_text": "Type: `boolean_true`, default: `false`. Enable computation of source quality.\n"
            ,
                "default": "False"
            }
    

        ,
                "ign_vcf": {
                "type":
                "string",
                "description": "Type: `file`, example: `variants.vcf`. Ignore variants in this vcf file for source quality computation",
                "help_text": "Type: `file`, example: `variants.vcf`. Ignore variants in this vcf file for source quality computation. Multiple files can be given separated by commas.\n"
            
            }
    

        ,
                "def_nm_q": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `-1`. If \u003e= 0, then replace non-match base qualities with this default value",
                "help_text": "Type: `integer`, example: `-1`. If \u003e= 0, then replace non-match base qualities with this default value. Default: -1.\n"
            
            }
    

        ,
                "sig": {
                "type":
                "number",
                "description": "Type: `double`, example: `0.01`. P-Value cutoff / significance level",
                "help_text": "Type: `double`, example: `0.01`. P-Value cutoff / significance level. Default: 0.010000.\n"
            
            }
    

        ,
                "bonf": {
                "type":
                "string",
                "description": "Type: `string`, example: `dynamic`. Bonferroni factor",
                "help_text": "Type: `string`, example: `dynamic`. Bonferroni factor. \u0027dynamic\u0027 (increase per actually performed test) or INT. Default: Dynamic.\n"
            
            }
    

        ,
                "min_cov": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `1`. Test only positions having at least this coverage",
                "help_text": "Type: `integer`, example: `1`. Test only positions having at least this coverage. Default: 1.\n(note: without --no-default-filter default filters (incl. coverage) kick in after predictions are done).\n"
            
            }
    

        ,
                "max_depth": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `1000000`. Cap coverage at this depth",
                "help_text": "Type: `integer`, example: `1000000`. Cap coverage at this depth. Default: 1000000.\n"
            
            }
    

        ,
                "illumina_13": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Assume the quality is Illumina-1",
                "help_text": "Type: `boolean_true`, default: `false`. Assume the quality is Illumina-1.3-1.7/ASCII+64 encoded.\n"
            ,
                "default": "False"
            }
    

        ,
                "use_orphan": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Count anomalous read pairs (i",
                "help_text": "Type: `boolean_true`, default: `false`. Count anomalous read pairs (i.e. where mate is not aligned properly).\n"
            ,
                "default": "False"
            }
    

        ,
                "plp_summary_only": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. No variant calling",
                "help_text": "Type: `boolean_true`, default: `false`. No variant calling. Just output pileup summary per column.\n"
            ,
                "default": "False"
            }
    

        ,
                "no_default_filter": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Don\u0027t run default \u0027lofreq filter\u0027 automatically after calling variants",
                "help_text": "Type: `boolean_true`, default: `false`. Don\u0027t run default \u0027lofreq filter\u0027 automatically after calling variants.\n"
            ,
                "default": "False"
            }
    

        ,
                "force_overwrite": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Overwrite any existing output",
                "help_text": "Type: `boolean_true`, default: `false`. Overwrite any existing output.\n"
            ,
                "default": "False"
            }
    

        ,
                "verbose": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Be verbose",
                "help_text": "Type: `boolean_true`, default: `false`. Be verbose.\n"
            ,
                "default": "False"
            }
    

        ,
                "debug": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Enable debugging",
                "help_text": "Type: `boolean_true`, default: `false`. Enable debugging.\n"
            ,
                "default": "False"
            }
    

}
},
    
    
    "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/arguments"
    },

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