GeneDesign's Codon Juggling module uses several algorithms to modify a coding nucleotide sequence without altering its translation. It is thus possible to generate a sequence that is optimized for expression, as different as possible from the original sequence (and still coding the same protein), or a combination of the two.
The optimized algorithm, which is only available if you are using one of the organisms recognized by GeneDesign, simply replaces every codon in the sequence with the most translationally optimal codon for that organism. If the codon is already the ideal codon it is left alone. This data comes from this paper and this one. The next most optimal algorithm uses the same data to replace the original codon with the most optimal codon that is not the original codon; that is, if the current codon is not the most optimal it becomes the most optimal, and if it is the most optimal it becomes the next most optimal.
The most different algorithm attempts to change as many bases as possible within the codon, preferably transversions. In two, three, and four codon families it switches the wobble. In six codon families it always changes the first position and the wobble; in the Serine family it changes all three positions. If two codons are equally eligible as replacements and an organism has been defined, this algorithm will take the more translationally optimal codon. if no organism has been defined, this algorithm decides ties randomly and is non-deterministic.
The random algorithm swaps the original codons out with random selections from the same family.
