@sjcrh/proteinpaint-server 2.19.0 → 2.19.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/utils/wilcoxon.R CHANGED
@@ -12,14 +12,21 @@
12
12
  # Results are written in JSON format to stdout.
13
13
 
14
14
  # Input JSON specifications:
15
- # {
16
- # id: {} id of data entry
17
- # group1values: [] group 1 values
18
- # group2values: [] group 2 values
19
- # }
15
+ # [{
16
+ # group1_id: group1 id,
17
+ # group1_values: [] group1 data values,
18
+ # group2_id: group2 id,
19
+ # group2_values: [] group2 data values
20
+ # }]
20
21
  #
21
22
  # Output JSON specifications:
22
- # { id: p-value }
23
+ # [{
24
+ # group1_id: group1 id,
25
+ # group1_values: [] group1 data values,
26
+ # group2_id: group2 id,
27
+ # group2_values: [] group2 data values,
28
+ # pvalue: p-value of test
29
+ # }]
23
30
 
24
31
 
25
32
  ########
@@ -36,12 +43,12 @@ dat <- fromJSON(infile)
36
43
 
37
44
  # function to compute wilcox p-value between two groups of values
38
45
  getPvalue <- function(x) {
39
- if (length(x$group1values) == 0 || length(x$group2values) == 0) {
46
+ if (length(x$group1_values) == 0 || length(x$group2_values) == 0) {
40
47
  # all samples fall in one group
41
48
  # return NA p-value
42
49
  return(unbox("NA"))
43
50
  }
44
-
51
+
45
52
  # perform Wilcox test between groups
46
53
  # suppress warnings because a warning message will be
47
54
  # generated when sample size is small (<50) and ties
@@ -50,14 +57,17 @@ getPvalue <- function(x) {
50
57
  # still be computed using a normal approximation
51
58
  # NOTE: do not set exact=TRUE because this will use large
52
59
  # amounts of memory when sample sizes are large
53
- wt <- suppressWarnings(wilcox.test(x$group1values, x$group2values))
54
-
60
+ wt <- suppressWarnings(wilcox.test(x$group1_values, x$group2_values))
61
+
55
62
  # return p-value
56
63
  return(unbox(wt$p.value))
57
64
  }
58
65
 
59
66
  # compute Wilcox p-value for each data entry
60
- pvalues <- lapply(dat, getPvalue)
67
+ pvalues <- apply(dat, 1, getPvalue)
68
+
69
+ # append p-values to data
70
+ datWithPvalues <- cbind(dat, "pvalue" = pvalues, stringsAsFactors = F)
61
71
 
62
- # output p-values
63
- toJSON(pvalues)
72
+ # output data with p-values
73
+ toJSON(datWithPvalues)