All Projects → DeepRank → Deeprank-GNN

DeepRank / Deeprank-GNN

Licence: Apache-2.0 license
Graph Network for protein-protein interface

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Deeprank-GNN

lightdock
Protein-protein, protein-peptide and protein-DNA docking framework based on the GSO algorithm
Stars: ✭ 110 (+66.67%)
Mutual labels:  protein
VSCoding-Sequence
VSCode Extension for interactively visualising protein structure data in the editor
Stars: ✭ 41 (-37.88%)
Mutual labels:  protein
icn3d
web-based protein structure viewer and analysis tool interactively or in batch mode
Stars: ✭ 95 (+43.94%)
Mutual labels:  protein
FluentDNA
FluentDNA allows you to browse sequence data of any size using a zooming visualization similar to Google Maps. You can use FluentDNA as a standalone program or as a python module for your own bioinformatics projects.
Stars: ✭ 52 (-21.21%)
Mutual labels:  protein
naf
Nucleotide Archival Format - Compressed file format for DNA/RNA/protein sequences
Stars: ✭ 35 (-46.97%)
Mutual labels:  protein
cbh21-protein-solubility-challenge
Template with code & dataset for the "Structural basis for solubility in protein expression systems" challenge at the Copenhagen Bioinformatics Hackathon 2021.
Stars: ✭ 15 (-77.27%)
Mutual labels:  protein
deepblast
Neural Networks for Protein Sequence Alignment
Stars: ✭ 29 (-56.06%)
Mutual labels:  protein
dnapacman
waka waka
Stars: ✭ 15 (-77.27%)
Mutual labels:  protein
ProteinGCN
ProteinGCN: Protein model quality assessment using Graph Convolutional Networks
Stars: ✭ 88 (+33.33%)
Mutual labels:  protein
FMol
A simplified drug discovery pipeline -- generating SMILE molecular with AlphaSMILES, predicting protein structure with AlphaFold, and checking the druggability with fpocket/Amber.
Stars: ✭ 13 (-80.3%)
Mutual labels:  protein
BuddySuite
Bioinformatics toolkits for manipulating sequence, alignment, and phylogenetic tree files
Stars: ✭ 106 (+60.61%)
Mutual labels:  protein
cath-tools
Protein structure comparison tools such as SSAP and SNAP
Stars: ✭ 40 (-39.39%)
Mutual labels:  protein
caviar
Protein cavity identification and automatic subpocket decomposition
Stars: ✭ 27 (-59.09%)
Mutual labels:  protein
biovec
ProtVec can be used in protein interaction predictions, structure prediction, and protein data visualization.
Stars: ✭ 23 (-65.15%)
Mutual labels:  protein
r3dmol
🧬 An R package for visualizing molecular data in 3D
Stars: ✭ 45 (-31.82%)
Mutual labels:  protein
gcWGAN
Guided Conditional Wasserstein GAN for De Novo Protein Design
Stars: ✭ 38 (-42.42%)
Mutual labels:  protein
orfipy
Fast and flexible ORF finder
Stars: ✭ 27 (-59.09%)
Mutual labels:  protein
PBxplore
A suite of tools to explore protein structures with Protein Blocks 🐍
Stars: ✭ 21 (-68.18%)
Mutual labels:  protein
Biopython
Official git repository for Biopython (originally converted from CVS)
Stars: ✭ 2,936 (+4348.48%)
Mutual labels:  protein
EVcouplings
Evolutionary couplings from protein and RNA sequence alignments
Stars: ✭ 113 (+71.21%)
Mutual labels:  protein

DeepRank-GNN

Build Status Codacy Badge Coverage Status DOI

alt-text

Installation

Before installing DeepRank-GNN you need to install pytorch_geometric according to your needs. You can find detailled instructions here :

By default the CPU version of pytorch will be installed but you can also customize that installation following the instructions at:

Once the dependencies installed, you can install the latest release of DeepRank-GNN using the PyPi package manager:

pip install DeepRank-GNN

Alternatively you can get all the new developments by cloning the repo and installing the code with

git clone https://github.com/DeepRank/Deeprank-GNN 
cd DeepRank-GNN
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 GraphGenMP 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 GNN

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].