salmon/salmon_quant
Transcriptome
Quantification
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.
Common input options
Name | Type & Properties | Description |
|---|---|---|
--lib_type -l | string | Format string describing the library. The library type string consists of three parts: 1. Relative orientation of the reads: This part is only provided if the library is paired-end, The possible options are I = inward O = outward M = matching 2. Strandedness of the library: This part specifies whether the protocol is stranded or unstranded. The options are: S = stranded U = unstranded 3. 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 F = read 1 (or single-end read) comes from the forward strand R = read 1 (or single-end read) comes from the reverse strand |
Mapping input options
Name | Type & Properties | Description |
|---|---|---|
--index -i | file | Salmon index. |
--unmated_reads -r | file multiple | List of files containing unmated reads of (e.g. single-end reads). |
--mates1 -m1 | file multiple | File containing the #1 mates. |
--mates2 -m2 | file multiple | File containing the #2 mates. |
Alignment input options
Name | Type & Properties | Description |
|---|---|---|
--discard_orphans | boolean_true | 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. |
--alignments -a | file multiple | Input alignment (BAM) file(s). |
--eqclasses -e | file | input salmon weighted equivalence class file. |
--targets -t | file | FASTA format file containing target transcripts. |
--ont | boolean_true | Use alignment model for Oxford Nanopore long reads |
Output
Name | Type & Properties | Description |
|---|---|---|
--output -o | file required output | Output quantification directory. |
--quant_results | file output | Salmon quantification file. |
Basic options
Name | Type & Properties | Description |
|---|---|---|
--seq_bias | boolean_true | Perform sequence-specific bias correction. |
--gc_bias | boolean_true | Perform fragment GC bias correction [beta for single-end reads]. |
--pos_bias | boolean_true | Perform positional bias correction. |
--incompat_prior | double | 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. |
--gene_map -g | file | 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. |
--aux_target_file | file | 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. |
--meta | boolean_true | 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. |
--score_exp | double | 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) ). |
Options specific to mapping mode
Name | Type & Properties | Description |
|---|---|---|
--discard_orphans_quasi | boolean_true | [selective-alignment mode only] Discard 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). |
--consensus_slack | double | [selective-alignment mode only] The 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. |
--pre_merge_chain_sub_thresh | double | [selective-alignment mode only] The 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]. |
--post_merge_chain_sub_thresh | double | [selective-alignment mode only] The 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. |
--orphan_chain_sub_thresh | double | [selective-alignment mode only] This 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. |
--min_score_fraction | double | [selective-alignment mode only] The 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 |
--mismatch_seed_skip | integer | [selective-alignment mode only] After 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. |
--disable_chaining_heuristic | boolean_true | [selective-alignment mode only] By 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. |
--decoy_threshold | double | [selective-alignment mode only] For 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. |
--ma | integer | [selective-alignment mode only] The value given to a match between read and reference nucleotides in an alignment. |
--mp | integer | [selective-alignment mode only] The value given to a mis-match between read and reference nucleotides in an alignment. |
--go | integer | [selective-alignment mode only] The value given to a gap opening in an alignment. |
--ge | integer | [selective-alignment mode only] The value given to a gap extension in an alignment. |
--bandwidth | integer | [selective-alignment mode only] The 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. |
--allow_dovetail | boolean_true | [selective-alignment mode only] Allow dovetailing mappings. |
--recover_orphans | boolean_true | [selective-alignment mode only] Attempt to recover the mates of orphaned reads. This uses edlib for orphan recovery, and so introduces some computational overhead, but it can improve sensitivity. |
--mimicBT2 | boolean_true | [selective-alignment mode only] Set 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. |
--mimic_strictBT2 | boolean_true | [selective-alignment mode only] Set 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. |
--softclip | boolean_true | [selective-alignment mode only] Allos 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. |
--softclip_overhangs | boolean_true | [selective-alignment mode only] Allow 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. |
--full_length_alignment | boolean_true | [selective-alignment mode only] Perform 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. |
--hard_filter | boolean_true | [selective-alignment mode only] Instead 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. |
--min_aln_prob | double | The minimum number of fragments that must be assigned to the transcriptome for quantification to proceed. |
--write_mappings -z | boolean_true | 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. |
--mapping_sam | file output | Path to file that should output the selective-alignment results in SAM-compatible format. This option must be provided while using --write_mappings |
--write_qualities | boolean_true | 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. |
--hit_filter_policy | string | [selective-alignment mode only] Determines 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. |
Advance options
Name | Type & Properties | Description |
|---|---|---|
--alternative_init_mode | boolean_true | Use an alternative strategy (rather than simple interpolation between) the online and uniform abundance estimates to initialize the EM / VBEM algorithm. |
--aux_dir | file output | The sub-directory of the quantification directory where auxiliary information e.g. bootstraps, bias parameters, etc. will be written. |
--skip_quant | boolean_true | Skip performing the actual transcript quantification (including any Gibbs sampling or bootstrapping). |
--dump_eq | boolean_true | Dump the simple equivalence class counts that were computed during mapping or alignment. |
--dump_eq_weights -d | boolean_true | 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. |
--min_assigned_frags | integer | The minimum number of fragments that must be assigned to the transcriptome for quantification to proceed. |
--reduce_GC_memory | boolean_true | 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. |
--bias_speed_samp | integer | 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. |
--fld_max | integer | The maximum fragment length to consider when building the empirical distribution |
--fld_mean | integer | The mean used in the fragment length distribution prior |
--fld_SD | integer | The standard deviation used in the fragment length distribution prior |
--forgetting_factor -f | double | 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]. |
--init_uniform | boolean_true | Initialize the offline inference with uniform parameters, rather than seeding with online parameters. |
--max_occs_per_hit | integer | When collecting "hits" (MEMs), hits having more than max_occs_per_hit occurrences won't be considered. |
--max_read_occ | integer | Reads "mapping" to more than this many places won't be considered. |
--no_length_correction | boolean_true | 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) |
--no_effective_length_correction | boolean_true | 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. |
--no_single_frag_prob | boolean_true | 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. |
--no_frag_length_dist | boolean_true | 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. |
--no_bias_length_threshold | boolean_true | 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. |
--num_bias_samples | integer | Number of fragment mappings to use when learning the sequence-specific bias model. |
--num_aux_model_samples | integer | 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. |
--num_pre_aux_model_samples | integer | 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. |
--useEM | boolean_true | Use the traditional EM algorithm for optimization in the batch passes. |
--useVBOpt | boolean_true | Use the Variational Bayesian EM [default] |
--range_factorization_bins | integer | 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. |
--num_Gibbs_samples | integer | Number of Gibbs sampling rounds to perform. |
--no_Gamma_draw | boolean_true | 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 |
--num_bootstraps | integer | Number of bootstrap samples to generate. Note: This is mutually exclusive with Gibbs sampling. |
--bootstrap_reproject | boolean_true | 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. |
--thinning_factor | integer | 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. |
--quiet -q | boolean_true | Be quiet while doing quantification (don't write informative output to the console unless something goes wrong). |
--per_transcript_prior | boolean_true | 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) |
--per_nucleotide_prior | boolean_true | 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) |
--sig_digits | integer | The number of significant digits to write when outputting the EffectiveLength and NumReads columns |
--vb_prior | double | 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. |
--write_orphan_links | boolean_true | Write the transcripts that are linked by orphaned reads. |
--write_unmapped_names | boolean_true | Write the names of un-mapped reads to the file unmapped_names.txt in the auxiliary directory. |
Alignment-specific options
Name | Type & Properties | Description |
|---|---|---|
--no_error_model | boolean_true | 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. |
--num_error_bins | integer | 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). |
--sample_out -s | boolean_true | 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. |
--sample_unaligned -u | boolean_true | In addition to sampling the aligned reads, also write the un-aligned reads to "postSample.bam". |
--gencode | boolean_true | 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. |
--mapping_cache_memory_limit | integer | 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. |
Run this component
Run the following command to execute this component with Nextflow:
cat > params.yaml <<'EOM'
lib_type: [ "A" ]
output: "$id.$key.output.quant_output"
quant_results: "$id.$key.quant_results.sf"
mapping_sam: "$id.$key.mapping_sam.sam"
aux_dir: "$id.$key.aux_dir.aux_info"
id: "run"
publish_dir: "output/"
EOM
nextflow run https://packages.viash-hub.com/vsh/biobox.git \
-revision v0.3.0 \
-main-script target/nextflow/salmon/salmon_quant/main.nf \
-params-file params.yaml Relationships
Used by
0 relationships
No components use this component.
Current component
salmon/salmon_quantbiobox v0.3.0
Uses
0 relationships
No component dependencies found.