{
"$schema": "http://json-schema.org/draft-07/schema",
"title": "pear",
"description": "PEAR is an ultrafast, memory-efficient and highly accurate pair-end read merger. It is fully parallelized and can run with as low as just a few kilobytes of memory.\n\nPEAR evaluates all possible paired-end read overlaps and without requiring the target fragment size as input. In addition, it implements a statistical test for minimizing false-positive results. Together with a highly optimized implementation, it can merge millions of paired end reads within a couple of minutes on a standard desktop computer.\n",
"type": "object",
"definitions": {

    
    
    "inputs" : {
    "title": "Inputs",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "forward_fastq": {
                "type":
                "string",
                "description": "Type: `file`, required, example: `forward.fastq`. Forward paired-end FASTQ file",
                "help_text": "Type: `file`, required, example: `forward.fastq`. Forward paired-end FASTQ file"
            
            }
    

        ,
                "reverse_fastq": {
                "type":
                "string",
                "description": "Type: `file`, required, example: `reverse.fastq`. Reverse paired-end FASTQ file",
                "help_text": "Type: `file`, required, example: `reverse.fastq`. Reverse paired-end FASTQ file"
            
            }
    

}
},
    
    
    "outputs" : {
    "title": "Outputs",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "assembled": {
                "type":
                "string",
                "description": "Type: `file`, required, default: `$id.$key.assembled.assembled`. The output file containing assembled reads",
                "help_text": "Type: `file`, required, default: `$id.$key.assembled.assembled`. The output file containing assembled reads. Can be compressed with gzip."
            ,
                "default": "$id.$key.assembled.assembled"
            }
    

        ,
                "unassembled_forward": {
                "type":
                "string",
                "description": "Type: `file`, required, default: `$id.$key.unassembled_forward.unassembled_forward`. The output file containing forward reads that could not be assembled",
                "help_text": "Type: `file`, required, default: `$id.$key.unassembled_forward.unassembled_forward`. The output file containing forward reads that could not be assembled. Can be compressed with gzip."
            ,
                "default": "$id.$key.unassembled_forward.unassembled_forward"
            }
    

        ,
                "unassembled_reverse": {
                "type":
                "string",
                "description": "Type: `file`, required, default: `$id.$key.unassembled_reverse.unassembled_reverse`. The output file containing reverse reads that could not be assembled",
                "help_text": "Type: `file`, required, default: `$id.$key.unassembled_reverse.unassembled_reverse`. The output file containing reverse reads that could not be assembled. Can be compressed with gzip."
            ,
                "default": "$id.$key.unassembled_reverse.unassembled_reverse"
            }
    

        ,
                "discarded": {
                "type":
                "string",
                "description": "Type: `file`, required, default: `$id.$key.discarded.discarded`. The output file containing reads that were discarded due to too low quality or too many uncalled bases",
                "help_text": "Type: `file`, required, default: `$id.$key.discarded.discarded`. The output file containing reads that were discarded due to too low quality or too many uncalled bases. Can be compressed with gzip."
            ,
                "default": "$id.$key.discarded.discarded"
            }
    

}
},
    
    
    "arguments" : {
    "title": "Arguments",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "p_value": {
                "type":
                "number",
                "description": "Type: `double`, example: `0.01`. Specify a p-value for the statistical test",
                "help_text": "Type: `double`, example: `0.01`. Specify a p-value for the statistical test. If the computed p-value of a possible assembly exceeds the specified p-value then paired-end read will not be assembled. Valid options are: 0.0001, 0.001, 0.01, 0.05 and 1.0. Setting 1.0 disables the test.\n"
            
            }
    

        ,
                "min_overlap": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `10`. Specify the minimum overlap size",
                "help_text": "Type: `integer`, example: `10`. Specify the minimum overlap size. The minimum overlap may be set to 1 when the statistical test is used. However, further restricting the minimum overlap size to a proper value may reduce false-positive assembles.\n"
            
            }
    

        ,
                "max_assembly_length": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `0`. Specify the maximum possible length of the assembled sequences",
                "help_text": "Type: `integer`, example: `0`. Specify the maximum possible length of the assembled sequences. Setting this value to 0 disables the restriction and assembled sequences may be arbitrary long.\n"
            
            }
    

        ,
                "min_assembly_length": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `0`. Specify the minimum possible length of the assembled sequences",
                "help_text": "Type: `integer`, example: `0`. Specify the minimum possible length of the assembled sequences. Setting this value to 0 disables the restriction and assembled sequences may be arbitrary short.\n"
            
            }
    

        ,
                "min_trim_length": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `1`. Specify  the  minimum length of reads after trimming the low quality part (see option -q)\n",
                "help_text": "Type: `integer`, example: `1`. Specify  the  minimum length of reads after trimming the low quality part (see option -q)\n"
            
            }
    

        ,
                "quality_threshold": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `0`. Specify the quality threshold for trimming the low quality part of a read",
                "help_text": "Type: `integer`, example: `0`. Specify the quality threshold for trimming the low quality part of a read. If the quality scores of two consecutive bases are strictly less than the specified threshold, the rest of the read will be trimmed.\n"
            
            }
    

        ,
                "max_uncalled_base": {
                "type":
                "number",
                "description": "Type: `double`, example: `1.0`. Specify the maximal proportion of uncalled bases in a read",
                "help_text": "Type: `double`, example: `1.0`. Specify the maximal proportion of uncalled bases in a read. Setting this value to 0 will cause PEAR to discard all reads containing uncalled bases. The other extreme setting is 1 which causes PEAR to process all reads independent on the number of uncalled bases.\n"
            
            }
    

        ,
                "test_method": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `1`. Specify the type of statistical test",
                "help_text": "Type: `integer`, example: `1`. Specify the type of statistical test. Two options are available. 1: Given the minimum allowed overlap, test using the highest OES. Note that due to its discrete nature, this test usually yields a lower p-value for the assembled read than the cut- off (specified by -p). For example, setting the cut-off to 0.05 using this test, the assembled reads might have an actual p-value of 0.02.\n2. Use the acceptance probability (m.a.p). This test methods computes the same probability as test method 1. However, it assumes that the minimal overlap is the observed overlap with the highest OES, instead of the one specified by -v. Therefore, this is not a valid statistical test and the \u0027p-value\u0027 is in fact the maximal probability for accepting the assembly. Nevertheless, we observed in practice that for the case the actual overlap sizes are relatively small, test 2 can correctly assemble more reads with only slightly higher false-positive rate.\n"
            
            }
    

        ,
                "emperical_freqs": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Disable empirical base frequencies",
                "help_text": "Type: `boolean_true`, default: `false`. Disable empirical base frequencies.\n"
            ,
                "default": "False"
            }
    

        ,
                "score_method": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `2`. Specify the scoring method",
                "help_text": "Type: `integer`, example: `2`. Specify the scoring method. 1. OES with +1 for match and -1 for mismatch. 2: Assembly score (AS). Use +1 for match and -1 for mismatch multiplied by base quality scores. 3: Ignore quality scores and use +1 for a match and -1 for a mismatch.\n"
            
            }
    

        ,
                "phred_base": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `33`. Base PHRED quality score",
                "help_text": "Type: `integer`, example: `33`. Base PHRED quality score.\n"
            
            }
    

        ,
                "cap": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `40`. Specify  the upper bound for the resulting quality score",
                "help_text": "Type: `integer`, example: `40`. Specify  the upper bound for the resulting quality score. If set to zero, capping is disabled.\n"
            
            }
    

        ,
                "nbase": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. When merging a base-pair that consists of two non-equal bases out of which none is degenerate, set the merged base to N and use the highest quality score of the two bases\n",
                "help_text": "Type: `boolean_true`, default: `false`. When merging a base-pair that consists of two non-equal bases out of which none is degenerate, set the merged base to N and use the highest quality score of the two bases\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"
    }
]
}
