# HG changeset patch
# User lecorguille
# Date 1486546517 18000
# Node ID 9616257654aa6522a85c7c2a84427e8cd36f2187
# Parent  602acc32b549206e540745040ca4e11708d17ea8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit b3ba169290fd2e40dafe167f345106c1c3da3ebe
diff -r 602acc32b549 -r 9616257654aa lib.r
--- a/lib.r	Sun Feb 05 08:55:49 2017 -0500
+++ b/lib.r	Wed Feb 08 04:35:17 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 602acc32b549 -r 9616257654aa macros.xml
--- a/macros.xml	Sun Feb 05 08:55:49 2017 -0500
+++ b/macros.xml	Wed Feb 08 04:35:17 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 602acc32b549 -r 9616257654aa xcms.r
--- a/xcms.r	Sun Feb 05 08:55:49 2017 -0500
+++ b/xcms.r	Wed Feb 08 04:35:17 2017 -0500
@@ -252,8 +252,7 @@
     getBPCs(xcmsSet=xset,rt="corrected",pdfname=bicspdf)
 }
 
-if (thefunction == "fillPeaks") {
-    cat("\t\tGET THE PEAK LIST\n")
+if ((thefunction == "group" || thefunction == "fillPeaks") && exists("intval")) {
     getPeaklistW4M(xset,intval,convertRTMinute,numDigitsMZ,numDigitsRT,variableMetadataOutput,dataMatrixOutput)
 }