◆兄弟
湯河原にある兄の家へ、私の家族全員でときどき遊びに行くことがある。私の家族と兄嫁とはいつもにぎやかに会話を楽しんでいるが、実の兄弟というのはこの年齢になると(何歳かは言わぬが)、たまに会ってもそうそう話をすることもない。別に仲が悪いわけではないが特に話題にするテーマもないし、それぞれの居場所を定めると本を読んだり音楽を聴いたり、あるいはコンピュータをいじったりして静かに時間を過ごすのが常である。
それでも時には話がはずむことがある。そういうとき兄は弟に向かって決まってお説教を始める。「人間どこかに無駄がなければいけない」とか、どちらかというと神経質な性格の弟に「ROMではなくRAMになって何でも忘れるようにしないと‥‥」などと言う。二人とも技術屋で昔は専門分野が異なっていたが、今や技術屋なら誰でもコンピュータを使いこなせるのが普通の世の中になった。そのせいか最近のお説教で取り上げるテーマは私の専門分野であるはずのコンピュータに関するものが多くなってきたようである。弟は仕方なくそれを黙って聞いている。
この兄弟は顔がよく似ている(と人は言う)。子供の頃はまるで似ていない兄弟だったが、年を重ね顔にしわが増えてくると頭髪の具合といいメガネを掛けるようになってからはなお更のこと、私が見ても「こりゃ、似ているなぁ」と感ずるようになってしまった。子供同士の兄弟で顔が似ているのは、それはそれで可愛げがあって構わないと思うが、この年になって顔が似ているというのは甚だ困ったことである。しかし一緒に過ごすことは滅多にないから普段はそれ程抵抗を感ずることはない。
以前、新聞の経済ニュース欄に兄の写真が出たことがあった。社内の回覧でその新聞記事の切り抜きが回されてきたとき、一瞥して私にはすぐそれと分かったのである。私が見てもドキッとするくらい似ていたから、誰かに何か言われるに違いないと覚悟した。果たせるかなある人から電子メールで「よく似ている人が写っていたけど、何か関係のある人ですか?」と尋ねられたものである。まったく「似ている」というのは困ったことではある。
第三者が見てこのように似ているということは、赤ん坊の頃どちらかが橋の下から拾われてきた子ではないことを示す明らかな証拠であろうと思う。いや、誤解のないように記しておくが、私は別に自分の出生に関して疑いを持っていた訳ではない。二人が持つ遺伝子の情報に似ている部分が多かったということを言いたいだけのことである。
◆遺伝情報
遺伝子の情報といえば、最近新聞のニュースでショウジョウバエの遺伝情報が解読されたという記事を読んだ(人間の話からいきなりショウジョウバエの話に転ずるがこのくらいのことで驚いてはいけない。話は急速に難しくなります)。細菌などの単細胞生物では既にいくつかの成功例があるが、多細胞生物では線虫(C・エレガンス)に次ぐ成果なのだという。人間の全遺伝情報(ヒトゲノム)の解読はもっと大変で、各国の協力により「ヒトゲノム計画」(*1)として1987年に提案され、当初は2003年までに読み終える見通しになっていた。しかしその後の技術進歩は目覚しいものがあり、現在では2001年の内には解読を完了するであろうと言われている。
【注】(*1)人間の遺伝情報を最初から最後まで読み取る国際的なヒトゲノム計画では、全体の3分の1程度が既に解読されたという話もある。アメリカやイギリスでは見つけた遺伝子そのものを特許申請する動きが盛んで、特にたんぱく質の合成を指示する遺伝子の部分の研究に各国研究者の関心が集中している。
更に、2000年1月10日、アメリカのセレラ・ジェノミックス社は自社単独で全体の90%の解読を完了したと発表した。これが事実であるとすれば、公的機関が中心となって進められている国際的なヒトゲノム計画の活動が一民間会社にその競争で敗れたことを意味する。
|
ゲノムというのは、いってみれば“生命の設計図”のようなものであろう。遺伝をつかさどっているのは細胞の核にあるDNA(デオキシリボ核酸)と呼ばれるものである。DNAはA(アデニン)、T(チミン)、G(グアニン)、C(シトシン)という四種類の部品(塩基)が並んだ鎖状の分子で、この塩基対の配列がたんぱく質の合成など生命活動に必要なすべての事柄を決めている。その配列が遺伝情報であって、核内のそれら遺伝情報全体のことをゲノム(*2)と呼ぶのである。
【注】(*2)本来の意味は、生物が生きていくのに最小限必要な染色体の1組。あるいはその1組の染色体に含まれる遺伝子の全体を指す。近年では定義が拡大され、ウィルスやミトコンドリアなどの核酸1分子をもゲノムと呼ぶ。
|
つまり生物の遺伝情報は、細胞のDNAがもつ塩基配列によって表現された“暗号文”となって保たれているとも言える。いま、塩基1個を1文字と換算すれば、ショウジョウバエは約一億八千万字の暗号文となる。一方、ヒトゲノムでは約三十億字の暗号文で表されていることになるという。
どうも生物学者達が2001年までに完了すると言っている“解読”とは、遺伝情報を含む“暗号文”をとにもかくにも手に入れるところまでを指しているもののようである。配列の詳細が手に入ればすぐに生命の仕組みが分かるというものではない。その配列がどんな生命活動に関係しているのかはまだごく一部しか分かっていない。暗号文の本当の意味での“解読”はこれからである。早くいろいろな難病に関係する遺伝子の詳細が解明され、特定の難病の治療に役立つようになってほしいものである。
ヒト遺伝子の暗号文が約30億字であるということは、たとえば一冊の本が1頁約700字、全体で300頁で構成されているとして換算すると(一冊で21万字の本ということになるから)冊数でいえばおよそ1万4千冊の本(しかも余白なくびっしりと書かれた本)ということになろう。これだけの本を全部を読み解くのは確かに容易なことではないと誰でも実感できよう。これをコンピュータのプログラムに置き換えるなら、とほうもなく大きなプログラムということになる。今まで人類が扱ったことがない程のべらぼうに大きなプログラムである。
しかし実際には遺伝情報として生物学的に意味のある部分はごくごく限られていてほんの数パーセントに過ぎないのだそうである。約95%はジャンクと呼ばれる無駄な情報なのだという。したがって生物学的に意味のある部分にしぼって解読すればよいことになる。プログラマとしての拙い経験に照らして考えても、それでもやはりこれは大変な作業であろうと思う。なにしろ普通の文章ではなくA、T、G、Cという4文字で余白なくびっしりと書きつづられた暗号文が約700冊分あるのだから。
ところで、この遺伝情報を含む暗号文をプログラムになぞらえた場合に、プログラムを記述しているA、T、G、Cという4つの文字は、アセンブラ語のいわゆるニーモニックコードに相当するものである。その実体は複雑な塩基対(機械語に相当する)であって、それぞれもっともっと複雑な表現で表されるものである。とてもこの誌面上には表現しきれない(‥‥実は私は知らないのだが)。いってみれば、遺伝情報とはA、T、G、Cというたった4つの命令語で構成された超RISCマシンのためのプログラムであるということができるであろう。多少遺伝情報のコピーをし間違えても(これは突然変異に当る)大勢には影響しないように何重にもわたって安全設計が施されている優れてロバスト性の高いプログラムなのである。逆に言えば、95%もの無駄な部分を抱えているからこそ安全性が保たれているのかもしれない。兄が言う「無駄がなければいけない」とはこのことなのであろう。
プログラムの解読と言えば、昔はIBM社が貴重なソースプログラムを惜しげもなく公開していたものである。我々ソフトウェア技術者はそれを手に入れて解読しては(正確には「読んで」)自らの技術を磨いたものだ。それが Software unbundling の時代を経て、ソースを公開しないのが常識となってしまった。そして今、再びオープソースなどと呼ばれる形態が見直されてきているのは周知のとおりである。
ソースが非公開になってからは、新規に画期的な製品が出てきたりすると、競争会社はリバースエンジニアリングと称してその製品を解剖して研究することがよく行われてきた(のだそうである)。その場合に、メモリ内のプログラムのビット配列をそのまま取り出して機械語ないしアセンブラ語で表現されたプログラムに再構築する作業を行う(のだそうである)。よく知られているようにプログラム内には命令語とデータが混在しているから、端からビットパターンだけで判断して命令語に置き換えていくとデータまで命令語とみなされてしまう可能性がある。したがってある程度解析しながらでないと完全なプログラムには復元できない。これは丁度、膨大な塩基配列の中から生物学的に意味のある遺伝情報を見つけ出す作業に相当するのではないかと思う。しかし生物学者とは違って我々はこれを「逆翻訳」と言い決して「解読」などとは言わない。
遺伝情報の場合、もう少し正確に言うと、DNA情報を転写したメッセンジャーRNAを構成するA(アデニン)、U(ウラシル)、G(グアニン)、C(シトシン)という4種類の塩基による配列が使われる。暗号の単位となるのは、この塩基のうちの任意の3個を組合せた塩基配列(トリプレット)であってこれをコドンという。全部で4×4×4=64通りのコドンがあるが、そのうち61個が20種類のアミノ酸に対応しそのうちの二つが遺伝暗号の「読み始め記号」であり、残り三つが「読み終り記号」になっているのだそうである。したがって意味のあるデータ(コドン)と意味のないデータ(イントロン)が一目瞭然で見分けられる仕組みになっている。実に見事な構造というべきであろう。
一方、コンピュータプログラムの場合には「読み始め記号」も「読み終り記号」もないからコドン(命令)とイントロン(データ)の判別が全く付かない。しかも、ジャンクと呼べるような(本来の機能実現のためには必要でない)無駄な部分は存在しないのが普通である(*3)。したがって我々プログラマは、プログラムの解読に当ってはデータの1ビットたりとも疎かにはできない。解読していて、これは明らかに無駄な部分だと判断できたとしても、それはソフトウェアの無断コピーを防ぐためのワナであるかもしれない(*4)。無分別にそのコードをコピーして利用したりすると、あとで不正にコピーした歴然たる証拠とみなされて窮地に陥ることになる(いや、‥‥のだそうである)。どんなコードでも、少なくともそういった何らかの意味は持たされているものなのである。このようにプログラムの解読では、生物学者とは違って我々はどんな情報も無視してはならない。間違いなく無駄な情報であると判断することも解読作業では重要な仕事の一つなのである。
【注】(*3)プログラム上に書かれた注釈がそれに相当するという意見もあろうが、注釈の部分は実行プログラム上には実装されない。
【注】(*4)たとえば、あれこれと意味ありげにサブルーチン呼出しを繰返し、フラッグをオン/オフしているだけのプログラムがときどき存在する(のだそうである)。
|
だから私は、遺伝情報の中にジャンクとみなされる部分があって解読の対象にしなくてもよいという話を聞くと、同じような解読作業に取り組んでいるプログラマの立場からは何ともうらやましく思えてならないのである。ただ、本当に無視してよいのかという若干の疑問は残る。我々の知らない何らかの情報が含まれているのではないか。将来の進化の過程で使われるものなのかもしれない。あるいは、それは同じ人間が二人と存在しない多様性の源となるものなのかもしれないではないか。
私がコンパイラ開発という仕事に従事していた頃は、次の版で予定されている開発項目の一部や自分専用(!)の特別な機能を早めに試験的にシステムに組み込んでしまい、隠し機能として一人でこっそりと使ったりしていたものだ。これなどは上記のジャンクと呼べるものかもしれない。こうしてあらかじめ一般の使用に供しておくと新機能と既存の機能とがうまく両立するかどうかの確認が取れるのである。したがって私にとってのジャンクコードは、システムを順調に進化・発展させていくための必要不可欠な部分だったのである。バージョンアップで機能が進化したはよいが、従来機能に支障が出て既存の環境に順応できないシステムがごろごろと存在しているではないですか。ああいった状況に陥らないための(決して公にはしなかったが)自分なりの対応策だったのである。
しかし最近ではどのシステムも巨大になってきて、そういった無駄な部分を抱え込んでいる余裕などなくなってきているのが現状である。全体の95%にも当る部分が無駄な情報で占められているようなシステムは、コンピュータプログラムの場合には今後とも絶対に存在しえないであろう。そう考えると、遺伝情報のプログラムは何と壮大なメモリ容量を持ち、しかも安全対策や将来のバージョンアップ(進化)のためのコードをあらかじめ持たされており、つぐづくとうらやましく思えるのである。我々だってそれくらい余裕をもたせてもらえば、ロバスト性に優れた立派なプログラムを作れるのではないだろうか。
先に遺伝情報のプログラムはA、T、G、Cという4つの命令語による超RISCマシンであると書いたが、この4つをマイクロ命令とするマイクロプログラム方式のマシンであると考えることもできる。そうすると、現在解明されつつある個々の遺伝情報の断片が命令語ということになる。とほうもなく長い命令語を使ういわゆるVLIW(Very Long Instruction Word)アーキテクチャのマシンである。生物学者達は自ら発見したその命令語を特許申請することにより、その使用を専らにしようとしている訳である。滑稽なことではないか。
コンピュータプログラムの場合にも、Load命令,Store命令,Subtruct(減算)命令,二分岐ifの4命令さえあれば、どんなアルゴリズムでも構築することができる。壮大なメモリ容量を持ち、しかも憶えなければならない命令は上記4命令だけという超RISCマシンは、我々ソフトウェア技術者が求めている究極のマシンの姿なのかもしれない。
どうです、プログラマ諸兄(姉)は一度くらいそんなマシンを使って素晴らしいプログラムを作ってみたくはなりませんか(なりません!)。■
【追記】
2001年2月12日の新聞記事によれば、人の遺伝子情報の全体は二万六千〜四万個であるという。これまで考えられていた十万個の半分にも満たない。人間同士の遺伝子を比較すると99.9%は共通で、体質など個人差を生む違いはわずかだそうである。