{ "$schema": "http://json-schema.org/draft-07/schema", "$id": "https://raw.githubusercontent.com/epi2me-labs/wf-transcriptomes/master/nextflow_schema.json", "title": "epi2me-labs/wf-transcriptomes", "workflow_title": "Transcriptomes", "description": "Long-read transcriptome analysis using bambu with optional SQANTI3 QC, DESeq2, and DEXSeq.", "demo_url": "https://ont-exd-int-s3-euwst1-epi2me-labs.s3.amazonaws.com/wf-transcriptomes/wf-transcriptomes-demo.tar.gz", "aws_demo_url": "https://ont-exd-int-s3-euwst1-epi2me-labs.s3.amazonaws.com/wf-transcriptomes/wf-transcriptomes-demo/aws.nextflow.config", "url": "https://github.com/epi2me-labs/wf-transcriptomes", "type": "object", "definitions": { "main_options": { "title": "Main Options", "type": "object", "description": "Parameters for read ingestion, and setting reference and transcriptome construction mode.", "properties": { "fastq": { "type": "string", "format": "path", "title": "FASTQ", "description": "FASTQ reads to analyse.", "help_text": "You can provide a single FASTQ, a folder of FASTQs, or a multiplexed folder containing one sub-folder per sample or barcode." }, "bam": { "type": "string", "format": "path", "description": "BAM or uBAM reads to analyse.", "help_text": "You can provide a single BAM or uBAM, a folder of BAMs, or a multiplexed folder containing one sub-folder per sample or barcode." }, "ref_genome": { "type": "string", "format": "file-path", "title": "Reference genome", "description": "Reference genome FASTA.", "help_text": "Required in both discover and fixed_annotation modes." }, "ref_annotation": { "type": "string", "format": "file-path", "title": "Reference annotation", "description": "Reference transcript annotation in GTF or GFF format.", "help_text": "Required in both discover and fixed_annotation modes." }, "transcriptome_mode": { "type": "string", "default": "discover", "enum": [ "discover", "fixed_annotation" ], "description": "How bambu should prepare the transcriptome model.", "help_text": "Use discover for reference-guided transcript discovery and quantification, or fixed_annotation for quantification only against the supplied annotation." }, "direct_rna": { "type": "boolean", "default": false, "description": "Set this for direct RNA sequencing libraries." } }, "required": [ "ref_genome", "ref_annotation", "transcriptome_mode" ], "allOf": [ { "oneOf": [ { "required": [ "fastq" ] }, { "required": [ "bam" ] } ] } ] }, "filter_options": { "title": "Read Filtering Options", "type": "object", "description": "Options for filtering input reads.", "properties": { "analyse_unclassified": { "type": "boolean", "default": false, "description": "Include unclassified reads from multiplexed input directories." }, "analyse_fail": { "type": "boolean", "default": false, "description": "Include fail reads from bam_fail and fastq_fail folders found in sample folders on the input path." } } }, "sample_options": { "title": "Sample Options", "type": "object", "description": "Parameters that control sample naming and experimental design.", "properties": { "sample_sheet": { "type": "string", "format": "file-path", "title": "Sample sheet", "description": "CSV file describing barcodes, aliases, and optional experimental design columns.", "help_text": "For multiplexed runs, the sample sheet should contain both barcode and alias. For differential analysis it must also contain alias, the condition column, and any extra columns named in `--covariates`." }, "sample": { "type": "string", "description": "Single sample name for singleplexed input or to restrict multiplexed analysis to one sample." } } }, "de_analysis_options": { "title": "Differential Expression Analysis Options", "type": "object", "description": "Parameters controlling DGE and DTU analyses.", "properties": { "de_analysis": { "type": "boolean", "default": false, "description": "Run differential gene expression and differential transcript usage analyses." }, "condition_column": { "type": "string", "default": "condition", "description": "Main comparison column in the sample sheet." }, "covariates": { "type": "string", "description": "Comma-separated extra sample-sheet columns to adjust for, for example batch.", "help_text": "Each listed name must exist as a column in the sample sheet." }, "reference_level": { "type": "string", "description": "Baseline group for the main comparison column.", "help_text": "If omitted, the workflow will use control when that level exists." } }, "dependencies": { "de_analysis": [ "sample_sheet" ] } }, "output_options": { "title": "Output Options", "type": "object", "description": "Parameters controlling workflow outputs.", "properties": { "out_dir": { "type": "string", "format": "directory-path", "default": "output", "description": "Directory for user-facing workflow outputs." }, "igv": { "type": "boolean", "default": false, "description": "Generate an IGV configuration file for the aligned BAM outputs." } } }, "advanced_options": { "title": "Advanced Options", "type": "object", "description": "Performance tuning and tool-specific advanced parameters.", "properties": { "threads": { "type": "integer", "default": 4, "description": "Thread count to use for the core workflow processes." }, "mod_codes": { "type": "string", "description": "Comma-separated modified base codes to pass to modkit pileup.", "help_text": "Provide values accepted by `modkit pileup --modified-bases`, for example `A:a,C:m`. If omitted, the workflow infers `primary_base:mod_code` pairs from the BAM with `modkit modbam check-tags`." }, "force_alignment" : { "type": "boolean", "default": false, "description": "Force re-alignment of input BAM files.", "help_text": "Read alignment is skipped if the existing sequence names in the aligned BAM match the provided reference. Enable this if the existing alignments used incorrect minimap2 presets (e.g. missing --splice or direct RNA settings)." }, "ndr": { "type": "number", "description": "Optional bambu novel discovery rate override." }, "sqanti_skip_orf": { "type": "boolean", "default": true, "description": "Skip ORF prediction during SQANTI3 QC." } } }, "misc": { "title": "Miscellaneous Options", "type": "object", "description": "Everything else.", "default": "", "properties": { "disable_ping": { "type": "boolean", "default": false, "description": "Enable to prevent sending a workflow ping.", "overrides": { "epi2mecloud": { "hidden": true } } }, "help": { "type": "boolean", "description": "Display help text.", "fa_icon": "fas fa-question-circle", "default": false, "hidden": true }, "version": { "type": "boolean", "description": "Display version and exit.", "fa_icon": "fas fa-question-circle", "default": false, "hidden": true } } } }, "allOf": [ { "$ref": "#/definitions/main_options" }, { "$ref": "#/definitions/filter_options" }, { "$ref": "#/definitions/sample_options" }, { "$ref": "#/definitions/de_analysis_options" }, { "$ref": "#/definitions/output_options" }, { "$ref": "#/definitions/advanced_options" }, { "$ref": "#/definitions/misc" } ], "properties": { "aws_image_prefix": { "type": "string", "hidden": true }, "aws_queue": { "type": "string", "hidden": true }, "monochrome_logs": { "type": "boolean" }, "validate_params": { "type": "boolean", "default": true }, "show_hidden_params": { "type": "boolean" } }, "resources": { "recommended": { "cpus": 32, "memory": "96GB" }, "minimum": { "cpus": 12, "memory": "64GB" }, "run_time": "Varies with read depth and sample count; expect a small single-sample run to finish in under 30 minutes with the recommended resources.", "arm_support": false } }