The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Binding strength prediction

Richel J.C. Bilderbeek

2023-11-08

This demo shows how to predict the binding strength of peptides to different Major Histocompatibility Class II (MHC-II) haplotypes.

First load the library:

library(netmhc2pan)

This demo assumes NetMHCIIpan is installed. Installation cannot be done netmhc2pan, as one needs to request a download link for version 3.2 at https://services.healthtech.dtu.dk/services/NetMHCIIpan-3.2/.

To install netmhc2pan, use install_netmhc2pan with the download link:

install_netmhc2pan("https://www.cbs.dtu.dk/download/33A6B0AC-0F2E-11E9-B4D1-8ABCB9CD16B5/")
install_netmhc2pan("https://richelbilderbeek.nl/tmp_netMHCIIpan-3.2.Linux.tar.gz")

The installation of netmhc2pan is checked, with the goal of producing a helpful error message:

tryCatch(
  check_netmhc2pan_installation(),
  error = function(e) print(e)
)
#> <simpleError in check_netmhc2pan_installation(): NetMHCIIpan binary not found at
#> ~/.local/share/netMHCIIpan-3.2/netMHCIIpan
#> 
#> Tip 1: from R, run 'netmhc2pan::install_netmhc2pan()'
#>   with a (non-expired) download URL
#> Tip 2: request a download URL at the NetMHCIIpan download page at
#> 
#> https://services.healthtech.dtu.dk/services/NetMHCIIpan-3.2/ 
#> (under the Downloads tab, use version 3.2)>

Now, lets use the sequence of an example protein:

sequence <- "FAMILYVWFAMILYV"
message(sequence)
#> FAMILYVWFAMILYV

Now, we need to select an MHC-II haplotype. There are many alleles, so first we count the number of haplotypes:

if (is_netmhc2pan_installed()) {
  mhc_haplotypes <- get_netmhc2pan_alleles()
  length(mhc_haplotypes)
}

Now, we simply pick the first haplotype:

if (is_netmhc2pan_installed()) {
  mhc_haplotype <- mhc_haplotypes[1]
}

Now, we can predict how strong our peptide binds to our allele, by obtaining the Inhibitory Concentration 50% (IC50) value in nanomolars (nM), of which lower values indicate stronger binders:

if (is_netmhc2pan_installed()) {
  knitr::kable(
    predict_ic50(
      peptides = sequence,
      mhc_haplotype = mhc_haplotype
    )
  )
  
}

To investigate if whole a protein is immunogenic, we need to obtain the IC50 values for all its cleaved products. As the MHC-II molecules prefers 13 amino acids residues, we can get the IC50 values for each residue as such:

if (is_netmhc2pan_installed()) {
  knitr::kable(
    predict_ic50s(
      protein_sequence = "AVLWAGVAFLAFLQLTALVLNLL",
      peptide_length = 13,
      mhc_haplotype = mhc_haplotype
    )
  )
  
}

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.