{ "$schema": "http://json-schema.org/draft-07/schema", "$id": "https://raw.githubusercontent.com/./master/nextflow_schema.json", "title": "epi2me-labs/wf-isoforms", "description": "Isoform detection and characterisation.", "url": "https://github.com/epi2me-labs/wf-isoforms", "type": "object", "definitions": { "basic_input_output_options": { "title": "Basic Input/Output Options", "type": "object", "fa_icon": "fas fa-terminal", "description": "Define where the pipeline should find input data and save output data.", "properties": { "out_dir": { "type": "string", "default": "output", "format": "directory-path", "description": "Directory for output of all user-facing files." }, "fastq": { "type": "string", "format": "path", "description": "A fastq file or directory containing fastq input files or directories of input files.", "help_text": "If directories named \\\"barcode*\\\" are found under the `--fastq` directory the data is assumed to be multiplex and each barcode directory will be processed independently. If `.fastq(.gz)` files are found under the `--fastq` directory the sample is assumed to not be multiplexed. In this second case `--samples` should be a simple name rather than a CSV file." }, "sample": { "type": "string", "description": "A sample name for non-multiplexed data. Permissible if passing a file or directory of .fastq(.gz)." }, "sample_sheet": { "type": "string", "format": "file-path", "description": "CSV file with columns named `barcode`, `sample_name` and `type`. Permissible if passing a directory containing barcodeXX sub-directories." }, "sanitize_fastq": { "type": "boolean", "description": "Use additional heuristics to identify barcodes from file paths.", "help_text": "Enabling this option will group together files into samples by the presence of strings of the form `barcodeXXX` present in filenames, rather than simply files grouped into directories (as output by MinKNOW and the Guppy basecaller)." }, "ref_genome": { "type": "string", "format": "file-path", "description": "Path to reference genome sequence [.fa/.fq/.fa.gz/fq.gz]. Required for reference-based workflow" }, "ref_annotation": { "type": "string", "format": "file-path", "description": "A reference annotation of gff format" } }, "required": [ "fastq" ] }, "global_options": { "title": "Global options", "type": "object", "description": "Options for both sub-workflows", "properties": { "threads": { "type": "integer", "default": 4 }, "pychopper_opts": { "type": "string", "description": "Extra pychopper opts", "default": "-m edlib" }, "direct_rna": { "type": "boolean", "description": "Set to true for direct RNA sequencing. Omits the pychopper step.", "default": false }, "bundle_min_reads": { "type": "integer", "description": "Minimum size of bam bundle for parallel processing." }, "stringtie_opts": { "type": "string", "description": "Extra options for stringtie transcript assembly.", "default": " --conservative " }, "transcript_table_cov_thresh": { "type": "integer", "description": "Minimum coverage for a transcript to appear in the report table", "default": 50 }, "denovo": { "type": "boolean", "description": "Use denovo transcript assembly rather than reference guided", "default": false } } }, "reference_wf_options": { "title": "Options for reference-based workflow", "type": "object", "description": "Parameters that are used solely for the referenc-guided workflow", "properties": { "plot_gffcmp_stats": { "type": "boolean", "description": "Create a pdf of plots from showing gffcompare results" }, "gffcompare_opts": { "type": "string", "description": "Extra options for gffcompare -r", "default": " -R " }, "minimap_index_opts": { "type": "string", "description": "minimap2 extra indexing options.", "default": "-k14" }, "minimap2_opts": { "type": "string", "description": "minimap2 extra mapping options.", "default": "-uf" }, "minimum_mapping_quality": { "type": "integer", "description": "filter aligned reads by MAPQ quality.", "default": 40 }, "poly_context": { "type": "integer", "description": "Region size at end of reads to apply poly(A) filter.", "default": 24 }, "max_poly_run": { "type": "integer", "description": "Max poly(A) region allowed with poly_context-sized end regions.", "default": 8 } } }, "denovo_wf_options": { "title": "Options for de novo-based workflow", "type": "object", "description": "Parameters that are used solely for the de novo workflow", "properties": { "batch_size": { "type": "integer", "description": "Maximum sequences per input batch (-1 means no limit)", "default": -1 }, "batch_max_seq": { "type": "integer", "description": "Maximum sequences per input batch (-1 means no limit)", "default": -1 }, "cls_mode": { "type": "string", "description": "Clustering mode", "default": "sahlin" }, "kmer_size": { "type": "integer", "description": "Kmer size", "default": 11 }, "window_size": { "type": "integer", "description": "Window size", "default": 15 }, "min_left_cls": { "type": "integer", "description": "Minimum cluser size in the left batch", "default": 2 }, "consensus_period": { "type": "integer", "description": "Consensus period (-1 means no consensus)", "default": 500 }, "consensus_minimum": { "type": "integer", "description": "Minimum consensus sample size:", "default": 50 }, "consensus_maximum": { "type": "integer", "description": "Maximum consensus sample size", "default": -150 }, "min_shared": { "type": "integer", "description": "Minimum number of minimizers shared between read and cluster", "default": 5 }, "min_qual": { "description": "Minimum average quality value", "type": "number", "default": 7.0 }, "mapped_threshold": { "description": "Minimum mapped fraction of read to be included in cluster", "type": "number", "default": 0.65 }, "aligned_threshold": { "tpye": "number", "description": "Minimum aligned fraction of read to be included in cluster", "default": 0.2 }, "min_fraction": { "type": "number", "description": "Minimum fraction of minimizers shared compared to best hit, in order to continue mapping", "default": 0.8 }, "min_prob_no_hits": { "type": "number", "description": "Minimum probability for i consecutive minimizers to be different between read and representative", "default": 0.2 } } }, "meta_data": { "title": "Meta Data", "type": "object", "description": "", "default": "", "properties": { "report_name": { "type": "string", "default": "report", "description": "Output report filename suffix." }, "disable_ping": { "type": "boolean", "default": false, "description": "Enable to prevent sending a workflow ping." } } }, "generic_options": { "title": "Generic options", "type": "object", "fa_icon": "far fa-question-circle", "description": "Less common options for the pipeline, typically set in a config file.", "help_text": "These options are common to all nf-core pipelines and allow you to customise some of the core preferences for how the pipeline runs.\n\nTypically these options would be set in a Nextflow config file loaded for all pipeline runs, such as `~/.nextflow/config`.", "properties": { "help": { "type": "boolean", "description": "Display help text.", "fa_icon": "fas fa-question-circle", "hidden": true } } } }, "allOf": [ { "$ref": "#/definitions/basic_input_output_options" }, { "$ref": "#/definitions/global_options" }, { "$ref": "#/definitions/reference_wf_options" }, { "$ref": "#/definitions/denovo_wf_options" }, { "$ref": "#/definitions/meta_data" }, { "$ref": "#/definitions/generic_options" } ], "properties": { "aws_image_prefix": { "type": "string", "hidden": true }, "aws_queue": { "type": "string", "hidden": true }, "wfversion": { "type": "string", "default": "v0.1.4", "hidden": true }, "monochrome_logs": { "type": "boolean" }, "validate_params": { "type": "boolean", "default": true }, "show_hidden_params": { "type": "boolean" } }, "docs": { "intro": "## Introduction\n\nThis workflow identifies RNA isoforms using either cDNA or direct RNA (dRNA) \nOxford Nanopore reads.\n\n### Preprocesing\ncDNA reads are initially preprocessed by [pychopper](https://github.com/epi2me-labs/pychopper) \nfor the identification of full-length reads, as well as trimming and orientation correction (This step is omitted for \n direct RNA reads).\n\n### Reference-aided approach\n* Full length reads are mapped to a supplied reference genome using [minimap2](https://github.com/lh3/minimap2)\n* Transcripts are assembled by [stringtie](http://ccb.jhu.edu/software/stringtie) \nin long read mode (with or without a guide reference annotation) to generate the GFF annotation.\n* The annotation generated by the pipeline is compared to the reference annotation. \nusing [gffcompare](http://ccb.jhu.edu/software/stringtie/gffcompare.shtml)\n\n### de novo-based approach (experimental!)\n* Sequence clusters are generated using [isONclust2](https://github.com/nanoporetech/isONclust2)\n * If a reference genome is supplied, cluster quality metrics are determined by comparing \n with clusters generated from a minimap2 alignment.\n* A consensus sequence for each cluster is generated using [spoa](https://github.com/rvaser/spoa)\n* Three rounds of polishing using racon and minimap2 to give a final polished CDS for each gene.\n* Full-length reads are then mapped to these polished CDS.\n* Transcripts are assembled by stringtie as for the reference-based approach.\n* __Note__: This approach is currently not supported with direct RNA reads.\n\n### Workflow inputs\n- Directory containing cDNA/direct RNA reads. Or a directory containing subdirectories each with reads from different samples\n (in fastq/fastq.gz format)\n- Reference genome in fasta format (required for reference-based assembly).\n- Optional reference annotation in GFF2/3 format.", "links": "## Useful links\n\n* [nextflow](https://www.nextflow.io/)\n* [docker](https://www.docker.com/products/docker-desktop)\n* [Singularity](https://sylabs.io/singularity/)\n* [conda](https://docs.conda.io/en/latest/miniconda.html)\n* [racon](https://github.com/isovic/racon)\n* [spoa](https://github.com/rvaser/spoa)\n* [inONclust](https://github.com/ksahlin/isONclust)\n* [isONclust2](https://github.com/nanoporetech/isONclust2)" } }