annotate lib.r @ 29:5dba1c94fb94 draft

planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
author lecorguille
date Tue, 24 Oct 2017 11:46:21 -0400
parents 8e46e9bd7c50
children e93153c07be0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
1 #Authors ABiMS TEAM
16
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
2 #Lib.r for Galaxy Workflow4Metabolomics xcms tools
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
3 #
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
4 #version 2.4: lecorguille
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
5 # add getPeaklistW4M
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
6 #version 2.3: yguitton
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
7 # correction for empty PDF when only 1 class
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
8 #version 2.2
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
9 # correct bug in Base Peak Chromatogram (BPC) option, not only TIC when scanrange used in xcmsSet
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
10 # Note if scanrange is used a warning is prompted in R console but do not stop PDF generation
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
11 #version 2.1: yguitton
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
12 # Modifications made by Guitton Yann
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
13
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
14
16
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
15 #@author G. Le Corguille
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
16 #This function convert if it is required the Retention Time in minutes
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
17 RTSecondToMinute <- function(variableMetadata, convertRTMinute) {
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
18 if (convertRTMinute){
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
19 #converting the retention times (seconds) into minutes
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
20 print("converting the retention times into minutes in the variableMetadata")
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
21 variableMetadata[,"rt"]=variableMetadata[,"rt"]/60
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
22 variableMetadata[,"rtmin"]=variableMetadata[,"rtmin"]/60
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
23 variableMetadata[,"rtmax"]=variableMetadata[,"rtmax"]/60
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
24 }
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
25 return (variableMetadata)
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
26 }
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
27
16
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
28 #@author G. Le Corguille
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
29 #This function format ions identifiers
21
ab238b104c3f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 481448087f0e09c131b24f7d552db69f3552d371-dirty
lecorguille
parents: 20
diff changeset
30 formatIonIdentifiers <- function(variableMetadata, numDigitsRT=0, numDigitsMZ=0) {
ab238b104c3f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 481448087f0e09c131b24f7d552db69f3552d371-dirty
lecorguille
parents: 20
diff changeset
31 splitDeco = strsplit(as.character(variableMetadata$name),"_")
ab238b104c3f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 481448087f0e09c131b24f7d552db69f3552d371-dirty
lecorguille
parents: 20
diff changeset
32 idsDeco = sapply(splitDeco, function(x) { deco=unlist(x)[2]; if (is.na(deco)) return ("") else return(paste0("_",deco)) })
ab238b104c3f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 481448087f0e09c131b24f7d552db69f3552d371-dirty
lecorguille
parents: 20
diff changeset
33 namecustom = make.unique(paste0("M",round(variableMetadata[,"mz"],numDigitsMZ),"T",round(variableMetadata[,"rt"],numDigitsRT),idsDeco))
ab238b104c3f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 481448087f0e09c131b24f7d552db69f3552d371-dirty
lecorguille
parents: 20
diff changeset
34 variableMetadata=cbind(name=variableMetadata$name, namecustom=namecustom, variableMetadata[,!(colnames(variableMetadata) %in% c("name"))])
ab238b104c3f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 481448087f0e09c131b24f7d552db69f3552d371-dirty
lecorguille
parents: 20
diff changeset
35 return(variableMetadata)
16
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
36 }
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
37
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
38 #@author G. Le Corguille
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
39 # value: intensity values to be used into, maxo or intb
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
40 getPeaklistW4M <- function(xset, intval="into",convertRTMinute=F,numDigitsMZ=4,numDigitsRT=0,variableMetadataOutput,dataMatrixOutput) {
21
ab238b104c3f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 481448087f0e09c131b24f7d552db69f3552d371-dirty
lecorguille
parents: 20
diff changeset
41 variableMetadata_dataMatrix = peakTable(xset, method="medret", value=intval)
ab238b104c3f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 481448087f0e09c131b24f7d552db69f3552d371-dirty
lecorguille
parents: 20
diff changeset
42 variableMetadata_dataMatrix = cbind(name=groupnames(xset),variableMetadata_dataMatrix)
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
43
21
ab238b104c3f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 481448087f0e09c131b24f7d552db69f3552d371-dirty
lecorguille
parents: 20
diff changeset
44 dataMatrix = variableMetadata_dataMatrix[,(make.names(colnames(variableMetadata_dataMatrix)) %in% c("name", make.names(sampnames(xset))))]
16
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
45
21
ab238b104c3f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 481448087f0e09c131b24f7d552db69f3552d371-dirty
lecorguille
parents: 20
diff changeset
46 variableMetadata = variableMetadata_dataMatrix[,!(make.names(colnames(variableMetadata_dataMatrix)) %in% c(make.names(sampnames(xset))))]
ab238b104c3f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 481448087f0e09c131b24f7d552db69f3552d371-dirty
lecorguille
parents: 20
diff changeset
47 variableMetadata = RTSecondToMinute(variableMetadata, convertRTMinute)
ab238b104c3f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 481448087f0e09c131b24f7d552db69f3552d371-dirty
lecorguille
parents: 20
diff changeset
48 variableMetadata = formatIonIdentifiers(variableMetadata, numDigitsRT=numDigitsRT, numDigitsMZ=numDigitsMZ)
16
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
49
21
ab238b104c3f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 481448087f0e09c131b24f7d552db69f3552d371-dirty
lecorguille
parents: 20
diff changeset
50 write.table(variableMetadata, file=variableMetadataOutput,sep="\t",quote=F,row.names=F)
ab238b104c3f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 481448087f0e09c131b24f7d552db69f3552d371-dirty
lecorguille
parents: 20
diff changeset
51 write.table(dataMatrix, file=dataMatrixOutput,sep="\t",quote=F,row.names=F)
16
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
52 }
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
53
29
5dba1c94fb94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
lecorguille
parents: 27
diff changeset
54 #@author G. Le Corguille
5dba1c94fb94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
lecorguille
parents: 27
diff changeset
55 exportTicBpcTabular <- function(dataset, filenameBase, ticORbpc, rt='raw') {
5dba1c94fb94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
lecorguille
parents: 27
diff changeset
56
5dba1c94fb94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
lecorguille
parents: 27
diff changeset
57 rawORcorrected = ''
5dba1c94fb94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
lecorguille
parents: 27
diff changeset
58 title = ''
5dba1c94fb94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
lecorguille
parents: 27
diff changeset
59 if (rt=='corrected') {
5dba1c94fb94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
lecorguille
parents: 27
diff changeset
60 rawORcorrected = '_corrected'
5dba1c94fb94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
lecorguille
parents: 27
diff changeset
61 title = ' corrected by retcor'
5dba1c94fb94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
lecorguille
parents: 27
diff changeset
62 }
5dba1c94fb94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
lecorguille
parents: 27
diff changeset
63
5dba1c94fb94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
lecorguille
parents: 27
diff changeset
64 if (ticORbpc == "TIC") {
5dba1c94fb94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
lecorguille
parents: 27
diff changeset
65 section_name = paste0('TIC',rawORcorrected)
5dba1c94fb94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
lecorguille
parents: 27
diff changeset
66 title = paste0('Total Ion Current (TIC) chromatogram',title)
5dba1c94fb94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
lecorguille
parents: 27
diff changeset
67 description = 'Sum of intensity (Y) of all ions detected at each retention time(X)'
5dba1c94fb94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
lecorguille
parents: 27
diff changeset
68 } else if (ticORbpc == "BPC") {
5dba1c94fb94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
lecorguille
parents: 27
diff changeset
69 section_name = paste0('BPC',rawORcorrected)
5dba1c94fb94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
lecorguille
parents: 27
diff changeset
70 title = paste0('Base Peak Chromatogram (BPC)',title)
5dba1c94fb94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
lecorguille
parents: 27
diff changeset
71 description = 'Sum of intensity (Y) of the most intense peaks at each retention time(X)'
5dba1c94fb94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
lecorguille
parents: 27
diff changeset
72 }
5dba1c94fb94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
lecorguille
parents: 27
diff changeset
73
5dba1c94fb94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
lecorguille
parents: 27
diff changeset
74 filename=paste0(basename(file_path_sans_ext(filenameBase)),"-",ticORbpc,rawORcorrected,"_mqc.out")
5dba1c94fb94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
lecorguille
parents: 27
diff changeset
75
5dba1c94fb94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
lecorguille
parents: 27
diff changeset
76 # Headers for MultiQC
5dba1c94fb94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
lecorguille
parents: 27
diff changeset
77 cat("# file_format: 'tsv'\n", sep="", file = filename)
5dba1c94fb94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
lecorguille
parents: 27
diff changeset
78 cat("# section_name: '",section_name,"'\n", sep="", file = filename, append = T)
5dba1c94fb94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
lecorguille
parents: 27
diff changeset
79 cat("# title: '",title,"'\n", sep="", file = filename, append = T)
5dba1c94fb94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
lecorguille
parents: 27
diff changeset
80 cat("# description: '",description,"'\n", sep="", file = filename, append = T)
5dba1c94fb94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
lecorguille
parents: 27
diff changeset
81 cat("# plot_type: 'linegraph'\n", sep="", file = filename, append = T)
5dba1c94fb94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
lecorguille
parents: 27
diff changeset
82 cat("# pconfig:\n", sep="", file = filename, append = T)
5dba1c94fb94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
lecorguille
parents: 27
diff changeset
83 cat("# id: '",ticORbpc,rawORcorrected,"_lineplot'\n", sep="", file = filename, append = T)
5dba1c94fb94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
lecorguille
parents: 27
diff changeset
84 cat("# ylab: 'Base Peak Intensity'\n", sep="", file = filename, append = T)
5dba1c94fb94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
lecorguille
parents: 27
diff changeset
85 cat("# xlab: 'Retention Time'\n", sep="", file = filename, append = T)
5dba1c94fb94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
lecorguille
parents: 27
diff changeset
86 cat("Intensity\tRT\n", file = filename, append = T)
5dba1c94fb94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
lecorguille
parents: 27
diff changeset
87 write.table(dataset, filename ,row.names = F, col.names = F, sep = "\t", append = T, quote = F)
5dba1c94fb94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
lecorguille
parents: 27
diff changeset
88 }
5dba1c94fb94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
lecorguille
parents: 27
diff changeset
89
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
90 #@author Y. Guitton
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
91 getBPC <- function(file,rtcor=NULL, ...) {
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
92 object <- xcmsRaw(file)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
93 sel <- profRange(object, ...)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
94 cbind(if (is.null(rtcor)) object@scantime[sel$scanidx] else rtcor ,xcms:::colMax(object@env$profile[sel$massidx,sel$scanidx,drop=FALSE]))
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
95 #plotChrom(xcmsRaw(file), base=T)
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
96 }
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
97
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
98 #@author Y. Guitton
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
99 getBPCs <- function (xcmsSet=NULL, pdfname="BPCs.pdf",rt=c("raw","corrected"), scanrange=NULL) {
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
100 cat("Creating BIC pdf...\n")
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
101
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
102 if (is.null(xcmsSet)) {
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
103 cat("Enter an xcmsSet \n")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
104 stop()
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
105 } else {
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
106 files <- filepaths(xcmsSet)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
107 }
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
108
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
109 phenoDataClass<-as.vector(levels(xcmsSet@phenoData[,1])) #sometime phenoData have more than 1 column use first as class
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
110
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
111 classnames<-vector("list",length(phenoDataClass))
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
112 for (i in 1:length(phenoDataClass)){
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
113 classnames[[i]]<-which( xcmsSet@phenoData[,1]==phenoDataClass[i])
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
114 }
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
115
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
116 N <- dim(phenoData(xcmsSet))[1]
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
117
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
118 TIC <- vector("list",N)
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
119
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
120
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
121 for (j in 1:N) {
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
122
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
123 TIC[[j]] <- getBPC(files[j])
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
124 #good for raw
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
125 # seems strange for corrected
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
126 #errors if scanrange used in xcmsSetgeneration
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
127 if (!is.null(xcmsSet) && rt == "corrected")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
128 rtcor <- xcmsSet@rt$corrected[[j]]
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
129 else
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
130 rtcor <- NULL
16
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
131
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
132 TIC[[j]] <- getBPC(files[j],rtcor=rtcor)
29
5dba1c94fb94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
lecorguille
parents: 27
diff changeset
133
5dba1c94fb94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
lecorguille
parents: 27
diff changeset
134 exportTicBpcTabular(TIC[[j]], files[j], "BPC", rt=rt)
5dba1c94fb94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
lecorguille
parents: 27
diff changeset
135
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
136 # TIC[[j]][,1]<-rtcor
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
137 }
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
138
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
139
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
140
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
141 pdf(pdfname,w=16,h=10)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
142 cols <- rainbow(N)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
143 lty = 1:N
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
144 pch = 1:N
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
145 #search for max x and max y in BPCs
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
146 xlim = range(sapply(TIC, function(x) range(x[,1])))
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
147 ylim = range(sapply(TIC, function(x) range(x[,2])))
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
148 ylim = c(-ylim[2], ylim[2])
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
149
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
150
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
151 ##plot start
16
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
152
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
153 if (length(phenoDataClass)>2){
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
154 for (k in 1:(length(phenoDataClass)-1)){
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
155 for (l in (k+1):length(phenoDataClass)){
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
156 #print(paste(phenoDataClass[k],"vs",phenoDataClass[l],sep=" "))
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
157 plot(0, 0, type="n", xlim = xlim/60, ylim = ylim, main = paste("Base Peak Chromatograms \n","BPCs_",phenoDataClass[k]," vs ",phenoDataClass[l], sep=""), xlab = "Retention Time (min)", ylab = "BPC")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
158 colvect<-NULL
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
159 for (j in 1:length(classnames[[k]])) {
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
160 tic <- TIC[[classnames[[k]][j]]]
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
161 # points(tic[,1]/60, tic[,2], col = cols[i], pch = pch[i], type="l")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
162 points(tic[,1]/60, tic[,2], col = cols[classnames[[k]][j]], pch = pch[classnames[[k]][j]], type="l")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
163 colvect<-append(colvect,cols[classnames[[k]][j]])
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
164 }
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
165 for (j in 1:length(classnames[[l]])) {
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
166 # i=class2names[j]
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
167 tic <- TIC[[classnames[[l]][j]]]
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
168 points(tic[,1]/60, -tic[,2], col = cols[classnames[[l]][j]], pch = pch[classnames[[l]][j]], type="l")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
169 colvect<-append(colvect,cols[classnames[[l]][j]])
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
170 }
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
171 legend("topright",paste(basename(files[c(classnames[[k]],classnames[[l]])])), col = colvect, lty = lty, pch = pch)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
172 }
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
173 }
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
174 }#end if length >2
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
175
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
176 if (length(phenoDataClass)==2){
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
177 k=1
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
178 l=2
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
179 colvect<-NULL
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
180 plot(0, 0, type="n", xlim = xlim/60, ylim = ylim, main = paste("Base Peak Chromatograms \n","BPCs_",phenoDataClass[k],"vs",phenoDataClass[l], sep=""), xlab = "Retention Time (min)", ylab = "BPC")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
181
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
182 for (j in 1:length(classnames[[k]])) {
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
183
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
184 tic <- TIC[[classnames[[k]][j]]]
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
185 # points(tic[,1]/60, tic[,2], col = cols[i], pch = pch[i], type="l")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
186 points(tic[,1]/60, tic[,2], col = cols[classnames[[k]][j]], pch = pch[classnames[[k]][j]], type="l")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
187 colvect<-append(colvect,cols[classnames[[k]][j]])
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
188 }
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
189 for (j in 1:length(classnames[[l]])) {
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
190 # i=class2names[j]
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
191 tic <- TIC[[classnames[[l]][j]]]
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
192 points(tic[,1]/60, -tic[,2], col = cols[classnames[[l]][j]], pch = pch[classnames[[l]][j]], type="l")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
193 colvect<-append(colvect,cols[classnames[[l]][j]])
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
194 }
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
195 legend("topright",paste(basename(files[c(classnames[[k]],classnames[[l]])])), col = colvect, lty = lty, pch = pch)
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
196
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
197 }#end length ==2
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
198
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
199 #case where only one class
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
200 if (length(phenoDataClass)==1){
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
201 k=1
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
202 ylim = range(sapply(TIC, function(x) range(x[,2])))
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
203 colvect<-NULL
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
204 plot(0, 0, type="n", xlim = xlim/60, ylim = ylim, main = paste("Base Peak Chromatograms \n","BPCs_",phenoDataClass[k], sep=""), xlab = "Retention Time (min)", ylab = "BPC")
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
205
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
206 for (j in 1:length(classnames[[k]])) {
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
207 tic <- TIC[[classnames[[k]][j]]]
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
208 # points(tic[,1]/60, tic[,2], col = cols[i], pch = pch[i], type="l")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
209 points(tic[,1]/60, tic[,2], col = cols[classnames[[k]][j]], pch = pch[classnames[[k]][j]], type="l")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
210 colvect<-append(colvect,cols[classnames[[k]][j]])
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
211 }
16
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
212
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
213 legend("topright",paste(basename(files[c(classnames[[k]])])), col = colvect, lty = lty, pch = pch)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
214
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
215 }#end length ==1
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
216
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
217 dev.off() #pdf(pdfname,w=16,h=10)
16
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
218
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
219 invisible(TIC)
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
220 }
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
221
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
222
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
223
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
224 #@author Y. Guitton
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
225 getTIC <- function(file,rtcor=NULL) {
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
226 object <- xcmsRaw(file)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
227 cbind(if (is.null(rtcor)) object@scantime else rtcor, rawEIC(object,mzrange=range(object@env$mz))$intensity)
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
228 }
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
229
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
230 ##
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
231 ## overlay TIC from all files in current folder or from xcmsSet, create pdf
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
232 ##
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
233 #@author Y. Guitton
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
234 getTICs <- function(xcmsSet=NULL,files=NULL, pdfname="TICs.pdf",rt=c("raw","corrected")) {
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
235 cat("Creating TIC pdf...\n")
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
236
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
237 if (is.null(xcmsSet)) {
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
238 filepattern <- c("[Cc][Dd][Ff]", "[Nn][Cc]", "([Mm][Zz])?[Xx][Mm][Ll]", "[Mm][Zz][Dd][Aa][Tt][Aa]", "[Mm][Zz][Mm][Ll]")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
239 filepattern <- paste(paste("\\.", filepattern, "$", sep = ""), collapse = "|")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
240 if (is.null(files))
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
241 files <- getwd()
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
242 info <- file.info(files)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
243 listed <- list.files(files[info$isdir], pattern = filepattern, recursive = TRUE, full.names = TRUE)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
244 files <- c(files[!info$isdir], listed)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
245 } else {
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
246 files <- filepaths(xcmsSet)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
247 }
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
248
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
249 phenoDataClass<-as.vector(levels(xcmsSet@phenoData[,1])) #sometime phenoData have more than 1 column use first as class
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
250 classnames<-vector("list",length(phenoDataClass))
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
251 for (i in 1:length(phenoDataClass)){
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
252 classnames[[i]]<-which( xcmsSet@phenoData[,1]==phenoDataClass[i])
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
253 }
16
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
254
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
255 N <- length(files)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
256 TIC <- vector("list",N)
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
257
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
258 for (i in 1:N) {
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
259 if (!is.null(xcmsSet) && rt == "corrected")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
260 rtcor <- xcmsSet@rt$corrected[[i]] else
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
261 rtcor <- NULL
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
262 TIC[[i]] <- getTIC(files[i],rtcor=rtcor)
29
5dba1c94fb94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
lecorguille
parents: 27
diff changeset
263
5dba1c94fb94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
lecorguille
parents: 27
diff changeset
264 exportTicBpcTabular(TIC[[i]], files[i], "TIC", rt=rt)
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
265 }
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
266
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
267 pdf(pdfname,w=16,h=10)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
268 cols <- rainbow(N)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
269 lty = 1:N
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
270 pch = 1:N
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
271 #search for max x and max y in TICs
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
272 xlim = range(sapply(TIC, function(x) range(x[,1])))
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
273 ylim = range(sapply(TIC, function(x) range(x[,2])))
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
274 ylim = c(-ylim[2], ylim[2])
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
275
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
276
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
277 ##plot start
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
278 if (length(phenoDataClass)>2){
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
279 for (k in 1:(length(phenoDataClass)-1)){
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
280 for (l in (k+1):length(phenoDataClass)){
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
281 #print(paste(phenoDataClass[k],"vs",phenoDataClass[l],sep=" "))
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
282 plot(0, 0, type="n", xlim = xlim/60, ylim = ylim, main = paste("Total Ion Chromatograms \n","TICs_",phenoDataClass[k]," vs ",phenoDataClass[l], sep=""), xlab = "Retention Time (min)", ylab = "TIC")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
283 colvect<-NULL
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
284 for (j in 1:length(classnames[[k]])) {
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
285 tic <- TIC[[classnames[[k]][j]]]
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
286 # points(tic[,1]/60, tic[,2], col = cols[i], pch = pch[i], type="l")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
287 points(tic[,1]/60, tic[,2], col = cols[classnames[[k]][j]], pch = pch[classnames[[k]][j]], type="l")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
288 colvect<-append(colvect,cols[classnames[[k]][j]])
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
289 }
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
290 for (j in 1:length(classnames[[l]])) {
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
291 # i=class2names[j]
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
292 tic <- TIC[[classnames[[l]][j]]]
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
293 points(tic[,1]/60, -tic[,2], col = cols[classnames[[l]][j]], pch = pch[classnames[[l]][j]], type="l")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
294 colvect<-append(colvect,cols[classnames[[l]][j]])
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
295 }
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
296 legend("topright",paste(basename(files[c(classnames[[k]],classnames[[l]])])), col = colvect, lty = lty, pch = pch)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
297 }
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
298 }
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
299 }#end if length >2
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
300 if (length(phenoDataClass)==2){
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
301 k=1
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
302 l=2
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
303
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
304 plot(0, 0, type="n", xlim = xlim/60, ylim = ylim, main = paste("Total Ion Chromatograms \n","TICs_",phenoDataClass[k],"vs",phenoDataClass[l], sep=""), xlab = "Retention Time (min)", ylab = "TIC")
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
305 colvect<-NULL
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
306 for (j in 1:length(classnames[[k]])) {
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
307 tic <- TIC[[classnames[[k]][j]]]
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
308 # points(tic[,1]/60, tic[,2], col = cols[i], pch = pch[i], type="l")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
309 points(tic[,1]/60, tic[,2], col = cols[classnames[[k]][j]], pch = pch[classnames[[k]][j]], type="l")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
310 colvect<-append(colvect,cols[classnames[[k]][j]])
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
311 }
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
312 for (j in 1:length(classnames[[l]])) {
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
313 # i=class2names[j]
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
314 tic <- TIC[[classnames[[l]][j]]]
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
315 points(tic[,1]/60, -tic[,2], col = cols[classnames[[l]][j]], pch = pch[classnames[[l]][j]], type="l")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
316 colvect<-append(colvect,cols[classnames[[l]][j]])
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
317 }
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
318 legend("topright",paste(basename(files[c(classnames[[k]],classnames[[l]])])), col = colvect, lty = lty, pch = pch)
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
319
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
320 }#end length ==2
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
321
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
322 #case where only one class
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
323 if (length(phenoDataClass)==1){
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
324 k=1
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
325 ylim = range(sapply(TIC, function(x) range(x[,2])))
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
326
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
327 plot(0, 0, type="n", xlim = xlim/60, ylim = ylim, main = paste("Total Ion Chromatograms \n","TICs_",phenoDataClass[k], sep=""), xlab = "Retention Time (min)", ylab = "TIC")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
328 colvect<-NULL
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
329 for (j in 1:length(classnames[[k]])) {
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
330 tic <- TIC[[classnames[[k]][j]]]
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
331 # points(tic[,1]/60, tic[,2], col = cols[i], pch = pch[i], type="l")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
332 points(tic[,1]/60, tic[,2], col = cols[classnames[[k]][j]], pch = pch[classnames[[k]][j]], type="l")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
333 colvect<-append(colvect,cols[classnames[[k]][j]])
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
334 }
16
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
335
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
336 legend("topright",paste(basename(files[c(classnames[[k]])])), col = colvect, lty = lty, pch = pch)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
337
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
338 }#end length ==1
16
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
339
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
340 dev.off() #pdf(pdfname,w=16,h=10)
16
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
341
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
342 invisible(TIC)
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
343 }
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
344
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
345
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
346
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
347 ##
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
348 ## Get the polarities from all the samples of a condition
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
349 #@author Misharl Monsoor misharl.monsoor@sb-roscoff.fr ABiMS TEAM
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
350 #@author Gildas Le Corguille lecorguille@sb-roscoff.fr ABiMS TEAM
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
351 getSampleMetadata <- function(xcmsSet=NULL, sampleMetadataOutput="sampleMetadata.tsv") {
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
352 cat("Creating the sampleMetadata file...\n")
16
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
353
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
354 #Create the sampleMetada dataframe
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
355 sampleMetadata=xset@phenoData
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
356 sampleNamesOrigin=rownames(sampleMetadata)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
357 sampleNamesMakeNames=make.names(sampleNamesOrigin)
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
358
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
359 if (any(duplicated(sampleNamesMakeNames))) {
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
360 write("\n\nERROR: Usually, R has trouble to deal with special characters in its column names, so it rename them using make.names().\nIn your case, at least two columns after the renaming obtain the same name, thus XCMS will collapse those columns per name.", stderr())
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
361 for (sampleName in sampleNamesOrigin) {
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
362 write(paste(sampleName,"\t->\t",make.names(sampleName)),stderr())
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
363 }
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
364 stop("\n\nERROR: One or more of your files will not be import by xcmsSet. It may due to bad characters in their filenames.")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
365 }
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
366
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
367 if (!all(sampleNamesOrigin == sampleNamesMakeNames)) {
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
368 cat("\n\nWARNING: Usually, R has trouble to deal with special characters in its column names, so it rename them using make.names()\nIn your case, one or more sample names will be renamed in the sampleMetadata and dataMatrix files:\n")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
369 for (sampleName in sampleNamesOrigin) {
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
370 cat(paste(sampleName,"\t->\t",make.names(sampleName),"\n"))
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
371 }
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
372 }
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
373
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
374 sampleMetadata$sampleMetadata=sampleNamesMakeNames
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
375 sampleMetadata=cbind(sampleMetadata["sampleMetadata"],sampleMetadata["class"]) #Reorder columns
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
376 rownames(sampleMetadata)=NULL
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
377
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
378 #Create a list of files name in the current directory
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
379 list_files=xset@filepaths
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
380 #For each sample file, the following actions are done
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
381 for (file in list_files){
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
382 #Check if the file is in the CDF format
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
383 if (!mzR:::netCDFIsFile(file)){
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
384
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
385 # If the column isn't exist, with add one filled with NA
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
386 if (is.null(sampleMetadata$polarity)) sampleMetadata$polarity=NA
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
387
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
388 #Create a simple xcmsRaw object for each sample
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
389 xcmsRaw=xcmsRaw(file)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
390 #Extract the polarity (a list of polarities)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
391 polarity=xcmsRaw@polarity
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
392 #Verify if all the scans have the same polarity
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
393 uniq_list=unique(polarity)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
394 if (length(uniq_list)>1){
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
395 polarity="mixed"
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
396 } else {
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
397 polarity=as.character(uniq_list)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
398 }
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
399 #Transforms the character to obtain only the sample name
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
400 filename=basename(file)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
401 library(tools)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
402 samplename=file_path_sans_ext(filename)
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
403
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
404 #Set the polarity attribute
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
405 sampleMetadata$polarity[sampleMetadata$sampleMetadata==samplename]=polarity
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
406
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
407 #Delete xcmsRaw object because it creates a bug for the fillpeaks step
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
408 rm(xcmsRaw)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
409 }
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
410
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
411 }
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
412
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
413 write.table(sampleMetadata, sep="\t", quote=FALSE, row.names=FALSE, file=sampleMetadataOutput)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
414
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
415 return(list("sampleNamesOrigin"=sampleNamesOrigin,"sampleNamesMakeNames"=sampleNamesMakeNames))
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
416
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
417 }
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
418
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
419
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
420 ##
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
421 ## This function check if xcms will found all the files
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
422 ##
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
423 #@author Gildas Le Corguille lecorguille@sb-roscoff.fr ABiMS TEAM
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
424 checkFilesCompatibilityWithXcms <- function(directory) {
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
425 cat("Checking files filenames compatibilities with xmcs...\n")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
426 # WHAT XCMS WILL FIND
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
427 filepattern <- c("[Cc][Dd][Ff]", "[Nn][Cc]", "([Mm][Zz])?[Xx][Mm][Ll]","[Mm][Zz][Dd][Aa][Tt][Aa]", "[Mm][Zz][Mm][Ll]")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
428 filepattern <- paste(paste("\\.", filepattern, "$", sep = ""),collapse = "|")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
429 info <- file.info(directory)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
430 listed <- list.files(directory[info$isdir], pattern = filepattern,recursive = TRUE, full.names = TRUE)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
431 files <- c(directory[!info$isdir], listed)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
432 files_abs <- file.path(getwd(), files)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
433 exists <- file.exists(files_abs)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
434 files[exists] <- files_abs[exists]
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
435 files[exists] <- sub("//","/",files[exists])
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
436
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
437 # WHAT IS ON THE FILESYSTEM
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
438 filesystem_filepaths=system(paste("find $PWD/",directory," -not -name '\\.*' -not -path '*conda-env*' -type f -name \"*\"", sep=""), intern=T)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
439 filesystem_filepaths=filesystem_filepaths[grep(filepattern, filesystem_filepaths, perl=T)]
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
440
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
441 # COMPARISON
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
442 if (!is.na(table(filesystem_filepaths %in% files)["FALSE"])) {
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
443 write("\n\nERROR: List of the files which will not be imported by xcmsSet",stderr())
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
444 write(filesystem_filepaths[!(filesystem_filepaths %in% files)],stderr())
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
445 stop("\n\nERROR: One or more of your files will not be import by xcmsSet. It may due to bad characters in their filenames.")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
446 }
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
447 }
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
448
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
449
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
450
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
451 ##
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
452 ## This function check if XML contains special caracters. It also checks integrity and completness.
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
453 ##
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
454 #@author Misharl Monsoor misharl.monsoor@sb-roscoff.fr ABiMS TEAM
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
455 checkXmlStructure <- function (directory) {
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
456 cat("Checking XML structure...\n")
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
457
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
458 cmd=paste("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;")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
459 capture=system(cmd,intern=TRUE)
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
460
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
461 if (length(capture)>0){
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
462 #message=paste("The following mzXML or mzML file is incorrect, please check these files first:",capture)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
463 write("\n\nERROR: The following mzXML or mzML file(s) are incorrect, please check these files first:", stderr())
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
464 write(capture, stderr())
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
465 stop("ERROR: xcmsSet cannot continue with incorrect mzXML or mzML files")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
466 }
16
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
467
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
468 }
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
469
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
470
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
471 ##
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
472 ## This function check if XML contain special characters
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
473 ##
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
474 #@author Misharl Monsoor misharl.monsoor@sb-roscoff.fr ABiMS TEAM
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
475 deleteXmlBadCharacters<- function (directory) {
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
476 cat("Checking Non ASCII characters in the XML...\n")
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
477
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
478 processed=F
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
479 l=system( paste("find",directory, "-not -name '\\.*' -not -path '*conda-env*' -type f -iname '*.*ml*'"),intern=TRUE)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
480 for (i in l){
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
481 cmd=paste("LC_ALL=C grep '[^ -~]' \"",i,"\"",sep="")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
482 capture=suppressWarnings(system(cmd,intern=TRUE))
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
483 if (length(capture)>0){
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
484 cmd=paste("perl -i -pe 's/[^[:ascii:]]//g;'",i)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
485 print( paste("WARNING: Non ASCII characters have been removed from the ",i,"file") )
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
486 c=system(cmd,intern=TRUE)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
487 capture=""
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
488 processed=T
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
489 }
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
490 }
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
491 if (processed) cat("\n\n")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
492 return(processed)
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
493 }
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
494
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
495
16
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
496 ##
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
497 ## This function will compute MD5 checksum to check the data integrity
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
498 ##
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
499 #@author Gildas Le Corguille lecorguille@sb-roscoff.fr
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
500 getMd5sum <- function (directory) {
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
501 cat("Compute md5 checksum...\n")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
502 # WHAT XCMS WILL FIND
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
503 filepattern <- c("[Cc][Dd][Ff]", "[Nn][Cc]", "([Mm][Zz])?[Xx][Mm][Ll]","[Mm][Zz][Dd][Aa][Tt][Aa]", "[Mm][Zz][Mm][Ll]")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
504 filepattern <- paste(paste("\\.", filepattern, "$", sep = ""),collapse = "|")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
505 info <- file.info(directory)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
506 listed <- list.files(directory[info$isdir], pattern = filepattern,recursive = TRUE, full.names = TRUE)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
507 files <- c(directory[!info$isdir], listed)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
508 exists <- file.exists(files)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
509 files <- files[exists]
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
510
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
511 library(tools)
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
512
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
513 #cat("\n\n")
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
514
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
515 return(as.matrix(md5sum(files)))
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
516 }
24
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
517
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
518
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
519 # This function get the raw file path from the arguments
29
5dba1c94fb94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit bff1445c9b00ccdbe05ee3dc6ed24221033384b9
lecorguille
parents: 27
diff changeset
520 getRawfilePathFromArguments <- function(singlefile, zipfile, listArguments) {
24
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
521 if (!is.null(listArguments[["zipfile"]])) zipfile = listArguments[["zipfile"]]
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
522 if (!is.null(listArguments[["zipfilePositive"]])) zipfile = listArguments[["zipfilePositive"]]
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
523 if (!is.null(listArguments[["zipfileNegative"]])) zipfile = listArguments[["zipfileNegative"]]
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
524
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
525 if (!is.null(listArguments[["singlefile_galaxyPath"]])) {
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
526 singlefile_galaxyPaths = listArguments[["singlefile_galaxyPath"]];
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
527 singlefile_sampleNames = listArguments[["singlefile_sampleName"]]
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
528 }
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
529 if (!is.null(listArguments[["singlefile_galaxyPathPositive"]])) {
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
530 singlefile_galaxyPaths = listArguments[["singlefile_galaxyPathPositive"]];
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
531 singlefile_sampleNames = listArguments[["singlefile_sampleNamePositive"]]
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
532 }
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
533 if (!is.null(listArguments[["singlefile_galaxyPathNegative"]])) {
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
534 singlefile_galaxyPaths = listArguments[["singlefile_galaxyPathNegative"]];
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
535 singlefile_sampleNames = listArguments[["singlefile_sampleNameNegative"]]
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
536 }
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
537 if (exists("singlefile_galaxyPaths")){
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
538 singlefile_galaxyPaths = unlist(strsplit(singlefile_galaxyPaths,","))
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
539 singlefile_sampleNames = unlist(strsplit(singlefile_sampleNames,","))
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
540
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
541 singlefile=NULL
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
542 for (singlefile_galaxyPath_i in seq(1:length(singlefile_galaxyPaths))) {
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
543 singlefile_galaxyPath=singlefile_galaxyPaths[singlefile_galaxyPath_i]
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
544 singlefile_sampleName=singlefile_sampleNames[singlefile_galaxyPath_i]
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
545 singlefile[[singlefile_sampleName]] = singlefile_galaxyPath
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
546 }
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
547 }
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
548 for (argument in c("zipfile","zipfilePositive","zipfileNegative","singlefile_galaxyPath","singlefile_sampleName","singlefile_galaxyPathPositive","singlefile_sampleNamePositive","singlefile_galaxyPathNegative","singlefile_sampleNameNegative")) {
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
549 listArguments[[argument]]=NULL
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
550 }
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
551 return(list(zipfile=zipfile, singlefile=singlefile, listArguments=listArguments))
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
552 }
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
553
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
554
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
555 # This function retrieve the raw file in the working directory
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
556 # - if zipfile: unzip the file with its directory tree
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
557 # - if singlefiles: set symlink with the good filename
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
558 retrieveRawfileInTheWorkingDirectory <- function(singlefile, zipfile) {
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
559 if(!is.null(singlefile) && (length("singlefile")>0)) {
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
560 for (singlefile_sampleName in names(singlefile)) {
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
561 singlefile_galaxyPath = singlefile[[singlefile_sampleName]]
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
562 if(!file.exists(singlefile_galaxyPath)){
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
563 error_message=paste("Cannot access the sample:",singlefile_sampleName,"located:",singlefile_galaxyPath,". Please, contact your administrator ... if you have one!")
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
564 print(error_message); stop(error_message)
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
565 }
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
566
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
567 file.symlink(singlefile_galaxyPath,singlefile_sampleName)
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
568 }
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
569 directory = "."
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
570
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
571 }
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
572 if(!is.null(zipfile) && (zipfile!="")) {
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
573 if(!file.exists(zipfile)){
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
574 error_message=paste("Cannot access the Zip file:",zipfile,". Please, contact your administrator ... if you have one!")
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
575 print(error_message)
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
576 stop(error_message)
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
577 }
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
578
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
579 #list all file in the zip file
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
580 #zip_files=unzip(zipfile,list=T)[,"Name"]
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
581
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
582 #unzip
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
583 suppressWarnings(unzip(zipfile, unzip="unzip"))
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
584
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
585 #get the directory name
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
586 filesInZip=unzip(zipfile, list=T);
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
587 directories=unique(unlist(lapply(strsplit(filesInZip$Name,"/"), function(x) x[1])));
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
588 directories=directories[!(directories %in% c("__MACOSX")) & file.info(directories)$isdir]
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
589 directory = "."
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
590 if (length(directories) == 1) directory = directories
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
591
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
592 cat("files_root_directory\t",directory,"\n")
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
593
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
594 }
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
595 return (directory)
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
596 }