蛋白质Pdb文件的氨基酸接触网络矩阵生成

本文介绍了使用深度学习方法预测药靶相互作用的过程,通过读取PDB文件获取氨基酸CA原子的三维坐标,计算出距离矩阵,将小于10埃视为接触,用于模型训练。
摘要由CSDN通过智能技术生成

最近在学习基于DL的药靶相互作用预测方法,该方法将氨基酸contact map作为机器学习、训练的原始数据之一。首先从PDB中获得每个蛋白质的三维原子坐标,如果Ca原子之间的距离小于10°A,则在两个节点之间添加一条边。认为两个氨基酸有相互接触,大于10埃则没有相互作用,假如蛋白质有n个氨基酸,那么通过距离计算,将会产生n*n维的接触矩阵。

一、读取PDB文件,并获取每个位置氨基酸CA原子的三维坐标

f = open("8dtd.pdb","r")
D = []
i = 0
for a in f.readlines():
    b = a.split()
    if b[0] == "ATOM":
      if b[2] == "CA":
        D.append((float(b[6]),float(b[7]),float(b[8])))
        print(D)

 二、计算每个氨基酸与任意一个氨基酸CA原子距离

dis1 = []
for b in range(len(D)):
  dis2 = []
  for c in range(len(D)):
    dis = ((D[b][0] - D[c][0]) ** 2 + (D[b][1] - D[c][1]) ** 2 + (D[b][2] - D[c][2]) ** 2) ** 0.5
    if dis == 0.:
      dis2.append(0)
    elif (dis <= 8.) & (dis != 0.):
      dis2.append(round(float(dis),3))
    elif dis > 8.:
      dis2.append(0)
  dis1.append(dis2)

上述代码获得了任意一个氨基酸与其他氨基酸的距离矩阵,氨基酸CA原子之间距离大于10埃,视为没有接触,记为0,小于10埃视为有接触,将距离值保存。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值