[ Same page in russian: KOI8 | ISO8859-5 | MS-Windows CP1251 | DOS CP866 ]
"Genesmith" was started as a "etude" on BASIC named "Genetic Code" . As a result the procedures of processing of biological sequences such as DNA, RNA, polypeptides were written. These procedures became a core of interactive editor of biological sequences. But the work with finished editor was much boring then its programming: genes needed realization in graphics.
Then I've learned about biomorphes. Richard Dawkins, a famous English evolutionist invented biomorphes and sattled them in his program "Blind watch-maker". Biomorphes don't always look like animals and plants externally, but they can reproduce themselves and mutate like animals and plants.
At present the program ("Genesmith") consists of three parts - editor of biological sequences, interpreter of these sequences into graphic images (biomorphes) and evolutional part, borrowed from "Blind watch-maker". The work with genes has acquired a sense. It was possible to set a task to design an outstanding biomorph, and for the sake of it to study gene code and functions of enzymes which are realizing this code in a living cell. Otherwise, it was possible to guess how gene code is organized, comparing genomes of allied biomorphes. There was also a possibility of doing "artificial selection of biomorphes", knowing nothing about generic code and genes themselves.
From 1989 I use "Genesmith" in children's summer computer and biological schools. Special etudes were invented for it: "re-discovery of gene code", "localization of mutation" etc.
If you would like to try "Genesmith" too, click here (~100kb, MSDOS version).
to GenCode.Init make "Phe [UUU UUC] make "Leu [UUA UUG CUU CUC CUA CUG] make "Ile [AUU AUC AUA] make "Met [AUG] make "Val [GUU GUC GUA GUG] make "Ser [UCU UCC UCA UCG AGU AGC] make "Pro [CCU CCC CCA CCG] make "Thr [ACU ACC ACA ACG] make "Ala [GCU GCC GCA GCG] make "Tyr [UAU UAC] make "Trm [UAA UAG UGA] make "His [CAU CAC] make "Gln [CAA CAG] make "Asn [AAU AAC] make "Lys [AAA AAG] make "Asp [GAU GAC] make "Glu [GAA GAG] make "Cys [UGU UGC] make "Trp [UGG] make "Arg [CGU CGC CGA CGG AGA AGG] make "Gly [GGU GGC GGA GGG] make "acids [Phe Tyr His Cys Gln Lys Asp Glu Trp Val Ala ~ Thr Gly Pro Ser Ile Leu Arg Asn Met Trm] end to gencode :x :dir if not (3 = count :x) [op "] ifelse :dir [ op first filter [memberp :x thing ?] :acids ~ ] [ ~ ifelse memberp :x :acids [ ~ op item 1 + random count thing :x thing :x ~ ] [ op " ] ~ ] op " end to ribosoma :seq :dir op map [gencode ? :dir] :seq end