Mercurial > repos > lecorguille > xcms_xcmsset
changeset 20:d7971ea3ad1d draft
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 717c02f887ce343ca55f862c8020aaf49f5581d8
author | lecorguille |
---|---|
date | Wed, 08 Feb 2017 05:26:10 -0500 |
parents | c8ac989c6c69 |
children | ab238b104c3f |
files | README.rst abims_xcms_xcmsSet.xml lib.r macros.xml xcms.r |
diffstat | 5 files changed, 20 insertions(+), 52 deletions(-) [+] |
line wrap: on
line diff
--- a/README.rst Wed Feb 08 05:21:02 2017 -0500 +++ b/README.rst Wed Feb 08 05:26:10 2017 -0500 @@ -1,4 +1,3 @@ - Changelog/News --------------
--- a/abims_xcms_xcmsSet.xml Wed Feb 08 05:21:02 2017 -0500 +++ b/abims_xcms_xcmsSet.xml Wed Feb 08 05:26:10 2017 -0500 @@ -237,7 +237,7 @@ </assert_contents> </output> </test> - <!-- Passed by disable to save time for Travis" + <!-- Passed but disable to save time for Travis" --> <!--<test> <param name="inputs|input" value="single_file" /> <param name="inputs|single_file" value="ko15.CDF" ftype="netcdf" />
--- a/lib.r Wed Feb 08 05:21:02 2017 -0500 +++ b/lib.r Wed Feb 08 05:26:10 2017 -0500 @@ -27,28 +27,32 @@ #@author G. Le Corguille #This function format ions identifiers -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) +formatIonIdentifiers <- function(dataData, numDigitsRT=0, numDigitsMZ=0) { + return(make.unique(paste0("M",round(dataData[,"mz"],numDigitsMZ),"T",round(dataData[,"rt"],numDigitsRT)))) } #@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) { - variableMetadata_dataMatrix = peakTable(xset, method="medret", value=intval) - variableMetadata_dataMatrix = cbind(name=groupnames(xset),variableMetadata_dataMatrix) + groups <- xset@groups + values <- groupval(xset, "medret", value=intval) - dataMatrix = variableMetadata_dataMatrix[,(make.names(colnames(variableMetadata_dataMatrix)) %in% c("name", make.names(sampnames(xset))))] + # 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) - 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) + rownames(groups) = ids + rownames(values) = ids - write.table(variableMetadata, file=variableMetadataOutput,sep="\t",quote=F,row.names=F) - write.table(dataMatrix, file=dataMatrixOutput,sep="\t",quote=F,row.names=F) + #@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) } #@author Y. Guitton
--- a/macros.xml Wed Feb 08 05:21:02 2017 -0500 +++ b/macros.xml Wed Feb 08 05:26:10 2017 -0500 @@ -70,42 +70,7 @@ </conditional> </xml> - <token name="@COMMAND_PEAKLIST@"> - #if $peaklist.peaklistBool - variableMetadataOutput $variableMetadata - dataMatrixOutput $dataMatrix - convertRTMinute $peaklist.convertRTMinute - numDigitsMZ $peaklist.numDigitsMZ - numDigitsRT $peaklist.numDigitsRT - intval $peaklist.intval - #end if - </token> - <xml name="input_peaklist"> - <conditional name="peaklist"> - <param name="peaklistBool" type="boolean" label="Get a Peak List" /> - <when value="true"> - <param name="convertRTMinute" type="boolean" checked="false" truevalue="TRUE" falsevalue="FALSE" label="Convert retention time (seconds) into minutes" help="Convert the columns rtmed, rtmin and rtmax into minutes"/> - <param name="numDigitsMZ" type="integer" value="4" label="Number of decimal places for mass values reported in ions' identifiers." help="A minimum of 4 decimal places is recommended. Useful to avoid duplicates within identifiers" /> - <param name="numDigitsRT" type="integer" value="0" label="Number of decimal places for retention time values reported in ions' identifiers." help="Useful to avoid duplicates within identifiers" /> - <param name="intval" type="select" label="Reported intensity values" help="[intval] See the help section below"> - <option value="into" selected="true">into</option> - <option value="maxo">maxo</option> - <option value="intb">intb</option> - </param> - </when> - <when value="false" /> - </conditional> - </xml> - - <xml name="output_peaklist"> - <data name="variableMetadata" format="tabular" label="${image.name[:-6]}.fillPeaks.variableMetadata.tsv"> - <filter>(peaklist['peaklistBool'])</filter> - </data> - <data name="dataMatrix" format="tabular" label="${image.name[:-6]}.fillPeaks.dataMatrix.tsv" > - <filter>(peaklist['peaklistBool'])</filter> - </data> - </xml> <token name="@HELP_AUTHORS@"> .. class:: infomark
--- a/xcms.r Wed Feb 08 05:21:02 2017 -0500 +++ b/xcms.r Wed Feb 08 05:26:10 2017 -0500 @@ -252,7 +252,7 @@ getBPCs(xcmsSet=xset,rt="corrected",pdfname=bicspdf) } -if ((thefunction == "group" || thefunction == "fillPeaks") && exists("intval")) { +if (thefunction == "fillPeaks" && exists("intval")) { getPeaklistW4M(xset,intval,convertRTMinute,numDigitsMZ,numDigitsRT,variableMetadataOutput,dataMatrixOutput) }