comparison batch_correction_all_loess_script.R @ 1:f64656ae9ea4 draft

planemo upload for repository https://github.com/workflow4metabolomics/batchcorrection.git commit b1f8bd1260c1c4b73600fb3867ca3bc613f258a7
author melpetera
date Sun, 09 Oct 2016 09:54:00 -0400
parents 71d83d8920bf
children
comparison
equal deleted inserted replaced
0:71d83d8920bf 1:f64656ae9ea4
1 loessF <- function(datVn, qcaVi, preVi, spnN, vrbL=FALSE) { 1 loessF <- function(datVn, qcaVi, preVi, spnN) {
2 2
3 if(length(qcaVi) < 5) { 3 if(length(qcaVi) < 5) {
4
5 if(vrbL)
6 cat("\nWarning: less than 5 '", refC, "'; linear regression will be performed instead of loess regression for this batch\n", sep="")
7 4
8 return(predict(lm(datVn[qcaVi] ~ qcaVi), 5 return(predict(lm(datVn[qcaVi] ~ qcaVi),
9 newdata = data.frame(qcaVi = preVi))) 6 newdata = data.frame(qcaVi = preVi)))
10 7
11 } else { 8 } else {
106 radVn <- seq(0, 2 * pi, length.out = 100) 103 radVn <- seq(0, 2 * pi, length.out = 100)
107 epsN <- .Machine[["double.eps"]] ## [1] 2.22e-16 104 epsN <- .Machine[["double.eps"]] ## [1] 2.22e-16
108 105
109 pcaMN <- datMN 106 pcaMN <- datMN
110 107
111 pcaLs <- opls(pcaMN, predI = 4, printL = FALSE, plotL = FALSE) 108 if(any(is.na(pcaMN))) {
109 minN <- min(pcaMN, na.rm = TRUE)
110 pcaMN[is.na(pcaMN)] <- minN
111 }
112
113 pcaLs <- opls(pcaMN, predI = 4, algoC = "svd", printL = FALSE, plotL = FALSE)
112 tMN <- getScoreMN(pcaLs) 114 tMN <- getScoreMN(pcaLs)
113 vRelVn <- pcaLs@modelDF[, "R2X"] 115 vRelVn <- pcaLs@modelDF[, "R2X"]
114 116
115 n <- nrow(tMN) 117 n <- nrow(tMN)
116 hotN <- 2 * (n - 1) * (n^2 - 1) / (n^2 * (n - 2)) 118 hotN <- 2 * (n - 1) * (n^2 - 1) / (n^2 * (n - 2))
261 263
262 batAllVi <- 1:nrow(batRawMN) 264 batAllVi <- 1:nrow(batRawMN)
263 265
264 batRefVi <- grep(refC.arg, batSamDF[, "sampleType"]) 266 batRefVi <- grep(refC.arg, batSamDF[, "sampleType"])
265 267
268 if(length(batRefVi) < 5)
269 cat("\nWarning: less than 5 '", refC.arg, "'; linear regression will be performed instead of loess regression for this batch\n", sep="")
270
266 ## prediction of the loess fit 271 ## prediction of the loess fit
267 272
268 batLoeMN <- apply(batRawMN, 273 batLoeMN <- apply(batRawMN,
269 2, 274 2,
270 function(rawVn) loessF(rawVn, batRefVi, batAllVi, spnN=spnN.arg, vrbL=TRUE)) 275 function(rawVn) loessF(rawVn, batRefVi, batAllVi, spnN=spnN.arg))
271 276
272 ## normalization 277 ## normalization
273 278
274 batLoeMN[batLoeMN <= 0] <- NA 279 batLoeMN[batLoeMN <= 0] <- NA
275 280