annotate xcms_report.r @ 13:61e732103cec draft default tip

Uploaded
author lecorguille
date Wed, 17 Feb 2016 16:42:10 -0500
parents 467dc9b12da5
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
11
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
1 #!/usr/local/public/bin/Rscript --vanilla --slave --no-site-file
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
2 # version="0.1.0"
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
3 #@author Gildas Le Corguille lecorguille@sb-roscoff.fr ABIMS TEAM
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
4
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
5
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
6
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
7 # ----- ARGUMENTS BLACKLIST -----
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
8 #xcms.r
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
9 argBlacklist=c("zipfile","xfunction","xsetRdataOutput","sampleMetadataOutput","ticspdf","bicspdf","rplotspdf")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
10 #CAMERA.r
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
11 argBlacklist=c(argBlacklist,"dataMatrixOutput","variableMetadataOutput","new_file_path")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
12
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
13 # ----- PACKAGE -----
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
14
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
15 pkgs=c("parallel","BiocGenerics", "Biobase", "Rcpp", "mzR", "xcms","snow","batch")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
16 for(pkg in pkgs) {
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
17 suppressPackageStartupMessages( stopifnot( library(pkg, quietly=TRUE, logical.return=TRUE, character.only=TRUE)))
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
18 }
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
19
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
20
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
21 # ----- FUNCTION -----
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
22 writehtml = function(...) { cat(...,"\n", file=htmlOutput,append = TRUE,sep="") }
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
23
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
24
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
25 # ----- ARGUMENTS -----
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
26
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
27 listArguments = parseCommandArgs(evaluate=FALSE) #interpretation of arguments given in command line as an R list of objects
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
28
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
29
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
30 # ----- ARGUMENTS PROCESSING -----
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
31
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
32 #image is an .RData file necessary to use xset variable given by previous tools
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
33 load(listArguments[["image"]]);
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
34
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
35 htmlOutput = "report.html"
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
36 if (!is.null(listArguments[["htmlOutput"]])){
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
37 htmlOutput = listArguments[["htmlOutput"]];
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
38 }
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
39
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
40 user_email = NULL
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
41 if (!is.null(listArguments[["user_email"]])){
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
42 user_email = listArguments[["user_email"]];
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
43 }
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
44
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
45
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
46 # ----- MAIN PROCESSING INFO -----
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
47 writehtml("<!DOCTYPE html>")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
48 writehtml("<HTML lang='en'>")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
49
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
50 writehtml("<HEAD>")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
51 writehtml("<meta http-equiv='Content-Type' content='text/html; charset=UTF-8' />")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
52
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
53 writehtml("<title>[W4M] XCMS analysis report</title>")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
54
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
55 writehtml("<style>")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
56 writehtml("table { min-width: 500px; border:1px solid #D6B161; border-collapse:collapse;}")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
57 writehtml("th { background: #898989; text-align:left;}")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
58 writehtml("tr { border: 1px solid #000000 }")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
59 writehtml("h2 { color: #FFA212; }")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
60 writehtml("ul li { margin-bottom:10px; }")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
61 writehtml("</style>")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
62 writehtml("</HEAD>")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
63
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
64 writehtml("<BODY>")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
65 writehtml("<h1>___ XCMS analysis report using Workflow4Metabolomics ___</h1>")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
66 # to pass the planemo shed_test
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
67 if (user_email != "test@bx.psu.edu") {
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
68 if (!is.null(user_email)) writehtml("By: ",user_email," - ")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
69 writehtml("Date: ",format(Sys.time(), "%y%m%d-%H:%M:%S"))
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
70 }
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
71
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
72
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
73 writehtml("<h2>Samples used:</h2>")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
74 writehtml("<table")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
75 writehtml("<tr><th>sample</th><th>filename</th></tr>")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
76 writehtml(paste("<tr><td>",sampnames(xset),"</td><td>",xset@filepaths,"</td></tr>"))
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
77 writehtml("</table>")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
78
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
79 writehtml("<h2>Function launched:</h2>")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
80 writehtml("<table>")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
81 writehtml("<tr><th>timestamp<br />(ymd-h:m:s)</th><th>function</th><th>argument</th><th>value</th></tr>")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
82 for(tool in names(listOFlistArguments)) {
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
83 listOFlistArgumentsDisplay=listOFlistArguments[[tool]][!(names(listOFlistArguments[[tool]]) %in% argBlacklist)]
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
84
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
85 timestamp = strsplit(tool,"_")[[1]][1]
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
86 xcmsFunction = strsplit(tool,"_")[[1]][2]
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
87 writehtml("<tr><td rowspan='",length(listOFlistArgumentsDisplay),"'>",timestamp,"</td><td rowspan='",length(listOFlistArgumentsDisplay),"'>",xcmsFunction,"</td>")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
88 line_begin=""
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
89 for (arg in names(listOFlistArgumentsDisplay)) {
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
90 writehtml(line_begin,"<td>",arg,"</td><td>",unlist(listOFlistArgumentsDisplay[arg][1]),"</td></tr>")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
91 line_begin="<tr>"
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
92 }
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
93 }
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
94 writehtml("</table>")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
95
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
96 writehtml("<h2>Information about the xcmsSet object:</h2>")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
97
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
98 log_file=file(htmlOutput, open = "at")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
99 writehtml("<pre>")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
100 sink(log_file)
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
101 sink(log_file, type = "output")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
102 xset
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
103 sink()
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
104 writehtml("</pre>")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
105
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
106 writehtml("<h2>Citations:</h2>")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
107 writehtml("<ul>")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
108 writehtml("<li>To cite the <b>XCMS</b> package in publications use:")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
109 writehtml("<ul>")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
110 writehtml("<li>","Smith, C.A. and Want, E.J. and O'Maille, G. and Abagyan,R. and Siuzdak, G.XCMS: Processing mass spectrometry data for metabolite profiling using nonlinear peak alignment, matching and identification, Analytical Chemistry, 78:779-787 (2006)","</li>")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
111 writehtml("<li>","Ralf Tautenhahn, Christoph Boettcher, Steffen Neumann: Highly sensitive feature detection for high resolution LC/MS BMC Bioinformatics, 9:504 (2008)","</li>")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
112 writehtml("<li>","H. Paul Benton, Elizabeth J. Want and Timothy M. D. Ebbels Correction of mass calibration gaps in liquid chromatography-mass spectrometry metabolomics data Bioinformatics, 26:2488 (2010)","</li>")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
113 writehtml("</ul>")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
114 writehtml("</li>")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
115
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
116 writehtml("<li>To cite the <b>CAMERA</b> package in publications use:")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
117 writehtml("<ul>")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
118 writehtml("<li>","Kuhl, C., Tautenhahn, R., Boettcher, C., Larson, T. R. and Neumann,S. CAMERA: an integrated strategy for compound spectra extraction and annotation of liquid chromatography/mass spectrometry data sets. Analytical Chemistry, 84:283-289 (2012)","</li>")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
119 writehtml("</ul>")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
120 writehtml("</li>")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
121
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
122 writehtml("<li>To cite the <b>Workflow4Metabolimics (W4M)</b> project in publications use:")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
123 writehtml("<ul>")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
124 writehtml("<li>","Franck Giacomoni, Gildas Le Corguillé, Misharl Monsoor, Marion Landi, Pierre Pericard, Mélanie Pétéra, Christophe Duperier, Marie Tremblay-Franco, Jean-François Martin, Daniel Jacob, Sophie Goulitquer, Etienne A. Thévenot and Christophe Caron (2014). Workflow4Metabolomics: A collaborative research infrastructure for computational metabolomics. Bioinformatics doi:10.1093/bioinformatics/btu813","</li>")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
125 writehtml("</ul>")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
126 writehtml("</li>")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
127 writehtml("</ul>")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
128
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
129 writehtml("</BODY>")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
130
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
131 writehtml("</HTML>")
467dc9b12da5 Uploaded
lecorguille
parents:
diff changeset
132