annotate lib.r @ 35:aeba79c716b1 draft

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