Skip to content

3. Tutorial (Advanced Settings)

Amirsadra Mohseni edited this page Oct 31, 2025 · 30 revisions

SIRIUS flags continued.

  1. --soft_rscu_thresh floating point value >= 0.0 [Defaults to 0.0 if unspecified]

    • Specify if you would like to provide a soft cut-off for codons with an RSCU value under this threshold. Codons with an RSCU below this value might be excluded from the output genes. See the mathematical explanation below on how this flag behaves. Using this flag requires you to also specify the following:
      • -c, --codon_usage_fpath string value [Defaults to this file if unspecified]
        • Path to the .csv file containing amino acid codes, their codons, and the respective RSCU values. See this file for an example.
      • -m, --max_low_rscu_ratio floating point value between 0-1 [Defaults to 0.3 if unspecified]
        • See the section below.
      • -a, --rscu_alpha floating point value >= 0 [Defaults to 10.0 if unspecified]
        • See the section below.
  2. -w, --num_workers integer value > 0 [Defaults to min(available cores, 32) if unspecified]

    • Specify the number of threads available to the Google OR-Tools solver. A value between 16-32 is ideal. Higher values may actually slow the solve.
  3. -v, --show_ortools_log boolean value (true/false) [Defaults to false if unspecified]

    • When true, outputs the Google OR-Tools logs. Shorthand is -v for verbose :)
  4. -R, --relative_gap_limit floating point value between [0-1) [Defaults to 0.0 if unspecified]

    • A larger value tells the solver to accept a sub-optimal solution. Only increase this (and slightly, perhaps starting with 0.1, which is 10%) if you are experiencing high solve times.

Mathematics for Soft RSCU

Probabilistic Inclusion

For each amino acid, codons with an RSCU value below the soft threshold are not excluded outright. Instead, they are marked for the following consideration. The inclusion of these codons is governed by a probability function:

$$P = exp^{(−\alpha\cdot(1−\frac{RSCU}{threshold}​))}$$

where $\alpha$ controls the sharpness of the penalty controlled by --rscu_alpha and threshold is controlled by --max_low_rscu_ratio. Check this Desmos module to play around with the probability and knobs.

Per-Amino Acid Cap:

Even if a low-RSCU codon is sampled multiple times due to random chance, its total number of uses is capped per amino acid. Specifically, it can appear in at most $X$% of positions where the corresponding amino acid occurs, where $X$ is configurable by --max_low_rscu_ratio (e.g., 0.3 for 30%).

Low-RSCU codons are the ones the host likely disfavors (due to rare tRNAs, poor translation efficiency, etc.). But they may still be translated in small quantities.

This approach:

  • Allows low-RSCU codons occasionally (for diversity / structure / synthesis flexibility)
  • Softly discourages their use via probability
  • Enforces a hard ceiling to avoid accidental overuse due to randomness
  • Keeps higher-RSCU codons fully eligible without restriction

End of documentation. Now, go forth and FLY!

Clone this wiki locally