Mercurial > repos > pieterlukasse > prims_metabolomics2
comparison metaMS_cmd_pick_and_group.r @ 0:dffc38727496
initial commit
author | pieter.lukasse@wur.nl |
---|---|
date | Sat, 07 Feb 2015 22:02:00 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:dffc38727496 |
---|---|
1 ## read args: | |
2 args <- commandArgs(TRUE) | |
3 ## data files, e.g. "E:/Rworkspace/metaMS/data/data.zip" (with e.g. .CDF files) and unzip output dir, e.g. "E:/" | |
4 args.dataZip <- args[1] | |
5 args.zipExtrDir <- sub("\\.","_",paste(args[1],"dir", sep="")) | |
6 dir.create(file.path(args.zipExtrDir), showWarnings = FALSE, recursive = TRUE) | |
7 ## settings file, e.g. "E:/Rworkspace/metaMS/data/settings.r", should contain assignment to an object named "customMetaMSsettings" | |
8 args.settings <- args[2] | |
9 | |
10 ## output file names, e.g. "E:/Rworkspace/metaMS/data/out.txt" | |
11 args.outPeakTable <- args[3] | |
12 args.xsetOut <- args[4] | |
13 | |
14 # polarity as explicit parameter: | |
15 args.runLC_polarity <- args[5] | |
16 | |
17 ## report files | |
18 args.htmlReportFile <- args[6] | |
19 args.htmlReportFile.files_path <- args[7] | |
20 | |
21 | |
22 if (length(args) == 8) | |
23 { | |
24 args.outLogFile <- args[8] | |
25 # suppress messages: | |
26 # Send all STDERR to STDOUT using sink() see http://mazamascience.com/WorkingWithData/?p=888 | |
27 msg <- file(args.outLogFile, open="wt") | |
28 sink(msg, type="message") | |
29 sink(msg, type="output") | |
30 } | |
31 | |
32 cat("\nSettings used===============:\n") | |
33 cat(readChar(args.settings, 1e5)) | |
34 | |
35 | |
36 tryCatch( | |
37 { | |
38 library(metaMS) | |
39 | |
40 ## load the data files from a zip file | |
41 files <- unzip(args.dataZip, exdir=args.zipExtrDir) | |
42 | |
43 ## load settings "script" into "customMetaMSsettings" | |
44 tempEnv <- new.env() | |
45 source(args.settings, local=tempEnv) | |
46 message(paste(" loaded : ", args.settings)) | |
47 allSettings <- tempEnv[["customMetaMSsettings"]] | |
48 | |
49 # trigger runLC: | |
50 LC <- runLC(files, settings = allSettings, polarity=args.runLC_polarity, nSlaves=20, returnXset = TRUE) | |
51 | |
52 # write out runLC annotation results: | |
53 write.table(LC$PeakTable, args.outPeakTable, sep="\t", row.names=FALSE) | |
54 | |
55 # save xset as rdata: | |
56 xsAnnotatePreparedData <- LC$xset | |
57 saveRDS(xsAnnotatePreparedData, file=args.xsetOut) | |
58 | |
59 message("\nGenerating report.........") | |
60 # report | |
61 dir.create(file.path(args.htmlReportFile.files_path), showWarnings = FALSE, recursive = TRUE) | |
62 html <- "<html><body><h1>Info on alignment quality </h1>" | |
63 # TODO add (nr and mass error) and group size | |
64 | |
65 message("\nPlotting figures... ") | |
66 figureName <- paste(args.htmlReportFile.files_path, "/figure_retcor.png", sep="") | |
67 html <- paste(html,"<img src='figure_retcor.png' /><br/>", sep="") | |
68 png( figureName, type="cairo", width=1100,height=600 ) | |
69 retcor(LC$xset@xcmsSet, method="peakgroups", plottype = "mdevden") | |
70 html <- paste(html,"<a>*NB: retention time correction plot based on 'peakgroups' option with default settings. This is not the plot matching the exact settings used in the run, | |
71 but just intended to give a rough estimate of the retention time shifts present in the data. A more accurate plot will be available once | |
72 this option is added in metaMS API. </a><br/>", sep="") | |
73 devname = dev.off() | |
74 | |
75 | |
76 gt <- groups(LC$xset@xcmsSet) | |
77 groupidx1 <- which(gt[,"rtmed"] > 0 & gt[,"rtmed"] < 3000 & gt[,"npeaks"] > 3) | |
78 | |
79 html <- paste(html,"</body><html>") | |
80 message("finished generating report") | |
81 write(html,file=args.htmlReportFile) | |
82 # unlink(args.htmlReportFile) | |
83 cat("\nWarnings================:\n") | |
84 str( warnings() ) | |
85 }, | |
86 error=function(cond) { | |
87 sink(NULL, type="message") # default setting | |
88 sink(stderr(), type="output") | |
89 message("\nERROR: ===========\n") | |
90 print(cond) | |
91 } | |
92 ) |