{
  "$schema": "https://json-schema.org/draft/2020-12/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",
  "$defs": {
    "inputs": {
      "title": "Inputs",
      "type": "object",
      "description": "No description",
      "properties": {
        "forward_fastq": {
          "type": "string",
          "format": "path",
          "exists": true,
          "description": "Forward paired-end FASTQ file",
          "help_text": "Type: `file`, multiple: `False`, required, direction: `input`, example: `\"forward.fastq\"`. "
        },
        "reverse_fastq": {
          "type": "string",
          "format": "path",
          "exists": true,
          "description": "Reverse paired-end FASTQ file",
          "help_text": "Type: `file`, multiple: `False`, required, direction: `input`, example: `\"reverse.fastq\"`. "
        }
      }
    },
    "outputs": {
      "title": "Outputs",
      "type": "object",
      "description": "No description",
      "properties": {
        "assembled": {
          "type": "string",
          "format": "path",
          "description": "The output file containing assembled reads",
          "help_text": "Type: `file`, multiple: `False`, required, default: `\"$id.$key.assembled\"`, direction: `output`. ",
          "default": "$id.$key.assembled"
        },
        "unassembled_forward": {
          "type": "string",
          "format": "path",
          "description": "The output file containing forward reads that could not be assembled",
          "help_text": "Type: `file`, multiple: `False`, required, default: `\"$id.$key.unassembled_forward\"`, direction: `output`. ",
          "default": "$id.$key.unassembled_forward"
        },
        "unassembled_reverse": {
          "type": "string",
          "format": "path",
          "description": "The output file containing reverse reads that could not be assembled",
          "help_text": "Type: `file`, multiple: `False`, required, default: `\"$id.$key.unassembled_reverse\"`, direction: `output`. ",
          "default": "$id.$key.unassembled_reverse"
        },
        "discarded": {
          "type": "string",
          "format": "path",
          "description": "The output file containing reads that were discarded due to too low quality or too many uncalled bases",
          "help_text": "Type: `file`, multiple: `False`, required, default: `\"$id.$key.discarded\"`, direction: `output`. ",
          "default": "$id.$key.discarded"
        }
      }
    },
    "arguments": {
      "title": "Arguments",
      "type": "object",
      "description": "No description",
      "properties": {
        "p_value": {
          "type": "number",
          "description": "Specify a p-value for the statistical test",
          "help_text": "Type: `double`, multiple: `False`, example: `0.01`. "
        },
        "min_overlap": {
          "type": "integer",
          "description": "Specify the minimum overlap size",
          "help_text": "Type: `integer`, multiple: `False`, example: `10`. "
        },
        "max_assembly_length": {
          "type": "integer",
          "description": "Specify the maximum possible length of the assembled sequences",
          "help_text": "Type: `integer`, multiple: `False`, example: `0`. "
        },
        "min_assembly_length": {
          "type": "integer",
          "description": "Specify the minimum possible length of the assembled sequences",
          "help_text": "Type: `integer`, multiple: `False`, example: `0`. "
        },
        "min_trim_length": {
          "type": "integer",
          "description": "Specify  the  minimum length of reads after trimming the low quality part (see option -q)\n",
          "help_text": "Type: `integer`, multiple: `False`, example: `1`. "
        },
        "quality_threshold": {
          "type": "integer",
          "description": "Specify the quality threshold for trimming the low quality part of a read",
          "help_text": "Type: `integer`, multiple: `False`, example: `0`. "
        },
        "max_uncalled_base": {
          "type": "number",
          "description": "Specify the maximal proportion of uncalled bases in a read",
          "help_text": "Type: `double`, multiple: `False`, example: `1.0`. "
        },
        "test_method": {
          "type": "integer",
          "description": "Specify the type of statistical test",
          "help_text": "Type: `integer`, multiple: `False`, example: `1`. "
        },
        "emperical_freqs": {
          "type": "boolean",
          "description": "Disable empirical base frequencies.\n",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "score_method": {
          "type": "integer",
          "description": "Specify the scoring method",
          "help_text": "Type: `integer`, multiple: `False`, example: `2`. "
        },
        "phred_base": {
          "type": "integer",
          "description": "Base PHRED quality score.\n",
          "help_text": "Type: `integer`, multiple: `False`, example: `33`. "
        },
        "cap": {
          "type": "integer",
          "description": "Specify  the upper bound for the resulting quality score",
          "help_text": "Type: `integer`, multiple: `False`, example: `40`. "
        },
        "nbase": {
          "type": "boolean",
          "description": "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`, multiple: `False`, default: `false`. ",
          "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": "Path to an output directory.",
          "help_text": "Type: `string`, multiple: `False`, required, example: `\"output/\"`. "
        }
      }
    }
  },
  "allOf": [
    {
      "$ref": "#/$defs/inputs"
    },
    {
      "$ref": "#/$defs/outputs"
    },
    {
      "$ref": "#/$defs/arguments"
    },
    {
      "$ref": "#/$defs/nextflow input-output arguments"
    }
  ]
}
