name: "salmon_quant"
namespace: "salmon"
version: "v0.2.0"
authors:
- name: "Sai Nirmayi Yasa"
  roles:
  - "author"
  - "maintainer"
  info:
    links:
      email: "nirmayi@data-intuitive.com"
      github: "sainirmayi"
      linkedin: "sai-nirmayi-yasa"
    organizations:
    - name: "Data Intuitive"
      href: "https://www.data-intuitive.com"
      role: "Junior Bioinformatics Researcher"
argument_groups:
- name: "Common input options"
  arguments:
  - type: "string"
    name: "--lib_type"
    alternatives:
    - "-l"
    description: "Format string describing the library.\nThe library type string consists\
      \ of three parts: \n1. Relative orientation of the reads: This part is only\
      \ provided if the library is paired-end, THe possible options are\n  I = inward\n\
      \  O = outward\n  M = matching\n2. Strandedness of the library: This part specifies\
      \ whether the protocol is stranded or unstranded. The options are:\n  S = stranded\n\
      \  U = unstranded\n3. Directionality of the reads: If the library is stranded,\
      \ the final part of the library string is used to specify the strand from which\
      \ the read originates. The possible values are\n  F = read 1 (or single-end\
      \ read) comes from the forward strand\n  R = read 1 (or single-end read) comes\
      \ from the reverse strand\n"
    info: null
    default:
    - "A"
    required: false
    choices:
    - "A"
    - "U"
    - "SF"
    - "SR"
    - "IU"
    - "IS"
    - "ISF"
    - "ISR"
    - "OU"
    - "OS"
    - "OSF"
    - "OSR"
    - "MU"
    - "MS"
    - "MSF"
    - "MSR"
    direction: "input"
    multiple: false
    multiple_sep: ";"
- name: "Mapping input options"
  arguments:
  - type: "file"
    name: "--index"
    alternatives:
    - "-i"
    description: "Salmon index.\n"
    info: null
    example:
    - "transcriptome_index"
    must_exist: true
    create_parent: true
    required: false
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "file"
    name: "--unmated_reads"
    alternatives:
    - "-r"
    description: "List of files containing unmated reads of (e.g. single-end reads).\n"
    info: null
    example:
    - "sample.fq.gz"
    must_exist: true
    create_parent: true
    required: false
    direction: "input"
    multiple: true
    multiple_sep: ";"
  - type: "file"
    name: "--mates1"
    alternatives:
    - "-m1"
    description: "File containing the #1 mates.\n"
    info: null
    example:
    - "sample_1.fq.gz"
    must_exist: true
    create_parent: true
    required: false
    direction: "input"
    multiple: true
    multiple_sep: ";"
  - type: "file"
    name: "--mates2"
    alternatives:
    - "-m2"
    description: "File containing the #2 mates.\n"
    info: null
    example:
    - "sample_2.fq.gz"
    must_exist: true
    create_parent: true
    required: false
    direction: "input"
    multiple: true
    multiple_sep: ";"
- name: "Alignment input options"
  arguments:
  - type: "boolean_true"
    name: "--discard_orphans"
    description: "Discard orphan alignments in the input [for alignment-based mode\
      \ only]. If this flag is passed, then only paired alignments will be considered\
      \ toward quantification estimates. The default behavior is to consider orphan\
      \ alignments if no valid paired mappings exist.\n"
    info: null
    direction: "input"
  - type: "file"
    name: "--alignments"
    alternatives:
    - "-a"
    description: "Input alignment (BAM) file(s).\n"
    info: null
    example:
    - "sample.fq.gz"
    must_exist: true
    create_parent: true
    required: false
    direction: "input"
    multiple: true
    multiple_sep: ";"
  - type: "file"
    name: "--eqclasses"
    alternatives:
    - "-e"
    description: "input salmon weighted equivalence class file.\n"
    info: null
    must_exist: true
    create_parent: true
    required: false
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "file"
    name: "--targets"
    alternatives:
    - "-t"
    description: "FASTA format file containing target transcripts.\n"
    info: null
    example:
    - "transcripts.fasta"
    must_exist: true
    create_parent: true
    required: false
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "boolean_true"
    name: "--ont"
    description: "Use alignment model for Oxford Nanopore long reads\n"
    info: null
    direction: "input"
- name: "Output"
  arguments:
  - type: "file"
    name: "--output"
    alternatives:
    - "-o"
    description: "Output quantification directory.\n"
    info: null
    example:
    - "quant_output"
    must_exist: true
    create_parent: true
    required: true
    direction: "output"
    multiple: false
    multiple_sep: ";"
  - type: "file"
    name: "--quant_results"
    description: "Salmon quantification file.\n"
    info: null
    example:
    - "quant.sf"
    must_exist: true
    create_parent: true
    required: true
    direction: "output"
    multiple: false
    multiple_sep: ";"
- name: "Basic options"
  arguments:
  - type: "boolean_true"
    name: "--seq_bias"
    description: "Perform sequence-specific bias correction.\n"
    info: null
    direction: "input"
  - type: "boolean_true"
    name: "--gc_bias"
    description: "Perform fragment GC bias correction [beta for single-end reads].\n"
    info: null
    direction: "input"
  - type: "boolean_true"
    name: "--pos_bias"
    description: "Perform positional bias correction.\n"
    info: null
    direction: "input"
  - type: "double"
    name: "--incompat_prior"
    description: "Set the prior probability that an alignment that disagrees with\
      \ the specified library type (--lib_type) results from the true fragment origin.\
      \ Setting this to 0 specifies that alignments that disagree with the library\
      \ type should be \"impossible\", while setting it to 1 says that alignments\
      \ that disagree with the library type are no less likely than those that do.\n"
    info: null
    example:
    - 0.0
    required: false
    min: 0.0
    max: 1.0
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "file"
    name: "--gene_map"
    alternatives:
    - "-g"
    description: "File containing a mapping of transcripts to genes. If this file\
      \ is provided salmon will output both quant.sf and quant.genes.sf files, where\
      \ the latter contains aggregated gene-level abundance estimates.  The transcript\
      \ to gene mapping should be provided as either a GTF file, or a in a simple\
      \ tab-delimited format where each line contains the name of a transcript and\
      \ the gene to which it belongs separated by a tab. The extension of the file\
      \ is used to determine how the file should be parsed.  Files ending in '.gtf',\
      \ '.gff' or '.gff3' are assumed to be in GTF format; files with any other extension\
      \ are assumed to be in the simple format. In GTF / GFF format, the \"transcript_id\"\
      \ is assumed to contain the transcript identifier and the \"gene_id\" is assumed\
      \ to contain the corresponding gene identifier.\n"
    info: null
    example:
    - "gene_map.gtf"
    must_exist: true
    create_parent: true
    required: false
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "file"
    name: "--aux_target_file"
    description: "A file containing a list of \"auxiliary\" targets. These are valid\
      \ targets (i.e., not decoys) to which fragments are allowed to map and be assigned,\
      \ and which will be quantified, but for which auxiliary models like sequence-specific\
      \ and fragment-GC bias correction should not be applied.\n"
    info: null
    example:
    - "auxilary_targets.txt"
    must_exist: true
    create_parent: true
    required: false
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "boolean_true"
    name: "--meta"
    description: "If you're using Salmon on a metagenomic dataset, consider setting\
      \ this flag to disable parts of the abundance estimation model that make less\
      \ sense for metagenomic data.\n"
    info: null
    direction: "input"
  - type: "double"
    name: "--score_exp"
    description: "The factor by which sub-optimal alignment scores are downweighted\
      \ to produce a probability. If the best alignment score for the current read\
      \ is S, and the score for a particular alignment is w, then the probability\
      \ will be computed porportional to exp( - scoreExp * (S-w) ).\n"
    info: null
    example:
    - 1.0
    required: false
    direction: "input"
    multiple: false
    multiple_sep: ";"
- name: "Options specific to mapping mode"
  arguments:
  - type: "boolean_true"
    name: "--discard_orphans_quasi"
    description: "[selective-alignment mode only] \nDiscard orphan mappings in selective-alignment\
      \ mode. If this flag is passed then only paired mappings will be considered\
      \ toward quantification estimates. The default behavior is to consider orphan\
      \ mappings if no valid paired mappings exist. This flag is independent of the\
      \ option to write the orphaned mappings to file (--writeOrphanLinks).\n"
    info: null
    direction: "input"
  - type: "double"
    name: "--consensus_slack"
    description: "[selective-alignment mode only] \nThe amount of slack allowed in\
      \ the selective-alignment filtering mechanism. If this is set to a fraction,\
      \ X, greater than 0 (and in [0,1)), then uniMEM chains with scores below (100\
      \ * X)% of the best chain score for a read, and read pairs with a sum of chain\
      \ scores below (100 * X)% of the best chain score for a read pair will be discounted\
      \ as a mapping candidates.  The default value of this option is 0.35.\n"
    info: null
    example:
    - 0.35
    required: false
    min: 0.0
    max: 0.999999999
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "double"
    name: "--pre_merge_chain_sub_thresh"
    description: "[selective-alignment mode only] \nThe threshold of sub-optimal chains,\
      \ compared to the best chain on a given target, that will be retained and passed\
      \ to the next phase of mapping. Specifically, if the best chain for a read (or\
      \ read-end in paired-end mode) to target t has score X_t, then all chains for\
      \ this read with score >= X_t  * preMergeChainSubThresh will be retained and\
      \ passed to subsequent mapping phases.  This value must be in the range [0,\
      \ 1].\n"
    info: null
    example:
    - 0.75
    required: false
    min: 0.0
    max: 1.0
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "double"
    name: "--post_merge_chain_sub_thresh"
    description: "[selective-alignment mode only] \nThe threshold of sub-optimal chains,\
      \ compared to the best chain on a given target, that will be retained and passed\
      \ to the next phase of mapping. This is different than post_merge_chain_sub_thresh,\
      \ because this is applied to pairs of chains (from the ends of paired-end reads)\
      \ after merging (i.e. after checking concordancy constraints etc.). Specifically,\
      \ if the best chain pair to target t has score X_t, then all chain pairs for\
      \ this read pair with score >= X_t * post_merge_chain_sub_thresh will be retained\
      \ and passed to subsequent mapping phases. This value must be in the range [0,\
      \ 1]. Note: This option is only meaningful for paired-end libraries, and is\
      \ ignored for single-end libraries.\n"
    info: null
    example:
    - 0.9
    required: false
    min: 0.0
    max: 1.0
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "double"
    name: "--orphan_chain_sub_thresh"
    description: "[selective-alignment mode only]\nThis threshold sets a global sub-optimality\
      \ threshold for chains corresponding to orphan mappings. That is, if the merging\
      \ procedure results in no concordant mappings then only orphan mappings with\
      \ a chain score >= orphan_chain_sub_thresh * bestChainScore will be retained\
      \ and passed to subsequent mapping phases. This value must be in the range [0,\
      \ 1]. Note: This option is only meaningful for paired-end libraries, and is\
      \ ignored for single-end libraries.\n"
    info: null
    example:
    - 0.95
    required: false
    min: 0.0
    max: 1.0
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "double"
    name: "--min_score_fraction"
    description: "[selective-alignment mode only]\nThe fraction of the optimal possible\
      \ alignment score that a mapping must achieve in order to be considered \"valid\"\
      \ --- should be in (0,1]. Default 0.65\n"
    info: null
    example:
    - 0.65
    required: false
    min: 1.0E-9
    max: 1.0
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "integer"
    name: "--mismatch_seed_skip"
    description: "[selective-alignment mode only]\nAfter a k-mer hit is extended to\
      \ a uni-MEM, the uni-MEM extension can terminate for one of 3 reasons; the end\
      \ of the read, the end of the unitig, or a mismatch. If the extension ends because\
      \ of a mismatch, this is likely the result of a sequencing error. To avoid looking\
      \ up many k-mers that will likely fail to be located in the index, the search\
      \ procedure skips by a factor of mismatch_seed_skip until it either (1) finds\
      \ another match or (2) is k-bases past the mismatch position. This value controls\
      \ that skip length. A smaller value can increase sensitivity, while a larger\
      \ value can speed up seeding.\n"
    info: null
    example:
    - 3
    required: false
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "boolean_true"
    name: "--disable_chaining_heuristic"
    description: "[selective-alignment mode only] \nBy default, the heuristic of (Li\
      \ 2018) is implemented, which terminates the chaining DP once a given number\
      \ of valid backpointers are found. This speeds up the seed (MEM) chaining step,\
      \ but may result in sub-optimal chains in complex situations (e.g. sequences\
      \ with many repeats and overlapping repeats). Passing this flag will disable\
      \ the chaining heuristic, and perform the full chaining dynamic program, guaranteeing\
      \ the optimal chain is found in this step.\n"
    info: null
    direction: "input"
  - type: "double"
    name: "--decoy_threshold"
    description: "[selective-alignment mode only]\nFor an alignemnt to an annotated\
      \ transcript to be considered invalid, it must have an alignment score < (decoy_threshold\
      \ * bestDecoyScore). A value of 1.0 means that any alignment strictly worse\
      \ than the best decoy alignment will be discarded. A smaller value will allow\
      \ reads to be allocated to transcripts even if they strictly align better to\
      \ the decoy sequence.\n"
    info: null
    example:
    - 1.0
    required: false
    min: 0.0
    max: 1.0
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "integer"
    name: "--ma"
    description: "[selective-alignment mode only]\nThe value given to a match between\
      \ read and reference nucleotides in an alignment.\n"
    info: null
    example:
    - 2
    required: false
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "integer"
    name: "--mp"
    description: "[selective-alignment mode only]\nThe value given to a mis-match\
      \ between read and reference nucleotides in an alignment.\n"
    info: null
    example:
    - -4
    required: false
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "integer"
    name: "--go"
    description: "[selective-alignment mode only]\nThe value given to a gap opening\
      \ in an alignment.\n"
    info: null
    example:
    - 6
    required: false
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "integer"
    name: "--ge"
    description: "[selective-alignment mode only]\nThe value given to a gap extension\
      \ in an alignment.\n"
    info: null
    example:
    - 2
    required: false
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "integer"
    name: "--bandwidth"
    description: "[selective-alignment mode only]\nThe value used for the bandwidth\
      \ passed to ksw2. A smaller bandwidth can make the alignment verification run\
      \ more quickly, but could possibly miss valid alignments.\n"
    info: null
    example:
    - 15
    required: false
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "boolean_true"
    name: "--allow_dovetail"
    description: "[selective-alignment mode only] \nAllow dovetailing mappings.\n"
    info: null
    direction: "input"
  - type: "boolean_true"
    name: "--recover_orphans"
    description: "[selective-alignment mode only] \nAttempt to recover the mates of\
      \ orphaned reads. This uses edlib for orphan recovery, and so introduces some\
      \ computational overhead, but it can improve sensitivity.\n"
    info: null
    direction: "input"
  - type: "boolean_true"
    name: "--mimicBT2"
    description: "[selective-alignment mode only] \nSet flags to mimic parameters\
      \ similar to Bowtie2 with --no-discordant and --no-mixed flags. This increases\
      \ disallows dovetailing reads, and discards orphans. Note, this does not impose\
      \ the very strict parameters assumed by RSEM+Bowtie2, like gapless alignments.\
      \ For that behavior, use the --mimic_strictBT2 flag below.\n"
    info: null
    direction: "input"
  - type: "boolean_true"
    name: "--mimic_strictBT2"
    description: "[selective-alignment mode only] \nSet flags to mimic the very strict\
      \ parameters used by RSEM+Bowtie2. This increases --min_score_fraction to 0.8,\
      \ disallows dovetailing reads, discards orphans, and disallows gaps in alignments.\n"
    info: null
    direction: "input"
  - type: "boolean_true"
    name: "--softclip"
    description: "[selective-alignment mode only] \nAllos soft-clipping of reads during\
      \ selective-alignment. If this option is provided, then regions at the beginning\
      \ or end of the read can be withheld from alignment without any effect on the\
      \ resulting score (i.e. neither adding nor removing from the score). This will\
      \ drastically reduce the penalty if there are mismatches at the beginning or\
      \ end of the read due to e.g. low-quality bases or adapters. NOTE: Even with\
      \ soft-clipping enabled, the read must still achieve a score of at least min_score_fraction\
      \ * maximum achievable score, where the maximum achievable score is computed\
      \ based on the full (un-clipped) read length.\n"
    info: null
    direction: "input"
  - type: "boolean_true"
    name: "--softclip_overhangs"
    description: "[selective-alignment mode only] \nAllow soft-clipping of reads that\
      \ overhang the beginning or ends of the transcript. In this case, the overhaning\
      \ section of the read will simply be unaligned, and will not contribute or detract\
      \ from the alignment score. The default policy is to force an end-to-end alignment\
      \ of the entire read, so that overhanings will result in some deletion of nucleotides\
      \ from the read.\n"
    info: null
    direction: "input"
  - type: "boolean_true"
    name: "--full_length_alignment"
    description: "[selective-alignment mode only] \nPerform selective alignment over\
      \ the full length of the read, beginning from the (approximate) initial mapping\
      \ location and using extension alignment. This is in contrast with the default\
      \ behavior which is to only perform alignment between the MEMs in the optimal\
      \ chain (and before the first and after the last MEM if applicable). The default\
      \ strategy forces the MEMs to belong to the alignment, but has the benefit that\
      \ it can discover indels prior to the first hit shared between the read and\
      \ reference. Except in very rare circumstances, the default mode should be more\
      \ accurate.\n"
    info: null
    direction: "input"
  - type: "boolean_true"
    name: "--hard_filter"
    description: "[selective-alignment mode only] \nInstead of weighting mappings\
      \ by their alignment score, this flag will discard any mappings with sub-optimal\
      \ alignment score.  The default option of soft-filtering (i.e. weighting mappings\
      \ by their alignment score) usually yields slightly more accurate abundance\
      \ estimates but this flag may be desirable if you want more accurate 'naive'\
      \ equivalence classes, rather than range factorized equivalence classes.\n"
    info: null
    direction: "input"
  - type: "double"
    name: "--min_aln_prob"
    description: "The minimum number of fragments that must be assigned to the transcriptome\
      \ for quantification to proceed.\n"
    info: null
    example:
    - 1.0E-5
    required: false
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "boolean_true"
    name: "--write_mappings"
    alternatives:
    - "-z"
    description: "If this option is provided, then the selective-alignment results\
      \ will be written out in SAM-compatible format. By default, output will be directed\
      \ to stdout, but an alternative file name can be provided instead.\n"
    info: null
    direction: "input"
  - type: "file"
    name: "--mapping_sam"
    description: "Path to file that should output the selective-alignment results\
      \ in SAM-compatible format. THis option must be provided while using --write_mappings"
    info: null
    example:
    - "mappings.sam"
    must_exist: true
    create_parent: true
    required: false
    direction: "output"
    multiple: false
    multiple_sep: ";"
  - type: "boolean_true"
    name: "--write_qualities"
    description: "This flag only has meaning if mappings are being written (with --write_mappings/-z).\
      \ If this flag is provided, then the output SAM file will contain quality strings\
      \ as well as read sequences. Note that this can greatly increase the size of\
      \ the output file.\n"
    info: null
    direction: "input"
  - type: "string"
    name: "--hit_filter_policy"
    description: "[selective-alignment mode only]\nDetermines the policy by which\
      \ hits are filtered in selective alignment. Filtering hits after chaining (the\
      \ default) is more sensitive, but more computationally intensive, because it\
      \ performs the chaining dynamic program for all hits. Filtering before chaining\
      \ is faster, but some true hits may be missed. The options are BEFORE, AFTER,\
      \ BOTH and NONE.\n"
    info: null
    example:
    - "AFTER"
    required: false
    choices:
    - "BEFORE"
    - "AFTER"
    - "BOTH"
    - "NONE"
    direction: "input"
    multiple: false
    multiple_sep: ";"
- name: "Advance options"
  arguments:
  - type: "boolean_true"
    name: "--alternative_init_mode"
    description: "Use an alternative strategy (rather than simple interpolation between)\
      \ the online and uniform abundance estimates to initialize the EM / VBEM algorithm.\n"
    info: null
    direction: "input"
  - type: "file"
    name: "--aux_dir"
    description: "The sub-directory of the quantification directory where auxiliary\
      \ information e.g. bootstraps, bias parameters, etc. will be written.\n"
    info: null
    example:
    - "aux_info"
    must_exist: true
    create_parent: true
    required: false
    direction: "output"
    multiple: false
    multiple_sep: ";"
  - type: "boolean_true"
    name: "--skip_quant"
    description: "Skip performing the actual transcript quantification (including\
      \ any Gibbs sampling or bootstrapping).\n"
    info: null
    direction: "input"
  - type: "boolean_true"
    name: "--dump_eq"
    description: "Dump the simple equivalence class counts that were computed during\
      \ mapping or alignment.\n"
    info: null
    direction: "input"
  - type: "boolean_true"
    name: "--dump_eq_weights"
    alternatives:
    - "-d"
    description: "Dump conditional probabilities associated with transcripts when\
      \ equivalence class information is being dumped to file. Note, this will dump\
      \ the factorization that is actually used by salmon's offline phase for inference.\
      \ If you are using range-factorized equivalence classes (the default) then the\
      \ same transcript set may appear multiple times with different associated conditional\
      \ probabilities.\n"
    info: null
    direction: "input"
  - type: "integer"
    name: "--min_assigned_frags"
    description: "The minimum number of fragments that must be assigned to the transcriptome\
      \ for quantification to proceed.\n"
    info: null
    example:
    - 10
    required: false
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "boolean_true"
    name: "--reduce_GC_memory"
    description: "If this option is selected, a more memory efficient (but slightly\
      \ slower) representation is used to compute fragment GC content. Enabling this\
      \ will reduce memory usage, but can also reduce speed. However, the results\
      \ themselves will remain the same.\n"
    info: null
    direction: "input"
  - type: "integer"
    name: "--bias_speed_samp"
    description: "The value at which the fragment length PMF is down-sampled when\
      \ evaluating sequence-specific & GC fragment bias. Larger values speed up effective\
      \ length correction, but may decrease the fidelity of bias modeling results.\n"
    info: null
    example:
    - 5
    required: false
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "integer"
    name: "--fld_max"
    description: "The maximum fragment length to consider when building the empirical\
      \ distribution\n"
    info: null
    example:
    - 1000
    required: false
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "integer"
    name: "--fld_mean"
    description: "The mean used in the fragment length distribution prior\n"
    info: null
    example:
    - 250
    required: false
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "integer"
    name: "--fld_SD"
    description: "The standard deviation used in the fragment length distribution\
      \ prior\n"
    info: null
    example:
    - 25
    required: false
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "double"
    name: "--forgetting_factor"
    alternatives:
    - "-f"
    description: "The forgetting factor used in the online learning schedule. A smallervalue\
      \ results in quicker learning, but higher variance and may be unstable. A larger\
      \ value results in slower learning but may be more stable.  Value should be\
      \ in the interval (0.5, 1.0].\n"
    info: null
    example:
    - 0.65
    required: false
    min: 0.500000001
    max: 1.0
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "boolean_true"
    name: "--init_uniform"
    description: "Initialize the offline inference with uniform parameters, rather\
      \ than seeding with online parameters.\n"
    info: null
    direction: "input"
  - type: "integer"
    name: "--max_occs_per_hit"
    description: "When collecting \"hits\" (MEMs), hits having more than max_occs_per_hit\
      \ occurrences won't be considered.\n"
    info: null
    example:
    - 1000
    required: false
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "integer"
    name: "--max_read_occ"
    description: "Reads \"mapping\" to more than this many places won't be considered.\n"
    info: null
    example:
    - 200
    required: false
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "boolean_true"
    name: "--no_length_correction"
    description: "Entirely disables length correction when estimating the abundance\
      \ of transcripts. This option can be used with protocols where one expects that\
      \ fragments derive from their underlying targets without regard to that target's\
      \ length (e.g. QuantSeq)\n"
    info: null
    direction: "input"
  - type: "boolean_true"
    name: "--no_effective_length_correction"
    description: "Disables effective length correction when computing the probability\
      \ that a fragment was generated from a transcript. If this flag is passed in,the\
      \ fragment length distribution is not taken into account when computing this\
      \ probability.\n"
    info: null
    direction: "input"
  - type: "boolean_true"
    name: "--no_single_frag_prob"
    description: "Disables the estimation of an associated fragment length probability\
      \ for single-end reads or for orphaned mappings in paired-end libraries. The\
      \ default behavior is to consider the  probability of all possible fragment\
      \ lengths associated with the retained mapping. Enabling this flag (i.e. turning\
      \ this default behavior off) will simply not attempt to estimate a fragment\
      \ length probability in such cases.\n"
    info: null
    direction: "input"
  - type: "boolean_true"
    name: "--no_frag_length_dist"
    description: "Don't consider concordance with the learned fragment length distribution\
      \ when trying to determine the probability that a fragment has originated from\
      \ a specified location. Normally, Fragments with unlikely lengths will be assigned\
      \ a smaller relative probability than those with more likely lengths. When this\
      \ flag is passed in, the observed fragment length has no effect on that fragment's\
      \ a priori probability.\n"
    info: null
    direction: "input"
  - type: "boolean_true"
    name: "--no_bias_length_threshold"
    description: "If this option is enabled, then no (lower) threshold will be set\
      \ on how short bias correction can make effective lengths. This can increase\
      \ the precision of bias correction, but harm robustness. The default correction\
      \ applies a threshold.\n"
    info: null
    direction: "input"
  - type: "integer"
    name: "--num_bias_samples"
    description: "Number of fragment mappings to use when learning the sequence-specific\
      \ bias model.\n"
    info: null
    example:
    - 2000000
    required: false
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "integer"
    name: "--num_aux_model_samples"
    description: "The first <num_aux_model_samples> are used to train the auxiliary\
      \ model parameters (e.g. fragment length distribution, bias, etc.). After ther\
      \ first <num_aux_model_samples> observations the auxiliary model parameters\
      \ will be assumed to have converged and will be fixed.\n"
    info: null
    example:
    - 5000000
    required: false
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "integer"
    name: "--num_pre_aux_model_samples"
    description: "The first <numPreAuxModelSamples> will have their assignment likelihoods\
      \ and contributions to the transcript abundances computed without applying any\
      \ auxiliary models. The purpose of ignoring the auxiliary models for the first\
      \ <num_pre_aux_model_samples> observations is to avoid applying these models\
      \ before their parameters have been learned sufficiently well.\n"
    info: null
    example:
    - 5000
    required: false
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "boolean_true"
    name: "--useEM"
    description: "Use the traditional EM algorithm for optimization in the batch passes.\n"
    info: null
    direction: "input"
  - type: "boolean_true"
    name: "--useVBOpt"
    description: "Use the Variational Bayesian EM [default]\n"
    info: null
    direction: "input"
  - type: "integer"
    name: "--range_factorization_bins"
    description: "Factorizes the likelihood used in quantification by adopting a new\
      \ notion of equivalence classes based on the conditional probabilities with\
      \ which fragments are generated from different transcripts. This is a more fine-grained\
      \ factorization than the normal rich equivalence classes. The default value\
      \ (4) corresponds to the default used in Zakeri et al. 2017 (doi: 10.1093/bioinformatics/btx262),\
      \ and larger values imply a more fine-grained factorization. If range factorization\
      \ is enabled, a common value to select for this parameter is 4. A value of 0\
      \ signifies the use of basic rich equivalence classes.\n"
    info: null
    example:
    - 4
    required: false
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "integer"
    name: "--num_Gibbs_samples"
    description: "Number of Gibbs sampling rounds to perform.\n"
    info: null
    example:
    - 0
    required: false
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "boolean_true"
    name: "--no_Gamma_draw"
    description: "This switch will disable drawing transcript fractions from a Gamma\
      \ distribution during Gibbs sampling. In this case the sampler does not account\
      \ for shot-noise, but only assignment ambiguity\n"
    info: null
    direction: "input"
  - type: "integer"
    name: "--num_bootstraps"
    description: "Number of bootstrap samples to generate. Note: This is mutually\
      \ exclusive with Gibbs sampling.\n"
    info: null
    example:
    - 0
    required: false
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "boolean_true"
    name: "--bootstrap_reproject"
    description: "This switch will learn the parameter distribution from the bootstrapped\
      \ counts for each sample, but will reproject those parameters onto the original\
      \ equivalence class counts.\n"
    info: null
    direction: "input"
  - type: "integer"
    name: "--thinning_factor"
    description: "Number of steps to discard for every sample kept from the Gibbs\
      \ chain. The larger this number, the less chance that subsequent samples are\
      \ auto-correlated, but the slower sampling becomes.\n"
    info: null
    example:
    - 16
    required: false
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "boolean_true"
    name: "--quiet"
    alternatives:
    - "-q"
    description: "Be quiet while doing quantification (don't write informative output\
      \ to the console unless something goes wrong).\n"
    info: null
    direction: "input"
  - type: "boolean_true"
    name: "--per_transcript_prior"
    description: "The prior (either the default or the argument provided via --vb_prior)\
      \ will be interpreted as a transcript-level prior (i.e. each transcript will\
      \ be given a prior read count of this value)\n"
    info: null
    direction: "input"
  - type: "boolean_true"
    name: "--per_nucleotide_prior"
    description: "The prior (either the default or the argument provided via --vb_prior)\
      \ will be interpreted as a nucleotide-level prior (i.e. each nucleotide will\
      \ be given a prior read count of this value)\n"
    info: null
    direction: "input"
  - type: "integer"
    name: "--sig_digits"
    description: "The number of significant digits to write when outputting the EffectiveLength\
      \ and NumReads columns\n"
    info: null
    example:
    - 3
    required: false
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "double"
    name: "--vb_prior"
    description: "The prior that will be used in the VBEM algorithm. This is interpreted\
      \ as a per-transcript prior, unless the --per_nucleotide_prior flag is also\
      \ given. If the --per_nucleotide_prior flag is given, this is used as a nucleotide-level\
      \ prior. If the default is used, it will be divided by 1000 before being used\
      \ as a nucleotide-level prior, i.e. the default per-nucleotide prior will be\
      \ 1e-5.\n"
    info: null
    example:
    - 0.01
    required: false
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "boolean_true"
    name: "--write_orphan_links"
    description: "Write the transcripts that are linked by orphaned reads.\n"
    info: null
    direction: "input"
  - type: "boolean_true"
    name: "--write_unmapped_names"
    description: "Write the names of un-mapped reads to the file unmapped_names.txt\
      \ in the auxiliary directory.\n"
    info: null
    direction: "input"
- name: "Alignment-specific options"
  arguments:
  - type: "boolean_true"
    name: "--no_error_model"
    description: "Turn off the alignment error model, which takes into account the\
      \ the observed frequency of different types of mismatches / indels when computing\
      \ the likelihood of a given alignment. Turning this off can speed up alignment-based\
      \ salmon, but can harm quantification accuracy.\n"
    info: null
    direction: "input"
  - type: "integer"
    name: "--num_error_bins"
    description: "The number of bins into which to divide each read when learning\
      \ and applying the error model.  For example, a value of 10 would mean that\
      \ effectively, a separate error model is leared and applied to each 10th of\
      \ the read, while a value of 3 would mean that a separate error model is applied\
      \ to the read beginning (first third), middle (second third) and end (final\
      \ third).\n"
    info: null
    example:
    - 6
    required: false
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "boolean_true"
    name: "--sample_out"
    alternatives:
    - "-s"
    description: "Write a \"postSample.bam\" file in the output directory that will\
      \ sample the input alignments according to the estimated transcript abundances.\
      \ If you're going to perform downstream analysis of the alignments with tools\
      \ which don't, themselves, take fragment assignment ambiguity into account,\
      \ you should use this output.\n"
    info: null
    direction: "input"
  - type: "boolean_true"
    name: "--sample_unaligned"
    alternatives:
    - "-u"
    description: "In addition to sampling the aligned reads, also write the un-aligned\
      \ reads to \"postSample.bam\".\n"
    info: null
    direction: "input"
  - type: "boolean_true"
    name: "--gencode"
    description: "This flag will expect the input transcript fasta to be in GENCODE\
      \ format, and will split the transcript name at the first '|' character. These\
      \ reduced names will be used in the output and when looking for these transcripts\
      \ in a gene to transcript GTF.\n"
    info: null
    direction: "input"
  - type: "integer"
    name: "--mapping_cache_memory_limit"
    description: "If the file contained fewer than this many mapped reads, then just\
      \ keep the data in memory for subsequent rounds of inference. Obviously, this\
      \ value should not be too large if you wish to keep a low memory usage, but\
      \ setting it large enough to accommodate all of the mapped read can substantially\
      \ speed up inference on \"small\" files that contain only a few million reads.\n"
    info: null
    example:
    - 2000000
    required: false
    direction: "input"
    multiple: false
    multiple_sep: ";"
resources:
- type: "bash_script"
  path: "script.sh"
  is_executable: true
description: "Salmon is a tool for wicked-fast transcript quantification from RNA-seq\
  \ data. It can either make use of pre-computed alignments (in the form of a SAM/BAM\
  \ file) to the transcripts rather than the raw reads, or can be run in the mapping-based\
  \ mode. \n"
test_resources:
- type: "bash_script"
  path: "test.sh"
  is_executable: true
info: null
status: "enabled"
requirements:
  commands:
  - "ps"
keywords:
- "Transcriptome"
- "Quantification"
license: "GPL-3.0"
references:
  doi:
  - "10.1038/nmeth.4197"
links:
  repository: "https://github.com/COMBINE-lab/salmon"
  homepage: "https://salmon.readthedocs.io/en/latest/salmon.html"
  documentation: "https://salmon.readthedocs.io/en/latest/salmon.html"
runners:
- type: "executable"
  id: "executable"
  docker_setup_strategy: "ifneedbepullelsecachedbuild"
- type: "nextflow"
  id: "nextflow"
  directives:
    tag: "$id"
  auto:
    simplifyInput: true
    simplifyOutput: false
    transcript: false
    publish: false
  config:
    labels:
      mem1gb: "memory = 1000000000.B"
      mem2gb: "memory = 2000000000.B"
      mem5gb: "memory = 5000000000.B"
      mem10gb: "memory = 10000000000.B"
      mem20gb: "memory = 20000000000.B"
      mem50gb: "memory = 50000000000.B"
      mem100gb: "memory = 100000000000.B"
      mem200gb: "memory = 200000000000.B"
      mem500gb: "memory = 500000000000.B"
      mem1tb: "memory = 1000000000000.B"
      mem2tb: "memory = 2000000000000.B"
      mem5tb: "memory = 5000000000000.B"
      mem10tb: "memory = 10000000000000.B"
      mem20tb: "memory = 20000000000000.B"
      mem50tb: "memory = 50000000000000.B"
      mem100tb: "memory = 100000000000000.B"
      mem200tb: "memory = 200000000000000.B"
      mem500tb: "memory = 500000000000000.B"
      mem1gib: "memory = 1073741824.B"
      mem2gib: "memory = 2147483648.B"
      mem4gib: "memory = 4294967296.B"
      mem8gib: "memory = 8589934592.B"
      mem16gib: "memory = 17179869184.B"
      mem32gib: "memory = 34359738368.B"
      mem64gib: "memory = 68719476736.B"
      mem128gib: "memory = 137438953472.B"
      mem256gib: "memory = 274877906944.B"
      mem512gib: "memory = 549755813888.B"
      mem1tib: "memory = 1099511627776.B"
      mem2tib: "memory = 2199023255552.B"
      mem4tib: "memory = 4398046511104.B"
      mem8tib: "memory = 8796093022208.B"
      mem16tib: "memory = 17592186044416.B"
      mem32tib: "memory = 35184372088832.B"
      mem64tib: "memory = 70368744177664.B"
      mem128tib: "memory = 140737488355328.B"
      mem256tib: "memory = 281474976710656.B"
      mem512tib: "memory = 562949953421312.B"
      cpu1: "cpus = 1"
      cpu2: "cpus = 2"
      cpu5: "cpus = 5"
      cpu10: "cpus = 10"
      cpu20: "cpus = 20"
      cpu50: "cpus = 50"
      cpu100: "cpus = 100"
      cpu200: "cpus = 200"
      cpu500: "cpus = 500"
      cpu1000: "cpus = 1000"
  debug: false
  container: "docker"
engines:
- type: "docker"
  id: "docker"
  image: "quay.io/biocontainers/salmon:1.10.2--hecfa306_0"
  target_registry: "images.viash-hub.com"
  target_tag: "v0.2.0"
  namespace_separator: "/"
  setup:
  - type: "docker"
    run:
    - "salmon index -v 2>&1 | sed 's/salmon \\([0-9.]*\\)/salmon: \\1/' > /var/software_versions.txt\n"
  entrypoint: []
  cmd: null
- type: "native"
  id: "native"
build_info:
  config: "src/salmon/salmon_quant/config.vsh.yaml"
  runner: "nextflow"
  engine: "docker|native"
  output: "target/nextflow/salmon/salmon_quant"
  executable: "target/nextflow/salmon/salmon_quant/main.nf"
  viash_version: "0.9.0"
  git_commit: "7e530218844c373048bc33de58f021b6460642e5"
  git_remote: "https://x-access-token:ghs_kiUBq39QrAlnG6IaeAcTcXhllzqpOV4LDB3e@github.com/viash-hub/biobox"
package_config:
  name: "biobox"
  version: "v0.2.0"
  description: "A collection of bioinformatics tools for working with sequence data.\n"
  info: null
  viash_version: "0.9.0"
  source: "src"
  target: "target"
  config_mods:
  - ".requirements.commands := ['ps']\n"
  - ".engines += { type: \"native\" }"
  - ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'"
  - ".engines[.type == 'docker'].target_tag := 'v0.2.0'"
  keywords:
  - "bioinformatics"
  - "modules"
  - "sequencing"
  license: "MIT"
  organization: "vsh"
  links:
    repository: "https://github.com/viash-hub/biobox"
    issue_tracker: "https://github.com/viash-hub/biobox/issues"
