共重合反応の確率シミュレーション(アルゴリズム編)

要約

 分子Aと分子Bが交互に結合することでABABAB…という形式で連なった分子を生じる反応のシミュレーションをR言語で行った。本シミュレーションでは、ランダムな衝突によって生じる分子の結合を再現するため、無作為抽出で生成物を決定した。様々なAとBの比で反応を開始したところ、AとBの数が同程度であるほど長い分子を生じやすく、どちらかの分子の数が偏っているほど短い分子を生じやすいことが明らかとなった。特に、有用な分子として知られるBAB型分子を効率よく得るには、Bの割合が少なくとも96%~98%程度必要であることが明らかとなった。

1.動機付け

 ゲル材料は寒天のような柔らかい材料として知られており、食品や医療用途の材料として広く用いられている。このような材料は、直鎖型の長い分子を含む溶液に、鎖の橋渡し役となる「架橋剤」を添加することで作製できる(図1)。架橋剤は鎖同士を繋ぎ、溶液中の分子全体を網目状の構造に変える。このようにして生成した網目状の構造は柔らかいながらも流動性が抑制され、ゲルという状態になる。したがって、ゲル材料の作製において架橋剤は、ゲル化を左右する重要な役割を果たす。

図1. 一般的なゲル材料の作製方法を表す概念図.

 ゲル化反応においては機能性架橋剤を導入することで、発光性などといった様々な機能性を有するゲルを創製することができる。一般に機能性架橋剤は、中央の機能性部位Aと両端の架橋部位Bで構成される(図2)。このようなBAB型構造であることによって、Bの部位を介した網目構造の形成と、A由来の機能性発現が可能となる1

図2. 機能性ゲルの作製手順.

 一般に、機能性架橋剤BABを得るには、予めAとBを反応させる必要がある。反応とは、分子間のランダムな衝突によって結合を生成させる過程を指す。すなわち、反応溶液中でAとBが衝突を起こすとABになり、続いてABがBと衝突することで、BABを生じる。ただし、A同士またはB同士が衝突を起こしても何も起きないため、生成する分子はBABAB…のようにそれぞれの分子が交互に結合したものとなる。このようなランダムな反応は、反応開始時点でのAとBの比を調整することで制御できる。具体例として、3つのケースを図3に示した。ケース①としてBの数がAの数を大きく上回る場合、Aは2回連続的にBと衝突する確率が高い一方で、生じたBABがBよりも先にAと衝突する確率は低く、ほぼ全てのAがBABに変換される。このため、ケース①のようなA対Bの比で反応を開始すれば、効率よくBAB型分子を得ることができる。しかしながらこのような手法では、大多数のBがAとの衝突を起こさず、言い換えれば未反応の状態で残ることになる。このような未反応のBは一般に廃液として処理されるため、環境負荷の原因になるという問題がある。

図3. 反応開始時点におけるA/B比によって異なる生成物.

ケース②としてBの数とAの数が同程度である場合、生じたBABが再度Aと衝突することが十分に起こり得るため、BAB型より長いBABABA…といった形式の分子を生じる。しかし、BAB型より長い分子は精製や同定が困難であり、材料物性を緻密に制御できなくなるという問題につながる。ケース③としてAの数がBの数を上回る場合、Bの両端にAが修飾されたABA型分子を多く生じてしまう。このような両端がAとなった分子は架橋剤としての反応性がなく、ゲル化反応を起こすことができない。したがってケース①-③より、AからBAB型分子を効率よく得るには、Bの割合が高いことが必要である一方で、かつ最小限で済むことが望ましい。すなわち、Bの割合には最適値が存在することが考えられる。このような最適値を実験的に求めるには、様々なA/B比で実験を行わなければならないことから多大な労力が発生する。そこで本記事では、以上のようなAとBのランダムな衝突反応を無作為抽出と見なし、AがBABに変換される確率を様々なA/B比の下でシミュレーションすることで、Bの割合の最適値を調査した。

2.モデル化

 分子A,Bは文字A,Bで表せるものとしてモデル化する。また、現実に起きる化学反応の規則に則り、本シミュレーションにおける結合反応の原則を図4のように定めた。その原則とは、衝突(無作為抽出)によって①A同士は結合しないこと、②B同士は結合しないこと、③AとBは結合可能であること、の3つである。このような条件分岐はif文によって定めることができる。

図4. 本シミュレーションにおける結合反応の原則.

 反応のアルゴリズムについては、次のように定めた(図5)。具体例として、反応容器(flaskというベクトル)にAが3つとBが6つ存在する場合を初期状態として仮定する。まず、while文で反応を開始させることで、while文の条件が満たされ続ける限り、反応が続行されるような設定を行う。具体的には、衝突が起きない回数が何度も続くような状況を停止できるようにwhile文を記述する。続いて、sample()関数によってflask内で衝突させる2個の分子のインデックスを決定する。選択された分子は、どちらも等しい場合を除いて反応が可能となるため、これを満たすようにif文を記述する。ただし、2つの分子として同じ形であるABとABが選択された場合には、ABABを生じるような反応が可能となる。そのため、より一般的には、「選択された2分子の4つの末端が全て等しい場合を除いて反応が可能である」という条件を設定する。すなわち、末端が全て等しくない場合はTRUEが返され、反応は続行する。一方で、末端が全て等しい場合はFALSEが返され、再度sample()関数による分子の選択段階に戻る。図5の例では、インデックスが2と6の分子が選択されており、それぞれAとBという異なる分子に対応することから、それらが結合したものと見なす。そこで、paste()関数によってAとBをABに変換し、生成物としてflaskの最後尾に追加する。続いて、インデックス指定によって、反応物であるAとBを容器から除外する。この操作はflaskをflask[c(-2, -6)]で置き換えることによって行える。

図5. シミュレーション対象である共重合反応のアルゴリズム.

 以上のような反応を繰り返すと、反応容器内にはAやBといった1文字で表せる分子だけでなく、ABやBAなどといった2文字以上の分子が出現する。仮にABとBAが衝突するとした場合、反応の原則に基づくとABBAは生成せず、ABAB(BABAと同じ)が生成する。よって、2文字以上で表現される分子が選択された場合には、反応相手によってその向きを変えるアルゴリズムを設定しなければならない。そこで、2文字以上の分子の反応パターンを4つの場合に分け、図6に示した。

図6. 衝突する分子の長さが2文字以上である場合の結合アルゴリズム.赤枠は反応末端を示す.…は中間部分の省略を意味する.表の1個目の分子は全てA…B型である.1個目の分子がB…A型となる場合は、表の2個目の分子を反転させたものが反応相手として対応する.

図6①のABABが反応する場合は、両分子とも反応末端が向かい合っているため、初期の向きを保持したままABABを生じる(下線は反応末端)。一方で、②のABとBAが反応する場合は、1個目を反転させることで、反応末端が隣り合った形のBABAを生成できる。同様に、③のABとBAが反応する場合は、2個目の分子を反転させて結合させることで、ABABを生成できる。④のABとABは反応末端が互いに逆方向を向いているため、両分子を反転させて結合させることでBABAという生成物に変換できる。以上のようなアルゴリズムによって、どのような分子が選択されてもpaste()関数から生成物を作り出すことができる。

引用

1. Russell, G. M.; Inamori, D.; Masai, H.; Tamaki, T.; Terao, J. Polym. Chem. 2019, 10, 5280-5284.

コメントを残す