@@ -81,8 +81,11 @@ DialogSelectThresholds <- function( win, notebook ){
8181 object.thresholds <- object.thresholds [,1 : ncon ]
8282
8383 min.values <- matrix (round(as.table(sapply( object.thresholds , min , na.rm = TRUE )),3 ), ncol = 1 )
84+ names(min.values ) <- names(object.thresholds )
85+
8486 max.values <- matrix (round(as.table(sapply( object.thresholds , max , na.rm = TRUE )),3 ), ncol = 1 )
85-
87+ names(max.values ) <- names(object.thresholds )
88+
8689 names.thresholds <- paste(names(object.thresholds )," :(" ," Min = " , min.values ," ; " ," Max = " ,
8790 max.values , " )" , sep = " " )
8891
@@ -137,125 +140,222 @@ DialogSelectThresholds <- function( win, notebook ){
137140
138141 # Exit button here!
139142 # Local saveTraitThresholds() function and variables visible by closure?
140- tpl [14 ,1 : 10 ] <- gbutton(
141- " Save Thresholds" ,
142- container = tpl ,
143- handler = function (h ,... ) {
144- var1 <- svalue(var1 ); var2 <- svalue(var2 ); var3 <- svalue(var3 ); var4 <- svalue(var4 ); var5 <- svalue(var5 )
145- var6 <- svalue(var6 ); var7 <- svalue(var7 ); var8 <- svalue(var8 ); var9 <- svalue(var9 ); var10 <- svalue(var10 )
146-
147- min.var1 <- as.numeric(svalue(min.var1 )); min.var2 <- as.numeric(svalue(min.var2 ))
148- min.var3 <- as.numeric(svalue(min.var3 )); min.var4 <- as.numeric(svalue(min.var4 ))
149- min.var5 <- as.numeric(svalue(min.var5 )); min.var6 <- as.numeric(svalue(min.var6 ))
150- min.var7 <- as.numeric(svalue(min.var7 )); min.var8 <- as.numeric(svalue(min.var8 ))
151- min.var9 <- as.numeric(svalue(min.var9 )); min.var10 <- as.numeric(svalue(min.var10 ))
152-
153- max.var1 <- as.numeric(svalue(max.var1 )); max.var2 <- as.numeric(svalue(max.var2 ))
154- max.var3 <- as.numeric(svalue(max.var3 )); max.var4 <- as.numeric(svalue(max.var4 ))
155- max.var5 <- as.numeric(svalue(max.var5 )); max.var6 <- as.numeric(svalue(max.var6 ))
156- max.var7 <- as.numeric(svalue(max.var7 )); max.var8 <- as.numeric(svalue(max.var8 ))
157- max.var9 <- as.numeric(svalue(max.var9 )); max.var10 <- as.numeric(svalue(max.var10 ))
158-
159- vars <- c(var1 , var2 , var3 , var4 , var5 , var6 , var7 , var8 , var9 , var10 )
160- if (all(vars == " NA" )) {
161- svalue(notebook ) <- 3
162- return (list ())
163- }
164-
165- if (var1 != " NA" ){var1 <- unlist(strsplit(var1 , " :" ))[1 ]};if (var2 != " NA" ){var2 <- unlist(strsplit(var2 , " :" ))[1 ]}
166- if (var3 != " NA" ){var3 <- unlist(strsplit(var3 , " :" ))[1 ]};if (var4 != " NA" ){var4 <- unlist(strsplit(var4 , " :" ))[1 ]}
167- if (var5 != " NA" ){var5 <- unlist(strsplit(var5 , " :" ))[1 ]};if (var6 != " NA" ){var6 <- unlist(strsplit(var6 , " :" ))[1 ]}
168- if (var7 != " NA" ){var7 <- unlist(strsplit(var7 , " :" ))[1 ]};if (var8 != " NA" ){var8 <- unlist(strsplit(var8 , " :" ))[1 ]}
169- if (var9 != " NA" ){var9 <- unlist(strsplit(var9 , " :" ))[1 ]};if (var10 != " NA" ){var10 <- unlist(strsplit(var10 , " :" ))[1 ]}
170-
171- var.thresholds <- c(var1 , var2 , var3 , var4 , var5 ,
172- var6 , var7 , var8 , var9 , var10 )
173-
174- var.thresholds <- var.thresholds [var.thresholds != " NA" ]
175- var.thresholds <- unique(var.thresholds )
176-
177- min.val <- c(min.var1 ,min.var2 ,min.var3 ,min.var4 ,min.var5 ,
178- min.var6 ,min.var7 ,min.var8 ,min.var9 ,min.var10 )
179-
180- min.val <- min.val [! is.na(min.val )]
181-
182- max.val <- c(max.var1 ,max.var2 ,max.var3 ,max.var4 ,max.var5 ,
183- max.var6 ,max.var7 ,max.var8 ,max.var9 ,max.var10 )
184-
185- max.val <- max.val [! is.na(max.val )]
186-
187- matrix.thresholds <- matrix (NA , nrow = length(var.thresholds ), ncol = 3 )
188- matrix.thresholds <- cbind(var.thresholds , min.val , max.val )
189- matrix.thresholds <- as.data.frame(matrix.thresholds , class = c(" character" ," numeric" ," numeric" ))
190- colnames(matrix.thresholds ) <- c(" Variable" , " Min" , " Max" )
191- matrix.thresholds <- na.omit(matrix.thresholds )
192-
193- val.min <- character (dim(matrix.thresholds )[1 ])
194- val.max <- character (dim(matrix.thresholds )[1 ])
195-
196- for (i in 1 : dim(matrix.thresholds )[1 ]){
197-
198- if (as.numeric(as.matrix(matrix.thresholds )[i ,2 ]) < min(theDataSet [colnames(theDataSet ) == as.character(matrix.thresholds [i ,1 ])])){
199- val.min [i ] <- as.character(matrix.thresholds [i ,1 ])
200- }
201- if (as.numeric(as.matrix(matrix.thresholds )[i ,3 ]) > max(theDataSet [colnames(theDataSet ) == as.character(matrix.thresholds [i ,1 ])])){
202- val.max [i ] <- as.character(matrix.thresholds [i ,1 ])
203- }
204- }
205-
206- val.min <- val.min [val.min != " " ]
207- val.max <- val.max [val.max != " " ]
208-
209- if (length(val.min ) == 0 & length(val.max ) == 0 ){
210-
211- # # Extract subset of data base from thresholds
212- data.var.thresholds <- as.data.frame(theDataSet [,is.element(colnames(theDataSet ), matrix.thresholds $ Variable )])
213- rownames(data.var.thresholds ) <- object.complete $ accession
214- accession_subset <- matrix (NA , nrow = dim(theDataSet )[1 ], ncol = length(var.thresholds ))
215- colnames(accession_subset ) <- as.character(matrix.thresholds [,1 ])
216-
217- w <- 1
218-
219- while (w < = dim(matrix.thresholds )[1 ]){
220- sub <- subset(data.var.thresholds ,data.var.thresholds [,w ] > = as.numeric(as.character(matrix.thresholds [w ,2 ])) & data.var.thresholds [,w ] < = as.numeric(as.character(matrix.thresholds [w ,3 ])))
221- data.var.thresholds <- subset(data.var.thresholds ,data.var.thresholds [,w ] > = as.numeric(as.character(matrix.thresholds [w ,2 ])) & data.var.thresholds [,w ] < = as.numeric(as.character(matrix.thresholds [w ,3 ])))
222- accession_subset [1 : length(rownames(sub )),w ] <- rownames(sub )
223- w <- w + 1
224- }
225-
226- accession_subset <- as.numeric(na.omit(accession_subset [,dim(matrix.thresholds )[1 ]]))
227- data.var.thresholds.final <- object.complete [is.element(object.complete $ accession , accession_subset ),]
228- thresholdFilteredDataSubset <- data.var.thresholds.final
229- data.var.thresholds.final <- data.var.thresholds.final [,- 1 ]
230- data.var.thresholds.final <- data.var.thresholds.final [,1 : 7 ]
231- d.thresholds = sapply(data.var.thresholds.final , des.continuous )
232- row.names(d.thresholds ) <- c(" n" ," Min" ," Max" ," Average" ," Variance" ," Est.Desv" ," Median" ," CV %" ," NA" ," NA %" )
233- d.thresholds = as.table(d.thresholds )
234- names(dimnames(d.thresholds )) <- c(" " , paste(" Variable thresholds" , svalue( datasetSelector(analysis ) )))
235-
236- saveProjectFile( d.thresholds , " ResultsDescriptiveAnalysisThresholds" )
237- saveProjectFile( thresholdFilteredDataSubset , " ThresholdFilteredDataSubset" , row.names = FALSE )
238-
239- print(d.thresholds )
240-
241- output <- list (" Threshold.Values" = matrix.thresholds , " Descript.Thresholds" = d.thresholds )
242-
243- cat(" \n " )
244- cat(" \n " )
245- cat(paste(" Process completed................." ))
246- cat(" \n " )
247-
248- # Send the user back to the original notebook panel...
249- svalue(notebook ) <- 3
250-
251- return (output )
252- }
253-
254- var1 ; var2 ; var3 ; var4 ; var5 ; var6 ; var7 ; var8 ; var9 ; var10
255- min.var1 ; min.var2 ; min.var3 ; min.var4 ; min.var5 ; min.var6 ; min.var7 ; min.var8 ; min.var9 ; min.var10
256- max.var1 ; max.var2 ; max.var3 ; max.var4 ; max.var5 ; max.var6 ; max.var7 ; max.var8 ; max.var9 ; max.var10
143+
144+ saveThresholds <- function (h ,... ) {
145+
146+ var1 <- svalue(var1 ); var2 <- svalue(var2 ); var3 <- svalue(var3 ); var4 <- svalue(var4 ); var5 <- svalue(var5 )
147+ var6 <- svalue(var6 ); var7 <- svalue(var7 ); var8 <- svalue(var8 ); var9 <- svalue(var9 ); var10 <- svalue(var10 )
148+
149+ min.var1 <- as.numeric(svalue(min.var1 )); min.var2 <- as.numeric(svalue(min.var2 ))
150+ min.var3 <- as.numeric(svalue(min.var3 )); min.var4 <- as.numeric(svalue(min.var4 ))
151+ min.var5 <- as.numeric(svalue(min.var5 )); min.var6 <- as.numeric(svalue(min.var6 ))
152+ min.var7 <- as.numeric(svalue(min.var7 )); min.var8 <- as.numeric(svalue(min.var8 ))
153+ min.var9 <- as.numeric(svalue(min.var9 )); min.var10 <- as.numeric(svalue(min.var10 ))
154+
155+ max.var1 <- as.numeric(svalue(max.var1 )); max.var2 <- as.numeric(svalue(max.var2 ))
156+ max.var3 <- as.numeric(svalue(max.var3 )); max.var4 <- as.numeric(svalue(max.var4 ))
157+ max.var5 <- as.numeric(svalue(max.var5 )); max.var6 <- as.numeric(svalue(max.var6 ))
158+ max.var7 <- as.numeric(svalue(max.var7 )); max.var8 <- as.numeric(svalue(max.var8 ))
159+ max.var9 <- as.numeric(svalue(max.var9 )); max.var10 <- as.numeric(svalue(max.var10 ))
257160
161+ vars <- c(var1 , var2 , var3 , var4 , var5 , var6 , var7 , var8 , var9 , var10 )
162+ if (all(vars == " NA" )) {
163+ svalue(notebook ) <- 3
164+ return (list ())
165+ }
166+
167+ if (var1 != " NA" ){
168+ var1 <- unlist(strsplit(var1 , " :" ))[1 ]
169+ if (is.na(min.var1 )) {
170+ min.var1 <- min.values [var1 ]
171+ }
172+ if (is.na(max.var1 )) {
173+ max.var1 <- max.values [var1 ]
174+ }
175+ }
176+ if (var2 != " NA" ){
177+ var2 <- unlist(strsplit(var2 , " :" ))[1 ]
178+ if (is.na(min.var2 )) {
179+ min.var2 <- min.values [var2 ]
180+ }
181+ if (is.na(max.var2 )) {
182+ max.var2 <- max.values [var2 ]
183+ }
184+ }
185+ if (var3 != " NA" ){
186+ var3 <- unlist(strsplit(var3 , " :" ))[1 ]
187+ if (is.na(min.var3 )) {
188+ min.var3 <- min.values [var3 ]
189+ }
190+ if (is.na(max.var3 )) {
191+ max.var3 <- max.values [var3 ]
192+ }
193+
194+ }
195+ if (var4 != " NA" ){
196+ var4 <- unlist(strsplit(var4 , " :" ))[1 ]
197+ if (is.na(min.var4 )) {
198+ min.var4 <- min.values [var4 ]
199+ }
200+ if (is.na(max.var4 )) {
201+ max.var4 <- max.values [var4 ]
202+ }
203+
204+ }
205+ if (var5 != " NA" ){
206+ var5 <- unlist(strsplit(var5 , " :" ))[1 ]
207+ if (is.na(min.var5 )) {
208+ min.var5 <- min.values [var5 ]
209+ }
210+ if (is.na(max.var5 )) {
211+ max.var5 <- max.values [var5 ]
212+ }
213+
258214 }
215+ if (var6 != " NA" ){
216+ var6 <- unlist(strsplit(var6 , " :" ))[1 ]
217+ if (is.na(min.var6 )) {
218+ min.var6 <- min.values [var6 ]
219+ }
220+ if (is.na(max.var6 )) {
221+ max.var6 <- max.values [var6 ]
222+ }
223+
224+ }
225+ if (var7 != " NA" ){
226+ var7 <- unlist(strsplit(var7 , " :" ))[1 ]
227+ if (is.na(min.var7 )) {
228+ min.var7 <- min.values [var7 ]
229+ }
230+ if (is.na(max.var7 )) {
231+ max.var7 <- max.values [var7 ]
232+ }
233+
234+ }
235+ if (var8 != " NA" ){
236+ var8 <- unlist(strsplit(var8 , " :" ))[1 ]
237+ if (is.na(min.var8 )) {
238+ min.var8 <- min.values [var8 ]
239+ }
240+ if (is.na(max.var8 )) {
241+ max.var8 <- max.values [var8 ]
242+ }
243+
244+ }
245+ if (var9 != " NA" ){
246+ var9 <- unlist(strsplit(var9 , " :" ))[1 ]
247+ if (is.na(min.var9 )) {
248+ min.var9 <- min.values [var9 ]
249+ }
250+ if (is.na(max.var9 )) {
251+ max.var9 <- max.values [var9 ]
252+ }
253+
254+ }
255+ if (var10 != " NA" ){
256+ var10 <- unlist(strsplit(var10 , " :" ))[1 ]
257+ if (is.na(min.var10 )) {
258+ min.var10 <- min.values [var10 ]
259+ }
260+ if (is.na(max.var10 )) {
261+ max.var10 <- max.values [var10 ]
262+ }
263+
264+ }
265+
266+ var.thresholds <- c(var1 , var2 , var3 , var4 , var5 ,
267+ var6 , var7 , var8 , var9 , var10 )
268+
269+ var.thresholds <- var.thresholds [var.thresholds != " NA" ]
270+ var.thresholds <- unique(var.thresholds )
271+
272+ min.val <- c(min.var1 ,min.var2 ,min.var3 ,min.var4 ,min.var5 ,
273+ min.var6 ,min.var7 ,min.var8 ,min.var9 ,min.var10 )
274+
275+ min.val <- min.val [! is.na(min.val )]
276+
277+ max.val <- c(max.var1 ,max.var2 ,max.var3 ,max.var4 ,max.var5 ,
278+ max.var6 ,max.var7 ,max.var8 ,max.var9 ,max.var10 )
279+
280+ max.val <- max.val [! is.na(max.val )]
281+
282+ matrix.thresholds <- matrix (NA , nrow = length(var.thresholds ), ncol = 3 )
283+ matrix.thresholds <- cbind(var.thresholds , min.val , max.val )
284+ matrix.thresholds <- as.data.frame(matrix.thresholds , class = c(" character" ," numeric" ," numeric" ))
285+ colnames(matrix.thresholds ) <- c(" Variable" , " Min" , " Max" )
286+ matrix.thresholds <- na.omit(matrix.thresholds )
287+
288+ val.min <- character (dim(matrix.thresholds )[1 ])
289+ val.max <- character (dim(matrix.thresholds )[1 ])
290+
291+ for (i in 1 : dim(matrix.thresholds )[1 ]){
292+
293+ if (as.numeric(as.matrix(matrix.thresholds )[i ,2 ]) < min(theDataSet [colnames(theDataSet ) == as.character(matrix.thresholds [i ,1 ])])){
294+ val.min [i ] <- as.character(matrix.thresholds [i ,1 ])
295+ }
296+ if (as.numeric(as.matrix(matrix.thresholds )[i ,3 ]) > max(theDataSet [colnames(theDataSet ) == as.character(matrix.thresholds [i ,1 ])])){
297+ val.max [i ] <- as.character(matrix.thresholds [i ,1 ])
298+ }
299+ }
300+
301+ val.min <- val.min [val.min != " " ]
302+ val.max <- val.max [val.max != " " ]
303+
304+ if (length(val.min ) == 0 & length(val.max ) == 0 ){
305+
306+ # # Extract subset of data base from thresholds
307+ data.var.thresholds <- as.data.frame(theDataSet [,is.element(colnames(theDataSet ), matrix.thresholds $ Variable )])
308+ rownames(data.var.thresholds ) <- object.complete $ accession
309+ accession_subset <- matrix (NA , nrow = dim(theDataSet )[1 ], ncol = length(var.thresholds ))
310+ colnames(accession_subset ) <- as.character(matrix.thresholds [,1 ])
311+
312+ w <- 1
313+
314+ while (w < = dim(matrix.thresholds )[1 ]){
315+ sub <- subset(data.var.thresholds ,data.var.thresholds [,w ] > = as.numeric(as.character(matrix.thresholds [w ,2 ])) & data.var.thresholds [,w ] < = as.numeric(as.character(matrix.thresholds [w ,3 ])))
316+ data.var.thresholds <- subset(data.var.thresholds ,data.var.thresholds [,w ] > = as.numeric(as.character(matrix.thresholds [w ,2 ])) & data.var.thresholds [,w ] < = as.numeric(as.character(matrix.thresholds [w ,3 ])))
317+ accession_subset [1 : length(rownames(sub )),w ] <- rownames(sub )
318+ w <- w + 1
319+ }
320+
321+ accession_subset <- as.numeric(na.omit(accession_subset [,dim(matrix.thresholds )[1 ]]))
322+ data.var.thresholds.final <- object.complete [is.element(object.complete $ accession , accession_subset ),]
323+ thresholdFilteredDataSubset <- data.var.thresholds.final
324+ data.var.thresholds.final <- data.var.thresholds.final [,- 1 ]
325+ data.var.thresholds.final <- data.var.thresholds.final [,1 : 7 ]
326+ d.thresholds = sapply(data.var.thresholds.final , des.continuous )
327+ row.names(d.thresholds ) <- c(" n" ," Min" ," Max" ," Average" ," Variance" ," Est.Desv" ," Median" ," CV %" ," NA" ," NA %" )
328+ d.thresholds = as.table(d.thresholds )
329+ names(dimnames(d.thresholds )) <- c(" " , paste(" Variable thresholds" , svalue( datasetSelector(analysis ) )))
330+
331+ saveProjectFile( d.thresholds , " ResultsDescriptiveAnalysisThresholds" )
332+ saveProjectFile( thresholdFilteredDataSubset , " ThresholdFilteredDataSubset" , row.names = FALSE )
333+
334+ print(d.thresholds )
335+
336+ output <- list (" Threshold.Values" = matrix.thresholds , " Descript.Thresholds" = d.thresholds )
337+
338+ cat(" \n " )
339+ cat(" \n " )
340+ cat(paste(" Process completed................." ))
341+ cat(" \n " )
342+
343+ # Send the user back to the original notebook panel...
344+ svalue(notebook ) <- 3
345+
346+ return (output )
347+ }
348+
349+ var1 ; var2 ; var3 ; var4 ; var5 ; var6 ; var7 ; var8 ; var9 ; var10
350+ min.var1 ; min.var2 ; min.var3 ; min.var4 ; min.var5 ; min.var6 ; min.var7 ; min.var8 ; min.var9 ; min.var10
351+ max.var1 ; max.var2 ; max.var3 ; max.var4 ; max.var5 ; max.var6 ; max.var7 ; max.var8 ; max.var9 ; max.var10
352+
353+ }
354+
355+ tpl [14 ,1 : 10 ] <- gbutton(
356+ " Save Thresholds" ,
357+ container = tpl ,
358+ handler = saveThresholds
259359 )
260360
261361 visible(win ) <- TRUE
0 commit comments