Skip to main content

DeepRank-GNN

Build Status Codacy Badge Coverage Status

alt-text

Installation

You'll probably need to manually install 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.

alt-text

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)

Source distribution for DeepRank-GNN 0.1.3
File Size Uploaded
DeepRank-GNN-0.1.3.tar.gz 42.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for DeepRank-GNN 0.1.3
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

0.1.22

1 release file

This release

0.1.3 This release

2 release files

0.1.2

1 release file

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page