https://github.com/murrellgroup/colabmpnn.jl
Julia wrapper for the MPNN submodule in the ColabDesign Python package: https://github.com/sokrypton/ColabDesign
https://github.com/murrellgroup/colabmpnn.jl
Last synced: 5 months ago
JSON representation
Julia wrapper for the MPNN submodule in the ColabDesign Python package: https://github.com/sokrypton/ColabDesign
- Host: GitHub
- URL: https://github.com/murrellgroup/colabmpnn.jl
- Owner: MurrellGroup
- License: mit
- Created: 2024-03-04T11:09:46.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-11-24T02:34:00.000Z (over 1 year ago)
- Last Synced: 2024-11-24T03:23:49.528Z (over 1 year ago)
- Language: Julia
- Homepage:
- Size: 56.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ColabMPNN
[](https://github.com/MurrellGroup/ColabMPNN.jl/actions/workflows/CI.yml?query=branch%3Amain)
ColabMPNN is a Julia wrapper for the MPNN submodule of the ColabDesign Python package, which can be found at https://github.com/sokrypton/ColabDesign/tree/main.
For more details about usage and function arguments, see the [original Python documentation](https://github.com/sokrypton/ColabDesign/blob/main/mpnn/README.md)
## Installation
Add ColabMPNN to your Julia environment in the REPL:
```
]add https://github.com/MurrellGroup/ColabMPNN.jl
```
## Usage
Create a model using the `mk_mpnn_model` function.
```julia
mpnn_model = mk_mpnn_model() #or mk_mpnn_model(weights="soluble")
```
In order to sample, chains from a PDB file must first be prepared.
```julia
prep_inputs(mpnn_model, pdb_filename="example.pdb", chain="A")
```
Sample sequences using the `sample` function, or in parallel with `sample_parallel`, with the model as the first argument. These functions return a `Samples` instance.
```julia
samples = sample_parallel(mpnn_model, batch=10, temperature=0.1)
```
Sampling returns a `Samples` instance with the following fields:
- `seq::Vector{String}`
- `seqid::Vector{Float64}`
- `score::Vector{Float64}`
- `logits::Array{Float32, 3}`
- `decoding_order::Array{Int32, 3}`
- `S::Array{Float32, 3}`
## Acknowledgements
This is a thin Julia wrapper of a [JAX port](https://github.com/sokrypton/ColabDesign/tree/main/mpnn) (by [Sergey Ovchinnikov](https://github.com/sokrypton) and others) of [ProteinMPNN](https://github.com/dauparas/ProteinMPNN) (by [Justas Dauparas](https://github.com/dauparas) and others).