【W4】リガンドベーススクリーニング_05_Step2_Dice係数
【本パート(W4)の目的】
化合物をエンコード(記述子、フィンガープリント)し、比較(類似性評価)する様々なアプローチを取り扱います。さらに、バーチャルスクリーニングを実施します。
上記はPython版のT4の説明ですが、W4の目的も同じです。
そのための教材として
既知のEGFR阻害剤ゲフィチニブ(Gefitinib)をクエリとして使用し、EGFRに対して試験済みの化合物データセットの中から類似した化合物を検索します。
Step1で化合物をエンコードし、Step2では類似性評価をしています。
今回はTanimotoとDiceの比較をします。
【Jaccard(Tanimoto)とDice】
素人なコメントですみませんがTanimoto係数ってJaccard係数の一種なんですね。
Tanimoto, or extended Jaccard, is an importantsimilarity measure which has seen prominent use in fields such as data mining and chemoinformatics. Many of the existing state-of-the-art methods for market basket analysis, plagiarism and anomaly detection, compound databasesearch, and ligand-based virtual screening rely heavily on identifying Tanimoto nearest neighbors.
いきなりこんな話を持ち出したのは、TanimotoとDiceの使い分けをどう考えたらいいのかと思って調べていたためです。
上記記事によると、Jaccard係数すなわちTanimoto係数には欠点があるそうです。
Jaccard係数では分母に2つの集合の和集合を採用することで値を標準化し,他の集合同士の類似度に対する絶対評価を可能にしている.しかし,Jaccard係数は2つの集合の差集合の要素数に大きく依存するため,差集合の要素数が多いほどJaccard係数は小さくなる.これは,人の目から判断した際の「共通要素が多いほど類似度が高い」という感覚と異なっている.
そこで,差集合の要素数の影響を抑え,共通要素の要素数の影響に重みをおくDice係数が提案された.
図解もあってわかりやすかったのでよろしければご覧ください。
【Dice係数を使ってみよう】
Dice係数についてはmagattacaさんの記事を引用します。
Dice係数(Dice coefficient)
a: 化合物Aに存在する特徴の数
b: 化合物Bに存在する特徴の数
c: 化合物AとBで共有されている特徴の数
類似度評価は通常、それぞれのフィンガープリントの正の(1の)ビットの数と、両者が共通してもつ正のビットの数を考慮します。Dice類似度は通常タニモト類似度よりも大きな値を返し、それはそれぞれの分母の違いに由来します。
今回もデモデータを利用して
既知のEGFR阻害剤ゲフィチニブ(Gefitinib)をクエリとして使用し、EGFRに対して試験済みの化合物データセットの中から類似した化合物を検索します。
前回Step2のworkflow最上部でTanimoto係数を算出しました。
workflowの基本的な構成は同様です。今回は2つの手法が比較しやすいようにJoinerでデータを統合しています。
【Similarity Search】Dice係数を利用
ノードの基本機能は前回に紹介したので設定へ。
設定:
Distance Selectionは”Dice”を選択。他はほぼTanimoto係数算出時と同じです。
Neighbor Countが5になっているけれど、今回のデモデータでは比較対象となるクエリ化合物がゲフィチニブ(Gefitinib)1つだけなので、”1”でも”5”でも同じ結果になると思います。何で変えてあるのかはわからないです。
結果:
4510化合物に対してゲフィチニブとの類似度が算出されています。
SimilarityでDecending(降順)に並べ替えをして表示してみました。
【Column Rename】
このノードも前回同様なので設定だけ。
どの条件で算出したSimilarityかを明記しています。
Morganフィンガープリントを使ってDice係数での類似度評価をした結果を表すカラム名に変えました。
結果:
では続けてデータを統合しましょう。
【Joiner】
Deprecatedはworkflow作成時よりも新しいバージョンのKNIME APで実行しているためなので気にしないで、Joinerの説明を紹介しておきます。今回はすさんにお世話になることにしました。
設定:
molecule_chembl_idカラムで照合します。
Tanimoto係数での評価結果側はTableの全てのカラムを採用し、
Dice係数での評価結果からは、類似度だけを統合します。
結果:
TanimotoとDiceそれぞれの類似度を4510化合物について取得できました。
先述の通り、Dice類似度は通常Tanimoto類似度よりも大きな値を返しているのも見て取れると思います。
では次回は続けてMorganではなくMACCSフィンガープリントでのデモをまとめてみましょう。
おまけ:
10th RDKit UGMは参加されましたか?
私にとってはとても嬉しい出来事がありました。
Lightning Talk(LT)でTeachOpenCADDの最新情報が告知されました。
T022まで拡張されていて本当に素晴らしいです。
また、LTでは触れられなかったのですが、資料の最終ページで二次創作の紹介があって、このnoteもご存じでした!
感動してDominiqueさんへお礼を言ったら「え、どちら様?(・・?」って感じで哀しくも笑ってしまいましたが、今後は翻訳ソフトを使って読んでみると言っていただけました。励みにしたいと思います。
記事を読んでいただきありがとうございます。 先人の智慧をお借りしつつ、みなさんに役立つ情報が届けられたらと願っています。 もしサポートいただけるなら、そのお金はKNIMEの無料勉強会の開催資金に充てようと思います。