diff PeakforestConn.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/PeakforestConn.R	Wed Apr 19 10:00:05 2017 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,176 +0,0 @@
-#####################
-# CLASS DECLARATION #
-#####################
-#'A class to connect to peakforest
-#'@export
-#'@field .url An urel to the database
-PeakforestConn <- methods::setRefClass("PeakforestConn", contains = c("RemotedbConn","MassdbConn"), fields = list( .url = "character" )) # TODO Inherits also from MassdbConn
-
-##########################
-# GET ENTRY CONTENT TYPE #
-##########################
-
-PeakforestConn$methods( getEntryContentType = function(type) {
-	return(BIODB.JSON) 
-})
-
-#####################
-# GET ENTRY CONTENT #
-#####################
-
-PeakforestConn$methods( getEntryContent = function(id) {
-	
-	
-	# Initialize return values
-	content <- rep(NA_character_, length(id))
-	# Request
-	
-	url <- get.entry.url(BIODB.PEAKFOREST, id[i], BIODB.JSON,token = .self$.token)
-	jsonstr <- .self$.get.url(url)
-	if(startsWith("<html>", jsonstr) ){
-		next
-	}
-	
-	return(content)
-})
-
-
-##########################################
-# SEARCH FOR SPECTRA IN GIVEN MASS RANGE #
-##########################################
-
-PeakforestConn$methods( searchMzRange = function(mzmin, mzmax, rtype = c("object","spec","peak")){
-	
-	rtype <- match.arg(rtype)
-	if(mzmin>mzmax){
-		stop("mzmin shloud be inferior to mzmax in searchMzRange.")
-	}
-	
-	url <- paste0("https://rest.peakforest.org/spectra/lcms/peaks/get-range/",mzmin,"/",mzmax)
-	
-	contents <-  .self$.get.url(url)
-	
-	jsontree <- fromJSON(contents)
-	
-	###No match form the output.
-	if( length(jsontree)==0 ) return(NULL)
-	
-	# Getting a list of all the id.
-	lid <- sapply(jsontree,function(x){
-		x$source$id
-	})
-	
-	# Returning the content for all the spectra
-	contents <- .self$getEntryContent(lid)
-	
-	entries  <- .self$createEntry(contents)
-	
-	# Checking the return type
-	if( rtype=="object" ){
-		return( entries )
-	}
-	
-	### XXXX See if we don't want to reduce the output and factorize this shit.
-	toreturn <- NULL
-	if( rtype=="spec" ){
-		toreturn <- sapply(entries,function(x){
-			x$getFieldsAsDataFrame()
-		})
-	}
-	if( rtype=="peak" ){
-		toreturn <- lapply(entries,function(x){
-			temp <- as.data.frame( x$getFieldValue( BIODB.PEAKS ))
-			temp$accession = x$getFieldValue( BIODB.ACCESSION) 
-			return(temp)
-			
-		})
-	}
-	###Trying to convert in data.frame
-	if(!is.data.frame(toreturn)){
-		temp <- colnames(toreturn[[1]])
-		toreturn <- do.call("rbind.fill",toreturn)
-		colnames(toreturn) <- temp
-	}
-	
-	return(toreturn)
-})
-
-
-#################################################
-# SEARCH FOR SPECTRA IN A TOLERANCE AROUND A MZ #
-#################################################
-
-PeakforestConn$methods( searchMzTol = function(mz, tol, tolunit=BIODB.MZTOLUNIT.VALS,
-											   rtype = c("object","spec","peak")){
-	
-	rtype <- match.arg(rtype)
-	tolunit <- match.arg(tolunit)
-	
-	if( tolunit == BIODB.MZTOLUNIT.PPM){
-		tol <- tol * mz * 10^-6
-	}
-	
-	mzmin <- mz - tol
-	mzmax <- mz + tol
-	
-	return(.self$searchMzRange(mzmin, mzmax, rtype = rtype))
-	
-})
-
-##################################################
-# SEARCH FOR MSMS SPECTRA PRECUSOR AROUND A MASS #
-##################################################
-
-
-PeakforestConn$methods(
-	searchSpecPrecTol = function(mz,
-								 tol,
-								 tolunit = "plain",
-								 mode = NULL) {
-		#TODO handle the units
-		#tolunit <- match.arg(tolunit)
-		
-		strmode <- ''
-		
-		if (!is.null(mode)) {
-			if (mode %in% c(BIODB.MSMODE.NEG, BIODB.MSMODE.POS)) {
-				strmode <- paste0('?polarity=', mode)
-			}
-			
-		}
-		
-		if (tolunit == BIODB.MZTOLUNIT.PPM) {
-			tol <- tol * mz * 10 ^ -6
-		}
-		
-		##Request which return peak and not spectra.
-		url <-
-			paste0(
-				"https://rest.peakforest.org/spectra/lcms/search-naive/",
-				mz,
-				"/",
-				tol,
-				strmode
-			)
-		contents <-  .self$.get.url(url)
-		entries  <- .self$createReducedEntry(contents, drop = TRUE)
-		return(entries)
-	}
-)
-
-
-################
-# CREATE ENTRY #
-################
-
-# Creates a Spectrum instance from file content.
-# content       A file content, downloaded from the public database.
-# RETURN        A spectrum instance.
-PeakforestConn$methods( createEntry = function(content, drop = TRUE) {
-	return(createPeakforestSpectraFromJSON(content, drop = drop))
-})
-
-PeakforestConn$methods( createReducedEntry = function(content , drop = TRUE){
-	entries <- createReducedSpectraFromJSON(content, drop = drop)	
-	return(entries)
-})