annotate w4mcorcov_util.R @ 7:ca9938f2eb6a draft default tip

"planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 5fd9687d543a48a715b1180caf93abebebd58b0e"
author eschen42
date Tue, 17 Nov 2020 23:29:59 +0000
parents 0b49916c5c52
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
50a07adddfbd planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 52e588e19fe93d83d221710bb75559c5700ba637
eschen42
parents:
diff changeset
1 # tryCatchFunc wraps an expression that produces a value if it does not stop:
50a07adddfbd planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 52e588e19fe93d83d221710bb75559c5700ba637
eschen42
parents:
diff changeset
2 # tryCatchFunc produces a list
50a07adddfbd planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 52e588e19fe93d83d221710bb75559c5700ba637
eschen42
parents:
diff changeset
3 # On success of expr(), tryCatchFunc produces
50a07adddfbd planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 52e588e19fe93d83d221710bb75559c5700ba637
eschen42
parents:
diff changeset
4 # list(success TRUE, value = expr(), msg = "")
50a07adddfbd planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 52e588e19fe93d83d221710bb75559c5700ba637
eschen42
parents:
diff changeset
5 # On failure of expr(), tryCatchFunc produces
50a07adddfbd planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 52e588e19fe93d83d221710bb75559c5700ba637
eschen42
parents:
diff changeset
6 # list(success = FALSE, value = NA, msg = "the error message")
50a07adddfbd planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 52e588e19fe93d83d221710bb75559c5700ba637
eschen42
parents:
diff changeset
7 tryCatchFunc <- function(expr) {
50a07adddfbd planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 52e588e19fe93d83d221710bb75559c5700ba637
eschen42
parents:
diff changeset
8 # format error for logging
50a07adddfbd planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 52e588e19fe93d83d221710bb75559c5700ba637
eschen42
parents:
diff changeset
9 format_error <- function(e) {
50a07adddfbd planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 52e588e19fe93d83d221710bb75559c5700ba637
eschen42
parents:
diff changeset
10 paste(c("Error { message:", e$message, ", call:", e$call, "}"), collapse = " ")
50a07adddfbd planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 52e588e19fe93d83d221710bb75559c5700ba637
eschen42
parents:
diff changeset
11 }
50a07adddfbd planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 52e588e19fe93d83d221710bb75559c5700ba637
eschen42
parents:
diff changeset
12 retval <- NULL
50a07adddfbd planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 52e588e19fe93d83d221710bb75559c5700ba637
eschen42
parents:
diff changeset
13 tryCatch(
50a07adddfbd planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 52e588e19fe93d83d221710bb75559c5700ba637
eschen42
parents:
diff changeset
14 expr = {
50a07adddfbd planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 52e588e19fe93d83d221710bb75559c5700ba637
eschen42
parents:
diff changeset
15 retval <- ( list( success = TRUE, value = eval(expr = expr), msg = "" ) )
50a07adddfbd planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 52e588e19fe93d83d221710bb75559c5700ba637
eschen42
parents:
diff changeset
16 }
50a07adddfbd planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 52e588e19fe93d83d221710bb75559c5700ba637
eschen42
parents:
diff changeset
17 , error = function(e) {
50a07adddfbd planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 52e588e19fe93d83d221710bb75559c5700ba637
eschen42
parents:
diff changeset
18 retval <<- list( success = FALSE, value = NA, msg = format_error(e) )
50a07adddfbd planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 52e588e19fe93d83d221710bb75559c5700ba637
eschen42
parents:
diff changeset
19 }
50a07adddfbd planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 52e588e19fe93d83d221710bb75559c5700ba637
eschen42
parents:
diff changeset
20 )
50a07adddfbd planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 52e588e19fe93d83d221710bb75559c5700ba637
eschen42
parents:
diff changeset
21 return (retval)
50a07adddfbd planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 52e588e19fe93d83d221710bb75559c5700ba637
eschen42
parents:
diff changeset
22 }
50a07adddfbd planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 52e588e19fe93d83d221710bb75559c5700ba637
eschen42
parents:
diff changeset
23
6
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
24 errorSink <- function(which_function, ...) {
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
25 var_args <- "..."
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
26 tryCatch(
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
27 var_args <<- (deparse(..., width.cutoff = 60))
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
28 , error = function(e) {print(e$message)}
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
29 )
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
30 if (var_args == "...")
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
31 return
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
32 # format error for logging
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
33 format_error <- function(e) {
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
34 sprintf(
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
35 "Error\n{ message: %s\n, arguments: %s\n}\n"
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
36 , e$message
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
37 , Reduce(f = paste, x = var_args)
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
38 )
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
39 }
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
40 format_warning <- function(e) {
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
41 sprintf(
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
42 "Warning\n{ message: %s\n, arguments: %s\n}\n"
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
43 , e$message
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
44 , Reduce(f = paste, x = var_args)
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
45 )
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
46 }
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
47 sink_number <- sink.number()
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
48 sink(stderr())
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
49 tryCatch(
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
50 var_args <- (deparse(..., width.cutoff = 60))
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
51 , expr = {
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
52 retval <- which_function(...)
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
53 }
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
54 , error = function(e) cat(format_error(e), file = stderr())
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
55 , warning = function(w) cat(format_warning(w), file = stderr())
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
56 )
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
57 while (sink.number() > sink_number) {
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
58 sink()
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
59 }
0
50a07adddfbd planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 52e588e19fe93d83d221710bb75559c5700ba637
eschen42
parents:
diff changeset
60 }
6
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
61 errorPrint <- function(...) {
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
62 errorSink(which_function = print, ...)
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
63 }
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
64 errorCat <- function(...) {
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
65 errorSink(which_function = cat, ..., "\n")
0
50a07adddfbd planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 52e588e19fe93d83d221710bb75559c5700ba637
eschen42
parents:
diff changeset
66 }
50a07adddfbd planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 52e588e19fe93d83d221710bb75559c5700ba637
eschen42
parents:
diff changeset
67
50a07adddfbd planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 52e588e19fe93d83d221710bb75559c5700ba637
eschen42
parents:
diff changeset
68
6
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
69 # # pseudo-inverse - computational inverse of non-square matrix a
0
50a07adddfbd planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 52e588e19fe93d83d221710bb75559c5700ba637
eschen42
parents:
diff changeset
70 # p.i <- function(a) {
50a07adddfbd planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 52e588e19fe93d83d221710bb75559c5700ba637
eschen42
parents:
diff changeset
71 # solve(t(a) %*% a) %*% t(a)
50a07adddfbd planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 52e588e19fe93d83d221710bb75559c5700ba637
eschen42
parents:
diff changeset
72 # }
50a07adddfbd planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 52e588e19fe93d83d221710bb75559c5700ba637
eschen42
parents:
diff changeset
73
6
0b49916c5c52 planemo upload for repository https://github.com/HegemanLab/w4mcorcov_galaxy_wrapper/tree/master commit 4428e3252d54c8a8e0e5d85e8eaaeb13e9b21de7
eschen42
parents: 0
diff changeset
74 # vim: sw=2 ts=2 et ai :