人体を守る仕組みのひとつに、
「リンパ球がばいきんを攻撃する」
というシステムがある。
言葉で書くと簡単だ。
たとえ話をするならば、リンパ球は警察官で、ばいきんは犯罪者である。
けれど、リンパ球には「脳がない」。
細胞1個だ。脳も手足もない。単なる「まるいつぶ」である。
そんなつぶが、どうやって犯罪者を認識して、どうやって倒すというのか?
そもそも、まるいつぶにそんな警察官みたいな役割が果たし得るのか?
もともと受精卵という1個の細胞が、分裂を繰り返して、何兆という細胞にばけて、今のぼくらの体ができている。
その一部を、わざわざ「まるいつぶにして」、「警察官の役割を担わせて」、「犯罪者の顔を見分ける能力をあたえて」、「犯罪者を逮捕したり、直接罰したりする能力を与える」。
こんな複雑な命令、いったいどうやって与えているのだろう。
人体の細胞がどのように働くかを、適材適所、適切なタイミングで命令しているのは、ざっくりと言うならば、
「DNA」
によって記載されたプログラムであるという。
気が遠くなる。
いったいどれだけ精巧なプログラムを書いたら、こんな複雑な仕事ができるのだろう?
*
……と、このような記事を書いて、ブログにアップしているぼくは、ふと気づく。
このブログ作成ページだって、プログラムで書かれているわけだよね。
コンピュータプログラムはご存知の通り2進法だ。
0(電気を通さない)と1(電気を通す)の2通りを組み合わせて、無数の言葉を生み出す。
0と1だけで、日本語を自由に表示させたり、行を変えたり、ブログのデザインを決めたり、リンクを飛ばしたり、なんでもやってしまう。
さて、プログラマーは、実際に「0と1」を使ってプログラムを書いているのだろうかというと、確か、そうじゃなかったはずだ。
ぼくはあまり詳しくないけれど。
「言語」を使っているんじゃなかったか。
0と1だけでプログラムを記載するわけじゃなくて、もう少しだけ人が使いやすい言葉に置き直して、プログラムを書いているんじゃなかったかな。
C言語がどうとか、ジャバがどうとか、あったよ、確か。
では、人間の体をコードするプログラムはどうやって書かれているか。
4進法で書かれているのだ。
A(アデニン)、G(グアニン)、C(シトシン)、T(チミン)。
0と1の2進法よりも、組み合わせが多い分、複雑なプログラムが書ける。
けれど、このATGCだけを使ってすべてのプログラムが書かれているわけではない。
プログラマーが、キーボードで010010110111010と入力してプログラムを書いたりしないように。
「生命をプログラムしたプログラマー」も、ATGCだけでプログラムを書くのはやばいと思ったのだろう。
ATGCを3つずつ組み合わせ、「言語」を用意した。
「AGC」のセットを、「セリン」という物質に対応させる。
「GAA」のセットを、「グルタミン酸」という物質に対応させる。
ATGCの4進法でそのままプログラムを書くのではなくて、ATGCから3つずつの組み合わせをつくり、これらを20種類の「アミノ酸」という物質に対応させた。
いきなり4種類の文字だけですべてを書こうとするのではなく、4種類の文字の「組み合わせ」(コドン)を言語として設定。
コドンAGCがプログラムに出てきたら、それはつまり「セリンという部品をここにおいてくれ」というサイン。
コドンGAAがプログラムに書かれていたら、「今度はグルタミン酸をここにおいてくれ」というサイン。
つまり、AGCGAA と書かれていたならば、セリンとグルタミン酸を隣同士においてくっつければいい。
4進法のプログラムを3文字ずつ読みながら、20種類のアミノ酸を次々と並べていく。
アミノ酸がつながっていく。
つながってできたものを、「タンパク質」と呼ぶ。聞いたことがあるだろう。タンパク質。
細胞というのは結局のところ、すべてこの「アミノ酸を連ねてできたタンパク質」によって作られていると考えてよい。
アミノ酸は20種類のレゴブロック。
20種類あれば、たいていの形をつくることができるだろう。レゴで作った建物とか乗り物がタンパク質に相当する。
この仕組みを細かく研究した人が、ある日、思った。「生命すげぇな、4進法でなんでもやっちゃってるよ」。
そして、こんなことを考えた。
「パソコン上の仮想空間に、4進法で記載される『単純な法則』を用意する。1秒あたりに1回、その『法則』が作用して、『ある図形』の形が変わるようにプログラムする。パソコン上で何十億年という時間を再現したら、その図形は”生きつづける”だろうか?」
生きつづける、というのはたとえ話だ。
「ごはんをたべて、周りに影響をあたえながら、ときに敵と戦い、繁殖をして、個体が死んでも種族としては生き続ける」。
コンピュータ上の図形を、あたかもそのように「みなす」。
コンピュータ上で放っておいてもうにょうにょ動き続け、形を変え続け、存在しつづけるかどうか。ほんとの生命ではない。遊びみたいなものだ。
「ライフゲーム」と呼ばれる。
DNAが4進法なのだから。
ゲームとはいえ、「4進法」はライフを生み出す可能性がある。
ゲームとはいえ、「4進法」はライフを生み出す可能性がある。
コンピュータ上で膨大な時間を再現すれば、単純な「ライフ的なもの」は作れるのではないか?
このライフゲームはあまりうまくいかなかった。
4進法だけだと、何度仮想空間を設定し直しても、途中で生命としての「複雑さ」が現れてこず、バリエーションに限界が生じて、結果、不測の事態に対応できずに、「ほろびて」しまう。
足りなかったので、ためしに5進法にしてみた。
文字を増やせばバリエーションが多くなるだろう、という発想。しかし、今度は、「複雑すぎて」、図形が途中でうまく変化しなくなってしまった。
机上の空論とは便利なことばである。
本来、「○進法」という概念には、小数点はそぐわない。
0と1での2進法というのはわかる。ATGCの4進法というのはわかる。
けれど、「4.2進法」と言われたって、想像がつかないだろう。
けれど、このライフゲームにはまっていた学者は、思った。
「4進法だと複雑さがたりない。5進法だとカオスに陥ってしまう。だったら、4.2進法くらいがちょうどいいんだけどなあ……。」
4.2文字で記載するというのは意味がわからないのだが、ためしに、やってみた。
すると、うまくいってしまった。図形はいつまでも、うにゃうにょと変化し続けて、それはまるで新種のアメーバかなにかを見ているかのようだった。
「え……? どういうこと……?」
生命の複雑さを記載するには、どうも、単なる4進法では複雑さが足りないらしい。
人間って、ATGCの4進法でプログラムされているはずなんだけどなあ……あっ!
学者は思いついた。
DNAはATGCの4文字だけど。
RNAになると、AUGCの4文字にかわるんだよな。確か。
T(チミン)が、なぜかU(ウラシル)と対応するんだ。
これ、文字を「ちょっとだけ増やしている」のかもしれない。
それに、DNAにはほかに「修飾」とよばれるシステムもある。
メチル化とか、アセチル化とか。文字にかざりが付くのだ。
これも、文字を「ちょっとだけ増やしている」のかもしれないな。
生命って、4進法じゃなくて「4.○進法」くらいなのかもしれない……。
(一部ぼくが適当にいじっているのでフィクション化してますが、そのような仮説が提唱されたことは実際にあるそうです。)