diff MassdbConn.R @ 6:f86fec07f392 draft default tip

planemo upload commit c397cd8a93953798d733fd62653f7098caac30ce
author prog
date Fri, 22 Feb 2019 16:04:22 -0500
parents fb9c0409d85c
children
line wrap: on
line diff
--- a/MassdbConn.R	Wed Apr 19 10:00:05 2017 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,130 +0,0 @@
-#####################
-# CLASS DECLARATION #
-#####################
-
-MassdbConn <- methods::setRefClass("MassdbConn", contains = "BiodbConn")
-
-###############################
-# GET CHROMATOGRAPHIC COLUMNS #
-###############################
-
-# Get a list of chromatographic columns contained in this database.
-# compound.ids  A list of compound IDs used to filter results.
-# The returned value is a data.frame with two columns : one for the ID (BIODB.ID) and another one for the title (BIODB.TITLE).
-MassdbConn$methods( getChromCol = function(compound.ids = NULL) {
-	stop("Method getChromCol() is not implemented in concrete class.")
-})
-
-#################
-# GET MZ VALUES #
-#################
-
-# Returns a numeric vector of all masses stored inside the database.
-MassdbConn$methods( getMzValues = function(mode = NULL, max.results = NA_integer_) {
-	stop("Method getMzValues() not implemented in concrete class.")
-})
-
-################
-# GET NB PEAKS #
-################
-
-# Returns the number of peaks contained in the database
-MassdbConn$methods( getNbPeaks = function(mode = NULL, compound.ids = NULL) {
-	stop("Method getNbPeaks() not implemented in concrete class.")
-})
-
-#########################
-# FIND COMPOUND BY NAME #
-#########################
-
-# Find a molecule by name
-# name   A vector of molecule names to search for.
-# Return an integer vector of the same size as the name input vector, containing the found molecule IDs, in the same order.
-MassdbConn$methods( findCompoundByName = function(name) {
-	stop("Method findCompoundByName() not implemented in concrete class.")
-})
-
-####################################
-# FIND SPECTRA IN GIVEN MASS RANGE #
-####################################
-# Find spectra in the given mass range.
-# rtype the type of return, objects, dfspecs data.frame of spectra, dfpeaks data.frame of peaks.
-MassdbConn$methods( searchMzRange = function(mzmin, mzmax, rtype = c("objects","dfspecs","dfpeaks")){
-	stop("Method searchMzRange() not implemented in concrete class.")
-})
-
-####################################
-# FIND SPECTRA IN GIVEN MASS RANGE #
-####################################
-MassdbConn$methods( searchMzTol = function(mz, tol, tolunit=BIODB.MZTOLUNIT.PLAIN, rtype = c("objects","dfspecs","dfpeaks")){
-	stop("Method searchMzTol() not implemented in concrete class.")
-})
-
-######################################################
-# FIND A MOLECULES WITH PRECURSOR WITHIN A TOLERANCE #
-######################################################
- MassdbConn$methods( searchSpecPrecTol = function(mz, tol, tolunit=BIODB.MZTOLUNIT.PLAIN, mode = NULL){
-	stop("Method searchSpecPrecTol not implemented in concrete class.")
- })
-
-#################################
-#perform a database MS-MS search#
-#################################
-
-### spec : the spec to match against the database.
-### precursor : the mass/charge of the precursor to be looked for.
-### mtol : the size of the windows arounf the precursor to be looked for.
-### ppm : the matching ppm tolerance.
-### fun :  
-### dmz : the mass tolerance is taken as the minium between this quantity and the ppm.
-### npmin : the minimum number of peak to detect a match (2 recommended)
-
-MassdbConn$methods( msmsSearch = function(spec, precursor, mztol, tolunit,
-											 ppm, fun = BIODB.MSMS.DIST.WCOSINE,
-											 params = list(), npmin=2, dmz = 0.001,
-											 mode = BIODB.MSMODE.POS, return.ids.only = TRUE){
-
-	
-	# TODO replace by msms precursor search when available.
-	lspec <- .self$searchSpecPrecTol( precursor, mztol, BIODB.MZTOLUNIT.PLAIN, mode = mode)
-	rspec <- lapply(lspec,function(x){
-        peaks <- x$getFieldValue(BIODB.PEAKS)
-		
-		####Getting the correct fields
-		vcomp <- c(BIODB.PEAK.MZ, BIODB.PEAK.RELATIVE.INTENSITY, BIODB.PEAK.INTENSITY)
-		
-		foundfields <- vcomp %in% colnames(peaks)
-		if(sum(foundfields ) < 2){
-			stop(paste0("fields can't be coerced to mz and intensity : ",colnames(peaks)))
-		}
-		
-		peaks <- peaks[ , vcomp[which( foundfields ) ] ]
-		
-		peaks
-	})
-	
-	# TODO Import compareSpectra into biodb and put it inside massdb-helper.R or hide it as a private method.
-	res <- compareSpectra(spec, rspec, npmin = npmin, fun = fun, params = params)
-	
-	if(is.null(res)) return(NULL) # To decide at MassdbConn level: return empty list (or empty data frame) or NULL.
-	###Adiing the matched peaks and the smimlarity values to spectra.
-	
-	lret <-vector(length(lspec),mode = "list")
-	vsimilarity <- numeric( length( lspec ) )
-	vmatched <- vector( mode = "list", length( lspec ) )
-	
-	if( return.ids.only ){
-	    lret <- sapply( lspec, function( x ) {
-	    	x$getFieldValue( BIODB.ACCESSION )
-	    })
-	}else{
-	    ###TODO implement three types of return.
-	    lret <- lspec
-	}
-	
-	###Reordering the list.
-	lret <- lret[ res$ord ]
-	
-
-	return( list(measure = res$similarity[ res$ord ], matchedpeaks = res$matched [ res$ord ], id = lret))
-})