Skip to content

Commit

Permalink
Refactoring for xcmsEIC and xcmsFragments done.
Browse files Browse the repository at this point in the history
  • Loading branch information
jorainer committed Jul 21, 2016
1 parent 09d92f2 commit 623c6fd
Show file tree
Hide file tree
Showing 6 changed files with 145 additions and 114 deletions.
6 changes: 4 additions & 2 deletions DESCRIPTION
Original file line number Diff line number Diff line change
Expand Up @@ -49,13 +49,17 @@ Collate:
'cwTools.R'
'databases.R'
'fastMatch.R'
'functions-xcmsEIC.R'
'functions-xcmsFragments.R'
'functions-xcmsRaw.R'
'functions-xcmsSet.R'
'init.R'
'matchpeaks.R'
'methods-IO.R'
'methods-netCdfSource.R'
'methods-rampSource.R'
'methods-xcmsEIC.R'
'methods-xcmsFragments.R'
'methods-xcmsPeaks.R'
'methods-xcmsRaw.R'
'methods-xcmsSet.R'
Expand All @@ -69,7 +73,5 @@ Collate:
'write.mzquantML.R'
'writemzdata.R'
'writemztab.R'
'xcmsEIC.R'
'xcmsFragments.R'
'xcmsSource.R'
'zzz.R'
3 changes: 3 additions & 0 deletions R/AllGenerics.R
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,9 @@ setGeneric("groups", function(object) standardGeneric("groups"))
setGeneric("groups<-", function(object, value) standardGeneric("groups<-"))
setGeneric("groupval", function(object, ...) standardGeneric("groupval"))

## H
setGeneric("hasMSn", function(object, ...) standardGeneric("hasMSn"))

## I
setGeneric("image", function(x, ...) standardGeneric("image"))
setGeneric("isCentroided", function(object, ...) standardGeneric("isCentroided"))
Expand Down
48 changes: 2 additions & 46 deletions R/xcmsEIC.R → R/functions-xcmsEIC.R
Original file line number Diff line number Diff line change
@@ -1,49 +1,5 @@
setMethod("show", "xcmsEIC", function(object) {

cat("An \"xcmsEIC\" object with", length(object@eic), "samples\n\n")

cat("Time range: ", paste(round(range(object@rtrange), 1), collapse = "-"),
" seconds (", paste(round(range(object@rtrange)/60, 1), collapse = "-"),
" minutes)\n", sep = "")
cat("Mass range:", paste(round(range(object@mzrange, na.rm = TRUE), 4), collapse = "-"),
"m/z\n")
cat("EICs per sample:", nrow(object@mzrange), "\n")
cat("Retention times:", object@rt, "\n")
cat("xcmsSet group names: ")
if (length(object@groupnames))
cat("present")
else
cat("absent")
cat("\n\n")


memsize <- object.size(object)
cat("Memory usage:", signif(memsize/2^20, 3), "MB\n")
})


setMethod("groupnames", "xcmsEIC", function(object) {

object@groupnames
})


setMethod("sampnames", "xcmsEIC", function(object) {

names(object@eic)
})


setMethod("mzrange", "xcmsEIC", function(object) {

object@mzrange
})


setMethod("rtrange", "xcmsEIC", function(object) {

object@rtrange
})
## Functions for xcmsEIC
#' @include DataClasses.R

plot.xcmsEIC <- function(x, y, groupidx = groupnames(x), sampleidx = sampnames(x),
rtrange = x@rtrange, col = rep(1, length(sampleidx)), legtext = NULL,
Expand Down
70 changes: 4 additions & 66 deletions R/xcmsFragments.R → R/functions-xcmsFragments.R
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
## Functions for xcmsFragments
#' @include DataClasses.R

############################################################
## xcmsFragments constructor.
xcmsFragments <- function(xs = NULL, ...) {
object <- new("xcmsFragments")
object <- collect(object,xs,...)
Expand Down Expand Up @@ -29,8 +33,6 @@ xcmsFragments <- function(xs = NULL, ...) {
memsize <- object.size(object)
cat("\nMemory usage:", signif(memsize/2^20, 3), "MB\n")
}
setMethod("show", "xcmsFragments", .xcmsFragments.show)


.xcmsFragments.collect <- function(object,xs,xraw=NULL,compMethod="floor", snthresh=20, mzgap=.2, uniq=TRUE) {
## This is called after findPeaks()
Expand Down Expand Up @@ -139,7 +141,6 @@ setMethod("show", "xcmsFragments", .xcmsFragments.show)
cat(length(npPeakID),"Peaks picked,",numAloneSpecs,"MSn-Specs ignored.\n")
object
}
setMethod("collect", "xcmsFragments", .xcmsFragments.collect)

.xcmsFragments.plotTree <- function(object, mzRange=range(object@peaks[,"mz"]),
rtRange=range(object@peaks[,"rt"]),
Expand Down Expand Up @@ -232,15 +233,11 @@ setMethod("collect", "xcmsFragments", .xcmsFragments.collect)
}
}
}
setMethod("plotTree", "xcmsFragments", .xcmsFragments.plotTree)

.xcmsFragments.hasMSn <- function(object, xcmsSetPeakID) {
## Quick check whether MSn exists for some peak in xcmsSet
any(object@peaks[,"MSnParentPeakID"] == xcmsSetPeakID)
}
setGeneric("hasMSn", function(object, ...) standardGeneric("hasMSn"))
setMethod("hasMSn", "xcmsFragments", .xcmsFragments.hasMSn)


xcmsFragments.makeXS <- function(xs,xf,FUNS,filename){
## gets an xcmsSet and the corresponding xcmsFragments
Expand Down Expand Up @@ -321,8 +318,6 @@ xcmsFragments.makeXS <- function(xs,xf,FUNS,filename){
write.csv(distances,file=filename)
distances
}
##setGeneric("makeXS", function(object, ...) standardGeneric("makeXS"))
##setMethod("makeXS", "xcmsFragments", .xcmsFragments.makeXS)

getXS<-function(xs,xf,g)
{
Expand Down Expand Up @@ -366,60 +361,3 @@ getXS<-function(xs,xf,g)
sampnames(xsn) <- samples
xsn
}

setMethod("findneutral", "xcmsFragments", function(object, find, ppmE=25, print=TRUE) {
find<-range(ppmDev(Mr=find, ppmE))
spectra<-unique(object@peaks[,"MSnParentPeakID"])
found<-matrix(ncol=10)

for (i in 1:length(spectra)){
if(spectra[i] > 0){
losses<-diff(sort(object@peaks[object@peaks[,"MSnParentPeakID"] ==spectra[i],"mz"] ))
if(length(losses) > 0){
if(length(which(losses > find[1] & losses < find[2])) > 0){
idx<-which(object@peaks[,"MSnParentPeakID"] == spectra[i])
PrecursorMZ<-object@peaks[object@peaks[idx,"MSnParentPeakID"],"mz"]
CE<-object@peaks[object@peaks[idx,"MSnParentPeakID"],"CollisionEnergy"]
dat<-object@peaks[idx,c("MSnParentPeakID", "msLevel", "rt", "mz",
"intensity", "Sample", "GroupPeakMSn")]
found<-rbind(found, cbind(NeutralLoss=c(losses,0), PrecursorMz=PrecursorMZ,
dat[order(dat[,"mz"]),], CollisionEnergy=CE))
}
}
}
}
if(nrow(found) >1){
found<-found[2:nrow(found),]
} else{
cat("Nothing found\n")
return(0)
}
if (print == TRUE){
cat("We looked for", find[2], " to", find[1], "and found:\n")
print(found)
}
return(found)
})


setMethod("findMZ", "xcmsFragments", function(object, find, ppmE=25, print=TRUE) {
find<-range(ppmDev(Mr=find, ppmE))
fragMZ<-0

found<- which(object@peaks[,"mz"] > find[1] & object@peaks[,"mz"] < find[2] & object@peaks[,"msLevel"] >1)
if(length(found) <1){
cat("nothing was found\n")
return(0)
}

PrecursorMZ<-object@peaks[object@peaks[found,"MSnParentPeakID"],"mz"]
CE<-object@peaks[object@peaks[found,"MSnParentPeakID"],"CollisionEnergy"]
foundFrag<-cbind(PrecursorMz=PrecursorMZ, object@peaks[found,c("MSnParentPeakID", "msLevel",
"rt", "mz", "intensity", "Sample", "GroupPeakMSn")], CollisionEnergy=CE)

if (print == TRUE){
cat("We looked for", find[2], " to", find[1], "and found:\n")
print(foundFrag)
}
return(foundFrag)
})
53 changes: 53 additions & 0 deletions R/methods-xcmsEIC.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
## Methods for xcmsEIC
#' @include functions-xcmsEIC.R

############################################################
## show
setMethod("show", "xcmsEIC", function(object) {

cat("An \"xcmsEIC\" object with", length(object@eic), "samples\n\n")

cat("Time range: ", paste(round(range(object@rtrange), 1), collapse = "-"),
" seconds (", paste(round(range(object@rtrange)/60, 1), collapse = "-"),
" minutes)\n", sep = "")
cat("Mass range:", paste(round(range(object@mzrange, na.rm = TRUE), 4), collapse = "-"),
"m/z\n")
cat("EICs per sample:", nrow(object@mzrange), "\n")
cat("Retention times:", object@rt, "\n")
cat("xcmsSet group names: ")
if (length(object@groupnames))
cat("present")
else
cat("absent")
cat("\n\n")
memsize <- object.size(object)
cat("Memory usage:", signif(memsize/2^20, 3), "MB\n")
})

############################################################
## groupnames
setMethod("groupnames", "xcmsEIC", function(object) {

object@groupnames
})

############################################################
## sampnames
setMethod("sampnames", "xcmsEIC", function(object) {

names(object@eic)
})

############################################################
## mzrange
setMethod("mzrange", "xcmsEIC", function(object) {

object@mzrange
})

############################################################
## rtrange
setMethod("rtrange", "xcmsEIC", function(object) {

object@rtrange
})
79 changes: 79 additions & 0 deletions R/methods-xcmsFragments.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
## Methods for xcmsFragments.
#' @include functions-xcmsFragments.R

############################################################
## show
setMethod("show", "xcmsFragments", .xcmsFragments.show)

############################################################
## collect
setMethod("collect", "xcmsFragments", .xcmsFragments.collect)

############################################################
## plotTree
setMethod("plotTree", "xcmsFragments", .xcmsFragments.plotTree)

############################################################
## hasMSn
setMethod("hasMSn", "xcmsFragments", .xcmsFragments.hasMSn)

############################################################
## findneutral
setMethod("findneutral", "xcmsFragments", function(object, find, ppmE=25, print=TRUE) {
find<-range(ppmDev(Mr=find, ppmE))
spectra<-unique(object@peaks[,"MSnParentPeakID"])
found<-matrix(ncol=10)

for (i in 1:length(spectra)){
if(spectra[i] > 0){
losses<-diff(sort(object@peaks[object@peaks[,"MSnParentPeakID"] ==spectra[i],"mz"] ))
if(length(losses) > 0){
if(length(which(losses > find[1] & losses < find[2])) > 0){
idx<-which(object@peaks[,"MSnParentPeakID"] == spectra[i])
PrecursorMZ<-object@peaks[object@peaks[idx,"MSnParentPeakID"],"mz"]
CE<-object@peaks[object@peaks[idx,"MSnParentPeakID"],"CollisionEnergy"]
dat<-object@peaks[idx,c("MSnParentPeakID", "msLevel", "rt", "mz",
"intensity", "Sample", "GroupPeakMSn")]
found<-rbind(found, cbind(NeutralLoss=c(losses,0), PrecursorMz=PrecursorMZ,
dat[order(dat[,"mz"]),], CollisionEnergy=CE))
}
}
}
}
if(nrow(found) >1){
found<-found[2:nrow(found),]
} else{
cat("Nothing found\n")
return(0)
}
if (print == TRUE){
cat("We looked for", find[2], " to", find[1], "and found:\n")
print(found)
}
return(found)
})

############################################################
## findMZ
setMethod("findMZ", "xcmsFragments", function(object, find, ppmE=25, print=TRUE) {
find<-range(ppmDev(Mr=find, ppmE))
fragMZ<-0

found<- which(object@peaks[,"mz"] > find[1] & object@peaks[,"mz"] < find[2] & object@peaks[,"msLevel"] >1)
if(length(found) <1){
cat("nothing was found\n")
return(0)
}

PrecursorMZ<-object@peaks[object@peaks[found,"MSnParentPeakID"],"mz"]
CE<-object@peaks[object@peaks[found,"MSnParentPeakID"],"CollisionEnergy"]
foundFrag<-cbind(PrecursorMz=PrecursorMZ, object@peaks[found,c("MSnParentPeakID", "msLevel",
"rt", "mz", "intensity", "Sample", "GroupPeakMSn")], CollisionEnergy=CE)

if (print == TRUE){
cat("We looked for", find[2], " to", find[1], "and found:\n")
print(foundFrag)
}
return(foundFrag)
})

0 comments on commit 623c6fd

Please sign in to comment.