Permalink
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
55 lines (48 sloc) 1.54 KB
(alphabet
(name DNA)
(token (a c g t))
(complement (t g c a))
(extend (to n) (from a) (from c) (from g) (from t))
(extend (to x) (from a) (from c) (from g) (from t))
(extend (to u) (from t))
(extend (to r) (from a) (from g))
(extend (to y) (from c) (from t))
(extend (to m) (from a) (from c))
(extend (to k) (from g) (from t))
(extend (to s) (from c) (from g))
(extend (to w) (from a) (from t))
(extend (to h) (from a) (from c) (from t))
(extend (to b) (from c) (from g) (from t))
(extend (to v) (from a) (from c) (from g))
(extend (to d) (from a) (from g) (from t))
(wildcard *)
) ;; end alphabet DNA
(grammar
(name rev)
(chain
(update-policy rev)
(terminal (X))
;; initial probability distribution
(initial (state (a)) (prob 0.25))
(initial (state (c)) (prob 0.25))
(initial (state (g)) (prob 0.25))
(initial (state (t)) (prob 0.25))
;; mutation rates
(mutate (from (a)) (to (c)) (rate .01))
(mutate (from (a)) (to (g)) (rate .01))
(mutate (from (a)) (to (t)) (rate .01))
(mutate (from (c)) (to (a)) (rate .01))
(mutate (from (c)) (to (g)) (rate .01))
(mutate (from (c)) (to (t)) (rate .01))
(mutate (from (g)) (to (a)) (rate .01))
(mutate (from (g)) (to (c)) (rate .01))
(mutate (from (g)) (to (t)) (rate .01))
(mutate (from (t)) (to (a)) (rate .01))
(mutate (from (t)) (to (c)) (rate .01))
(mutate (from (t)) (to (g)) (rate .01))
) ;; end chain X
;; state S
(transform (from (S)) (to (X S*)))
(transform (from (S*)) (to ()) (prob 1))
(transform (from (S*)) (to (S)) (prob 1))
) ;; end grammar rev