Skip
Cأكاديمية CADD

L17 · 24 دقيقة

بحث التشابه والتجميع

تانيموتو عملياً.

البرمجةالكيمإنفورماتكس

أهداف التعلّم

  • حساب Tanimoto على بصمات Morgan عبر واجهة RDKit المعروفة.
  • تفسير العتبة كقرار مشروع مرتبط بنوع البصمة.
  • استخدام التشابه للتجميع قبل الشراء لا كدليل نشاط.

تانيموتو عملياً

البصمة الدائرية Morgan/ECFP تمثيل شائع. في RDKit الحالي تُستدعى غالباً عبر rdMolDescriptors.GetMorganFingerprintAsBitVect ثم DataStructs.TanimotoSimilarity. نصف القطر 2 و2048 بت إعداد شائع يُذكر في methods لا يُقدَّس.

from rdkit import Chem
from rdkit.Chem import rdMolDescriptors, DataStructs
m1 = Chem.MolFromSmiles("c1ccccc1")
m2 = Chem.MolFromSmiles("c1ccncc1")
fp1 = rdMolDescriptors.GetMorganFingerprintAsBitVect(m1, radius=2, nBits=2048)
fp2 = rdMolDescriptors.GetMorganFingerprintAsBitVect(m2, radius=2, nBits=2048)
print(DataStructs.TanimotoSimilarity(fp1, fp2))

الغرض: تشابه Tanimoto بين بنزين وبيريدين كمثال تعليمي.

المُدخل: جزيئان صالحان بعد MolFromSmiles.

المُخرج: عدد في [0,1].

المعنى: القيمة تعتمد على radius وnBits؛ لا تُقارن عبر إعدادات مختلفة صامتة.

أخطاء شائعة: None من SMILES فاشل؛ أو خلط بصمة كثيفة مع أخرى طولها مختلف.

استخدامات مشروعة

  • أقرب جار لنطاق تطبيق QSAR.
  • تجميع hits قبل الشراء (مثلاً Butina-style clustering كمفهوم).
  • خط أساس: هل نموذجك يهزم nearest-neighbour؟
لماذا؟ — لماذا نثبّت nBits؟

لأن الطول جزء من تعريف البصمة. تغييره يغيّر التصادمات bit collisions وبالتالي كل العتبات التاريخية في مشروعك.

ماذا لو؟ — ماذا لو أخذت كل مركّب Tanimoto ≥ 0.9 من hit واشتريت المئة كلها؟

اشتريت السلسلة نفسها مراراً. خذ ممثلين من كل عنقود واترك ميزانية لـ scaffold مختلف.

تمرين

اكتب جملة methods لبصمة مستخدمة في AD.

مواضيع مرتبطة