まず、RDKitをインストールし、必要なパッケージを読み込みます。以下のコードは、RDKitを使って分子データを取得する例です。
from rdkit import Chem
# SMILES表記から分子を生成
mol1 = Chem.MolFromSmiles('CCO')
mol2 = Chem.MolFromSmiles('CCC')
# 分子の表示
print(mol1.GetNumAtoms()) # 分子1の原子数
print(mol2.GetNumAtoms()) # 分子2の原子数
次に、Tanimoto係数を計算するために、分子のフィンガープリントを作成します。フィンガープリントは、分子の特徴を表すバイナリベクトルです。以下のコードは、フィンガープリントを作成する例です。
from rdkit.Chem import rdMolDescriptors
# 分子のフィンガープリントを計算
fp1 = rdMolDescriptors.GetMorganFingerprintAsBitVect(mol1, 2, nBits=1024)
fp2 = rdMolDescriptors.GetMorganFingerprintAsBitVect(mol2, 2, nBits=1024)
# フィンガープリントの類似性を計算
similarity = DataStructs.TanimotoSimilarity(fp1, fp2)
print(similarity)
上記のコードでは、分子のSMILES表記からRDKitのMol
オブジェクトを生成し、rdMolDescriptors.GetMorganFingerprintAsBitVect
関数を使ってフィンガープリントを計算しています。最後に、DataStructs.TanimotoSimilarity
関数を使用してフィンガープリントの類似性を計算し、結果を出力しています。
このようにして、RDKitを使用してTanimoto係数を計算することができます。さまざまな分子間の類似性を評価する際に、この手法を活用することができます。
以上が本記事の内容となります。RDKitを使用したTanimoto係数の分析方法とコード例を紹介しました。化学情報処理や化学的な類似性の評価に興味のある方にとって、参考になる情報となるでしょう。