見出し画像

なぜDNAは安定して変異できるのか:OS&アプリ型アーキテクチャ仮説

生物の遺伝子は、交配や突然変異によってそのDNA配列が変化し、自然選択の関門を通過することで進化すると理解しています。

この際、設計図にランダムな変更が加えられているにも関わらず、高い確率で基本的な生命維持活動が行える点を、不思議に思っていました。

コンピュータシステムで考えると、新しい機能が発現する可能性以前に、プログラムに無作為の変更が加えられていながら元のシステムとほぼ同様に複雑な機能が動作し続けるというのは、天文学的に低い確率です。

生命やコンピュータシステムよりもより複雑で繊細であろうと考えられるにも関わらず、なぜこのような安定したランダムな改変ができるのでしょうか。それを考える中で、一つの仮説に気がつきました。生命維持に必須の部分は改変されにくくしておき、必須ではない部分は柔軟に変化できるようにしておくのです。これはコンピュータのOS部分とアプリケーション部分に似ています。

この記事では、この仮説について考えていきます。

ただし、その前提として、最初に生命と知性に共通の性質についても整理します。これは、私が生命と知性の共通性についても興味を持っており、知性が扱う知識においてもこのOSとアプリケーションのモデルが適用できることを検討するためです。

では、順に説明していきます。

■生命と知性の共通点

生命と知性の性質を考えています。他の側面もありますが、以下の共通点に私は着目しています。

a) 時間経過と共に発展するシステムである

生命においては生態系、知性においては知識体系。

b) システムが多数の構成単位を持つ

生命においては生物の個体、知性においては個々の知識。

c) 構成単位は他の構成単位と明確に分離され区別される仕組みを持つ

生物の個体は、物理的には単細胞生物なら細胞膜、多細胞生物では皮や殻、システム的には免疫を持つ。これにより、他の個体と混ざってしまうことは無い。

個々の知識は、形式的(つまり言語的)には、単純な概念なら単語や固有名詞や数式、複雑な概念なら定義を持つ。これは生物の物理的な仕切りと似ている。システム的には合理性や感性が働いて、他の知識の概念と混ざってしまう事を防いでいる。生物の免疫の働きに似ている。

d) 構成単位は動的な振る舞いをする。

生物はもちろん動的にふるまう。知識も思考の中に出現して作用する。

e) 構成単位は、静的な設計情報とその保持媒体を持つ。

生物はDNAが設計情報の保持媒体である。知識は言語が設計情報の保持媒体である。

f) 保持媒体に記録された設計情報を使って、構成単位が動的に生成される。生成された動的な構成単位が、設計情報をコピーする場合がある。

DNAから個体が現れ、記憶された知識から思考の中に知識が現れる。

個体の活動の結果、DNAは複製される。思考の中で、記憶された知識がより強くなったり、あるいは他者に複製される。

g) 保持媒体に記録された設計情報は、エラーや合成によって新しく生み出される。また、他の設計情報との関係の中で淘汰されることで、より適応性の高いものが選択的に残されていく。つまり、保持媒体に記録された設計情報は、進化していく。

DNAは、複製時のエラーや合成によって新しいDNAが作られる。そして自然淘汰によって自然選択が行われて進化する。

知識は、複製時のエラーや、思考の中での合成、外界からの学習や発見を通して新しく生成される。そして、事実の検証や論理的不整合に基づいて淘汰され、進化する。

■時間と空間の2次元

生命と知性の共通点から、その性質の理解を深めるため、単純なモデル化を行います。

ここで、時間と空間という2次元を考えます。

時間は、通常の時間と同じ意味合いです。ただし、単純化のために、単位時間毎に区切って進むものとします。

空間は、私たちの3次元の物理空間とは少し異なり、構成単位を識別するためのものとします。

ちょうど、方眼紙のような縦横に区切られたマス目をイメージしてください。上から下に、1マスずつ時間が進みます。そして縦のラインが1つの構成単位を表わします。

以下は、時刻T1から、T3までの例です。Aという設計情報を持った構成単位が増殖していく様子を示しています。この例ではAは単位時間が1つ進むと、2つの複製を作ります。また、単位時間が2つ進むと消滅します。

T1: _,_,_,_,_,A,_,_,_,_,_,
T2: _,_,_,_,A,A,A,_,_,_,_,
T3: _,_,A,A,A,_,A,A,A,_,_,

このように時間と空間の2次元の単純モデルで表現すると、設計情報が、この2次元平面上を時間方向と空間方向に広がっていく様子が分かります。

これは構成単位毎の視覚化を意図しましたが、生物種の単位や知識における学問分野単位などの視覚化にも応用できます。

■進化のモデル

設計情報がこの2次元平面で広がりながら進化することをイメージした時、Aの代わりにBやCが出現するようなモデル化を行いたくなってしまいます。

しかし、このモデル化の方法によって、設計情報に対する理解が大きく変化します。

このモデル上で、何気なくAという記号で設計情報を表現しました。しかし、考えてみるとAはそれほどシンプルな情報ではありません。生命であれば、時間が経過しても自己を保持するための機能を持ちつつ、エネルギーや資源を取り込んで成長する機能、そして自己複製をする機能を持ちます。とても高度で複雑な設計情報です。

これが複製の過程で突然変異したとして、根本的で重要な部分が変化してしまったら即アウトでしょう。このため、設計情報はコピー時に重要な部分が変化しないような仕組みになっていることが重要です。これは免疫とは異なる仕組みで、DNAの場合は様々なレベルの冗長化とエラー訂正のメカニズムとして組み込まれています。

ここでポイントとなるのは、全ての設計情報がこのような形で変化から保護されているわけではないという事です。

これが、Aが突然変異した場合に、BやCができるという表現が適さないという理由です。

イメージとしては、Aが突然変異した場合、A1、A+B、A+Cなどが登場するようなイメージです。A1は、Aの変更可能な部分が変化したものです。そして、A+BやA+Cは、Aと同じ設計情報を有しつつ、プラスアルファの設計情報としてBやCが追加されたものです。

この中で、例えばA+Bは環境に適応できずに死滅し、A1とA+Cが自然選択で残った場合、次はA2や、A1+D、A+C+Eのような形で、新しい設計情報の候補が追加されていきます。

この場合、先ほどの2次元平面の方眼紙を複数枚用意しておく必要があります。そこに、A用の方眼紙、B用の方眼紙、C用の方眼紙、という具合に分けて記載すれば、設計情報の部品単位で、時間と空間の上での広がりを視覚化することができるでしょう。

■設計情報のアーキテクチャモデル

このような形で設計情報の進化を考えると、設計情報のアーキテクチャモデルが見えてきます。

設計情報は、コンピュータで言えばプログラムです。そして、生物の基本的な機能の部分は、OSに相当します。このOS部分が壊れるとコンピュータが機能しなくなるため、OS部分の変更は低頻度でしか更新されません。また、簡単に変更されないようにされます。

しかし、ソフト全体に同じルールを適用してしまうと、新しいプログラムを追加してシステムを拡張していくというイノベーションが起こりにくくなります。そこで、OS部分とは別に、アプリケーションプログラム(いわゆるアプリ)を作成して、インストールできるような仕組みになっています。

このように、OSとアプリケーションを分離するという構造は、現在の一般的なコンピュータのアーキテクチャモデルになっています。ただし、このアーキテクチャがコンピュータの歴史の最初から存在していたわけでなく、いわば進化の過程で採用され、定着し、今でも採用され続けています。

同じように、生命における設計情報であるDNAも、おそらく進化の過程でOSとアプリケーションと同様のアーキテクチャモデルが導入され、それが維持されているのでしょう。

■階層構造のアーキテクチャ

コンピュータの場合、OSとアプリの分離だけではありません。OSの中にも、コアとなる機能の他にも進化に従って様々な機能が追加されていきますし、様々なデバイスを扱えるようにするため、デバイスに合わせたドライバというプログラムも追加できるアーキテクチャが採用されています。これにより、OSのコア部分は維持したまま、OSへ機能追加や拡張性を持たせています。

アプリ側も、単に個々のアプリが追加できるだけでなく、それらのアプリで共通に使用可能なミドルウェアと呼ばれるものを導入できるようになっています。これらも、さらに層を重ねることできるようになっています。

このようなOS、ミドルウェア群、アプリケーションという階層構造により、全体の動作に重要な部分は改変されにくくしつつ、新しい機能の追加とイノベーションの余地がある部分は頻繁に変更できるようにしています。

この階層構造アーキテクチャを、生命における設計情報であるDNAは採用しており、ロバストかつ効率的な進化を実現していると考えられます。

■DNAにおける実現方法

OSのように変更されにくい部分は、同じ設計情報をDNA上に多数重複して保持させる冗長化や、エラー訂正のための情報を多く含ませることで、ロバスト性を向上させることができるでしょう。一方で、アプリケーション部分のように変更を頻繁に発生させたい個所は、冗長化やエラー訂正のための情報を少なくしておけば良いはずです。

変更がされにくいOS部分と、変更を促進したいアプリケーションを分けるような恣意的な識別が、どうやってDNAに織り込まれたのかという疑問はあります。厳密に検証しなければ分かりませんが、ランダムに設計情報を保護する個所を強化するような変異が発生すれば、自然と良い配分になるのかもしれません。

例えば生命の維持に必要なOS部分の保護ができていないDNAと、保護ができているDNAでは、前者は長生きできない個体を多数生み出してしまうため、進化の速度が落ちます。反対に、アプリケーション部分まで広く保護をしているDNAと、そうではないDNAでは、前者は進化速度が遅くなり、環境や周りの種の進化に対応できずに取り残されてしまうでしょう。

その結果、自然選択的でも十分に最適に近い形で、OS部分の強力な保護、ミドルウェア部分のバランスの取れた保護、アプリケーション部分の高い変更自由度、という階層構造のアーキテクチャが実現できるように思えます。

コンピュータシステムでも、OSやミドルウェアの全ての機能を使うとは限りません。あるシステムでは使用するが、別のシステムでは全く使用しない機能というものも多数存在します。

DNAにおいても使われていない部分が多く存在するという話を聞きます。OS部分やミドルウェア部分であれば、そうした使われない部分も含めて保護され続けるため、例え使わなくても残り続ける可能性が高くなります。

■共通プラットフォームとしての生物の分類

このように階層構造のアーキテクチャで生物のDNAを考えて見ると、興味深い視点が得られます。

階層構造のアプリケーション側は、生物種によって差異があるでしょう。一方で、OSやミドルウェアになると、複数の生物種をまたがって共通の設計情報として存在することになります。特に、OSのコアの部分になれば、かなり多くの生物種が、共通の設計情報を持っている可能性があります。

これは、同じOSプラットフォーム上で動いているコンピュータシステムのようなものです。単細胞生物も、私たち人間も、ごく根本的なOSのコア部分は同じ設計情報、あるいはそのバージョン違いのものを使っている可能性が考えられます。そして、脊椎動物は脊椎動物共通のOSプラットフォームを持ち、哺乳類はその上に、哺乳類共通のミドルウェア群を持っているようなイメージです。

私は本業はシステムエンジニアですので、生物学の分類などにはあまりなじみがありません。しかし、このようにコンピュータアーキテクチャの用語やプラットフォームという概念で生物の系統を捉えると、にわかにイメージがクリアになったように感じます。

■知性における設計情報の場合

そして、知性における設計情報である知識にも、同じアーキテクチャが採用されている可能性がありそうです。

言語の文法構造も、基本的な構造をベースにして、応用的な構造が作られています。単語で表される概念も、基本的な概念をベースにして、応用的な概念が組み立てられます。例えば果物という概念の中にリンゴとミカンとバナナがあり、さらにリンゴという概念の中に赤リンゴや青リンゴのようなカテゴリが形成されます。また、数学や物理などの学問も、基礎理論の上に応用理論が展開されます。

新しい事実や考え方が判明した際に、応用的な文法構造、概念、理論が見直されることは比較的頻繁にあるでしょう。しかし、より基本的な文法構造、概念、理論が崩れることはめったにありません。

従って、知性における設計情報である知識についても、OS、ミドルウェア、アプリケーションのような階層構造のアーキテクチャが存在していると考えて良いでしょう。

■さいごに

この記事では、生命と知性の共通性を整理し、DNAや知識に対応する設計情報という概念に着目しました。そして、設計情報が進化する過程を、時間と空間の二次元モデルで表現することを提案しました。

その上で、設計情報であるDNAが、コンピュータシステムにおけるOS、ミドルウェア、アプリケーションといった階層構造のアーキテクチャモデルを持っているという仮説を立てました。

交配や突然変異によって誕生した生物が基礎的な生命活動を行える理由、および、DNAに使用されない設計情報が大量に残り続けている理由を、この仮説は上手く説明できます。加えて、このアーキテクチャ自体も、DNAのランダムな変異と自然選択の結果として実現できる見込みです。

知性における知識にも、この階層構造のアーキテクチャが観察されることに触れました。知識については、もう少し掘り下げて考える必要がありそうですが、生命と知性の共通性という視点の有用性を確認できたと思います。今後も、この視点で分析をすることで、生命と知性の双方の理解を深めていけると考えています。

サポートも大変ありがたいですし、コメントや引用、ツイッターでのリポストをいただくことでも、大変励みになります。よろしくおねがいします!