{
"$schema": "http://json-schema.org/draft-07/schema",
"title": "arriba",
"description": "Detect gene fusions from RNA-Seq data",
"type": "object",
"definitions": {

    
    
    "inputs" : {
    "title": "Inputs",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "bam": {
                "type":
                "string",
                "description": "Type: `file`, required, example: `Aligned.out.bam`. File in SAM/BAM/CRAM format with main alignments as generated by STAR\n(Aligned",
                "help_text": "Type: `file`, required, example: `Aligned.out.bam`. File in SAM/BAM/CRAM format with main alignments as generated by STAR\n(Aligned.out.sam). Arriba extracts candidate reads from this file.\n"
            
            }
    

        ,
                "genome": {
                "type":
                "string",
                "description": "Type: `file`, required, example: `assembly.fa`. FastA file with genome sequence (assembly)",
                "help_text": "Type: `file`, required, example: `assembly.fa`. FastA file with genome sequence (assembly). The file may be gzip-compressed. An \nindex with the file extension .fai must exist only if CRAM files are processed.\n"
            
            }
    

        ,
                "gene_annotation": {
                "type":
                "string",
                "description": "Type: `file`, required, example: `annotation.gtf`. GTF file with gene annotation",
                "help_text": "Type: `file`, required, example: `annotation.gtf`. GTF file with gene annotation. The file may be gzip-compressed.\n"
            
            }
    

        ,
                "known_fusions": {
                "type":
                "string",
                "description": "Type: `file`, example: `known_fusions.tsv`. File containing known/recurrent fusions",
                "help_text": "Type: `file`, example: `known_fusions.tsv`. File containing known/recurrent fusions. Some cancer entities are often \ncharacterized by fusions between the same pair of genes. In order to boost \nsensitivity, a list of known fusions can be supplied using this parameter. The list \nmust contain two columns with the names of the fused genes, separated by tabs.\n"
            
            }
    

        ,
                "blacklist": {
                "type":
                "string",
                "description": "Type: `file`, example: `blacklist.tsv`. File containing blacklisted events (recurrent artifacts and transcripts \nobserved in healthy tissue)",
                "help_text": "Type: `file`, example: `blacklist.tsv`. File containing blacklisted events (recurrent artifacts and transcripts \nobserved in healthy tissue).\n"
            
            }
    

        ,
                "structural_variants": {
                "type":
                "string",
                "description": "Type: `file`, example: `structural_variants_from_WGS.tsv`. Tab-separated file with coordinates of structural variants found using \nwhole-genome sequencing data",
                "help_text": "Type: `file`, example: `structural_variants_from_WGS.tsv`. Tab-separated file with coordinates of structural variants found using \nwhole-genome sequencing data. These coordinates serve to increase sensitivity \ntowards weakly expressed fusions and to eliminate fusions with low evidence. \n"
            
            }
    

        ,
                "tags": {
                "type":
                "string",
                "description": "Type: `file`, example: `tags.tsv`. Tab-separated file containing fusions to annotate with tags in the \u0027tags\u0027 column",
                "help_text": "Type: `file`, example: `tags.tsv`. Tab-separated file containing fusions to annotate with tags in the \u0027tags\u0027 column. \nThe first two columns specify the genes; the third column specifies the tag. The \nfile may be gzip-compressed. \n"
            
            }
    

        ,
                "protein_domains": {
                "type":
                "string",
                "description": "Type: `file`, example: `protein_domains.gff3`. File in GFF3 format containing coordinates of the protein domains of genes",
                "help_text": "Type: `file`, example: `protein_domains.gff3`. File in GFF3 format containing coordinates of the protein domains of genes. The\nprotein domains retained in a fusion are listed in the column\n\u0027retained_protein_domains\u0027. The file may be gzip-compressed.\n"
            
            }
    

}
},
    
    
    "outputs" : {
    "title": "Outputs",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "fusions": {
                "type":
                "string",
                "description": "Type: `file`, required, default: `$id.$key.fusions.tsv`, example: `fusions.tsv`. Output file with fusions that have passed all filters",
                "help_text": "Type: `file`, required, default: `$id.$key.fusions.tsv`, example: `fusions.tsv`. Output file with fusions that have passed all filters.\n"
            ,
                "default": "$id.$key.fusions.tsv"
            }
    

        ,
                "fusions_discarded": {
                "type":
                "string",
                "description": "Type: `file`, default: `$id.$key.fusions_discarded.tsv`, example: `fusions.discarded.tsv`. Output file with fusions that were discarded due to filtering",
                "help_text": "Type: `file`, default: `$id.$key.fusions_discarded.tsv`, example: `fusions.discarded.tsv`. Output file with fusions that were discarded due to filtering. \n"
            ,
                "default": "$id.$key.fusions_discarded.tsv"
            }
    

}
},
    
    
    "arguments" : {
    "title": "Arguments",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "max_genomic_breakpoint_distance": {
                "type":
                "string",
                "description": "Type: `long`. When a file with genomic breakpoints obtained via \nwhole-genome sequencing is supplied via the --structural_variants\nparameter, this parameter determines how far a \ngenomic breakpoint may be away from a \ntranscriptomic breakpoint to consider it as a \nrelated event",
                "help_text": "Type: `long`. When a file with genomic breakpoints obtained via \nwhole-genome sequencing is supplied via the --structural_variants\nparameter, this parameter determines how far a \ngenomic breakpoint may be away from a \ntranscriptomic breakpoint to consider it as a \nrelated event. For events inside genes, the \ndistance is added to the end of the gene; for \nintergenic events, the distance threshold is \napplied as is. Default: 100000.\n"
            
            }
    

        ,
                "strandedness": {
                "type":
                "string",
                "description": "Type: `string`, choices: ``auto`, `yes`, `no`, `reverse``. Whether a strand-specific protocol was used for library preparation, \nand if so, the type of strandedness (auto/yes/no/reverse)",
                "help_text": "Type: `string`, choices: ``auto`, `yes`, `no`, `reverse``. Whether a strand-specific protocol was used for library preparation, \nand if so, the type of strandedness (auto/yes/no/reverse). When \nunstranded data is processed, the strand can sometimes be inferred from \nsplice-patterns. But in unclear situations, stranded data helps \nresolve ambiguities. Default: auto\n",
                "enum": ["auto", "yes", "no", "reverse"]
            
            
            }
    

        ,
                "interesting_contigs": {
                "type":
                "string",
                "description": "Type: List of `string`, example: `1;2;AC_*;NC_*`, multiple_sep: `\";\"`. List of interesting contigs",
                "help_text": "Type: List of `string`, example: `1;2;AC_*;NC_*`, multiple_sep: `\";\"`. List of interesting contigs. Fusions between genes \non other contigs are ignored. Contigs can be specified with or without the \nprefix \"chr\". Asterisks (*) are treated as wild-cards. \nDefault: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 X Y AC_* NC_*\n"
            
            }
    

        ,
                "viral_contigs": {
                "type":
                "string",
                "description": "Type: List of `string`, example: `AC_*;NC_*`, multiple_sep: `\";\"`. List of viral contigs",
                "help_text": "Type: List of `string`, example: `AC_*;NC_*`, multiple_sep: `\";\"`. List of viral contigs. Asterisks (*) are treated as \nwild-cards.\nDefault: AC_* NC_*\n"
            
            }
    

        ,
                "disable_filters": {
                "type":
                "string",
                "description": "Type: List of `string`, multiple_sep: `\";\"`, choices: ``homologs`, `low_entropy`, `isoforms`, `top_expressed_viral_contigs`, `viral_contigs`, `uninteresting_contigs`, `non_coding_neighbors`, `mismatches`, `duplicates`, `no_genomic_support`, `genomic_support`, `intronic`, `end_to_end`, `relative_support`, `low_coverage_viral_contigs`, `merge_adjacent`, `mismappers`, `multimappers`, `same_gene`, `long_gap`, `internal_tandem_duplication`, `small_insert_size`, `read_through`, `inconsistently_clipped`, `intragenic_exonic`, `marginal_read_through`, `spliced`, `hairpin`, `blacklist`, `min_support`, `select_best`, `in_vitro`, `short_anchor`, `known_fusions`, `no_coverage`, `homopolymer`, `many_spliced``. List of filters to disable",
                "help_text": "Type: List of `string`, multiple_sep: `\";\"`, choices: ``homologs`, `low_entropy`, `isoforms`, `top_expressed_viral_contigs`, `viral_contigs`, `uninteresting_contigs`, `non_coding_neighbors`, `mismatches`, `duplicates`, `no_genomic_support`, `genomic_support`, `intronic`, `end_to_end`, `relative_support`, `low_coverage_viral_contigs`, `merge_adjacent`, `mismappers`, `multimappers`, `same_gene`, `long_gap`, `internal_tandem_duplication`, `small_insert_size`, `read_through`, `inconsistently_clipped`, `intragenic_exonic`, `marginal_read_through`, `spliced`, `hairpin`, `blacklist`, `min_support`, `select_best`, `in_vitro`, `short_anchor`, `known_fusions`, `no_coverage`, `homopolymer`, `many_spliced``. List of filters to disable. By default all filters are \nenabled. \n",
                "enum": ["homologs", "low_entropy", "isoforms", "top_expressed_viral_contigs", "viral_contigs", "uninteresting_contigs", "non_coding_neighbors", "mismatches", "duplicates", "no_genomic_support", "genomic_support", "intronic", "end_to_end", "relative_support", "low_coverage_viral_contigs", "merge_adjacent", "mismappers", "multimappers", "same_gene", "long_gap", "internal_tandem_duplication", "small_insert_size", "read_through", "inconsistently_clipped", "intragenic_exonic", "marginal_read_through", "spliced", "hairpin", "blacklist", "min_support", "select_best", "in_vitro", "short_anchor", "known_fusions", "no_coverage", "homopolymer", "many_spliced"]
            
            
            }
    

        ,
                "max_e_value": {
                "type":
                "number",
                "description": "Type: `double`. Arriba estimates the number of fusions with a given number of supporting \nreads which one would expect to see by random chance",
                "help_text": "Type: `double`. Arriba estimates the number of fusions with a given number of supporting \nreads which one would expect to see by random chance. If the expected number \nof fusions (e-value) is higher than this threshold, the fusion is \ndiscarded by the \u0027relative_support\u0027 filter. Note: Increasing this \nthreshold can dramatically increase the number of false positives and may \nincrease the runtime of resource-intensive steps. Fractional values are \npossible. Default: 0.300000 \n"
            
            }
    

        ,
                "min_supporting_reads": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `2`. The \u0027min_support\u0027 filter discards all fusions with fewer than \nthis many supporting reads (split reads and discordant mates \ncombined)",
                "help_text": "Type: `integer`, example: `2`. The \u0027min_support\u0027 filter discards all fusions with fewer than \nthis many supporting reads (split reads and discordant mates \ncombined). Default: 2 \n"
            
            }
    

        ,
                "max_mismappers": {
                "type":
                "number",
                "description": "Type: `double`, example: `0.8`. When more than this fraction of supporting reads turns out to be \nmismappers, the \u0027mismappers\u0027 filter discards the fusion",
                "help_text": "Type: `double`, example: `0.8`. When more than this fraction of supporting reads turns out to be \nmismappers, the \u0027mismappers\u0027 filter discards the fusion. Default: \n0.800000\n"
            
            }
    

        ,
                "max_homolog_identity": {
                "type":
                "number",
                "description": "Type: `double`, example: `0.3`. Genes with more than the given fraction of sequence identity are \nconsidered homologs and removed by the \u0027homologs\u0027 filter",
                "help_text": "Type: `double`, example: `0.3`. Genes with more than the given fraction of sequence identity are \nconsidered homologs and removed by the \u0027homologs\u0027 filter. \nDefault: 0.300000 \n"
            
            }
    

        ,
                "homopolymer_length": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `6`. The \u0027homopolymer\u0027 filter removes breakpoints adjacent to \nhomopolymers of the given length or more",
                "help_text": "Type: `integer`, example: `6`. The \u0027homopolymer\u0027 filter removes breakpoints adjacent to \nhomopolymers of the given length or more. Default: 6\n"
            
            }
    

        ,
                "read_through_distance": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `10000`. The \u0027read_through\u0027 filter removes read-through fusions \nwhere the breakpoints are less than the given distance away \nfrom each other",
                "help_text": "Type: `integer`, example: `10000`. The \u0027read_through\u0027 filter removes read-through fusions \nwhere the breakpoints are less than the given distance away \nfrom each other. Default: 10000 \n"
            
            }
    

        ,
                "min_anchor_length": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `23`. Alignment artifacts are often characterized by split reads coming \nfrom only one gene and no discordant mates",
                "help_text": "Type: `integer`, example: `23`. Alignment artifacts are often characterized by split reads coming \nfrom only one gene and no discordant mates. Moreover, the split \nreads only align to a short stretch in one of the genes. The \n\u0027short_anchor\u0027 filter removes these fusions. This parameter sets \nthe threshold in bp for what the filter considers short. Default: 23 \n"
            
            }
    

        ,
                "many_spliced_events": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `4`. The \u0027many_spliced\u0027 filter recovers fusions between genes that \nhave at least this many spliced breakpoints",
                "help_text": "Type: `integer`, example: `4`. The \u0027many_spliced\u0027 filter recovers fusions between genes that \nhave at least this many spliced breakpoints. Default: 4\n"
            
            }
    

        ,
                "max_kmer_content": {
                "type":
                "number",
                "description": "Type: `double`, example: `0.6`. The \u0027low_entropy\u0027 filter removes reads with repetitive 3-mers",
                "help_text": "Type: `double`, example: `0.6`. The \u0027low_entropy\u0027 filter removes reads with repetitive 3-mers. If \nthe 3-mers make up more than the given fraction of the sequence, then \nthe read is discarded. Default: 0.600000 \n"
            
            }
    

        ,
                "max_mismatch_pvalue": {
                "type":
                "number",
                "description": "Type: `double`, example: `0.05`. The \u0027mismatches\u0027 filter uses a binomial model to calculate a \np-value for observing a given number of mismatches in a read",
                "help_text": "Type: `double`, example: `0.05`. The \u0027mismatches\u0027 filter uses a binomial model to calculate a \np-value for observing a given number of mismatches in a read. If \nthe number of mismatches is too high, the read is discarded. \nDefault: 0.010000 \n"
            
            }
    

        ,
                "fragment_length": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `200`. When paired-end data is given, the fragment length is estimated \nautomatically and this parameter has no effect",
                "help_text": "Type: `integer`, example: `200`. When paired-end data is given, the fragment length is estimated \nautomatically and this parameter has no effect. But when single-end \ndata is given, the mean fragment length should be specified to \neffectively filter fusions that arise from hairpin structures. \nDefault: 200 \n"
            
            }
    

        ,
                "max_reads": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `300`. Subsample fusions with more than the given number of supporting reads",
                "help_text": "Type: `integer`, example: `300`. Subsample fusions with more than the given number of supporting reads. This \nimproves performance without compromising sensitivity, as long as the \nthreshold is high. Counting of supporting reads beyond the threshold is \ninaccurate, obviously. Default: 300 \n"
            
            }
    

        ,
                "quantile": {
                "type":
                "number",
                "description": "Type: `double`, example: `0.998`. Highly expressed genes are prone to produce artifacts during library \npreparation",
                "help_text": "Type: `double`, example: `0.998`. Highly expressed genes are prone to produce artifacts during library \npreparation. Genes with an expression above the given quantile are eligible \nfor filtering by the \u0027in_vitro\u0027 filter. Default: 0.998000\n"
            
            }
    

        ,
                "exonic_fraction": {
                "type":
                "number",
                "description": "Type: `double`, example: `0.33`. The breakpoints of false-positive predictions of intragenic events \nare often both in exons",
                "help_text": "Type: `double`, example: `0.33`. The breakpoints of false-positive predictions of intragenic events \nare often both in exons. True predictions are more likely to have at \nleast one breakpoint in an intron, because introns are larger. If the \nfraction of exonic sequence between two breakpoints is smaller than \nthe given fraction, the \u0027intragenic_exonic\u0027 filter discards the \nevent. Default: 0.330000 \n"
            
            }
    

        ,
                "top_n": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `5`. Only report viral integration sites of the top N most highly expressed viral \ncontigs",
                "help_text": "Type: `integer`, example: `5`. Only report viral integration sites of the top N most highly expressed viral \ncontigs. Default: 5\n"
            
            }
    

        ,
                "covered_fraction": {
                "type":
                "number",
                "description": "Type: `double`, example: `0.05`. Ignore virally associated events if the virus is not fully \nexpressed, i",
                "help_text": "Type: `double`, example: `0.05`. Ignore virally associated events if the virus is not fully \nexpressed, i.e., less than the given fraction of the viral contig is \ntranscribed. Default: 0.050000 \n"
            
            }
    

        ,
                "max_itd_length": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `100`. Maximum length of internal tandem duplications",
                "help_text": "Type: `integer`, example: `100`. Maximum length of internal tandem duplications. Note: Increasing \nthis value beyond the default can impair performance and lead to many \nfalse positives. Default: 100 \n"
            
            }
    

        ,
                "min_itd_allele_fraction": {
                "type":
                "number",
                "description": "Type: `double`, example: `0.07`. Required fraction of supporting reads to report an internal \ntandem duplication",
                "help_text": "Type: `double`, example: `0.07`. Required fraction of supporting reads to report an internal \ntandem duplication. Default: 0.070000 \n"
            
            }
    

        ,
                "min_itd_supporting_reads": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `10`. Required absolute number of supporting reads to report an \ninternal tandem duplication",
                "help_text": "Type: `integer`, example: `10`. Required absolute number of supporting reads to report an \ninternal tandem duplication. Default: 10 \n"
            
            }
    

        ,
                "skip_duplicate_marking": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Instead of performing duplicate marking itself, Arriba relies on duplicate marking by a \npreceding program using the BAM_FDUP flag",
                "help_text": "Type: `boolean_true`, default: `false`. Instead of performing duplicate marking itself, Arriba relies on duplicate marking by a \npreceding program using the BAM_FDUP flag. This makes sense when unique molecular \nidentifiers (UMI) are used.\n"
            ,
                "default": "False"
            }
    

        ,
                "extra_information": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. To reduce the runtime and file size, by default, the columns \u0027fusion_transcript\u0027, \n\u0027peptide_sequence\u0027, and \u0027read_identifiers\u0027 are left empty in the file containing \ndiscarded fusion candidates (see parameter -O)",
                "help_text": "Type: `boolean_true`, default: `false`. To reduce the runtime and file size, by default, the columns \u0027fusion_transcript\u0027, \n\u0027peptide_sequence\u0027, and \u0027read_identifiers\u0027 are left empty in the file containing \ndiscarded fusion candidates (see parameter -O). When this flag is set, this extra \ninformation is reported in the discarded fusions file.\n"
            ,
                "default": "False"
            }
    

        ,
                "fill_gaps": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. If assembly of the fusion transcript sequence from the supporting reads is incomplete \n(denoted as \u0027",
                "help_text": "Type: `boolean_true`, default: `false`. If assembly of the fusion transcript sequence from the supporting reads is incomplete \n(denoted as \u0027...\u0027), fill the gaps using the assembly sequence wherever possible. \n"
            ,
                "default": "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": "Type: `string`, required, example: `output/`. Path to an output directory",
                "help_text": "Type: `string`, required, example: `output/`. Path to an output directory."
            
            }
    

        ,
                "param_list": {
                "type":
                "string",
                "description": "Type: `string`, example: `my_params.yaml`. Allows inputting multiple parameter sets to initialise a Nextflow channel",
                "help_text": "Type: `string`, example: `my_params.yaml`. Allows inputting multiple parameter sets to initialise a Nextflow channel. A `param_list` can either be a list of maps, a csv file, a json file, a yaml file, or simply a yaml blob.\n\n* A list of maps (as-is) where the keys of each map corresponds to the arguments of the pipeline. Example: in a `nextflow.config` file: `param_list: [ [\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027], [\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027] ]`.\n* A csv file should have column names which correspond to the different arguments of this pipeline. Example: `--param_list data.csv` with columns `id,input`.\n* A json or a yaml file should be a list of maps, each of which has keys corresponding to the arguments of the pipeline. Example: `--param_list data.json` with contents `[ {\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027}, {\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027} ]`.\n* A yaml blob can also be passed directly as a string. Example: `--param_list \"[ {\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027}, {\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027} ]\"`.\n\nWhen passing a csv, json or yaml file, relative path names are relativized to the location of the parameter file. No relativation is performed when `param_list` is a list of maps (as-is) or a yaml blob.",
                "hidden": true
            
            }
    

}
}
},
"allOf": [

    {
    "$ref": "#/definitions/inputs"
    },

    {
    "$ref": "#/definitions/outputs"
    },

    {
    "$ref": "#/definitions/arguments"
    },

    {
    "$ref": "#/definitions/nextflow input-output arguments"
    }
]
}
