annotate xcms_differential_analysis.r @ 49:f772a5caa86a

Added more options and better documentation. Added MsClust support for parsing XCMS alignment results. Improved output reports for XCMS wrappers. New tools.
author pieter.lukasse@wur.nl
date Wed, 10 Dec 2014 22:03:27 +0100
parents e67149fbff20
children 10f3cb998c4e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
41
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
1 ## read args:
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
2 args <- commandArgs(TRUE)
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
3 #cat("args <- \"\"\n")
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
4 ## a xcms xset saved as .RData
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
5 args.xsetData <- args[1]
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
6 #cat(paste("args.xsetData <- \"", args[1], "\"\n", sep=""))
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
7
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
8 args.class1 <- args[2]
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
9 args.class2 <- args[3]
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
10 #cat(paste("args.class1 <- \"", args[2], "\"\n", sep=""))
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
11 #cat(paste("args.class2 <- \"", args[3], "\"\n", sep=""))
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
12
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
13 args.topcount <- strtoi(args[4])
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
14 #cat(paste("args.topcount <- ", args[4], "\n", sep=""))
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
15
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
16 args.outTable <- args[5]
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
17
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
18 ## report files
49
f772a5caa86a Added more options and better documentation.
pieter.lukasse@wur.nl
parents: 41
diff changeset
19 args.htmlReportFile <- args[6]
f772a5caa86a Added more options and better documentation.
pieter.lukasse@wur.nl
parents: 41
diff changeset
20 args.htmlReportFile.files_path <- args[7]
f772a5caa86a Added more options and better documentation.
pieter.lukasse@wur.nl
parents: 41
diff changeset
21 #cat(paste("args.htmlReportFile <- \"", args[6], "\"\n", sep=""))
f772a5caa86a Added more options and better documentation.
pieter.lukasse@wur.nl
parents: 41
diff changeset
22 #cat(paste("args.htmlReportFile.files_path <- \"", args[7], "\"\n", sep=""))
f772a5caa86a Added more options and better documentation.
pieter.lukasse@wur.nl
parents: 41
diff changeset
23
41
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
24
49
f772a5caa86a Added more options and better documentation.
pieter.lukasse@wur.nl
parents: 41
diff changeset
25 if (length(args) == 8)
f772a5caa86a Added more options and better documentation.
pieter.lukasse@wur.nl
parents: 41
diff changeset
26 {
f772a5caa86a Added more options and better documentation.
pieter.lukasse@wur.nl
parents: 41
diff changeset
27 args.outLogFile <- args[8]
f772a5caa86a Added more options and better documentation.
pieter.lukasse@wur.nl
parents: 41
diff changeset
28 # suppress messages:
f772a5caa86a Added more options and better documentation.
pieter.lukasse@wur.nl
parents: 41
diff changeset
29 # Send all STDERR to STDOUT using sink() see http://mazamascience.com/WorkingWithData/?p=888
f772a5caa86a Added more options and better documentation.
pieter.lukasse@wur.nl
parents: 41
diff changeset
30 msg <- file(args.outLogFile, open="wt")
f772a5caa86a Added more options and better documentation.
pieter.lukasse@wur.nl
parents: 41
diff changeset
31 sink(msg, type="message")
f772a5caa86a Added more options and better documentation.
pieter.lukasse@wur.nl
parents: 41
diff changeset
32 sink(msg, type="output")
f772a5caa86a Added more options and better documentation.
pieter.lukasse@wur.nl
parents: 41
diff changeset
33 }
41
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
34
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
35 tryCatch(
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
36 {
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
37 library(metaMS)
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
38 library(xcms)
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
39 #library("R2HTML")
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
40
49
f772a5caa86a Added more options and better documentation.
pieter.lukasse@wur.nl
parents: 41
diff changeset
41 # load the xset data :
f772a5caa86a Added more options and better documentation.
pieter.lukasse@wur.nl
parents: 41
diff changeset
42 xsetData <- readRDS(args.xsetData)
f772a5caa86a Added more options and better documentation.
pieter.lukasse@wur.nl
parents: 41
diff changeset
43 # if here to support both scenarios:
f772a5caa86a Added more options and better documentation.
pieter.lukasse@wur.nl
parents: 41
diff changeset
44 if ("xcmsSet" %in% slotNames(xsetData) )
f772a5caa86a Added more options and better documentation.
pieter.lukasse@wur.nl
parents: 41
diff changeset
45 {
f772a5caa86a Added more options and better documentation.
pieter.lukasse@wur.nl
parents: 41
diff changeset
46 xsetData <- xsetData@xcmsSet
f772a5caa86a Added more options and better documentation.
pieter.lukasse@wur.nl
parents: 41
diff changeset
47 }
f772a5caa86a Added more options and better documentation.
pieter.lukasse@wur.nl
parents: 41
diff changeset
48
41
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
49
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
50 # info: levels(xcmsSet@phenoData$class) also gives access to the class names
49
f772a5caa86a Added more options and better documentation.
pieter.lukasse@wur.nl
parents: 41
diff changeset
51 dir.create(file.path(args.htmlReportFile.files_path), showWarnings = FALSE, recursive = TRUE)
f772a5caa86a Added more options and better documentation.
pieter.lukasse@wur.nl
parents: 41
diff changeset
52 reporttab <- diffreport(xsetData, args.class1, args.class2, paste(args.htmlReportFile.files_path,"/fig", sep=""), args.topcount, metlin = 0.15, h=480, w=640)
41
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
53
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
54 # write out tsv table:
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
55 write.table(reporttab, args.outTable, sep="\t", row.names=FALSE)
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
56
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
57 message("\nGenerating report.........")
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
58
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
59 cat("<html><body><h1>Differential analysis report</h1>", file= args.htmlReportFile)
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
60 #HTML(reporttab[1:args.topcount,], file= args.htmlReportFile)
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
61 figuresPath <- paste(args.htmlReportFile.files_path, "/fig_eic", sep="")
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
62 message(figuresPath)
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
63 listOfFiles <- list.files(path = figuresPath)
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
64 for (i in 1:length(listOfFiles))
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
65 {
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
66 figureName <- listOfFiles[i]
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
67 # maybe we still need to copy the figures to the args.htmlReportFile.files_path
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
68 cat(paste("<img src='fig_eic/", figureName,"' />", sep=""), file= args.htmlReportFile, append=TRUE)
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
69 cat(paste("<img src='fig_box/", figureName,"' />", sep=""), file= args.htmlReportFile, append=TRUE)
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
70 }
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
71
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
72 message("finished generating report")
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
73 cat("\nWarnings================:\n")
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
74 str( warnings() )
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
75 },
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
76 error=function(cond) {
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
77 sink(NULL, type="message") # default setting
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
78 sink(stderr(), type="output")
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
79 message("\nERROR: ===========\n")
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
80 print(cond)
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
81 }
e67149fbff20 small changes/improvements;
pieter.lukasse@wur.nl
parents:
diff changeset
82 )