All Projects → lucidrains → geometric-vector-perceptron

lucidrains / geometric-vector-perceptron

Licence: MIT License
Implementation of Geometric Vector Perceptron, a simple circuit for 3d rotation equivariance for learning over large biomolecules, in Pytorch. Idea proposed and accepted at ICLR 2021

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to geometric-vector-perceptron

Bio3DView.jl
A Julia package to view macromolecular structures in the REPL, in a Jupyter notebook/JupyterLab or in Pluto
Stars: ✭ 30 (-33.33%)
Mutual labels:  protein-structure
mmtf
The specification of the MMTF format for biological structures
Stars: ✭ 40 (-11.11%)
Mutual labels:  protein-structure
protein-transformer
Predicting protein structure through sequence modeling
Stars: ✭ 77 (+71.11%)
Mutual labels:  protein-structure
RamaNet
Preforms De novo protein design using machine learning and PyRosetta to generate a novel protein structure
Stars: ✭ 41 (-8.89%)
Mutual labels:  protein-structure
egnn-pytorch
Implementation of E(n)-Equivariant Graph Neural Networks, in Pytorch
Stars: ✭ 249 (+453.33%)
Mutual labels:  equivariance
deepblast
Neural Networks for Protein Sequence Alignment
Stars: ✭ 29 (-35.56%)
Mutual labels:  protein-structure
mmterm
View proteins and trajectories in the terminal
Stars: ✭ 87 (+93.33%)
Mutual labels:  protein-structure
hotspot3d
3D hotspot mutation proximity analysis tool
Stars: ✭ 43 (-4.44%)
Mutual labels:  protein-structure
DMPfold
De novo protein structure prediction using iteratively predicted structural constraints
Stars: ✭ 52 (+15.56%)
Mutual labels:  protein-structure
MDToolbox.jl
MDToolbox.jl: A Julia package for molecular dynamics trajectories analysis and modeling of biomolecules
Stars: ✭ 15 (-66.67%)
Mutual labels:  biomolecule
SymmetricRL
Repo for "On Learning Symmetric Locomotion"
Stars: ✭ 30 (-33.33%)
Mutual labels:  equivariance
openfold
Trainable, memory-efficient, and GPU-friendly PyTorch reproduction of AlphaFold 2
Stars: ✭ 1,717 (+3715.56%)
Mutual labels:  protein-structure
gcWGAN
Guided Conditional Wasserstein GAN for De Novo Protein Design
Stars: ✭ 38 (-15.56%)
Mutual labels:  protein-structure
tape-neurips2019
Tasks Assessing Protein Embeddings (TAPE), a set of five biologically relevant semi-supervised learning tasks spread across different domains of protein biology. (DEPRECATED)
Stars: ✭ 117 (+160%)
Mutual labels:  protein-structure
SeqVec
Modelling the Language of Life - Deep Learning Protein Sequences
Stars: ✭ 74 (+64.44%)
Mutual labels:  protein-structure
enspara
Modeling molecular ensembles with scalable data structures and parallel computing
Stars: ✭ 28 (-37.78%)
Mutual labels:  protein-structure
ProteinSecondaryStructure-CNN
Protein Secondary Structure predictor using Convolutional Neural Networks
Stars: ✭ 82 (+82.22%)
Mutual labels:  protein-structure
DeepCov
Fully convolutional neural networks for protein residue-residue contact prediction
Stars: ✭ 36 (-20%)
Mutual labels:  protein-structure
FunFolDesData
Rosetta FunFolDes – a general framework for the computational design of functional proteins.
Stars: ✭ 15 (-66.67%)
Mutual labels:  protein-structure
lightdock
Protein-protein, protein-peptide and protein-DNA docking framework based on the GSO algorithm
Stars: ✭ 110 (+144.44%)
Mutual labels:  protein-structure

Geometric Vector Perceptron

Implementation of Geometric Vector Perceptron, a simple circuit with 3d rotation equivariance for learning over large biomolecules, in Pytorch. The repository may also contain experimentation to see if this could be easily extended to self-attention.

Install

$ pip install geometric-vector-perceptron

Functionality

  • GVP: Implementing the basic geometric vector perceptron.
  • GVPDropout: Adapted dropout for GVP in MPNN context
  • GVPLayerNorm: Adapted LayerNorm for GVP in MPNN context
  • GVP_MPNN: Adapted instance of Message Passing class from torch-geometric package. Still not tested.
  • GVP_Network: Functional model architecture ready for working with arbitary point clouds.

Usage

import torch
from geometric_vector_perceptron import GVP

model = GVP(
    dim_vectors_in = 1024,
    dim_feats_in = 512,
    dim_vectors_out = 256,
    dim_feats_out = 512,
    vector_gating = True   # use the vector gating as proposed in https://arxiv.org/abs/2106.03843
)

feats, vectors = (torch.randn(1, 512), torch.randn(1, 1024, 3))

feats_out, vectors_out = model( (feats, vectors) ) # (1, 256), (1, 512, 3)

With the specialized dropout and layernorm as described in the paper

import torch
from torch import nn
from geometric_vector_perceptron import GVP, GVPDropout, GVPLayerNorm

model = GVP(
    dim_vectors_in = 1024,
    dim_feats_in = 512,
    dim_vectors_out = 256,
    dim_feats_out = 512,
    vector_gating = True
)

dropout = GVPDropout(0.2)
norm = GVPLayerNorm(512)

feats, vectors = (torch.randn(1, 512), torch.randn(1, 1024, 3))

feats, vectors = model( (feats, vectors) )
feats, vectors = dropout(feats, vectors)
feats, vectors = norm(feats, vectors)  # (1, 256), (1, 512, 3)

TF implementation:

The original implementation in TF by the paper authors can be found here: https://github.com/drorlab/gvp/

Citations

@inproceedings{anonymous2021learning,
    title   = {Learning from Protein Structure with Geometric Vector Perceptrons},
    author  = {Anonymous},
    booktitle = {Submitted to International Conference on Learning Representations},
    year    = {2021},
    url     = {https://openreview.net/forum?id=1YLJDvSx6J4}
}
@misc{jing2021equivariant,
    title   = {Equivariant Graph Neural Networks for 3D Macromolecular Structure}, 
    author  = {Bowen Jing and Stephan Eismann and Pratham N. Soni and Ron O. Dror},
    year    = {2021},
    eprint  = {2106.03843},
    archivePrefix = {arXiv},
    primaryClass = {cs.LG}
}
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].