R/install_netmhc2pan_bin.R

Defines functions install_netmhc2pan_bin

Documented in install_netmhc2pan_bin

#' Install the NetMHCIIpan binary to a local folder
#'
#' Install the NetMHCIIpan binary to a local folder.
#' @inheritParams default_params_doc
#' @return Nothing
#' @examples
#' \donttest{
#'   install_netmhc2pan_bin()
#' }
#' @author Richèl J.C. Bilderbeek
#' @export
install_netmhc2pan_bin <- function(
  netmhc2pan_bin_url = netmhc2pan::get_netmhc2pan_bin_url(),
  verbose = FALSE,
  netmhc2pan_archive_filename = netmhc2pan::get_netmhc2pan_archive_filename(),
  netmhc2pan_folder_name = netmhc2pan::get_default_netmhc2pan_folder(),
  temp_local_file = tempfile(pattern = "netmhc2pan_install_netmhc2pan_bin_")
) {
  bin_path <- file.path(
    netmhc2pan_folder_name,
    basename(netmhc2pan::get_default_netmhc2pan_subfolder()),
    basename(netmhc2pan::get_default_netmhc2pan_bin_path())
  )
  if (file.exists(bin_path)) {
    stop("NetMHCIIpan binary is already installed at '", bin_path, "'")
  }

  netmhc2pan_tarfile_path <- file.path(
    netmhc2pan_folder_name,
    netmhc2pan_archive_filename
  )
  dir.create(
    path = netmhc2pan_folder_name,
    showWarnings = FALSE,
    recursive = TRUE
  )
  netmhc2pan::check_can_create_file(
    filename = netmhc2pan_tarfile_path,
    overwrite = FALSE
  )
  netmhc2pan::download_netmhc2pan_bin(
    netmhc2pan_bin_url = netmhc2pan_bin_url,
    netmhc2pan_bin_tarfile_path = netmhc2pan_tarfile_path,
    verbose = verbose,
    netmhc2pan_archive_filename = netmhc2pan_archive_filename,
    temp_local_file = temp_local_file
  )
  netmhc2pan::install_netmhc2pan_bin_from_file(
    netmhc2pan_bin_tarfile_path = netmhc2pan_tarfile_path,
    verbose = verbose,
    netmhc2pan_archive_filename = netmhc2pan_archive_filename,
    netmhc2pan_folder_name = netmhc2pan_folder_name
  )
  testthat::expect_true(file.exists(bin_path))
}
richelbilderbeek/netmhc2paninstall documentation built on March 25, 2024, 3:17 p.m.