[ the same page in English ]

"Генный слесарь"

Генный слесарь - это конструктор, имитирующий работу с генами[1], ДНК[2], генетическим кодом[3].

Слесарь начинался с программного этюда на Бейсике "генетический код". В результате были написаны процедуры обработки биологических последовательностей: ДНК, РНК[4], полипептидов[5]. Эти процедуры стали ядром интерактивного редактора биологических последовательностей[6]. Но работа с готовым редактором оказалась гораздо скушнее его программирования: гены нуждались в графическом воплощении.

Тут я узнал о биоморфах. Биоморфов придумал и поселил в своей программе "Слепой часовщик"[7] известный английский эволюционист Ричард Доукинз[8]. Биоморфы не всегда похожи на животных и растения внешне, но так же как животные и растения могут размножаться и мутировать.

Теперь конструктор состоял из трех частей: редактора биологических последовательностей, интерпретатора этих последовательностей в графические образы (биоморфы) и эволюционной части, заимствованной из программы "Слепой часовщик". Работа с генам приобрела смысл. Можно было задаться целью спроектировать выдающийся биоморф, а ради этого изучить генный код и функции ферментов, реализующих этот код в живой клетке. Или наоборот: сравнивая геномы родственных биоморфов, можно было догадаться, как устроен генный код. Осталась и возможность заниматься "искусственным отбором" биоморфов, ничего не зная ни о генетическом коде, ни о самих генах.

С 1989 г. Слесарь работал в летних компьютерных и биологических школах. Для него придумывались специальные этюды: "переоткрытие генного кода", "локализация мутации". За несколько лет выведены и сконструированы разнообразные биоморфы. Это буквы: ; геометрические фигуры: , ; животные: птица , циклоп, лягушка , игуана , таракан , волк ; растения: орхидея ; узоры: ; духи: ангел демон .

Если и вы захотели поработать со Слесарем, то берите его здесь (~100 KB, версия для MSDOS).


Январь 1996
Александр Голубев <goluba@dll.botik.ru>

[1]
Ген - это последовательность ДНК, несущая информацию об определенном белке.

[2]
Дезоксирибонуклеиновая кислота - носитель наследственной информации.

[3]
Генетический код - это универсальный ключ для перевода генетической информации с языка нуклеиновых кислот но язык белков. Ниже приведена реализация генетического кода на языке Лого
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

[4]
РНК - рибонуклеиновая кислота. Служит для переноса генетической информации внутри клетки.

[5]
Полипептиды - это цепочки аминокислот.

[6]
BioComputing Hypertext Coursebook

[7]
Моделирование эволюции в мире биоморвов. А.К. Дьюдни в "В мире науки", том 4, стр 81-85; Апрель 1988.

[8]
Ричард Доукинз - автор книги "Эгоистичный ген".