ECFPはサーキュラーフィンガープリントの一種です。この記事では、分子記述子のひとつであるECFPについて、意味や生成プロセスを説明します。
ECFPは構造活性相関のための分子記述子として広く利用されています。その生成プロセスを知っておくと、構造活性相関などの理解が深まります。ECFPの文献[1]を参考に説明します。
[1] Extended-Connectivity Fingerprints, J. Chem. Inf. Model., 2010, 50, 5, 742–754 (https://doi.org/10.1021/ci100050t)
ECFPとは?
ECFPはサーキュラーフィンガープリントの一種で、本質的にすべての部分構造の特徴を表現することができる分子記述子です。
フィンガープリントの中にはStructure Keysのように事前に定義された部分構造ライブラリを使用するものもありますが、Structure Keysはライブラリにない部分構造の特徴を表現することはできない欠点があります。この欠点を解消するのが、ECFPのようなサーキュラーフィンガープリントです。そのため、構造活性相関などの課題に対する分子記述子として、ECFPは広く利用されています。
ECFPは、使用する構造活性相関などの課題に対応させて、特徴を取り込む部分構造の範囲を変えることができます。更新回数が2回の場合ECFP_4、更新回数が3回の場合ECFP_6と表現します。
ECFPの生成プロセス
まずECFPの生成プロセス4段階の概要を説明し、その後で各段階の詳細を説明します。
- 初期割り当て:各原子に整数の識別子が割り当てられます。
- 更新:隣接する原子の識別子が反映され、各原子の識別子が更新されます。
- 重複構造の削除:同じ部分構造を表現する識別子は削除されます。
- 重複識別子の削除:同じ部分構造が複数ある場合、そのまま残すか削除するか選択できます。
安息香酸アミドを例に説明します。図1は安息香酸アミドの各原子に番号を付けたものです。
原子1周辺の情報を繰り返し更新した場合の、特徴を表現できる部分構造の範囲を図2に示します。最初(更新0回)の原子識別子は原子自体と結合に関する情報のみを表現されています。更新1回後、識別子には原子1に直接結合する原子の情報が含まれるようになります。更新2回後、原子1から2結合先までの部分構造の特徴が表現されます。
更新回数が増えるに従い、中心原子の周りのより大きな円形の部分構造を表す識別子になります。「A」は水素以外の任意のタイプの原子を表します。
繰り返し更新回数は2回のECFP_4が利用されることが多いです。大きな部分構造が影響する構造活性相関に対応させたい場合は、繰り返し更新回数を増やすことが可能です。
ここまでがECFPの生成プロセスの概要です。次から各段階の詳細を説明します。
初期割り当て
まず、化合物の全原子に識別子を割り当てます。初期の原子識別子は、Daylight atomic invariants rule(条件1~6)とECFPで追加された条件7によって原子ごとに決まる整数値です。
- 結合する非水素原子数
- 原子価から水素の数を引いたもの
- 原子番号
- 原子質量
- 原子の電荷
- 結合する水素原子数
- 原子が少なくともひとつの環に含まれているかどうか
これらの情報を単一の32ビット整数値にハッシュ化したものが、初期(更新0回)の原子識別子です。ブチルアミドの各原子の初期原子識別子は図3の通りです。
更新
更新プロセスでは、各原子および直接結合する原子の識別子を入力情報として使用することで、各原子を中心とする部分構造の特徴を表現できるようになります。
このプロセスを説明するために、図3のカルボニル炭素(原子ラベル4、初期識別子-1100000244)を考えてみましょう。1回目の更新では、この原子は次の要素が入ったarrayが作成され、ハッシュ化されて識別子が更新されます。
- 最初の要素は更新回数で「1」
- 2番目の要素は中心原子の識別子で「-1100000244」
- 3番目の要素は結合する非水素原子との結合次数で「1、2、3、4のいずれか」(それぞれ単結合、二重結合、三重結合、芳香族結合に対応)
- 4番目の要素は結合原子の原子識別子
- 3,4の要素の追加操作を、結合するすべての原子に対して繰り返す
- 中心原子に結合する4つの原子の識別子が異なる場合、立体化学フラグをarrayに追加する(立体化学的フィンガープリントが要求された場合のみ)
この場合の最終的に8つの要素からなるarrayが生成されます。
[1, −1100000244, 1, 1559650422, 1, 1572579716, 2, −1074141656]
最後に、このarrayが32ビット整数にハッシュ化されて、新しい識別子「-1708545601」が生成されます。この操作をすべての原子に対して行い、図4に示すように各原子の識別子が更新されます。
すべての原子に新しい識別子が付けられると、重複した部分構造を表す識別子が削除対象としてマークされます。新しく生成された残りの識別子は、現在のフィンガープリントarrayに追加されます。1回の更新後、ブチルアミドのフィンガープリントarrayは次のようになります。
[734603939, 1559650422, 1559650422, −1100000244, 1572579716, −1074141656, 863188371, −1793471910, −1789102870, −1708545601, −932108170, 2099970318]
図5は、ブチルアミドの酸素原子に適用される更新プロセスを示しています。更新プロセスが開始される前は、最初の原子識別子によって表される特徴は単なる二重結合酸素です。更新1回後、識別子はカルボニル基を表します。更新2回後、識別子は脂肪族アミドを表します。2回の更新でこのサイズの部分構造を表す識別子を作成できます。
重複構造の削除
数回の更新後、2つの異なる中心原子から同一の部分構造に成長する場合があります。例えば図6に示すように、酸素原子または窒素原子からそれぞれ2回更新すると同じ部分構造(脂肪族アミド)になります。ただし、異なる原子を起点としているため、2つのハッシュ識別子は異なります。フィンガープリントが冗長になるのを避けるために、このような重複は識別して削除されます。削除するルールは以下の通りです。
- 異なる更新回数から重複構造の識別子が生成された場合、更新回数が多い方の識別子を削除
- 同じ更新回数で重複構造の識別子が生成された場合、ハッシュ識別子の値が大きい方を削除
重複する部分構造を削除すると、ある更新回数で前の更新段階よりも生成する部分構造が減少し、一定回数以上更新すると新しい部分構造が生成されなくなります。図7はブチルアミドから生成されたすべての部分構造を示しています。ブチルアミドは原子が6つにもかかわらず、初期割り当て段階の部分構造は5種類です。これは、メチレン炭素原子の部分構造が重複しているためです。最初の更新後、6つの新しい部分構造が生成されます。そして更新2回目後からは部分構造の重複が増え、新しく追加される部分構造は3つになります。後続の反復では、新しい部分構造が追加されることはありません。
各更新におけるフィンガープリントは、前の更新のすべての部分構造を表現する識別子と、その更新で生成された新しい部分構造を表現する識別子の組み合わせです。ブチルアミドの分子サイズは小さいため、すべての部分構造を表現する識別子は更新2回(直径4)で発見され、ECFP_4とECFP_6のフィンガープリントは同一です。
重複識別子の削除
分子内の複数の場所に同じ部分構造がある場合、フィンガープリントの最終リストに重複した識別子が含まれることがあります(例えばメチル基など)。この重複はオプションで削除することができます。または、重複する部分構造の数を考慮したフィンガープリントにしたい場合は、重複識別子を残すこともできます。
まとめ
この記事では、分子記述子のひとつであるECFPフィンガープリントについて、意味や生成プロセスを説明しました。