Нормально ли получить в RDKit для того же набора смайлов более уникальные универсальные фреймворки Murcko, чем уникальные нормальные фреймворки?При запуске этого:
# Generate framework for a SMILES, handling for errors
def framecheck(s):
try:
return Chem.MolToSmiles(ms.GetScaffoldForMol(Chem.MolFromSmiles(s)))
except:
pass
# Generate generic framework for a SMILES, handling for errors
def gframecheck(s):
try:
return Chem.MolToSmiles(ms.MakeScaffoldGeneric(Chem.MolFromSmiles(s)))
except:
pass
# Count unique frameworks
fraq = [framecheck(s) for s in smidfq.smiles]
fraq = list(set(fraq))
len(fraq)
# Count unique generic frameworks
gfraq = [gframecheck(s) for s in smidfq.smiles]
gfraq = list(set(gfraq))
len(gfraq)
я получаю для некоторого набора смайлов 2483 фреймворка и 3848 общих фреймворков.Такое же качественное поведение получается с другими наборами SMILES.Предполагается, что для универсальных каркасов все типы атомов установлены на C, а для всех связей - на единичные, поэтому я бы ожидал менее универсальных каркасов.Нужна ли какая-то канонизация перед унификацией фреймворков?