Task

Given a string of characters A, C, G, and T representing a DNA sequence write a routine to mutate the sequence, (string) by:

 Choosing a random base position in the sequence.
 Mutate the sequence by doing one of either:
 Swap the base at that position by changing it to one of A, C, G, or T. (which has a chance of swapping the base for the same base)
 Delete the chosen base at the position.
 Insert another base randomly chosen from A,C, G, or T into the sequence at that position.
 Randomly generate a test DNA sequence of at least 200 bases
 "Pretty print" the sequence and a count of its size, and the count of each base in the sequence
 Mutate the sequence ten times.
 "Pretty print" the sequence after all mutations, and a count of its size, and the count of each base in the sequence.
Extra credit

 Give more information on the individual mutations applied.
 Allow mutations to be weighted and/or chosen.
  [ $ "ACGT" 4 random peek ]      is randomgene     (   --> c )
 
  [ $ "" swap times
      [ randomgene join ] ]       is randomsequence ( n --> $ )
 
  [ dup size random 
    3 random 
    [ table 
      [ pluck drop ]
      [ randomgene unrot stuff ]
      [ randomgene unrot poke ] ] 
    do ]                          is mutate         ( $ --> $ )
 
   200 randomsequence
   dup prettyprint cr cr dup tallybases
   cr cr say "Mutating..." cr
   10 times mutate
   dup prettyprint cr cr tallybases