Merge pull request #4272 from solgenomics/topic/fix-vcf-download
[sgn.git] / R / Nirs / predict_NIRS.R
blob10ddd9c8a9a3f15aad883f5b5075fb54bb65f499
1 # Runs `waves` package with data from the NIRS Breedbase tool to predict phenotypes with trained NIRS models
3 # AUTHOR
4 # Jenna Hershberger (jmh579@cornell.edu)
6 # Load packages
7 library(dplyr)
8 library(magrittr)
9 library(devtools)
10 library(jsonlite)
11 library(waves)
12 library(stringr)
13 library(readr)
15 ### Read in and assign arguments ####
16 args <- commandArgs(trailingOnly = TRUE)
18 # args[1] = new spectral data for prediction
19 dataset.input <- jsonlite::fromJSON(txt = args[1], flatten = T) %>%
20   rename("unique.id" = observationUnitId) %>%
21   rename_at(vars(starts_with("nirs_spectra")), ~str_replace(., "nirs_spectra.", "")) %>%
22   dplyr::select("unique.id", num_range(prefix = "X", range = 1:100000))
23 print(dataset.input[1:10,1:10])
25 predictions <- predict_spectra(input.data = dataset.input,
26                                      model.stats.location = args[2], # args[2] =  model performance statistics filepath
27                                      model.location = args[3], # args[3] = model filepath
28                                      model.method = args[4]) # args[4] = model method as a string
30 print(predictions)
31 write.csv(predictions, file = args[5], row.names = FALSE)