蛋白质-蛋白质构象的图神经网络评分
项目描述
DeepRank
安装
你可能需要手动安装pytorch geometric
- pytorch_geometric : https://github.com/rusty1s/pytorch_geometric
当所有依赖项安装完毕后,克隆仓库并使用以下命令安装:
pip install -e ./
文档可在此处找到: https://deeprank-gnn.readthedocs.io/
生成图
使用GenGraph.py
脚本,将存储在data/pdb/
和data/pssm/
中的所有pdb/pssm的图/线图生成。这将生成包含不同构象图的hdf5文件graph_residue.hdf5
。
from GraphGen import GraphHDF5
pdb_path = './data/pdb'
pssm_path = './data/pssm'
ref = './data/ref'
GraphHDF5(pdb_path=pdb_path,ref_path=ref,pssm_path=pssm_path,
graph_type='residue',outfile='graph_residue.hdf5')
图交互网络
使用图交互网络相当简单
from deeprank_gnn.NeuralNet import NeuralNet
from deeprank_gnn.ginet import GINet
database = './hdf5/1ACB_residue.hdf5'
NN = NeuralNet(database, GINet,
node_feature=['type', 'polarity', 'bsa',
'depth', 'hse', 'ic', 'pssm'],
edge_feature=['dist'],
target='irmsd',
index=range(400),
batch_size=64,
percent=[0.8, 0.2])
NN.train(nepoch=250, validate=False)
NN.plot_scatter()
自定义CNN
也可以定义新的网络架构并指定在训练期间使用的损失和优化器。
def normalized_cut_2d(edge_index, pos):
row, col = edge_index
edge_attr = torch.norm(pos[row] - pos[col], p=2, dim=1)
return normalized_cut(edge_index, edge_attr, num_nodes=pos.size(0))
class CustomNet(torch.nn.Module):
def __init__(self):
super(Net, self).__init__()
self.conv1 = SplineConv(d.num_features, 32, dim=2, kernel_size=5)
self.conv2 = SplineConv(32, 64, dim=2, kernel_size=5)
self.fc1 = torch.nn.Linear(64, 128)
self.fc2 = torch.nn.Linear(128, 1)
def forward(self, data):
data.x = F.elu(self.conv1(data.x, data.edge_index, data.edge_attr))
weight = normalized_cut_2d(data.edge_index, data.pos)
cluster = graclus(data.edge_index, weight)
data = max_pool(cluster, data)
data.x = F.elu(self.conv2(data.x, data.edge_index, data.edge_attr))
weight = normalized_cut_2d(data.edge_index, data.pos)
cluster = graclus(data.edge_index, weight)
x, batch = max_pool_x(cluster, data.x, data.batch)
x = scatter_mean(x, batch, dim=0)
x = F.elu(self.fc1(x))
x = F.dropout(x, training=self.training)
return F.log_softmax(self.fc2(x), dim=1)
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
model = NeuralNet(database, CustomNet,
node_feature=['type', 'polarity', 'bsa',
'depth', 'hse', 'ic', 'pssm'],
edge_feature=['dist'],
target='irmsd',
index=range(400),
batch_size=64,
percent=[0.8, 0.2])
model.optimizer = torch.optim.Adam(model.parameters(), lr=0.01)
model.loss = MSELoss()
model.train(nepoch=50)
h5x支持
安装h5xplorer
(https://github.com/DeepRank/h5xplorer)后,可以执行python文件deeprank_gnn/h5x/h5x.py
来探索DeepRank-GNN使用的连接图。上下文菜单(在结构名称上右键单击)允许使用下面的plotly
自动绘制图表。
项目详情
关闭
DeepRank-GNN-0.1.22.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3bd2b0291ddf182dd2a64a102c2dbf41d471002bc4bf38d874603875fdecdcce |
|
MD5 | 25548e6c39bb85eea98b3657be5d54f5 |
|
BLAKE2b-256 | b6d86302ec8c548c522d158e64056f3e5d8dd4785ae8fdfc9e1f9bdcb8fbcba2 |