From 52e84de920705e7f640f456f08caa2d6191c8637 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Todor=20Kondi=C4=87?= <todor.kondic@uni.lu>
Date: Thu, 7 May 2020 12:27:02 +0200
Subject: [PATCH] Finish updating verification functions

* R/api.R(verify_compounds, vrfy_conf): Updated.

* R/api.R(verify_data_df,verify_data): New functions. The first is
  used if the input is only a data frame.
---
 R/api.R | 61 ++++++++++++++++++++++++++++++++++++++++-----------------
 1 file changed, 43 insertions(+), 18 deletions(-)

diff --git a/R/api.R b/R/api.R
index ad9b009..3053280 100644
--- a/R/api.R
+++ b/R/api.R
@@ -143,32 +143,57 @@ verify_compounds <- function(conf) {
     df_sets <- file2tab(fn_cmpd_sets)
     all_sets<-unique(df_sets$set)
 
-    fn_data <- conf$data
-    assert(isThingFile(fn_data),msg=paste("Data table does not exist:",fn_data))
-    mzml <- file2tab(fn_data)
-    
-    no_files <- which(mzml[,!file.exists(Files)])
-    no_modes <- which(mzml[,!(mode %in% names(MODEMAP))])
-    no_sets <- which(mzml[,!(set %in% all_sets)])
-    assert(length(no_files)==0,msg = paste("Non-existent data files at rows:",paste(no_files,collapse = ','), "of",fn_data))
-    assert(length(no_modes)==0,msg = paste("Unrecognised modes at rows:",paste(no_modes,collapse = ','), "of", fn_data))
-    assert(length(no_sets)==0,msg = paste("Unknown sets at rows:",paste(no_sets,collapse = ','),"of", fn_data))
-
-    df_k <- file2tab(fn_cmpd_known)
-    
-    are_knowns_OK <- shiny::isTruthy(vald_comp_tab(df_k,fn_cmpd_known, checkSMILES=T, checkNames=T))
-    assert(are_knowns_OK,msg='Aborted because known compounds table contained errors.')
+    ## ** Knowns
+    if (isThingFile(fn_cmpd_unk)) {
+        df_k <- file2tab(fn_cmpd_known)
+        are_knowns_OK <- shiny::isTruthy(vald_comp_tab(df_k,fn_cmpd_known, checkSMILES=T, checkNames=T))
+        assert(are_knowns_OK,msg='Aborted because known compounds table contained errors.')
+    }
 
     ## ** Unknowns
-    if (!is.null(fn_cmpd_unk)) {
+    if (isThingFile(fn_cmpd_unk)) {
         df_u <- file2tab(fn_cmpd_unk)
         are_unknowns_OK <- shiny::isTruthy(vald_comp_tab(df_u,fn_cmpd_unk, checkSMILES=F, checkMz=T))
         assert(are_unknowns_OK, msg='Aborted because unknown compounds table contained errors.')
     }
     
-    
-    
+    return(list(conf=conf,all_sets=all_sets))
+}
+
+verify_data_df <- function(mzml,all_sets) {
+    no_files <- which(mzml[,!file.exists(Files)])
+    no_modes <- which(mzml[,!(mode %in% names(MODEMAP))])
+    no_sets <- which(mzml[,!(set %in% all_sets)])
+    assert(length(no_files)==0,msg = paste("Non-existent data files at rows:",paste(no_files,collapse = ',')))
+    assert(length(no_modes)==0,msg = paste("Unrecognised modes at rows:",paste(no_modes,collapse = ',')))
+    assert(length(no_sets)==0,msg = paste("Unknown sets at rows:",paste(no_sets,collapse = ',')))
+}
+
+verify_data <- function(conf,all_sets) {
+    ## * Existence of input files
+    fn_data <- conf$data
+    assert(isThingFile(fn_data),msg=paste("Data table does not exist:",fn_data))
+    mzml <- file2tab(fn_data)
+    verify_data_df(mzml=mzml,all_sets)
     return(conf)
 }
 
 
+
+##' @export
+vrfy_conf <- function(conf) {
+    ## * Existence of input files
+
+    z <- verify_compounds(conf)
+    conf <- z$conf
+    all_sets <- z$all_sets
+ 
+    verify_data(conf=conf,all_sets=all_sets)
+    return(conf)
+}
+
+
+
+
+
+
-- 
GitLab