annotate lib.r @ 35:7f636ad1162b draft

planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
author lecorguille
date Tue, 03 Apr 2018 11:37:02 -0400
parents efd23113d5f4
children d39b9aff9cf7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
1 #@authors ABiMS TEAM, Y. Guitton
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
2 # lib.r for Galaxy Workflow4Metabolomics xcms tools
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
3
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
4 #@author G. Le Corguille
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
5 # solve an issue with batch if arguments are logical TRUE/FALSE
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
6 parseCommandArgs <- function(...) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
7 args <- batch::parseCommandArgs(...)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
8 for (key in names(args)) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
9 if (args[key] %in% c("TRUE","FALSE"))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
10 args[key] = as.logical(args[key])
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
11 }
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
12 return(args)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
13 }
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
14
16
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
15 #@author G. Le Corguille
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
16 # This function will
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
17 # - load the packages
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
18 # - display the sessionInfo
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
19 loadAndDisplayPackages <- function(pkgs) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
20 for(pkg in pkgs) suppressPackageStartupMessages( stopifnot( library(pkg, quietly=TRUE, logical.return=TRUE, character.only=TRUE)))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
21
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
22 sessioninfo = sessionInfo()
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
23 cat(sessioninfo$R.version$version.string,"\n")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
24 cat("Main packages:\n")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
25 for (pkg in names(sessioninfo$otherPkgs)) { cat(paste(pkg,packageVersion(pkg)),"\t") }; cat("\n")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
26 cat("Other loaded packages:\n")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
27 for (pkg in names(sessioninfo$loadedOnly)) { cat(paste(pkg,packageVersion(pkg)),"\t") }; cat("\n")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
28 }
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
29
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
30 #@author G. Le Corguille
35
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
31 # This function merge several xdata into one.
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
32 mergeXData <- function(args) {
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
33 for(image in args$images) {
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
34 load(image)
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
35 # Handle infiles
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
36 if (!exists("singlefile")) singlefile <- NULL
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
37 if (!exists("zipfile")) zipfile <- NULL
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
38 rawFilePath <- getRawfilePathFromArguments(singlefile, zipfile, args)
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
39 zipfile <- rawFilePath$zipfile
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
40 singlefile <- rawFilePath$singlefile
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
41 retrieveRawfileInTheWorkingDirectory(singlefile, zipfile)
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
42 if (exists("raw_data")) xdata <- raw_data
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
43 if (!exists("xdata")) stop("\n\nERROR: The RData doesn't contain any object called 'xdata'. This RData should have been created by an old version of XMCS 2.*")
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
44 cat(sampleNamesList$sampleNamesOrigin,"\n")
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
45 if (!exists("xdata_merged")) {
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
46 xdata_merged <- xdata
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
47 singlefile_merged <- singlefile
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
48 md5sumList_merged <- md5sumList
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
49 sampleNamesList_merged <- sampleNamesList
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
50 } else {
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
51 if (is(xdata, "XCMSnExp")) xdata_merged <- c(xdata_merged,xdata)
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
52 else if (is(xdata, "OnDiskMSnExp")) xdata_merged <- .concatenate_OnDiskMSnExp(xdata_merged,xdata)
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
53 else stop("\n\nERROR: The RData either a OnDiskMSnExp object called raw_data or a XCMSnExp object called xdata")
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
54 singlefile_merged <- c(singlefile_merged,singlefile)
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
55 md5sumList_merged$origin <- rbind(md5sumList_merged$origin,md5sumList$origin)
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
56 sampleNamesList_merged$sampleNamesOrigin <- c(sampleNamesList_merged$sampleNamesOrigin,sampleNamesList$sampleNamesOrigin)
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
57 sampleNamesList_merged$sampleNamesMakeNames <- c(sampleNamesList_merged$sampleNamesMakeNames,sampleNamesList$sampleNamesMakeNames)
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
58 }
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
59 }
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
60 rm(image)
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
61 xdata <- xdata_merged; rm(xdata_merged)
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
62 singlefile <- singlefile_merged; rm(singlefile_merged)
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
63 md5sumList <- md5sumList_merged; rm(md5sumList_merged)
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
64 sampleNamesList <- sampleNamesList_merged; rm(sampleNamesList_merged)
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
65
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
66 if (!is.null(args$sampleMetadata)) {
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
67 cat("\tXSET PHENODATA SETTING...\n")
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
68 sampleMetadataFile <- args$sampleMetadata
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
69 sampleMetadata <- getDataFrameFromFile(sampleMetadataFile, header=F)
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
70 xdata@phenoData@data$sample_group=sampleMetadata$V2[match(xdata@phenoData@data$sample_name,sampleMetadata$V1)]
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
71
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
72 if (any(is.na(pData(xdata)$sample_group))) {
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
73 sample_missing <- pData(xdata)$sample_name[is.na(pData(xdata)$sample_group)]
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
74 error_message <- paste("Those samples are missing in your sampleMetadata:", paste(sample_missing, collapse=" "))
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
75 print(error_message)
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
76 stop(error_message)
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
77 }
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
78 }
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
79 return(list("xdata"=xdata, "singlefile"=singlefile, "md5sumList"=md5sumList,"sampleNamesList"=sampleNamesList))
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
80 }
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
81
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
82 #@author G. Le Corguille
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
83 # This function convert if it is required the Retention Time in minutes
16
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
84 RTSecondToMinute <- function(variableMetadata, convertRTMinute) {
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
85 if (convertRTMinute){
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
86 #converting the retention times (seconds) into minutes
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
87 print("converting the retention times into minutes in the variableMetadata")
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
88 variableMetadata[,"rt"] <- variableMetadata[,"rt"]/60
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
89 variableMetadata[,"rtmin"] <- variableMetadata[,"rtmin"]/60
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
90 variableMetadata[,"rtmax"] <- variableMetadata[,"rtmax"]/60
16
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
91 }
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
92 return (variableMetadata)
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
93 }
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
94
16
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
95 #@author G. Le Corguille
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
96 # This function format ions identifiers
21
ab238b104c3f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 481448087f0e09c131b24f7d552db69f3552d371-dirty
lecorguille
parents: 20
diff changeset
97 formatIonIdentifiers <- function(variableMetadata, numDigitsRT=0, numDigitsMZ=0) {
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
98 splitDeco <- strsplit(as.character(variableMetadata$name),"_")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
99 idsDeco <- sapply(splitDeco, function(x) { deco=unlist(x)[2]; if (is.na(deco)) return ("") else return(paste0("_",deco)) })
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
100 namecustom <- make.unique(paste0("M",round(variableMetadata[,"mz"],numDigitsMZ),"T",round(variableMetadata[,"rt"],numDigitsRT),idsDeco))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
101 variableMetadata <- cbind(name=variableMetadata$name, namecustom=namecustom, variableMetadata[,!(colnames(variableMetadata) %in% c("name"))])
21
ab238b104c3f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 481448087f0e09c131b24f7d552db69f3552d371-dirty
lecorguille
parents: 20
diff changeset
102 return(variableMetadata)
16
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
103 }
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
104
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
105 #@author G. Le Corguille
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
106 # Draw the plotChromPeakDensity 3 per page in a pdf file
33
c363b9f1caef planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 7b226c3ba91a3cf654ec1c14b3ef85090968bb0f
lecorguille
parents: 32
diff changeset
107 getPlotChromPeakDensity <- function(xdata, mzdigit=4) {
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
108 pdf(file="plotChromPeakDensity.pdf", width=16, height=12)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
109
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
110 par(mfrow = c(3, 1), mar = c(4, 4, 1, 0.5))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
111
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
112 group_colors <- brewer.pal(3, "Set1")[1:length(unique(xdata$sample_group))]
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
113 names(group_colors) <- unique(xdata$sample_group)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
114
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
115 xlim <- c(min(featureDefinitions(xdata)$rtmin), max(featureDefinitions(xdata)$rtmax))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
116 for (i in 1:nrow(featureDefinitions(xdata))) {
33
c363b9f1caef planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 7b226c3ba91a3cf654ec1c14b3ef85090968bb0f
lecorguille
parents: 32
diff changeset
117 mzmin = featureDefinitions(xdata)[i,]$mzmin
c363b9f1caef planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 7b226c3ba91a3cf654ec1c14b3ef85090968bb0f
lecorguille
parents: 32
diff changeset
118 mzmax = featureDefinitions(xdata)[i,]$mzmax
c363b9f1caef planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 7b226c3ba91a3cf654ec1c14b3ef85090968bb0f
lecorguille
parents: 32
diff changeset
119 plotChromPeakDensity(xdata, mz=c(mzmin,mzmax), col=group_colors, pch=16, xlim=xlim, main=paste(round(mzmin,mzdigit),round(mzmax,mzdigit)))
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
120 legend("topright", legend=names(group_colors), col=group_colors, cex=0.8, lty=1)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
121 }
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
122
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
123 dev.off()
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
124 }
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
125
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
126 #@author G. Le Corguille
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
127 # Draw the plotChromPeakDensity 3 per page in a pdf file
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
128 getPlotAdjustedRtime <- function(xdata) {
34
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
129
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
130 pdf(file="raw_vs_adjusted_rt.pdf", width=16, height=12)
34
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
131
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
132 # Color by group
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
133 group_colors <- brewer.pal(3, "Set1")[1:length(unique(xdata$sample_group))]
35
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
134 if (length(group_colors) > 1) {
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
135 names(group_colors) <- unique(xdata$sample_group)
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
136 plotAdjustedRtime(xdata, col = group_colors[xdata$sample_group])
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
137 legend("topright", legend=names(group_colors), col=group_colors, cex=0.8, lty=1)
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
138 }
34
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
139
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
140 # Color by sample
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
141 plotAdjustedRtime(xdata, col = rainbow(length(xdata@phenoData@data$sample_name)))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
142 legend("topright", legend=xdata@phenoData@data$sample_name, col=rainbow(length(xdata@phenoData@data$sample_name)), cex=0.8, lty=1)
34
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
143
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
144 dev.off()
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
145 }
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
146
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
147 #@author G. Le Corguille
16
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
148 # value: intensity values to be used into, maxo or intb
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
149 getPeaklistW4M <- function(xdata, intval="into", convertRTMinute=F, numDigitsMZ=4, numDigitsRT=0, variableMetadataOutput, dataMatrixOutput) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
150 dataMatrix <- featureValues(xdata, method="medret", value=intval)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
151 colnames(dataMatrix) <- tools::file_path_sans_ext(colnames(dataMatrix))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
152 dataMatrix = cbind(name=groupnamesW4M(xdata), dataMatrix)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
153 variableMetadata <- featureDefinitions(xdata)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
154 colnames(variableMetadata)[1] = "mz"; colnames(variableMetadata)[4] = "rt"
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
155 variableMetadata = data.frame(name=groupnamesW4M(xdata), variableMetadata)
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
156
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
157 variableMetadata <- RTSecondToMinute(variableMetadata, convertRTMinute)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
158 variableMetadata <- formatIonIdentifiers(variableMetadata, numDigitsRT=numDigitsRT, numDigitsMZ=numDigitsMZ)
16
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
159
21
ab238b104c3f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 481448087f0e09c131b24f7d552db69f3552d371-dirty
lecorguille
parents: 20
diff changeset
160 write.table(variableMetadata, file=variableMetadataOutput,sep="\t",quote=F,row.names=F)
ab238b104c3f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 481448087f0e09c131b24f7d552db69f3552d371-dirty
lecorguille
parents: 20
diff changeset
161 write.table(dataMatrix, file=dataMatrixOutput,sep="\t",quote=F,row.names=F)
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
162
16
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
163 }
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
164
34
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
165 #@author G. Le Corguille
35
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
166 # It allow different of field separators
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
167 getDataFrameFromFile <- function(filename, header=T) {
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
168 myDataFrame <- read.table(filename, header=header, sep=";", stringsAsFactors=F)
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
169 if (ncol(myDataFrame) < 2) myDataFrame <- read.table(filename, header=header, sep="\t", stringsAsFactors=F)
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
170 if (ncol(myDataFrame) < 2) myDataFrame <- read.table(filename, header=header, sep=",", stringsAsFactors=F)
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
171 if (ncol(myDataFrame) < 2) {
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
172 error_message="Your tabular file seems not well formatted. The column separators accepted are ; , and tabulation"
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
173 print(error_message)
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
174 stop(error_message)
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
175 }
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
176 return(myDataFrame)
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
177 }
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
178
34
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
179 getPlotChromatogram <- function(xdata, pdfname="Chromatogram.pdf", aggregationFun = "max") {
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
180
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
181 chrom <- chromatogram(xdata, aggregationFun = aggregationFun)
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
182 if (aggregationFun == "sum")
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
183 type="Total Ion Chromatograms"
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
184 else
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
185 type="Base Peak Intensity Chromatograms"
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
186
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
187 adjusted="Raw"
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
188 if (hasAdjustedRtime(xdata))
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
189 adjusted="Adjusted"
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
190
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
191 main <- paste(type,":",adjusted,"data")
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
192
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
193 pdf(pdfname, width=16, height=10)
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
194
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
195 # Color by group
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
196 group_colors <- brewer.pal(3, "Set1")[1:length(unique(xdata$sample_group))]
35
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
197 if (length(group_colors) > 1) {
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
198 names(group_colors) <- unique(xdata$sample_group)
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
199 plot(chrom, col = group_colors[chrom$sample_group], main=main)
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
200 legend("topright", legend=names(group_colors), col=group_colors, cex=0.8, lty=1)
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
201 }
34
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
202
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
203 # Color by sample
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
204 plot(chrom, col = rainbow(length(xdata@phenoData@data$sample_name)), main=main)
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
205 legend("topright", legend=xdata@phenoData@data$sample_name, col=rainbow(length(xdata@phenoData@data$sample_name)), cex=0.8, lty=1)
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
206
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
207 dev.off()
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
208 }
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
209
34
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
210 #@author G. Le Corguille
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
211 getPlotTICs <- function(xdata, pdfname="TICs.pdf") {
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
212 getPlotChromatogram(xdata, pdfname, aggregationFun = "sum")
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
213 }
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
214
34
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
215 #@author G. Le Corguille
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
216 getPlotBPIs <- function(xdata, pdfname="BPIs.pdf") {
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
217 getPlotChromatogram(xdata, pdfname, aggregationFun = "max")
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
218 }
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
219
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
220
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
221 # Get the polarities from all the samples of a condition
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
222 #@author Misharl Monsoor misharl.monsoor@sb-roscoff.fr ABiMS TEAM
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
223 #@author Gildas Le Corguille lecorguille@sb-roscoff.fr ABiMS TEAM
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
224 getSampleMetadata <- function(xdata=NULL, sampleMetadataOutput="sampleMetadata.tsv") {
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
225 cat("Creating the sampleMetadata file...\n")
16
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
226
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
227 #Create the sampleMetada dataframe
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
228 sampleMetadata <- xdata@phenoData@data
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
229 rownames(sampleMetadata) <- NULL
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
230 colnames(sampleMetadata) <- c("sampleMetadata", "class")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
231
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
232 sampleNamesOrigin <- sampleMetadata$sampleMetadata
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
233 sampleNamesMakeNames <- make.names(sampleNamesOrigin)
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
234
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
235 if (any(duplicated(sampleNamesMakeNames))) {
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
236 write("\n\nERROR: Usually, R has trouble to deal with special characters in its column names, so it rename them using make.names().\nIn your case, at least two columns after the renaming obtain the same name, thus XCMS will collapse those columns per name.", stderr())
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
237 for (sampleName in sampleNamesOrigin) {
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
238 write(paste(sampleName,"\t->\t",make.names(sampleName)),stderr())
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
239 }
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
240 stop("\n\nERROR: One or more of your files will not be import by xcmsSet. It may due to bad characters in their filenames.")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
241 }
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
242
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
243 if (!all(sampleNamesOrigin == sampleNamesMakeNames)) {
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
244 cat("\n\nWARNING: Usually, R has trouble to deal with special characters in its column names, so it rename them using make.names()\nIn your case, one or more sample names will be renamed in the sampleMetadata and dataMatrix files:\n")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
245 for (sampleName in sampleNamesOrigin) {
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
246 cat(paste(sampleName,"\t->\t",make.names(sampleName),"\n"))
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
247 }
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
248 }
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
249
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
250 sampleMetadata$sampleMetadata <- sampleNamesMakeNames
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
251
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
252
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
253 #For each sample file, the following actions are done
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
254 for (fileIdx in 1:length(fileNames(xdata))) {
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
255 #Check if the file is in the CDF format
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
256 if (!mzR:::netCDFIsFile(fileNames(xdata))) {
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
257
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
258 # If the column isn't exist, with add one filled with NA
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
259 if (is.null(sampleMetadata$polarity)) sampleMetadata$polarity <- NA
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
260
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
261 #Extract the polarity (a list of polarities)
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
262 polarity <- fData(xdata)[fData(xdata)$fileIdx == fileIdx,"polarity"]
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
263 #Verify if all the scans have the same polarity
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
264 uniq_list <- unique(polarity)
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
265 if (length(uniq_list)>1){
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
266 polarity <- "mixed"
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
267 } else {
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
268 polarity <- as.character(uniq_list)
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
269 }
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
270
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
271 #Set the polarity attribute
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
272 sampleMetadata$polarity[fileIdx] <- polarity
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
273 }
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
274
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
275 }
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
276
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
277 write.table(sampleMetadata, sep="\t", quote=FALSE, row.names=FALSE, file=sampleMetadataOutput)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
278
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
279 return(list("sampleNamesOrigin"=sampleNamesOrigin, "sampleNamesMakeNames"=sampleNamesMakeNames))
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
280
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
281 }
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
282
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
283
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
284 # This function check if xcms will found all the files
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
285 #@author Gildas Le Corguille lecorguille@sb-roscoff.fr ABiMS TEAM
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
286 checkFilesCompatibilityWithXcms <- function(directory) {
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
287 cat("Checking files filenames compatibilities with xmcs...\n")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
288 # WHAT XCMS WILL FIND
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
289 filepattern <- c("[Cc][Dd][Ff]", "[Nn][Cc]", "([Mm][Zz])?[Xx][Mm][Ll]","[Mm][Zz][Dd][Aa][Tt][Aa]", "[Mm][Zz][Mm][Ll]")
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
290 filepattern <- paste(paste("\\.", filepattern, "$", sep=""),collapse="|")
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
291 info <- file.info(directory)
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
292 listed <- list.files(directory[info$isdir], pattern=filepattern, recursive=TRUE, full.names=TRUE)
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
293 files <- c(directory[!info$isdir], listed)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
294 files_abs <- file.path(getwd(), files)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
295 exists <- file.exists(files_abs)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
296 files[exists] <- files_abs[exists]
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
297 files[exists] <- sub("//","/",files[exists])
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
298
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
299 # WHAT IS ON THE FILESYSTEM
33
c363b9f1caef planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 7b226c3ba91a3cf654ec1c14b3ef85090968bb0f
lecorguille
parents: 32
diff changeset
300 filesystem_filepaths <- system(paste0("find \"$PWD/",directory,"\" -not -name '\\.*' -not -path '*conda-env*' -type f -name \"*\""), intern=T)
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
301 filesystem_filepaths <- filesystem_filepaths[grep(filepattern, filesystem_filepaths, perl=T)]
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
302
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
303 # COMPARISON
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
304 if (!is.na(table(filesystem_filepaths %in% files)["FALSE"])) {
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
305 write("\n\nERROR: List of the files which will not be imported by xcmsSet",stderr())
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
306 write(filesystem_filepaths[!(filesystem_filepaths %in% files)],stderr())
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
307 stop("\n\nERROR: One or more of your files will not be import by xcmsSet. It may due to bad characters in their filenames.")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
308 }
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
309 }
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
310
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
311
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
312 #This function list the compatible files within the directory as xcms did
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
313 #@author Gildas Le Corguille lecorguille@sb-roscoff.fr ABiMS TEAM
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
314 getMSFiles <- function (directory) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
315 filepattern <- c("[Cc][Dd][Ff]", "[Nn][Cc]", "([Mm][Zz])?[Xx][Mm][Ll]","[Mm][Zz][Dd][Aa][Tt][Aa]", "[Mm][Zz][Mm][Ll]")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
316 filepattern <- paste(paste("\\.", filepattern, "$", sep=""),collapse="|")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
317 info <- file.info(directory)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
318 listed <- list.files(directory[info$isdir], pattern=filepattern,recursive=TRUE, full.names=TRUE)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
319 files <- c(directory[!info$isdir], listed)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
320 exists <- file.exists(files)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
321 files <- files[exists]
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
322 return(files)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
323 }
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
324
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
325 # This function check if XML contains special caracters. It also checks integrity and completness.
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
326 #@author Misharl Monsoor misharl.monsoor@sb-roscoff.fr ABiMS TEAM
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
327 checkXmlStructure <- function (directory) {
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
328 cat("Checking XML structure...\n")
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
329
33
c363b9f1caef planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 7b226c3ba91a3cf654ec1c14b3ef85090968bb0f
lecorguille
parents: 32
diff changeset
330 cmd <- paste0("IFS=$'\n'; for xml in $(find '",directory,"' -not -name '\\.*' -not -path '*conda-env*' -type f -iname '*.*ml*'); do if [ $(xmllint --nonet --noout \"$xml\" 2> /dev/null; echo $?) -gt 0 ]; then echo $xml;fi; done;")
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
331 capture <- system(cmd, intern=TRUE)
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
332
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
333 if (length(capture)>0){
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
334 #message=paste("The following mzXML or mzML file is incorrect, please check these files first:",capture)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
335 write("\n\nERROR: The following mzXML or mzML file(s) are incorrect, please check these files first:", stderr())
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
336 write(capture, stderr())
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
337 stop("ERROR: xcmsSet cannot continue with incorrect mzXML or mzML files")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
338 }
16
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
339
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
340 }
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
341
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
342
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
343 # This function check if XML contain special characters
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
344 #@author Misharl Monsoor misharl.monsoor@sb-roscoff.fr ABiMS TEAM
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
345 deleteXmlBadCharacters<- function (directory) {
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
346 cat("Checking Non ASCII characters in the XML...\n")
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
347
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
348 processed <- F
33
c363b9f1caef planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 7b226c3ba91a3cf654ec1c14b3ef85090968bb0f
lecorguille
parents: 32
diff changeset
349 l <- system( paste0("find '",directory, "' -not -name '\\.*' -not -path '*conda-env*' -type f -iname '*.*ml*'"), intern=TRUE)
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
350 for (i in l){
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
351 cmd <- paste("LC_ALL=C grep '[^ -~]' \"", i, "\"", sep="")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
352 capture <- suppressWarnings(system(cmd, intern=TRUE))
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
353 if (length(capture)>0){
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
354 cmd <- paste("perl -i -pe 's/[^[:ascii:]]//g;'",i)
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
355 print( paste("WARNING: Non ASCII characters have been removed from the ",i,"file") )
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
356 c <- system(cmd, intern=TRUE)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
357 capture <- ""
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
358 processed <- T
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
359 }
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
360 }
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
361 if (processed) cat("\n\n")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
362 return(processed)
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
363 }
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
364
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
365
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
366 # This function will compute MD5 checksum to check the data integrity
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
367 #@author Gildas Le Corguille lecorguille@sb-roscoff.fr
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
368 getMd5sum <- function (directory) {
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
369 cat("Compute md5 checksum...\n")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
370 # WHAT XCMS WILL FIND
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
371 filepattern <- c("[Cc][Dd][Ff]", "[Nn][Cc]", "([Mm][Zz])?[Xx][Mm][Ll]","[Mm][Zz][Dd][Aa][Tt][Aa]", "[Mm][Zz][Mm][Ll]")
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
372 filepattern <- paste(paste("\\.", filepattern, "$", sep=""),collapse="|")
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
373 info <- file.info(directory)
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
374 listed <- list.files(directory[info$isdir], pattern=filepattern, recursive=TRUE, full.names=TRUE)
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
375 files <- c(directory[!info$isdir], listed)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
376 exists <- file.exists(files)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
377 files <- files[exists]
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
378
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
379 library(tools)
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
380
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
381 #cat("\n\n")
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
382
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
383 return(as.matrix(md5sum(files)))
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
384 }
24
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
385
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
386
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
387 # This function get the raw file path from the arguments
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
388 #@author Gildas Le Corguille lecorguille@sb-roscoff.fr
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
389 getRawfilePathFromArguments <- function(singlefile, zipfile, args) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
390 if (!is.null(args$zipfile)) zipfile <- args$zipfile
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
391 if (!is.null(args$zipfilePositive)) zipfile <- args$zipfilePositive
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
392 if (!is.null(args$zipfileNegative)) zipfile <- args$zipfileNegative
24
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
393
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
394 if (!is.null(args$singlefile_galaxyPath)) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
395 singlefile_galaxyPaths <- args$singlefile_galaxyPath;
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
396 singlefile_sampleNames <- args$singlefile_sampleName
24
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
397 }
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
398 if (!is.null(args$singlefile_galaxyPathPositive)) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
399 singlefile_galaxyPaths <- args$singlefile_galaxyPathPositive;
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
400 singlefile_sampleNames <- args$singlefile_sampleNamePositive
24
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
401 }
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
402 if (!is.null(args$singlefile_galaxyPathNegative)) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
403 singlefile_galaxyPaths <- args$singlefile_galaxyPathNegative;
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
404 singlefile_sampleNames <- args$singlefile_sampleNameNegative
24
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
405 }
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
406 if (exists("singlefile_galaxyPaths")){
33
c363b9f1caef planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 7b226c3ba91a3cf654ec1c14b3ef85090968bb0f
lecorguille
parents: 32
diff changeset
407 singlefile_galaxyPaths <- unlist(strsplit(singlefile_galaxyPaths,"\\|"))
c363b9f1caef planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 7b226c3ba91a3cf654ec1c14b3ef85090968bb0f
lecorguille
parents: 32
diff changeset
408 singlefile_sampleNames <- unlist(strsplit(singlefile_sampleNames,"\\|"))
24
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
409
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
410 singlefile <- NULL
24
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
411 for (singlefile_galaxyPath_i in seq(1:length(singlefile_galaxyPaths))) {
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
412 singlefile_galaxyPath <- singlefile_galaxyPaths[singlefile_galaxyPath_i]
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
413 singlefile_sampleName <- singlefile_sampleNames[singlefile_galaxyPath_i]
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
414 singlefile[[singlefile_sampleName]] <- singlefile_galaxyPath
24
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
415 }
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
416 }
35
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
417 return(list(zipfile=zipfile, singlefile=singlefile))
24
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
418 }
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
419
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
420
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
421 # This function retrieve the raw file in the working directory
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
422 # - if zipfile: unzip the file with its directory tree
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
423 # - if singlefiles: set symlink with the good filename
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
424 #@author Gildas Le Corguille lecorguille@sb-roscoff.fr
24
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
425 retrieveRawfileInTheWorkingDirectory <- function(singlefile, zipfile) {
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
426 if(!is.null(singlefile) && (length("singlefile")>0)) {
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
427 for (singlefile_sampleName in names(singlefile)) {
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
428 singlefile_galaxyPath <- singlefile[[singlefile_sampleName]]
24
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
429 if(!file.exists(singlefile_galaxyPath)){
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
430 error_message <- paste("Cannot access the sample:",singlefile_sampleName,"located:",singlefile_galaxyPath,". Please, contact your administrator ... if you have one!")
24
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
431 print(error_message); stop(error_message)
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
432 }
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
433
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
434 if (!suppressWarnings( try (file.link(singlefile_galaxyPath, singlefile_sampleName), silent=T)))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
435 file.copy(singlefile_galaxyPath, singlefile_sampleName)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
436
24
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
437 }
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
438 directory <- "."
24
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
439
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
440 }
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
441 if(!is.null(zipfile) && (zipfile != "")) {
24
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
442 if(!file.exists(zipfile)){
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
443 error_message <- paste("Cannot access the Zip file:",zipfile,". Please, contact your administrator ... if you have one!")
24
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
444 print(error_message)
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
445 stop(error_message)
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
446 }
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
447
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
448 #list all file in the zip file
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
449 #zip_files <- unzip(zipfile,list=T)[,"Name"]
24
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
450
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
451 #unzip
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
452 suppressWarnings(unzip(zipfile, unzip="unzip"))
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
453
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
454 #get the directory name
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
455 suppressWarnings(filesInZip <- unzip(zipfile, list=T))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
456 directories <- unique(unlist(lapply(strsplit(filesInZip$Name,"/"), function(x) x[1])))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
457 directories <- directories[!(directories %in% c("__MACOSX")) & file.info(directories)$isdir]
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
458 directory <- "."
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
459 if (length(directories) == 1) directory <- directories
24
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
460
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
461 cat("files_root_directory\t",directory,"\n")
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
462
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
463 }
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
464 return (directory)
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
465 }
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
466
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
467
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
468 # This function retrieve a xset like object
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
469 #@author Gildas Le Corguille lecorguille@sb-roscoff.fr
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
470 getxcmsSetObject <- function(xobject) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
471 # XCMS 1.x
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
472 if (class(xobject) == "xcmsSet")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
473 return (xobject)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
474 # XCMS 3.x
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
475 if (class(xobject) == "XCMSnExp") {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
476 # Get the legacy xcmsSet object
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
477 suppressWarnings(xset <- as(xobject, 'xcmsSet'))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
478 sampclass(xset) <- xset@phenoData$sample_group
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
479 return (xset)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
480 }
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
481 }
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
482
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
483
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
484 #@TODO: remove this function as soon as we can use xcms 3.x.x from Bioconductor 3.7
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
485 # https://github.com/sneumann/xcms/issues/250
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
486 groupnamesW4M <- function(xdata, mzdec = 0, rtdec = 0) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
487 mzfmt <- paste("%.", mzdec, "f", sep = "")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
488 rtfmt <- paste("%.", rtdec, "f", sep = "")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
489
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
490 gnames <- paste("M", sprintf(mzfmt, featureDefinitions(xdata)[,"mzmed"]), "T",
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
491 sprintf(rtfmt, featureDefinitions(xdata)[,"rtmed"]), sep = "")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
492
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
493 if (any(dup <- duplicated(gnames)))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
494 for (dupname in unique(gnames[dup])) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
495 dupidx <- which(gnames == dupname)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
496 gnames[dupidx] <- paste(gnames[dupidx], seq(along = dupidx), sep = "_")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
497 }
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
498
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
499 return (gnames)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
500 }
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
501
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
502 #@TODO: remove this function as soon as we can use xcms 3.x.x from Bioconductor 3.7
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
503 # https://github.com/sneumann/xcms/issues/247
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
504 .concatenate_XCMSnExp <- function(...) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
505 x <- list(...)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
506 if (length(x) == 0)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
507 return(NULL)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
508 if (length(x) == 1)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
509 return(x[[1]])
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
510 ## Check that all are XCMSnExp objects.
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
511 if (!all(unlist(lapply(x, function(z) is(z, "XCMSnExp")))))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
512 stop("All passed objects should be 'XCMSnExp' objects")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
513 new_x <- as(.concatenate_OnDiskMSnExp(...), "XCMSnExp")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
514 ## If any of the XCMSnExp has alignment results or detected features drop
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
515 ## them!
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
516 x <- lapply(x, function(z) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
517 if (hasAdjustedRtime(z)) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
518 z <- dropAdjustedRtime(z)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
519 warning("Adjusted retention times found, had to drop them.")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
520 }
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
521 if (hasFeatures(z)) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
522 z <- dropFeatureDefinitions(z)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
523 warning("Feature definitions found, had to drop them.")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
524 }
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
525 z
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
526 })
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
527 ## Combine peaks
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
528 fls <- lapply(x, fileNames)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
529 startidx <- cumsum(lengths(fls))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
530 pks <- lapply(x, chromPeaks)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
531 procH <- lapply(x, processHistory)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
532 for (i in 2:length(fls)) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
533 pks[[i]][, "sample"] <- pks[[i]][, "sample"] + startidx[i - 1]
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
534 procH[[i]] <- lapply(procH[[i]], function(z) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
535 z@fileIndex <- as.integer(z@fileIndex + startidx[i - 1])
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
536 z
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
537 })
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
538 }
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
539 pks <- do.call(rbind, pks)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
540 new_x@.processHistory <- unlist(procH)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
541 chromPeaks(new_x) <- pks
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
542 if (validObject(new_x))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
543 new_x
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
544 }
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
545
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
546 #@TODO: remove this function as soon as we can use xcms 3.x.x from Bioconductor 3.7
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
547 # https://github.com/sneumann/xcms/issues/247
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
548 .concatenate_OnDiskMSnExp <- function(...) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
549 x <- list(...)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
550 if (length(x) == 0)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
551 return(NULL)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
552 if (length(x) == 1)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
553 return(x[[1]])
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
554 ## Check that all are XCMSnExp objects.
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
555 if (!all(unlist(lapply(x, function(z) is(z, "OnDiskMSnExp")))))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
556 stop("All passed objects should be 'OnDiskMSnExp' objects")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
557 ## Check processingQueue
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
558 procQ <- lapply(x, function(z) z@spectraProcessingQueue)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
559 new_procQ <- procQ[[1]]
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
560 is_ok <- unlist(lapply(procQ, function(z)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
561 !is.character(all.equal(new_procQ, z))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
562 ))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
563 if (any(!is_ok)) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
564 warning("Processing queues from the submitted objects differ! ",
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
565 "Dropping the processing queue.")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
566 new_procQ <- list()
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
567 }
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
568 ## processingData
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
569 fls <- lapply(x, function(z) z@processingData@files)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
570 startidx <- cumsum(lengths(fls))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
571 ## featureData
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
572 featd <- lapply(x, fData)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
573 ## Have to update the file index and the spectrum names.
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
574 for (i in 2:length(featd)) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
575 featd[[i]]$fileIdx <- featd[[i]]$fileIdx + startidx[i - 1]
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
576 rownames(featd[[i]]) <- MSnbase:::formatFileSpectrumNames(
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
577 fileIds = featd[[i]]$fileIdx,
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
578 spectrumIds = featd[[i]]$spIdx,
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
579 nSpectra = nrow(featd[[i]]),
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
580 nFiles = length(unlist(fls))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
581 )
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
582 }
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
583 featd <- do.call(rbind, featd)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
584 featd$spectrum <- 1:nrow(featd)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
585 ## experimentData
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
586 expdata <- lapply(x, function(z) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
587 ed <- z@experimentData
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
588 data.frame(instrumentManufacturer = ed@instrumentManufacturer,
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
589 instrumentModel = ed@instrumentModel,
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
590 ionSource = ed@ionSource,
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
591 analyser = ed@analyser,
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
592 detectorType = ed@detectorType,
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
593 stringsAsFactors = FALSE)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
594 })
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
595 expdata <- do.call(rbind, expdata)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
596 expdata <- new("MIAPE",
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
597 instrumentManufacturer = expdata$instrumentManufacturer,
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
598 instrumentModel = expdata$instrumentModel,
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
599 ionSource = expdata$ionSource,
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
600 analyser = expdata$analyser,
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
601 detectorType = expdata$detectorType)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
602
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
603 ## protocolData
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
604 protodata <- lapply(x, function(z) z@protocolData)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
605 if (any(unlist(lapply(protodata, nrow)) > 0))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
606 warning("Found non-empty protocol data, but merging protocol data is",
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
607 " currently not supported. Skipped.")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
608 ## phenoData
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
609 pdata <- do.call(rbind, lapply(x, pData))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
610 res <- new(
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
611 "OnDiskMSnExp",
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
612 phenoData = new("NAnnotatedDataFrame", data = pdata),
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
613 featureData = new("AnnotatedDataFrame", featd),
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
614 processingData = new("MSnProcess",
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
615 processing = paste0("Concatenated [", date(), "]"),
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
616 files = unlist(fls), smoothed = NA),
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
617 experimentData = expdata,
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
618 spectraProcessingQueue = new_procQ)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
619 if (validObject(res))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
620 res
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
621 }
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
622
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
623 #@TODO: remove this function as soon as we can use xcms 3.x.x from Bioconductor 3.7
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
624 # https://github.com/sneumann/xcms/issues/247
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
625 c.XCMSnExp <- function(...) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
626 .concatenate_XCMSnExp(...)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
627 }
35
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
628
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
629 #@TODO: remove this function as soon as we can use xcms 3.x.x from Bioconductor 3.7
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
630 # https://github.com/sneumann/xcms/issues/247
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
631 c.MSnbase <- function(...) {
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
632 .concatenate_OnDiskMSnExp(...)
7f636ad1162b planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
lecorguille
parents: 34
diff changeset
633 }