comparison MsFileDb.R @ 5:fb9c0409d85c draft

planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit 608d9e59a0d2dcf85a037968ddb2c61137fb9bce
author prog
date Wed, 19 Apr 2017 10:00:05 -0400
parents 20d69a062da3
children
comparison
equal deleted inserted replaced
4:b34c14151f25 5:fb9c0409d85c
80 MsFileDb$methods( .init.db = function() { 80 MsFileDb$methods( .init.db = function() {
81 81
82 if (is.null(.self$.db)) { 82 if (is.null(.self$.db)) {
83 83
84 # Load database 84 # Load database
85 .db <<- read.table(.self$.file, sep = "\t", quote = "\"", header = TRUE, stringsAsFactors = FALSE, row.names = NULL) 85 .db <<- read.table(.self$.file, sep = "\t", quote = "\"", header = TRUE, stringsAsFactors = FALSE, row.names = NULL, check.names = FALSE, comment.char = '')
86 86
87 # Check that colnames are unique 87 # Check that colnames are unique
88 dupcol <- duplicated(colnames(.self$.db)) 88 dupcol <- duplicated(colnames(.self$.db))
89 if (any(dupcol)) 89 if (any(dupcol))
90 stop(paste("Database header contains duplicated names: ", paste(unique(colnames(.self$.db)[dupcol]), collapse = ', '), ".")) 90 stop(paste("Database header contains duplicated names: ", paste(unique(colnames(.self$.db)[dupcol]), collapse = ', '), "."))
393 # Filter on columns 393 # Filter on columns
394 if ( ! is.null(col) && ! is.na(col)) 394 if ( ! is.null(col) && ! is.na(col))
395 db <- db[db[[MSDB.TAG.COL]] %in% col,] 395 db <- db[db[[MSDB.TAG.COL]] %in% col,]
396 396
397 # Filter on retention time 397 # Filter on retention time
398 if ( ! is.null(rt.low) && ! is.na(rt.low) && ! is.null(rt.high) && ! is.na(rt.high)) 398 if ( ! is.null(rt.low) && ! is.na(rt.low) && ! is.null(rt.high) && ! is.na(rt.high)) {
399 db <- db[db[[MSDB.TAG.COLRT]] >= rt.low & db[[MSDB.TAG.COLRT]] <= rt.high, ] 399 scale <- if (.self$getRtUnit() == MSDB.RTUNIT.MIN) 60 else 1
400 db <- db[db[[MSDB.TAG.COLRT]] * scale >= rt.low & db[[MSDB.TAG.COLRT]] * scale <= rt.high, ]
401 }
400 402
401 # Remove retention times and column information 403 # Remove retention times and column information
402 if (is.null(col) || is.na(col) || is.null(rt.low) || is.na(rt.low) || is.null(rt.high) || is.na(rt.high)) { 404 if (is.null(col) || is.na(col) || is.null(rt.low) || is.na(rt.low) || is.null(rt.high) || is.na(rt.high)) {
403 db <- db[, ! (colnames(db) %in% c(MSDB.TAG.COL, MSDB.TAG.COLRT))] 405 db <- db[, ! (colnames(db) %in% c(MSDB.TAG.COL, MSDB.TAG.COLRT))]
404 406
406 db <- db[ ! duplicated(db), ] 408 db <- db[ ! duplicated(db), ]
407 } 409 }
408 410
409 # Filter on mz 411 # Filter on mz
410 db <- db[db[[MSDB.TAG.MZTHEO]] >= mz.low & db[[MSDB.TAG.MZTHEO]] <= mz.high, ] 412 db <- db[db[[MSDB.TAG.MZTHEO]] >= mz.low & db[[MSDB.TAG.MZTHEO]] <= mz.high, ]
411
412 # Rename database fields
413 # conv <- c( mz = 'mztheo', rt = 'colrt') # solving mismatch of field names between database and output
414 # cols <- colnames(db)
415 # for (db.field in names(.self$.fields)) {
416 # output.field <- if (db.field %in% names(conv)) conv[[db.field]] else db.field
417 # if (.self$.fields[[db.field]] %in% cols && output.field %in% names(.self$.output.fields))
418 # cols[cols %in% .self$.fields[[db.field]]] <- .self$.output.fields[[output.field]]
419 # }
420 # colnames(db) <- cols
421
422 # Remove unwanted columns
423 # db <- db[, colnames(db) %in% .self$.output.fields]
424 413
425 return(db) 414 return(db)
426 }) 415 })
427 416
428 ################# 417 #################
485 for (col in cols) { 474 for (col in cols) {
486 colrts <- db[db[[MSDB.TAG.COL]] %in% col, MSDB.TAG.COLRT] 475 colrts <- db[db[[MSDB.TAG.COL]] %in% col, MSDB.TAG.COLRT]
487 rt[col] <- list(colrts) 476 rt[col] <- list(colrts)
488 } 477 }
489 478
479 if (.self$getRtUnit() == MSDB.RTUNIT.MIN)
480 rt <- 60 * rt
481
490 return(rt) 482 return(rt)
491 }) 483 })
492 484
493 } # end of load safe guard 485 } # end of load safe guard