I've got a DNA sequence that I'd like to make synonymous mutations throughout, thereby preserving the amino acid sequence. Does anyone know of a tool to achieve this

  • $\begingroup$ I don't but it wouldn't it be easier to write one? The other issue is that context would be useful, it is fairly common to consider synonymous mutations in fitness, particularly cancers and it would make sense to construct a null distribution. $\endgroup$
    – M__
    Commented Apr 22, 2020 at 8:42

2 Answers 2


There seems to be a bioconductor package named synmut which does just that. Apparently, it can take codon usage into account when generating synonymous mutations.

Copy pasting an example that matches your use case from the official doc:

filepath.fasta <- system.file("extdata", "example.fasta", package = "SynMut")
filepath.csv <- system.file("extdata", "target_regions.csv", package = "SynMut")
region <- read.csv(filepath.csv)
rgd.seq <- input_seq(filepath.fasta, region)
mut.seq <- codon_random(rgd.seq, keep = TRUE)
Biostrings::writeXStringSet(get_dna(mut.seq), "rgd.fasta")
  • $\begingroup$ Brilliant, thanks, that package works well $\endgroup$
    – Mike
    Commented Apr 30, 2020 at 9:26

DNA Chisel can introduce synonymous mutations into your sequence. Annotate the coding sequence with the @cds constraint and the ~change objective.

Additionally, you may also optimize the codon usage to match your species with ~match_codon_usage or one of the other options.

A web interface is also provided at EGF CUBA (Collection of Useful Biological Apps): Sculpt a Sequence

Disclaimer: I'm the current maintainer of DNA Chisel


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.