Set of functions to predict the structure of immune receptor proteins
Project description
ImmuneBuilder: Deep-Learning models for predicting the structures of immune proteins
Abstract
Immune receptor proteins play a key role in the immune system and have shown great promise as biotherapeutics. The structure of these proteins is critical for understanding what antigen they bind. Here, we present ImmuneBuilder, a set of deep learning models trained to accurately predict the structure of antibodies (ABodyBuilder2), nanobodies (NanoBodyBuilder2) and T-Cell receptors (TCRBuilder2). We show that ImmuneBuilder generates structures with state of the art accuracy while being much faster than AlphaFold2. For example, on a benchmark of 34 recently solved antibodies, ABodyBuilder2 predicts CDR-H3 loops with an RMSD of 2.81Å, a 0.09Å improvement over AlphaFold-Multimer, while being over a hundred times faster. Similar results are also achieved for nanobodies (NanoBodyBuilder2 predicts CDR-H3 loops with an average RMSD of 2.89Å, a 0.55Å improvement over AlphaFold2) and TCRs. By predicting an ensemble of structures, ImmuneBuilder also gives an error estimate for every residue in its final prediction.
Colab
To test the method out without installing it you can try this Google Colab
Install
You can install ImmuneBuilder via PyPI by doing:
$ pip install ImmuneBuilder
This package requires PyTorch. If you do not already have PyTorch installed, you can do so following these instructions.
It also requires OpenMM and pdbfixer for the refinement step. OpenMM and pdbfixer can be installed via conda using:
$ conda install -c conda-forge openmm pdbfixer
It also uses anarci for trimming and numbering sequences. We recommend installing ANARCI from here, but it can also be installed using (maintained by a third party):
$ conda install -c bioconda anarci
Usage
Antibody structure prediction
To predict an antibody structure using the python API you can do the following.
from ImmuneBuilder import ABodyBuilder2
predictor = ABodyBuilder2()
output_file = "my_antibody.pdb"
sequences = {
'H': 'EVQLVESGGGVVQPGGSLRLSCAASGFTFNSYGMHWVRQAPGKGLEWVAFIRYDGGNKYYADSVKGRFTISRDNSKNTLYLQMKSLRAEDTAVYYCANLKDSRYSGSYYDYWGQGTLVTVS',
'L': 'VIWMTQSPSSLSASVGDRVTITCQASQDIRFYLNWYQQKPGKAPKLLISDASNMETGVPSRFSGSGSGTDFTFTISSLQPEDIATYYCQQYDNLPFTFGPGTKVDFK'}
antibody = predictor.predict(sequences)
antibody.save(output_file)
ABodyBuilder2 can also be used via de command line. To do this you can use:
ABodyBuilder2 --fasta_file my_antibody.fasta -v
You can get information about different options by using:
ABodyBuilder2 --help
I would recommend using the python API if you intend to predict many structures as you only have to load the models once.
Happy antibodies!!
Nanobody structure prediction
The python API for nanobodies is quite similar than for antibodies.
from ImmuneBuilder import NanoBodyBuilder2
predictor = NanoBodyBuilder2()
output_file = "my_nanobody.pdb"
sequence = {'H': 'QVQLVESGGGLVQPGESLRLSCAASGSIFGIYAVHWFRMAPGKEREFTAGFGSHGSTNYAASVKGRFTMSRDNAKNTTYLQMNSLKPADTAVYYCHALIKNELGFLDYWGPGTQVTVSS'}
nanobody = predictor.predict(sequence)
nanobody.save(output_file)
And it can also be used from the command line:
NanoBodyBuilder2 --fasta_file my_nanobody.fasta -v
TCR structure prediction
It is all pretty much the same for TCRs
from ImmuneBuilder import TCRBuilder2
predictor = TCRBuilder2()
output_file = "my_tcr.pdb"
sequences = {
"A": "AQSVTQLGSHVSVSEGALVLLRCNYSSSVPPYLFWYVQYPNQGLQLLLKYTSAATLVKGINGFEAEFKKSETSFHLTKPSAHMSDAAEYFCAVSEQDDKIIFGKGTRLHILP",
"B": "ADVTQTPRNRITKTGKRIMLECSQTKGHDRMYWYRQDPGLGLRLIYYSFDVKDINKGEISDGYSVSRQAQAKFSLSLESAIPNQTALYFCATSDESYGYTFGSGTRLTVV"}
tcr = predictor.predict(sequences)
tcr.save(output_file)
And it can also be used from the command line:
TCRBuilder2 --fasta_file my_tcr.fasta -v
Fasta formatting
If you wish to run the model on a sequence from a fasta file it must be formatted as follows:
>H
YOURHEAVYCHAINSEQUENCE
>L
YOURLIGHCHAINSEQUENCE
If you are running it on TCRs the chain labels should be A for the alpha chain and B for the beta chain. On nanobodies the fasta file should only contain a heavy chain labelled H.
Issues and Pull requests
Please submit issues and pull requests on this repo.
Known issues
- Installing OpenMM from conda will automatically download the latest version of cudatoolkit which may not be compatible with your device. For more information on this please checkout the following issue.
Citing this work
The code and data in this package is based on the following paper ImmuneBuilder. If you use it, please cite:
@article {Abanades2022.11.04.514231,
title = {ImmuneBuilder: Deep-Learning models for predicting the structures of immune proteins.},
author = {Abanades, Brennan and Wong, Wing Ki and Boyles, Fergus and Georges, Guy and Bujotzek, Alexander and Deane, Charlotte Mary},
journal = {bioRxiv},
year = {2022},
doi = {10.1101/2022.11.04.514231},
publisher = {Cold Spring Harbor Laboratory}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for ImmuneBuilder-0.0.9-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1bd874137276772b32cc1f71fadae8c9e9f0aec9db39fd4e2c40311af41a4fa6 |
|
MD5 | c7043174d20f54f06e51b5310e07a82d |
|
BLAKE2b-256 | a71afbb2cda814f30c92d36e9d522cf6aeecf929fc20b8990874c4afcd9c0581 |