Protein therapeutics already have an arsenal of applications that include disrupting protein interactions, acting as potent vaccines, and replacing genetically deficient proteins. Therapeutics must avoid triggering unwanted immune-responses towards the therapeutic protein or viral vector proteins.
Therefore, computational methods modifying proteins' immunogenicity are needed.
This is the repository for CAPE-MPNN, one of the methods we have developed to tackle this problem (others see CAPE).
For this method, we apply DPO on ProteinMPNN (https://github.com/dauparas/ProteinMPNN) to tune it to reduce the number of MHC Class I epitopes in its generations. The new ProteinMPNN weights generated this way, we call CAPE-MPNN.
The programs in this repository require a Linux machine with docker and GPU support installed. Also, for evaluation, a structure prediction tool (e.g. localcolabfold needs to be available) as well as a local version (headless, including Rosetta) of DE-STRESS.
If not indicated otherwise, commands should be run on the host system. In particular, lines starting with 'H' need to be executed on the host, lines starting with 'C' in the container.
- Set REPO local variable:
export REPO=CAPE_MPNN
- Clone repository to local machine:
git clone https://github.com/hcgasser/${REPO}.git
- Make environmental variable pointing to the repo folder:
export CAPE=<path of repo folder>
- Change into the repo folder:
cd $CAPE
- Create docker image:
make -B image
(need to set a container password e.g. 'cape_pwd')
- Start docker image:
docker run --privileged --name cape_mpnn_container --gpus all -it -p 9000:9000 -v ${CAPE}:/${REPO} cape_mpnn
- the container can be exited with
exit
- it can be restarted with
docker start -i cape_mpnn_container
- the container can be exited with
- For licencing reasons we leave the installation of 3rd party software within the container to the user. Please refer to
vim ${CAPE}/external/README.md
for how to do this - Install 'cape' conda environment:
. ./setup/setup_conda.sh
At first we run a script to setup the environment
cd $PF
. ./tools/set_ENV.sh
Then we set the MHC-I alleles to deimmunize against
export MHC_Is="HLA-A*02:01+HLA-A*24:02+HLA-B*07:02+HLA-B*39:01+HLA-C*07:01+HLA-C*16:01"
MHC-I_rank_peptides.py --output ${PF}/data/input/immuno/mhc_1/Mhc1PredictorPwm --alleles ${MHC_Is} --tasks rank+pwm+agg --peptides_per_length 1000000
The file ${PF}/configs/CAPE-MPNN/hyp/hyp_b69bb1.yaml
specifies the hyperparameter ranges from which to sample.
In particular the parameters batch_size and max_protein_length (both in residues) are important as too large values will lead to GPU memory overflows.
export HOSTNAME='workstation'
cape-mpnn.py --hyp ${PF}/configs/CAPE-MPNN/hyp/hyp_b69bb1.yaml --hyp_n 20
- start tmux terminal for the jupyter lab
tmux new-session -t jupyter
- set password for jupyter lab
jupyter lab password
- start the jupyter lab for the evaluation notebook
jupyter lab --port 9000
- start a browser on the host accessing
http://129.215.125.110:9000/
- start the notebook
CAPE-Eval/cape-eval_mpnn.ipynb
in the browser - designs
- can be found in
${CAPE}/artefacts/CAPE-MPNN/outputs/fasta/all/
- in format for structure prediction are in
${CAPE}/artefacts/CAPE/colabfold/input/
and the colabfold outputs are expected in${CAPE}/artefacts/CAPE/colabfold/output/
- can be found in