【问题标题】:How can I interpret the features obtained from Chem.RDKFingerprint(mol)如何解释从 Chem.RDKFingerprint(mol) 获得的特征
【发布时间】:2021-06-08 01:20:46
【问题描述】:

我做了以下从 mol 文件中获取指纹。通过转换 fp.ToBitString() 给我一个长度为 2048 的向量。当我数数时,1 与分子中的原子数相同。我们如何解释这个向量?任何解释链接的建议都会很棒。

mol = Chem.MolFromSmiles(ms)
fp = Chem.RDKFingerprint(mol)
fp.ToBitString()

这是我得到的向量

'00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000'

【问题讨论】:

    标签: rdkit


    【解决方案1】:

    据我所知,RDKFingerprint 是一个“类日光”子结构指纹,它使用位向量,其中每个位由分子中存在的特定子结构设置。默认设置 (maxPath default=7) 考虑最多 7 个键长的子结构。由于没有预定义的子结构集,因此不可能为每个现有模式设置一个位,因此每个键都被视为伪随机数生成器(“散列”)的种子。其输出是一组位 (nBitsPerHash, default=2),数字介于 0 和 fpSize default=2048 之间,用于设置指纹中的相应位。

    RDKit 有一个很好的工具来解释位集:

    from rdkit.Chem import Draw
    from rdkit import Chem
    
    smiles = 'OC(CN1C=NC=N1)(CN1C=NC=N1)C1=C(F)C=C(F)C=C1'
    mol = Chem.MolFromSmiles(smiles)
    
    bit_info = {}
    fp = Chem.RDKFingerprint(mol, maxPath=5, bitInfo=bit_info)
    print(list(fp.GetOnBits())[:10])  # print the first 10 bits set to 1
    
    # using the bit_info dictionary populated by RDKit prepare a visualisation
    Draw.DrawRDKitBit(mol, 60, bit_info)
    
    # draw multiple bits (12)
    tpls = [(mol, x, bit_info) for x in bit_info]
    Draw.DrawRDKitBits(tpls[:12], molsPerRow=4, legends=[str(x) for x in bit_info][:12])
    

    一些推荐阅读:

    【讨论】:

    • 非常感谢您的解释和推荐阅读。
    猜你喜欢
    • 1970-01-01
    • 2014-02-11
    • 1970-01-01
    • 2018-05-29
    • 2018-04-14
    • 2020-03-06
    • 2021-11-05
    • 2013-06-22
    • 2013-11-27
    相关资源
    最近更新 更多