R/download_dataset.R

Defines functions download_dataset

Documented in download_dataset

#' Download LINCS dataset packages, given dataset id's, from Lincs Data Portal.
#'
#' @param lds_id Vector of dataset ids (LDS-xxxx)
#' @param path Path to local folder where the dataset package will be downloaded, default = current directory
#' @return NULL
#' @export
#' @examples
#' \dontrun{
#' download_dataset("LDS-1266")
#' download_dataset("LDS-1173", path = "/datasets")
#' }
#'

download_dataset<- function(lds_id, path = "./")
{

  for (i in 1:length(lds_id))
  {
    url <- httr::modify_url("http://lincsportal.ccs.miami.edu", path = paste("/dcic/api/fetchdata?searchTerm=datasetlevels:",lds_id[i],"&fields=path",sep = ""))
    resp <- httr::GET(url)
    if(httr::status_code(resp)>400 & httr::status_code(resp)<500) {
      stop("API returned an error", call. = FALSE)
    }
    parsedResp = jsonlite::fromJSON(httr::content(resp, "text"))
    if(parsedResp$results$totalDocuments==0)
    {
      stop(paste("Package '", lds_id[i], "' not found", sep=""), call. = FALSE)
    }  else {

      parsed = strsplit(parsedResp$results$documents$path,split = "bd2klincs/")[[1]][2]

      filepath = paste("/dcic/api/download?path=",parsed,"&file=",lds_id[i],".tar.gz",sep = "")
      url = httr::modify_url("http://lincsportal.ccs.miami.edu", path = filepath)

      utils::download.file(url,paste(path,lds_id[i],".tar.gz",sep = ""),mode = "wb")
    }
  }

}
schurerlab/LINCSDataPortal documentation built on Sept. 16, 2019, 7:33 a.m.