# HG changeset patch # User lecorguille # Date 1486553743 18000 # Node ID 2faecb1270fe8f16aef3497de0603025d75b812b # Parent 8e740205c907786ee3e72e5ee1ab370272d4b74e planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 481448087f0e09c131b24f7d552db69f3552d371-dirty diff -r 8e740205c907 -r 2faecb1270fe lib.r --- a/lib.r Wed Feb 08 05:27:04 2017 -0500 +++ b/lib.r Wed Feb 08 06:35:43 2017 -0500 @@ -27,32 +27,28 @@ #@author G. Le Corguille #This function format ions identifiers -formatIonIdentifiers <- function(dataData, numDigitsRT=0, numDigitsMZ=0) { - return(make.unique(paste0("M",round(dataData[,"mz"],numDigitsMZ),"T",round(dataData[,"rt"],numDigitsRT)))) +formatIonIdentifiers <- function(variableMetadata, numDigitsRT=0, numDigitsMZ=0) { + splitDeco = strsplit(as.character(variableMetadata$name),"_") + idsDeco = sapply(splitDeco, function(x) { deco=unlist(x)[2]; if (is.na(deco)) return ("") else return(paste0("_",deco)) }) + namecustom = make.unique(paste0("M",round(variableMetadata[,"mz"],numDigitsMZ),"T",round(variableMetadata[,"rt"],numDigitsRT),idsDeco)) + variableMetadata=cbind(name=variableMetadata$name, namecustom=namecustom, variableMetadata[,!(colnames(variableMetadata) %in% c("name"))]) + return(variableMetadata) } #@author G. Le Corguille # value: intensity values to be used into, maxo or intb getPeaklistW4M <- function(xset, intval="into",convertRTMinute=F,numDigitsMZ=4,numDigitsRT=0,variableMetadataOutput,dataMatrixOutput) { - groups <- xset@groups - values <- groupval(xset, "medret", value=intval) + variableMetadata_dataMatrix = peakTable(xset, method="medret", value=intval) + variableMetadata_dataMatrix = cbind(name=groupnames(xset),variableMetadata_dataMatrix) - # renamming of the column rtmed to rt to fit with camera peaklist function output - colnames(groups)[colnames(groups)=="rtmed"] <- "rt" - colnames(groups)[colnames(groups)=="mzmed"] <- "mz" - - ids <- formatIonIdentifiers(groups, numDigitsRT=numDigitsRT, numDigitsMZ=numDigitsMZ) - groups = RTSecondToMinute(groups, convertRTMinute) + dataMatrix = variableMetadata_dataMatrix[,(make.names(colnames(variableMetadata_dataMatrix)) %in% c("name", make.names(sampnames(xset))))] - rownames(groups) = ids - rownames(values) = ids + variableMetadata = variableMetadata_dataMatrix[,!(make.names(colnames(variableMetadata_dataMatrix)) %in% c(make.names(sampnames(xset))))] + variableMetadata = RTSecondToMinute(variableMetadata, convertRTMinute) + variableMetadata = formatIonIdentifiers(variableMetadata, numDigitsRT=numDigitsRT, numDigitsMZ=numDigitsMZ) - #@TODO: add "name" as the first column name - #colnames(groups)[1] = "name" - #colnames(values)[1] = "name" - - write.table(groups, file=variableMetadataOutput,sep="\t",quote=F,row.names = T,col.names = NA) - write.table(values, file=dataMatrixOutput,sep="\t",quote=F,row.names = T,col.names = NA) + write.table(variableMetadata, file=variableMetadataOutput,sep="\t",quote=F,row.names=F) + write.table(dataMatrix, file=dataMatrixOutput,sep="\t",quote=F,row.names=F) } #@author Y. Guitton diff -r 8e740205c907 -r 2faecb1270fe macros.xml --- a/macros.xml Wed Feb 08 05:27:04 2017 -0500 +++ b/macros.xml Wed Feb 08 06:35:43 2017 -0500 @@ -70,7 +70,42 @@ + + #if $peaklist.peaklistBool + variableMetadataOutput $variableMetadata + dataMatrixOutput $dataMatrix + convertRTMinute $peaklist.convertRTMinute + numDigitsMZ $peaklist.numDigitsMZ + numDigitsRT $peaklist.numDigitsRT + intval $peaklist.intval + #end if + + + + + + + + + + + + + + + + + + + + + (peaklist['peaklistBool']) + + + (peaklist['peaklistBool']) + + .. class:: infomark diff -r 8e740205c907 -r 2faecb1270fe xcms.r --- a/xcms.r Wed Feb 08 05:27:04 2017 -0500 +++ b/xcms.r Wed Feb 08 06:35:43 2017 -0500 @@ -252,7 +252,7 @@ getBPCs(xcmsSet=xset,rt="corrected",pdfname=bicspdf) } -if (thefunction == "fillPeaks" && exists("intval")) { +if ((thefunction == "group" || thefunction == "fillPeaks") && exists("intval")) { getPeaklistW4M(xset,intval,convertRTMinute,numDigitsMZ,numDigitsRT,variableMetadataOutput,dataMatrixOutput) }