comparison Intchecks/Script_intensity_check.R @ 5:a31f3f802b2b draft

Uploaded
author melpetera
date Wed, 22 Jan 2020 09:34:08 -0500
parents bdee2c2c484b
children ec75de7f1e08
comparison
equal deleted inserted replaced
4:49c36c54e0cf 5:a31f3f802b2b
67 67
68 # Table match check with Rchecklibrary 68 # Table match check with Rchecklibrary
69 table.check <- match3(DM, SM, VM) 69 table.check <- match3(DM, SM, VM)
70 check.err(table.check) 70 check.err(table.check)
71 71
72 72 # Transposing the dataMatrix
73 rownames(DM) <- DM[,1] 73 rownames(DM) <- DM[,1]
74 var_names <- DM[,1] 74 var_names <- DM[,1]
75 DM <- DM[,-1] 75 DM <- DM[,-1]
76 DM <- data.frame(t(DM)) 76 DM <- data.frame(t(DM))
77 77
78 # Re-ordering the dataMatrix to match the sampleMetadata file order
79 DM <- merge(x=cbind(1:nrow(SM),SM), y=DM, by.x=2, by.y=0)
80 DM <- DM[order(DM[,2]),]
81 rownames(DM) <- DM[,1]
82 DM <- DM[,-c(1:(ncol(SM)+1))]
83
84
78 stat.list <- strsplit(chosen.stat,",")[[1]] 85 stat.list <- strsplit(chosen.stat,",")[[1]]
79 86
80 87
81 # check class.col, class1 and the number of classes --------------------------------------------------------- 88 # check class.col, class1 and the number of classes ---------------------------------------------------------
82 89
101 c_class <- as.factor(c_class) 108 c_class <- as.factor(c_class)
102 nb_class <- nlevels(c_class) 109 nb_class <- nlevels(c_class)
103 classnames <- levels(c_class) 110 classnames <- levels(c_class)
104 111
105 if((nb_class < 2)&&(test.fold=="Yes")){ 112 if((nb_class < 2)&&(test.fold=="Yes")){
106 err.1class <- c("\n The column",class.col, "contains only one class, fold calculation could not be executed \n") 113 err.1class <- c("\n The column",class.col, "contains only one class, fold calculation could not be executed. \n")
107 cat(err.1class) 114 cat(err.1class)
108 } 115 }
109 116
110 if((nb_class > (nrow(SM))/3)&&(method == "each_class")){ 117 if((nb_class > (nrow(SM))/3)&&(method == "each_class")){
111 class.err <- c("\n There are too many classes, think about reducing the number of classes and excluding those 118 class.err <- c("\n There are too many classes, think about reducing the number of classes and excluding those
112 with few samples \n") 119 with few samples. \n")
113 cat(class.err) 120 cat(class.err)
114 } 121 }
115 122
116 123
117 if(method == "one_class"){ 124 if(method == "one_class"){
137 } 144 }
138 145
139 146
140 # Statistics ------------------------------------------------------------------------------------------------ 147 # Statistics ------------------------------------------------------------------------------------------------
141 148
149 # Check whether the dataMatrix contains non-numeric values
150 if(!(is.numeric(as.matrix(DM)))){
151 # findchar definition
152 findchar <- function(myval){
153 if(is.na(myval)){
154 return("ok")
155 }else{
156 mytest <- as.character(myval)
157 if(is.na(as.numeric(mytest[1]))){
158 return("char")
159 }else{
160 return("ok")
161 }
162 }
163 }
164 # findchar application
165 chardiag <- suppressWarnings(apply(DM,2,vapply,findchar,"character"))
166 charlist <- which(chardiag == "char")
167 err.stock <- paste("\n- - - - - - - - -\nYour dataMatrix contains",
168 length(charlist),
169 "non-numeric value(s). To help you check your data, please find below a short overview:\n")
170 charover <- 1
171 while((length(err.stock)<10)&(length(err.stock)<(length(charlist)+1))){
172 charex <- paste("variable",colnames(DM)[ceiling(charlist[charover]/nrow(DM))],
173 "- sample",rownames(DM)[charlist[charover]-floor(charlist[charover]/nrow(DM))*nrow(DM)],
174 "~> value:",as.matrix(DM)[charlist[charover]],"\n")
175 err.stock <- c(err.stock,charex)
176 charover <- charover + 1
177 }
178 stop(c(err.stock,"The dataMatrix file is supposed to contain only numeric values.\n- - - - - - - - -\n"))
179 }
142 180
143 ### Initialization 181 ### Initialization
144 182
145 DM <- cbind(c_class,DM) 183 DM <- cbind(c_class,DM)
146 184