The application of B-cell epitope identification for the development of therapeutic antibodies is well established but consuming in terms of time and resources. For this reason, in the last few years, the immunoinformatic community has developed several computational predictive tools. While relatively successful, most of these tools only use a few properties of the candidate region to determine their likelihood of being a true B-cell epitope. However, this likelihood is influenced by a wide variety of protein features, including the presence of glycosylated residues in the neighbourhood of the candidate epitope, the subcellular location of the protein region or the three-dimensional information about their surface accessibility in the parental protein.
In this study we created Brewpitopes, an integrative pipeline to curate computational predictions of B-cell epitopes by accounting for all the aforementioned features. To this end, we implemented a set of rational filters to mimic the conditions for the in vivo antibody recognition to enrich the B-cell epitope predictions in actionable candidates. To validate Brewpitopes, we analyzed the SARS-CoV-2 proteome. In the S protein, Brewpitopes enriched the initial predictions in 5-fold on epitopes with neutralizing potential (p-value < 2e-4). Other than S protein, 4 out of 16 proteins in the proteome contain curated B-cell epitopes and hence, have also potential interest for viral neutralization, since mutational escape mainly affects the S protein. Our results demonstrate that Brewpitopes is a powerful pipeline for the rapid prediction of refined B-cell epitopes during public health emergencies.
Available as preprint at: https://doi.org/10.1101/2022.11.28.518301
docker pull bsceapm/brewpitopes:1.0
sudo docker run -it --volume /host/your/path/to/brewpitopes_projects:/home/brewpitopes/Projects brewpitopes
Change /host/your/path/to/brewpitopes_projects for your desired local directory.
Once you add files/folders in this directory, they will appear automatically within the brewpitopes docker image at /home/brewpitopes/Projects.
cd ..
ls
You should see the folder: brewpitopes
3.1 To find an example of a brewpitopes project and the required files go to
cd brewpitopes/example
3.2 To create new project, do so within the Projects folder:
cd ../Projects
mkdir your_project
cd your_project
3.3 You are now ready to predict and refine your B-cell epitope candidates.
** All the steps should be run within the Docker image at your Terminal except when it indicates "(Locally)". **
cd Projects/your_project
Rscript ../../directories.R
cd brewpitopes
(Locally) Download the FASTA file of the target protein at Uniprot.
Save at Z_fasta
(Locally) Use the FASTA to predict linear epitopes using Bepipred 2.0 server and export results as csv (default parameters).
Save at A_linear_predictions/bepipred/bepipred_results.csv
If Bepipred2.0 does not predict any epitope in your target sequence see Note1.
Extract epitopes from Bepipred results using epixtractor_linear_bepipred.py.
python3 ../../../epixtractor_linear_bepipred.py
Add path to bepipred results: A_linear_predictions/bepipred/bepipred_results.csv
Add path to output folder: C_epixtractor
(Locally) Use the FASTA to predict linear epitopes using ABCpred server.
Predict using all the epitope windows (10,12,14,16,18,20), overlapping filter ON and the default threshold at 0.51.
Copy results from the webpage table to a text editor (See Note 2 and 3).
Save as: A_linear_predictions/abcpred/abcpred_allmers.tsv
If ABCpred does not predict any epitope in your target sequence see Note1.
Extract epitopes from ABCpred results using epixtractor_linear_abcpred.R
Rscript ../../../epixtractor_linear_abcpred.R --outdir C_epixtractor --input_allmers A_linear_predictions/abcpred/abcpred_allmers.tsv
(Locally) Download the PDB file of the target protein at PDB DB. Save at ZZ_pdb/pdb
(Locally) Use PDBrenum server to renumerate the PDB residues according to its corresponding FASTA file in Uniprot.
Download results as .pdb (Selecting the .pdb options and deselect .mmCIF options)
Uncompress the .zip file donwloaded.
Uncompress the file your_pdb_id.pdb.gz
Save your_pdb_id.pdb at ZZ_pdb/pdbrenum
In the case you are using an Alphafold model, you will not need to renumber the pdb.
(Locally) Use the renumbered PDB to predict structural epitopes using Discotope 2.0 server (input type 3).
Select default score threshold (-3.7).
Select chain A by default or your target chain of interest.
Export the results as .txt. Remove the last line "Identified...". Then, save as .csv by replacing "\t" for commas.
Save as B_structural_predictions/discotope/discotope_results.csv
If Discotope2.0 does not predict any epitope in your target sequence see Note1.
Extract epitopes from Discotope results using epixtract_structural.py
python3 ../../../epixtract_structural.py
Add path to discotope results: B_structural_predictions/discotope/discotope_results.csv
Add path to output folder: C_epixtractor
Rscript ../../../epimerger.R --abcpred C_epixtractor/abcpred_results_extracted.csv --bepipred C_epixtractor/bepipred_results_extracted.csv --discotope C_epixtractor/discotope_results_extracted.csv --outdir D_epimerger
Take steps 15, 16 and 17.1 if you want to predict protein topology using CCTOP. Otherwise, if the topology of your protein is already described and you want to add it manually go directly to step 17.2.
(Locally) Predict the protein topology using CCTOP server.
Copy the .xml output from the main page into a text file (do not copy the downloadable file).
Save as E_topology/CCTOP/cctop.xml
Extract the topological domains using xml_cctop_parser.R. (See Note 4)
Rscript ../../../xml_cctop_parser.R --xml E_epitopology/CCTOP/cctop.xml --outdir E_epitopology/CCTOP
17.1 Using CCTOP predictions --> use epitopology_cctop.R
Rscript ../../../epitopology_cctop.R --input_CCTOP E_epitopology/CCTOP/cctop_domains.csv --input_epitopes D_epimerger/merged.csv --outdir E_epitopology
17.2 Manual topology annotation --> use epitopology_manual.R. Add manually the starting and ending positions of your extracellular domains at --start_pos and end_pos.
Rscript ../../../epitopology_manual.R --start_pos 1,12,22 --end_pos 8,18,28 --input_epitopes D_epimerger/merged.csv --outdir E_epitopology
(Locally) Predict the glycosylation profile of the protein using the FASTA file.
N-GLYCOSYLATIONS at NetNGlyc 1.0 server.
Copy manually into a text editor the output table headed: SeqName Position Potential Jury_agreement NGlyc_result
Do NOT include the header(error prone), only the data.
SAVE AS TSV as F_epiglycan/netnglyc/nglyc_results.tsv
(If you get an error, please see Note 5)
O-GLYCOSYLATIONS AT NetOGlyc 4.0 server.
Copy manually into a text editor the rows of the output table headed: seqName source feature start end score strand frame comment.
Do NOT include the header(error prone), only the data.
SAVE AS TSV at F_epiglycan/netoglyc/oglyc_results.tsv
(If you get an error, please see Note 5)
Extract the glycosylated positions from both N-glyc and O-glyc outputs using epiglycan_extractor.R
Rscript ../../../epiglycan_extractor.R --oglyc F_epiglycan/netoglyc/oglyc_results.tsv --nglyc F_epiglycan/netnglyc/nglyc_results.tsv --outdir F_epiglycan
python3 ../../../epiglycan.py
Add path to input epitopes: E_epitopology/topology_extracted.csv
Add path to output folder: F_epiglycan
Add path to extracted glycosylated positions: F_epiglycan/glycan_positions.csv
vi ../../../compute_asa.icm
%y+ # copy the entire script, paste into text editor and modify the output path (your/local/path/to/G_episurf/icm).
Open the PDB in Molsoft.
Execute in the command line of the programme ICM Browser the copied code with your modified path.
Your results will be exported at G_episurf/icm/rsa.csv
Rscript ../../../icm_extractor.R --icm G_episurf/icm/rsa.csv --outdir G_episurf
python3 ../../../episurf.py
Add path to input epitopes: F_epiglycan/glycan_extracted.csv
Add path to output folder: G_episurf
Add path to extracted buried positions: G_episurf/buried_positions_list.csv
Rscript ../../../epifilter.R --data G_episurf/access_extracted.csv --outdir I_final_candidates
python3 ../../../epiregions.py
Add path to input epitope dataframe: I_final_candidates/brewpitopes_results_df.csv
Add path to output folder: K_epitope_regions
Rscript ../../../yield_plot.R --data H_epifilter/brewpitopes_unfiltered_df.csv --merged D_epimerger/merged.csv --eregs K_epitope_regions/epitope_regions_extracted.csv --outdir J_plots
Generate a MUTANT FASTA using fasta_mutator.R
(Locally) Download reference FASTA from the target protein (in this case SARS-CoV-2 Spike) from UniprotKB and save at
/host/your/path/to/brewpitopes_projects/your_project/Z_fasta
Save the mutations of the corresponding mutant protein or VOC as .csv at /host/your/path/to/brewpitopes_projects/your_project/brewpitopes/Z_fasta
Ensure the format is equal to the example file 20211203_spike_gamma_vocs.csv.
Rscript fasta_mutator.R --fasta ../Projects/your_project/brewpitopes/Z_fasta/target_protein.fasta --mut ../Projects/your_project/brewpitopes/Z_fasta/target_mutations.csv --mut_header your_header_without_> --sample yourfile.fasta --outdir ../Projects/your_project/brewpitopes/Z_fasta

Content type
Image
Digest
sha256:4dbb3b322…
Size
534.1 MB
Last updated
almost 4 years ago
docker pull bsceapm/brewpitopes:1.0