pan assay interference compounds (PAINS)

方法一:

分子骨架跃迁工具DiffLinker评测_wufeil的博客-CSDN博客

PAINS(pan assay interference compounds)是一类化合物结构片段,它们在多种生物测定实验中会产生误导性的结果。这些片段可能与多个目标作用,导致假阳性结果。为了避免药物研发中的误导性结果,科学家们通常会对候选化合物库进行筛选,剔除其中包含PAINS片段的化合物。PAINS大致分为两类:对第一类来说,化合物在测试浓度下在溶液中形成胶体,蛋白被包裹在胶体中,底物因此无法接近酶的活性中心,因此这些化合物属于假阳性化合物;对于第二类来说,这些化合物的活性基团可以与蛋白受体形成共价作用,进而导致受体受到抑制,但这种抑制很难逆转,同时这些具有PAINS性质的配体可以与大多数靶点发生反应,缺乏特异性。如果药物相关文章要投稿到Journal of Medicinal Chemistry等杂志,它们可能要求PAINS的计算,此时,可以使用MolAICal来计算PAINS。

CSV文件所在的地址在:https://github.com/igashov/DiffLinker/blob/main/resources/wehi_pains.csv

from rdkit import Chem
import csv
import pandas as pd

# 判断是否含有PAINS
pains_smarts_loc = './resources/wehi_pains.csv'
with open(pains_smarts_loc, 'r') as f:
    pains_smarts = [Chem.MolFromSmarts(line[0], mergeHs=True) for line in csv.reader(f)]
    pains_smarts = set(pains_smarts)

def check_pains(mol, pains):
    for pain in pains:
        if mol.HasSubstructMatch(pain):
            return True
    return False



# 读取csv文件然后将不含有PAINS的SMILES写入新的csv文件
data = pd.read_csv("result_EP4_classfication85.csv")
smiles_list = data['smiles'].tolist()

passed_pains = []
for smiles in smiles_list:
    pred_mol = Chem.MolFromSmiles(smiles)
    if pred_mol is not None:
        if not check_pains(pred_mol, pains_smarts):
            passed_pains.append(smiles)


output_file = 'non_pains_smiles.csv'
result_df = pd.DataFrame({'smiles': passed_pains})
result_df.to_csv(output_file, index=False)

print("Non-pains SMILES have been written to", output_file)


方法二:

在线验证工具:

The PAINS Remover

The PAINS Remover

参考:一份关于免费ADMET计算工具的超强干货,请查收_预测_化合物_毒性

注意这个在线的和代码书写的检查出的数量不一样,所以还是使用方法一吧

参考文件:GitHub - igashov/DiffLinker: DiffLinker: Equivariant 3D-Conditional Diffusion Model for Molecular Linker Design

猜你喜欢

转载自blog.csdn.net/weixin_43135178/article/details/132144622
今日推荐