{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "qualimap_rnaseq",
  "description": "Qualimap RNA-seq QC reports quality control metrics and bias estimations \nwhich are specific for whole transcriptome sequencing, including reads genomic \norigin, junction analysis, transcript coverage and 5’-3’ bias computation.\n",
  "type": "object",
  "$defs": {
    "input": {
      "title": "Input",
      "type": "object",
      "description": "No description",
      "properties": {
        "bam": {
          "type": "string",
          "format": "path",
          "exists": true,
          "description": "Path to the sequence alignment file in BAM format, produced by a splicing-aware aligner.",
          "help_text": "Type: `file`, multiple: `False`, required, direction: `input`, example: `\"alignment.bam\"`. "
        },
        "gtf": {
          "type": "string",
          "format": "path",
          "exists": true,
          "description": "Path to genomic annotations in Ensembl GTF format.",
          "help_text": "Type: `file`, multiple: `False`, required, direction: `input`, example: `\"annotations.gtf\"`. "
        }
      }
    },
    "output": {
      "title": "Output",
      "type": "object",
      "description": "No description",
      "properties": {
        "qc_results": {
          "type": "string",
          "format": "path",
          "description": "Text file containing the RNAseq QC results.",
          "help_text": "Type: `file`, multiple: `False`, required, default: `\"$id.$key.qc_results.txt\"`, direction: `output`, example: `\"rnaseq_qc_results.txt\"`. ",
          "default": "$id.$key.qc_results.txt"
        },
        "counts": {
          "type": "string",
          "format": "path",
          "description": "Output file for computed counts.",
          "help_text": "Type: `file`, multiple: `False`, default: `\"$id.$key.counts\"`, direction: `output`. ",
          "default": "$id.$key.counts"
        },
        "report": {
          "type": "string",
          "format": "path",
          "description": "Report output file",
          "help_text": "Type: `file`, multiple: `False`, default: `\"$id.$key.report.html\"`, direction: `output`, example: `\"report.html\"`. ",
          "default": "$id.$key.report.html"
        }
      }
    },
    "optional": {
      "title": "Optional",
      "type": "object",
      "description": "No description",
      "properties": {
        "num_pr_bases": {
          "type": "integer",
          "description": "Number of upstream/downstream nucleotide bases to compute 5'-3' bias (default = 100).",
          "help_text": "Type: `integer`, multiple: `False`. "
        },
        "num_tr_bias": {
          "type": "integer",
          "description": "Number of top highly expressed transcripts to compute 5'-3' bias (default = 1000).",
          "help_text": "Type: `integer`, multiple: `False`. "
        },
        "algorithm": {
          "type": "string",
          "description": "Counting algorithm (uniquely-mapped-reads (default) or proportional).",
          "help_text": "Type: `string`, multiple: `False`, choices: ``uniquely-mapped-reads`, `proportional``. ",
          "enum": [
            "uniquely-mapped-reads",
            "proportional"
          ]
        },
        "sequencing_protocol": {
          "type": "string",
          "description": "Sequencing library protocol (strand-specific-forward, strand-specific-reverse or non-strand-specific (default)).",
          "help_text": "Type: `string`, multiple: `False`, choices: ``non-strand-specific`, `strand-specific-reverse`, `strand-specific-forward``. ",
          "enum": [
            "non-strand-specific",
            "strand-specific-reverse",
            "strand-specific-forward"
          ]
        },
        "paired": {
          "type": "boolean",
          "description": "Setting this flag for paired-end experiments will result in counting fragments instead of reads.",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "sorted": {
          "type": "boolean",
          "description": "Setting this flag indicates that the input file is already sorted by name",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "java_memory_size": {
          "type": "string",
          "description": "maximum Java heap memory size, default = 4G.",
          "help_text": "Type: `string`, multiple: `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/input"
    },
    {
      "$ref": "#/$defs/output"
    },
    {
      "$ref": "#/$defs/optional"
    },
    {
      "$ref": "#/$defs/nextflow input-output arguments"
    }
  ]
}
