{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "bcl_convert",
  "description": "Convert bcl files to fastq files using bcl-convert.\nInformation about upgrading from bcl2fastq via\n[Upgrading from bcl2fastq to BCL Convert](https://emea.support.illumina.com/bulletins/2020/10/upgrading-from-bcl2fastq-to-bcl-convert.html)\nand [BCL Convert Compatible Products](https://support.illumina.com/sequencing/sequencing_software/bcl-convert/compatibility.html)\n",
  "type": "object",
  "$defs": {
    "input arguments": {
      "title": "Input arguments",
      "type": "object",
      "description": "No description",
      "properties": {
        "bcl_input_directory": {
          "type": "string",
          "format": "path",
          "exists": true,
          "description": "Input run directory",
          "help_text": "Type: `file`, multiple: `False`, required, direction: `input`, example: `\"bcl_dir\"`. "
        },
        "sample_sheet": {
          "type": "string",
          "format": "path",
          "description": "Path to SampleSheet.csv file (default searched for in --bcl_input_directory)",
          "help_text": "Type: `file`, multiple: `False`, direction: `input`, example: `\"bcl_dir/sample_sheet.csv\"`. "
        },
        "run_info": {
          "type": "string",
          "format": "path",
          "description": "Path to RunInfo.xml file (default root of BCL input directory)",
          "help_text": "Type: `file`, multiple: `False`, direction: `input`, example: `\"bcl_dir/RunInfo.xml\"`. "
        }
      }
    },
    "lane and tile settings": {
      "title": "Lane and tile settings",
      "type": "object",
      "description": "No description",
      "properties": {
        "bcl_only_lane": {
          "type": "integer",
          "description": "Convert only specified lane number (default all lanes)",
          "help_text": "Type: `integer`, multiple: `False`, example: `1`. "
        },
        "first_tile_only": {
          "type": "boolean",
          "description": "Only convert first tile of input (for testing & debugging)",
          "help_text": "Type: `boolean`, multiple: `False`, example: `true`. "
        },
        "tiles": {
          "type": "string",
          "description": "Process only a subset of tiles by a regular expression",
          "help_text": "Type: `string`, multiple: `False`, example: `\"s_[0-9]+_1\"`. "
        },
        "exclude_tiles": {
          "type": "string",
          "description": "Exclude set of tiles by a regular expression",
          "help_text": "Type: `string`, multiple: `False`, example: `\"s_[0-9]+_1\"`. "
        }
      }
    },
    "resource arguments": {
      "title": "Resource arguments",
      "type": "object",
      "description": "No description",
      "properties": {
        "shared_thread_odirect_output": {
          "type": "boolean",
          "description": "Use linux native asynchronous io (io_submit) for file output (Default=false)",
          "help_text": "Type: `boolean`, multiple: `False`, example: `true`. "
        },
        "bcl_num_parallel_tiles": {
          "type": "integer",
          "description": "\\# of tiles to process in parallel (default 1)",
          "help_text": "Type: `integer`, multiple: `False`, example: `1`. "
        },
        "bcl_num_conversion_threads": {
          "type": "integer",
          "description": "\\# of threads for conversion (per tile, default # cpu threads)",
          "help_text": "Type: `integer`, multiple: `False`, example: `1`. "
        },
        "bcl_num_compression_threads": {
          "type": "integer",
          "description": "\\# of threads for fastq.gz output compression (per tile, default # cpu threads, or HW+12)",
          "help_text": "Type: `integer`, multiple: `False`, example: `1`. "
        },
        "bcl_num_decompression_threads": {
          "type": "integer",
          "description": "\\# of threads for bcl/cbcl input decompression (per tile, default half # cpu threads, or HW+8)",
          "help_text": "Type: `integer`, multiple: `False`, example: `1`. "
        }
      }
    },
    "run arguments": {
      "title": "Run arguments",
      "type": "object",
      "description": "No description",
      "properties": {
        "bcl_only_matched_reads": {
          "type": "boolean",
          "description": "For pure BCL conversion, do not output files for 'Undetermined' [unmatched] reads (output by default)",
          "help_text": "Type: `boolean`, multiple: `False`, example: `true`. "
        },
        "no_lane_splitting": {
          "type": "boolean",
          "description": "Do not split FASTQ file by lane (false by default)",
          "help_text": "Type: `boolean`, multiple: `False`, example: `true`. "
        },
        "num_unknown_barcodes_reported": {
          "type": "integer",
          "description": "\\# of Top Unknown Barcodes to output (1000 by default)",
          "help_text": "Type: `integer`, multiple: `False`, example: `1000`. "
        },
        "bcl_validate_sample_sheet_only": {
          "type": "boolean",
          "description": "Only validate RunInfo.xml & SampleSheet files (produce no FASTQ files)",
          "help_text": "Type: `boolean`, multiple: `False`, example: `true`. "
        },
        "strict_mode": {
          "type": "boolean",
          "description": "Abort if any files are missing (false by default)",
          "help_text": "Type: `boolean`, multiple: `False`, example: `true`. "
        },
        "sample_name_column_enabled": {
          "type": "boolean",
          "description": "Use sample sheet 'Sample_Name' column when naming fastq files & subdirectories",
          "help_text": "Type: `boolean`, multiple: `False`, example: `true`. "
        }
      }
    },
    "output arguments": {
      "title": "Output arguments",
      "type": "object",
      "description": "No description",
      "properties": {
        "output_directory": {
          "type": "string",
          "format": "path",
          "description": "Output directory containig fastq files",
          "help_text": "Type: `file`, multiple: `False`, required, default: `\"$id.$key.output_directory\"`, direction: `output`, example: `\"fastq_dir\"`. ",
          "default": "$id.$key.output_directory"
        },
        "bcl_sampleproject_subdirectories": {
          "type": "boolean",
          "description": "Output to subdirectories based upon sample sheet 'Sample_Project' column",
          "help_text": "Type: `boolean`, multiple: `False`, example: `true`. "
        },
        "fastq_gzip_compression_level": {
          "type": "integer",
          "description": "Set fastq output compression level 0-9 (default 1)",
          "help_text": "Type: `integer`, multiple: `False`, example: `1`. "
        },
        "reports": {
          "type": "string",
          "format": "path",
          "description": "Reports directory",
          "help_text": "Type: `file`, multiple: `False`, default: `\"$id.$key.reports\"`, direction: `output`, example: `\"reports_dir\"`. ",
          "default": "$id.$key.reports"
        },
        "logs": {
          "type": "string",
          "format": "path",
          "description": "Reports directory",
          "help_text": "Type: `file`, multiple: `False`, default: `\"$id.$key.logs\"`, direction: `output`, example: `\"logs_dir\"`. ",
          "default": "$id.$key.logs"
        },
        "force": {
          "type": "boolean",
          "description": "Allow destination directory to already exist and overwrite files.\n",
          "help_text": "Type: `boolean`, multiple: `False`, example: `true`. "
        }
      }
    },
    "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 arguments"
    },
    {
      "$ref": "#/$defs/lane and tile settings"
    },
    {
      "$ref": "#/$defs/resource arguments"
    },
    {
      "$ref": "#/$defs/run arguments"
    },
    {
      "$ref": "#/$defs/output arguments"
    },
    {
      "$ref": "#/$defs/nextflow input-output arguments"
    }
  ]
}
