見出し画像

【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.

(引用元)https://www.researchgate.net/publication/318863456_Efficient_identification_of_Tanimoto_nearest_neighbors_All-pairs_similarity_search_using_the_extended_Jaccard_coefficient

いきなりこんな話を持ち出したのは、TanimotoとDiceの使い分けをどう考えたらいいのかと思って調べていたためです。

上記記事によると、Jaccard係数すなわちTanimoto係数には欠点があるそうです。

Jaccard係数では分母に2つの集合の和集合を採用することで値を標準化し,他の集合同士の類似度に対する絶対評価を可能にしている.しかし,Jaccard係数は2つの集合の差集合の要素数に大きく依存するため,差集合の要素数が多いほどJaccard係数は小さくなる.これは,人の目から判断した際の「共通要素が多いほど類似度が高い」という感覚と異なっている.
そこで,差集合の要素数の影響を抑え,共通要素の要素数の影響に重みをおくDice係数が提案された.

図解もあってわかりやすかったのでよろしければご覧ください。

【Dice係数を使ってみよう】

Dice係数についてはmagattacaさんの記事を引用します。

Dice係数(Dice coefficient)

画像1

a: 化合物Aに存在する特徴の数 
b: 化合物Bに存在する特徴の数 
c: 化合物AとBで共有されている特徴の数
類似度評価は通常、それぞれのフィンガープリントの正の(1の)ビットの数と、両者が共通してもつ正のビットの数を考慮します。Dice類似度は通常タニモト類似度よりも大きな値を返し、それはそれぞれの分母の違いに由来します。

画像2

今回もデモデータを利用して

既知のEGFR阻害剤ゲフィチニブ(Gefitinib)をクエリとして使用し、EGFRに対して試験済みの化合物データセットの中から類似した化合物を検索します。

前回Step2のworkflow最上部でTanimoto係数を算出しました。

workflowの基本的な構成は同様です。今回は2つの手法が比較しやすいようにJoinerでデータを統合しています。

画像3

【Similarity Search】Dice係数を利用

画像4

ノードの基本機能は前回に紹介したので設定へ。

設定:

画像5

Distance Selectionは”Dice”を選択。他はほぼTanimoto係数算出時と同じです。

Neighbor Countが5になっているけれど、今回のデモデータでは比較対象となるクエリ化合物がゲフィチニブ(Gefitinib)1つだけなので、”1”でも”5”でも同じ結果になると思います。何で変えてあるのかはわからないです。

結果:
4510化合物に対してゲフィチニブとの類似度が算出されています。
SimilarityでDecending(降順)に並べ替えをして表示してみました。

画像6

【Column Rename】

画像7

このノードも前回同様なので設定だけ。

画像8

どの条件で算出したSimilarityかを明記しています。
Morganフィンガープリントを使ってDice係数での類似度評価をした結果を表すカラム名に変えました。

結果:

画像9

では続けてデータを統合しましょう。

【Joiner】

画像10

Deprecatedはworkflow作成時よりも新しいバージョンのKNIME APで実行しているためなので気にしないで、Joinerの説明を紹介しておきます。今回はすさんにお世話になることにしました。

設定:

molecule_chembl_idカラムで照合します。

画像11

Tanimoto係数での評価結果側はTableの全てのカラムを採用し、
Dice係数での評価結果からは、類似度だけを統合します。

画像12

結果:

画像13

TanimotoとDiceそれぞれの類似度を4510化合物について取得できました。
先述の通り、Dice類似度は通常Tanimoto類似度よりも大きな値を返しているのも見て取れると思います。

では次回は続けてMorganではなくMACCSフィンガープリントでのデモをまとめてみましょう。


おまけ:

10th RDKit UGMは参加されましたか?

私にとってはとても嬉しい出来事がありました。
Lightning Talk(LT)でTeachOpenCADDの最新情報が告知されました。

画像14

T022まで拡張されていて本当に素晴らしいです。
また、LTでは触れられなかったのですが、資料の最終ページで二次創作の紹介があって、このnoteもご存じでした!

画像15

感動してDominiqueさんへお礼を言ったら「え、どちら様?(・・?」って感じで哀しくも笑ってしまいましたが、今後は翻訳ソフトを使って読んでみると言っていただけました。励みにしたいと思います。

記事を読んでいただきありがとうございます。 先人の智慧をお借りしつつ、みなさんに役立つ情報が届けられたらと願っています。 もしサポートいただけるなら、そのお金はKNIMEの無料勉強会の開催資金に充てようと思います。