CDKのオープンソースECFP/FCFPサーキュラーフィンガープリント

2014年5月10日
CDD Vault 予測モデルの構築が可能になりました。私たちはコラボレーションと再現性のある結果を信じているので、この機能を支えるコア・アルゴリズムをオープンソース・ソフトウェアとして公開しています。ケミカルフィンガープリントの詳細は以下の通りです。また、修正したベイジアンモデルも公開しています。CDD Vault のモデルを使ってみたい方は、[email protected]にメールを送ってください。
この記事の一部は、Cheminformatics 2.0に掲載されました。
現在のところ、人気のあるオープンソースのChemistry Development Kit(CDK)の最新バージョンには、高く評価されているECFPとFCFPクラスの化学構造フィンガープリント(サーキュラーフィンガープリントやモーガンフィンガープリントと呼ばれることもあります)の独自の実装があります。この種のフィンガープリントの一般的なレシピはしばらくの間利用可能で、様々な異なるツールキットでいくつかの実装がありますが、このフィンガープリントはいくつかの点で区別されています。
このCDKへの貢献はCollaborative Drug Discovery社によるもので、実装はあなた自身が行いました。CDD Vault の新しい予測モデリング機能や、結核研究用の無料の TB Mobile アプリに使用されています。
Javaで書かれたCDKバージョン(Githubのフォーク、または最新のCDKブランチで入手可能)は、iOSアプリで使用するためにObjective-Cでコーディングされたバージョンと文字通り同一のフィンガープリントを生成するため、Javaベースのデスクトップアプリケーションやウェブサービスを使用してモデルを作成し、モバイルアプリでクライアント側に適用することができることを意味しています。このようにTBモバイルアプリは、事前に計算された参照データと動的に計算されたユーザー提供のデータを混合することで、類似性ソート、視覚的クラスタリング、ターゲットの活動予測を提供することができます。
ECFP6やFCFP6という用語に馴染みがない方のために、簡単に説明しますと、化学構造はサイズ6までの直径を持つすべてのサブグラフについて調べられます(すなわち、1つのノードから開始し、3回の幅優先の反復を行います)。これらのグラフのそれぞれには、原子、結合、および適用可能な場合にはキラリティの特性に基づいてハッシュコードが割り当てられます。これらのハッシュコードは、いくつかの冗長性除去ステップを経て、最終的に32ビット整数のリストに変換されます。薬物様分子は、通常、これらのユニークなハッシュコードの数十から数百を持っています。構造的に非常に類似している分子は、共通してこれらの指標の多くを共有する傾向があるため、しばしば谷本係数を使用して比較されます。ECFPクラスのフィンガープリントでは、原子の特性はややリテラル(例えば、原子番号、電荷、水素数など)ですが、FCFPクラス("F"は機能性の略)では、原子の特性はリガンド結合に関連する特性(例えば、水素ドナー/アクセプター、極性、芳香族性など)のためにスワップアウトされており、異なる原子はしばしば同じ値で始まることを意味します(例えば、-OHと-NHは同じと考えられるかもしれません)。
グラフベースのフィンガープリントには、さまざまな種類の構造比較のための代替的な選択肢として使用できる多くの異なるタイプがあります。ECFPとFCFPのカテゴリは、多くの研究で、特にベイズモデル構築のために成功裏に使用されています。これらのフィンガープリントの構築方法は、様々な種類の類似性比較に使用された場合に経験的に良い比例性を与え、良いバランスを提供しており、創薬のための人気のある選択肢となっています。
複数のソフトウェアベンダが独自のスタイルの円形記述子を実装していますが、問題が存在します:オリジナルの発明は、文献で公開されているアルゴリズムに基づいていますが、残念ながら、文字通り互換性のあるバージョンを他の誰もが実装することができないようにするための重要な詳細を残しています。それは、あなたが単一のベンダーからのソフトウェアであなたのモデリングのすべてを行っている場合は問題ではないかもしれませんが、あなたがミックスアンドマッチしたい場合は、入力分子が同じであり、実装が同じ基本的なレシピに従っている場合でも、1つのパッケージによって生成されたフィンガープリントは、別のパッケージによって生成されたフィンガープリントと比較することはできません:数字は完全に異なっているでしょう。
CDKプロジェクトは以前は独自の実装を持っていなかったので、私たちはこの特定の穴を埋めました。Javaランタイム環境でソフトウェアを使用している人は誰でも、誰にもお金を払わず、許可を求めることなくアクセスすることができます。私たちは、これらのフィンガープリントが様々な検証テストに合格し、他の実装に匹敵するエンリッチメント率で実行されることを確認するために、かなりの量の努力をしてきました。しかし、おそらくもっと重要なことは、このアルゴリズムは、言葉で説明するのが比較的簡単な方法で、非常に意図的に構築されており、非常に自己完結的なコードに基づいています。暗黙の水素数、芳香族性、環状ブロック、キラリティなどの定義は最小限に抑えられており、よく定義されており、決して変更されないことが保証されています。これは、ある構造のフィンガープリントのリストを生成した場合、それをデータベースに保存し、永遠に使用することができることを意味します。また、実装はプラットフォームに依存しないので、一つのソースファイルを異なる開発環境に一行ずつ翻訳することができます。実際には、CDK の実装を使ってサンプル結果を生成し、移植されたバージョンが同じように動作していることを確認することができます。前述したように、これはすでに行われており、TBモバイルアプリで使用されています。
近い将来、自由に利用できるソースコードを補完するために、このアルゴリズムを科学的な文献に明示的に文書化する予定ですが、それまで待つ必要があります。それまでの間、勇気があれば、CDK ソースのフィンガープリント階層の下にあるCircularFingerprint.javaというファイルを探してみてください。
これはまた、私が CDK のコードベースで積極的に仕事をするのは初めてです。プロジェクトは大規模なオーバーホールの真っ最中のようなので、もう一方の端から何が出てくるのか見てみるのも面白いでしょう。指紋の重要な新しいクラスの他にも、それがあります!