a1489c0fc1c99793e499e3915bc346b581664ad4
max
  Wed Jul 8 02:37:20 2026 -0700
Add support for all NCBI alternative genetic codes to dnautil

Adds struct geneticCode plus the full set of NCBI translation tables (from
gc.prt) so DNA can be translated with any genetic code, not just the Standard
and Vertebrate Mitochondrial codes that were hardcoded.

New API: geneticCodeForId/geneticCodeForName, lookupCodonInCode,
isStopCodonInCode, dnaTranslateSomeInCode (explicit-handle, reentrant), and
setDefaultGeneticCode for the process-global default. lookupCodon and friends
are unchanged in behavior, still defaulting to the Standard code.

The genetic code data lives in the auto-generated lib/geneticCodeTable.h,
produced by oneShot/dnaGeneticCodes/dnaGeneticCodes.py from NCBI's gc.prt.
Added a unit test under lib/tests. refs #16550

diff --git src/lib/tests/expected/dnaCodonTest src/lib/tests/expected/dnaCodonTest
new file mode 100644
index 00000000000..b5a40a02ad7
--- /dev/null
+++ src/lib/tests/expected/dnaCodonTest
@@ -0,0 +1,10 @@
+code  1 Standard                   M**GQ*
+code  2 Vertebrate Mitochondrial   MW*GQ*
+code  6 Ciliate Nuclear; Dasycladacean Nuclear; Hexamita Nuclear M*QGQQ
+tga stop standard=1 mito=0
+id 11 name=Bacterial, Archaeal and Plant Plastid
+name Standard id=1
+id 999 isNull=1 name Bogus isNull=1
+default(standard) translateSome=M
+default(mito)     translateSome=MW
+lookupCodon(tga) after reset=0