DeepRank-GNN
Installation
You'll probably need to manually install pytorch geometric
- pytorch_geometric : https://github.com/rusty1s/pytorch_geometric
When all the dependencies are installed just clone the repo and install it with:
pip install -e ./
The documentation can be found here : https://deeprank-gnn.readthedocs.io/
Generate Graphs
All the graphs/line graphs of all the pdb/pssm stored in data/pdb/ and data/pssm/ with the GenGraph.py script. This will generate the hdf5 file graph_residue.hdf5 which contains the graph of the different conformations.
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')
Graph Interaction Network
Using the graph interaction network is rather simple :
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()
Custom CNN
It is also possible to define new network architecture and to specify the loss and optimizer to be used during the training.
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 support
After installing h5xplorer (https://github.com/DeepRank/h5xplorer), you can execute the python file deeprank_gnn/h5x/h5x.py to explorer the connection graph used by DeepRank-GNN. The context menu (right click on the name of the structure) allows to automatically plot the graphs using plotly as shown below.
Metadata
Release files for DeepRank-GNN 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| DeepRank-GNN-0.1.3.tar.gz | 42.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| DeepRank_GNN-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 91.9 kB
Release files / DeepRank-GNN-0.1.3.tar.gz
| Download URL | DeepRank-GNN-0.1.3.tar.gz |
|---|---|
| Size | 42.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c8d97086b54b3f336caa45e43d2a8770425934d7dd7b7e490612a1f35986c752
|
|
BLAKE2b-256 checksum How to use checksums |
ed0bf200d8cba7c624792ba94c7651558d388992f5c47b6e461868419dc9291b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.0
|
Release files / DeepRank_GNN-0.1.3-py3-none-any.whl
| Download URL | DeepRank_GNN-0.1.3-py3-none-any.whl |
|---|---|
| Size | 49.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
bff01cddf195e8ab3be858f4dab648a5976e368d18eee0076d337a8fe45835ca
|
|
BLAKE2b-256 checksum How to use checksums |
c90a2a45f952e8fd95a36dfd42ae022486d7af0e48799edc91154a91b1504c93
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.0
|