{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "rsem_prepare_reference",
  "description": "RSEM is a software package for estimating gene and isoform expression levels from RNA-Seq data. This component prepares transcript references for RSEM.\n",
  "type": "object",
  "$defs": {
    "inputs": {
      "title": "Inputs",
      "type": "object",
      "description": "No description",
      "properties": {
        "reference_fasta_files": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "format": "path",
          "exists": true,
          "description": "Semi-colon separated list of Multi-FASTA formatted files OR a directory name",
          "help_text": "Type: `file`, multiple: `True`, required, direction: `input`, example: `[\"read1.fasta\"]`. "
        },
        "reference_name": {
          "type": "string",
          "description": "The name of the reference used",
          "help_text": "Type: `string`, multiple: `False`, required, example: `\"/ref/mm9\"`. "
        }
      }
    },
    "outputs": {
      "title": "Outputs",
      "type": "object",
      "description": "No description",
      "properties": {
        "output": {
          "type": "string",
          "format": "path",
          "description": "Directory containing reference files generated by RSEM.",
          "help_text": "Type: `file`, multiple: `False`, required, default: `\"$id.$key.output\"`, direction: `output`. ",
          "default": "$id.$key.output"
        }
      }
    },
    "other options": {
      "title": "Other options",
      "type": "object",
      "description": "No description",
      "properties": {
        "gtf": {
          "type": "string",
          "format": "path",
          "description": "Assume that 'reference_fasta_files' contains the sequence of a genome, and extract transcript reference sequences using the gene annotations specified in the GTF file",
          "help_text": "Type: `file`, multiple: `False`, direction: `input`, example: `\"annotations.gtf\"`. "
        },
        "gff3": {
          "type": "string",
          "format": "path",
          "description": "GFF3 annotation file",
          "help_text": "Type: `file`, multiple: `False`, direction: `input`, example: `\"annotations.gff\"`. "
        },
        "gff3_rna_patterns": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of transcript categories (separated by semi-colon)",
          "help_text": "Type: `string`, multiple: `True`, example: `[\"mRNA;rRNA\"]`. "
        },
        "gff3_genes_as_transcripts": {
          "type": "boolean",
          "description": "This option is designed for untypical organisms, such as viruses, whose GFF3 files only contain genes",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "trusted_sources": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of trusted sources (separated by semi-colon)",
          "help_text": "Type: `string`, multiple: `True`, example: `[\"ENSEMBL;HAVANA\"]`. "
        },
        "transcript_to_gene_map": {
          "type": "string",
          "format": "path",
          "description": "Use information from this file to map from transcript (isoform) ids to gene ids",
          "help_text": "Type: `file`, multiple: `False`, direction: `input`, example: `\"isoforms.txt\"`. "
        },
        "allele_to_gene_map": {
          "type": "string",
          "format": "path",
          "description": "Use information from <file> to provide gene_id and transcript_id information for each allele-specific transcript",
          "help_text": "Type: `file`, multiple: `False`, direction: `input`. "
        },
        "polyA": {
          "type": "boolean",
          "description": "Add poly(A) tails to the end of all reference isoforms",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "polyA_length": {
          "type": "integer",
          "description": "The length of the poly(A) tails to be added.",
          "help_text": "Type: `integer`, multiple: `False`, example: `125`. "
        },
        "no_polyA_subset": {
          "type": "string",
          "format": "path",
          "description": "Only meaningful if '--polyA' is specified",
          "help_text": "Type: `file`, multiple: `False`, direction: `input`, example: `\"transcript_ids.txt\"`. "
        },
        "bowtie": {
          "type": "boolean",
          "description": "Build Bowtie indices.",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "bowtie2": {
          "type": "boolean",
          "description": "Build Bowtie 2 indices.",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "star": {
          "type": "boolean",
          "description": "Build STAR indices.",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "star_sjdboverhang": {
          "type": "integer",
          "description": "Length of the genomic sequence around annotated junction",
          "help_text": "Type: `integer`, multiple: `False`, example: `100`. "
        },
        "hisat2_hca": {
          "type": "boolean",
          "description": "Build HISAT2 indices on the transcriptome according to Human Cell Atlas (HCA) SMART-Seq2 pipeline.",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "quiet": {
          "type": "boolean",
          "description": "Suppress the output of logging information.",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        }
      }
    },
    "prior-enhanced rsem options": {
      "title": "Prior-enhanced RSEM options",
      "type": "object",
      "description": "No description",
      "properties": {
        "prep_pRSEM": {
          "type": "boolean",
          "description": "A Boolean indicating whether to prepare reference files for pRSEM, including building Bowtie indices for a genome and selecting training set isoforms",
          "help_text": "Type: `boolean_true`, multiple: `False`, default: `false`. ",
          "default": false
        },
        "mappability_bigwig_file": {
          "type": "string",
          "format": "path",
          "description": "Full path to a whole-genome mappability file in bigWig format",
          "help_text": "Type: `file`, multiple: `False`, direction: `input`. "
        }
      }
    },
    "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/other options"
    },
    {
      "$ref": "#/$defs/prior-enhanced rsem options"
    },
    {
      "$ref": "#/$defs/nextflow input-output arguments"
    }
  ]
}
