周报_2022_2.7-2022_2.12_杨延青

一、共价分类模型和共价回归模型构建
总体思路:现在的研究思路是以共价信息数据库为基础构建两个序列类型的共价模型,首先构建二分类的共价模型用于判别用户上传的分子是否能够形成共价。若是能形成共价,然后构建回归模型用于预测共价化合物的活性。具体如下:
1. 首先构建基于共价序列的共价分类模型。
(1)对共价数据库进行分析,将该数据库根据靶标类型进行分类,看每一个靶标下面对应多少个共价的化合物。统计共价序列数据库的靶标对应的配体的数量。
  • import sys 
  • from collections import defaultdict
  •  
  • def process(file):
  •  with open(file) as f:
  •  f1 = f.readlines()
  •  mutidict = defaultdict(list)
  •  for i in f1:
  •  i = i.strip().split(",")
  •  mutidict[i[0]].append(i[1])
  •  rt = open("result.csv", "w")
  •  for key in mutidict:
  •  rt.write(key + "," + str(len(mutidict[key])) + "\n")
  •  
  • def main():
  •  file = sys.argv[1]
  •  process(file)
  •  
  • if __name__ == '__main__':
  •  main()
统计结果如下图所示:
目前收集的所有共价信息的靶标数目一共有281中靶标。其中最多的一种靶标对应的配体数目多达788个配体。
                       
(2)以BindingDB为基础,找到该数据库中对应靶标的非共价的活性化合物,并将这些非共价活性化合物加入到数据库中作为共价判断模型的阴性数据。需要经过以下处理,首先从BingingDB中找到所有对应靶标的化合物,并将化合物进行去重,然后去掉其中的所有共价化合物,并将剩余的非共价化合物进行聚类,选出与共价化合物相同数量的配体加入到数据库中作为共价分类模型的阴性数据。
2. 其次构建基于共价序列的共价回归模型。
(1)获取已发表的以CovalentInDB数据库为主的共价序列信息。
从CovalentInDB数据库中下载所有的共价数据。(10327条数据)
(2)根据活性进行分类
活性类型主要有:
活性率
抑制率
CC50
EC50
EC90
ED50
GI50
IC50
Kd
Ki
因为有IC50值的条目数量是最多的。首先将IC50有活性值的挑出来并且将单位都换算为微摩尔。一共有5682条数据。
(3)因为有的同一靶标和同一分子的活性数据测了多次,所以进行去重。对于同一靶标、同一分子的多次活性实验取平均值。处理之后一共还有4465条数据。
  • import sys
  • from collections import defaultdict
  •  
  • def process(file):
  •     with open(file) as f:
  •         f1 = f.readlines()
  •     d = defaultdict(list)
  •     for i in f1:
  •         i = i.strip().split(",")
  •         d[(i[0],i[1])].append((i[2],i[3],i[4],i[5]))
  •  
  •     rt = open("result", "w")
  •     for key in d:
  •         act = 0
  •         for a in d[key]:
  •             if a[2] == "nM": 
  •                 act += float(a[1])/1000
  •             elif a[2] == "uM":
  •                 act += float(a[1])
  •         act = str(round(act/len(d[key]),3))
  •         rt.write(",".join([key[0],key[1],d[key][0][0],act,"uM",d[key][0][3]]) + "\n")
  •         rt.flush()
  •  
  • def main():
  •     file = sys.argv[1]
  •     process(file)
  •  
  • if __name__ == '__main__':
  •     main()
(4)对获得的4465条数据的配体SMILES进行标准化处理。
(5)从uniprot网站上获取靶标的fasta序列。
(6)将上述SMILES和fasta生成MPNN-CNN-R的输入序列格式。
(7)使用MPNN-CNN-R建立十折交叉验证回归模型进行训练模型。
结果如下:
fold_1
  
fold_2
  
fold_3
  
fold_4
  
fold_5
  
fold_6
  
fold_7
  
fold_8
  
fold_9
  
fold_10
  
 
二、PDBbind双靶课题总结
见附件PPT
三、毕业论文写作