annotate rg_nri.xml @ 2:21b12c7c52e4 draft

Fixes to paths in git for deps
author fubar
date Sat, 31 Oct 2015 01:34:27 -0400
parents cf295f36d606
children 31be675baa50
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
1 <tool id="rg_nri" name="NRI" version="0.03">
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
2 <description>and other model improvement measures</description>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
3 <requirements>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
4 <requirement type="package" version="3.2.2">R_3_2_2</requirement>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
5 <requirement type="package" version="1.3.18">graphicsmagick</requirement>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
6 <requirement type="package" version="9.10">ghostscript</requirement>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
7 <requirement type="package" version="3.2">glmnet_lars_3_2</requirement>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
8 </requirements>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
9 <command interpreter="python">
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
10 rgToolFactory.py --script_path "$runme" --interpreter "Rscript" --tool_name "rg_NRI"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
11 --output_dir "$html_file.files_path" --output_html "$html_file" --make_HTML "yes"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
12 </command>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
13 <configfiles>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
14 <configfile name="runme">
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
15
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
16 <![CDATA[
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
17
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
18 ### http://www.researchgate.net/publication/264672640_R_function_for_Risk_Assessment_Plot__reclassification_metrics_NRI_IDI_cfNRI code
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
19 ### http://cjasn.asnjournals.org/content/early/2012/05/24/CJN.09590911.full is the reference
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
20 ### lots of little tweaks and but fixes. Using t as a variable name seems fraught to me.
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
21 ### Ross Lazarus october 2014 for a Galaxy tool wrapper using the toolfactory infrastucture
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
22
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
23 #############################################################################
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
24 ###Functions to create risk assessment plots and associated summary statistics
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
25 #############################################################################
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
26 ###
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
27 ### (c) 2012 Dr John W Pickering, john.pickering@otago.ac.nz, and Dr David Cairns
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
28 ### Last modified August 2014
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
29 ###
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
30 ### Redistribution and use in source and binary forms, with or without
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
31 ### modification, are permitted provided that the following conditions are met:
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
32 ### * Redistributions of source code must retain the above copyright
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
33 ### notice, this list of conditions and the following disclaimer.
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
34 ### * Redistributions in binary form must reproduce the above copyright
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
35 ### notice, this list of conditions and the following disclaimer in
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
36 ### the documentation and/or other materials provided with the distribution
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
37
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
38 ### FUNCTIONS
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
39 ### raplot
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
40 ### Produces a Risk Assessment Plot and outputs the coordinates of the four curves
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
41 ### Based on: Pickering, J. W. and Endre, Z. H. (2012). New Metrics for Assessing Diagnostic Potential of
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
42 ### Candidate Biomarkers. Clinical Journal of the American Society of Nephrology, 7, 1355–1364. doi:10.2215/CJN.09590911
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
43 ###
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
44 ### statistics.raplot
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
45 ### Produces the NRIs, IDIs, IS, IP, AUCs.
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
46 ### Based on: Pencina, M. J., D'Agostino, R. B. and Steyerberg, E. W. (2011).
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
47 ### Extensions of net reclassification improvement calculations to measure usefulness of new biomarkers. Statistics in Medicine, 30(1), 11–21. doi:10.1002/sim.4085
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
48 ### Pencina, M. J., D'Agostino, R. B. and Vasan, R. S. (2008). Evaluating the added predictive ability of a new marker: From area under the ROC curve to reclassification and beyond.
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
49 ### Statistics in Medicine, 27(2), 157–172. doi:10.1002/sim.2929
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
50 ### DeLong, E., DeLong, D. and Clarke-Pearson, D. (1988). Comparing the areas under 2 or more correlated receiver operating characteristic curves - a nonparametric approach.
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
51 ### Biometrics, 44(3), 837–845.
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
52 ###
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
53 ### summary.raplot
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
54 ### Produces the NRIs, IDIs, IS, IP, AUCs with confidence intervals using a bootstrap or asymptotic procedure. (I prefer bootstrap which is chosed by cis=c("boot"))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
55
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
56
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
57 ### Required arguments for all functions:
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
58 ### x1 is calculated risk (eg from a glm) for the null model, i.e. predict(,type="response") on a glm object
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
59 ### x2 is calculated risk (eg from a glm) for the alternative model
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
60 ### y is the case-control indicator (0 for controls, 1 for cases)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
61 ### Optional argument
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
62 ### t are the boundaries of the risks for each group (ie 0, 1 and the thresholds beteween. eg c(0,0,3,0,7,1)). If missing, defaults to c(0, the incidence, 1)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
63
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
64
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
65 ### risk assessment plot
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
66
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
67 library('e1071')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
68 library('caret')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
69 library('pROC')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
70 library('Hmisc')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
71 library('pracma')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
72
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
73 raplot = function(x1, x2, y, outplot, title) {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
74
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
75 roc.model1 = roc(y, x1)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
76 roc.model2 = roc(y, x2)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
77 sens.model1 = roc.model1\$sensitivities
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
78 spec.model1 = 1 - roc.model1\$specificities
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
79 n.model1 = length(sens.model1)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
80 thresh.model1 = roc.model1\$thresholds
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
81 thresh.model1 = thresh.model1[c(-1,-n.model1)]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
82 sens.model1 = sens.model1[c(-1,-n.model1)]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
83 spec.model1 = spec.model1[c(-1,-n.model1)]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
84 sens.model2 = roc.model2\$sensitivities
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
85 spec.model2 = 1 - roc.model2\$specificities
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
86 n.model2 = length(sens.model2)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
87 thresh.model2 = roc.model2\$thresholds
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
88 thresh.model2[1]=0
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
89 thresh.model2[length(thresh.model2)]=1
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
90 thresh.model2 = thresh.model2[c(-1,-n.model2)]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
91 sens.model2 = sens.model2[c(-1,-n.model2)]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
92 spec.model2 = spec.model2[c(-1,-n.model2)]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
93
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
94 n.model1 = length(sens.model1)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
95 n.model2 = length(sens.model2)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
96
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
97 ### actual plotting
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
98 pdf(outplot)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
99 plot(thresh.model1, sens.model1, xlim = c(0, 1), ylim = c(0, 1), type = "n",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
100 lty = 2, lwd = 2, xlab = "Risk of Event", ylab = "", col = "black", main=title)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
101 grid()
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
102
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
103 polygon(x = c(thresh.model1, thresh.model2[n.model2:1]),
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
104 y = c(sens.model1, sens.model2[n.model2:1]), border = NA, col = gray(0.8))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
105 polygon(x = c(thresh.model1, thresh.model2[n.model2:1]),
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
106 y = c(spec.model1, spec.model2[n.model2:1]), border = NA, col = gray(0.8))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
107
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
108 lines(thresh.model1, sens.model1, type = "l", lty = 2, lwd = 2, col = "black")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
109 lines(thresh.model2, sens.model2, type = "l", lty = 1, lwd = 2, col = "black")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
110
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
111 lines(thresh.model1, spec.model1, type = "l", lty = 2, lwd = 2, col = "red")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
112 lines(thresh.model2, spec.model2, type = "l", lty = 1, lwd = 2, col = "red")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
113
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
114 text(x = -0.15, y = 0.4, labels = "Sensitivity, ", col = "black", xpd = TRUE, srt = 90)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
115 text(x = -0.15, y = 0.4 + 0.175, labels = "1-Specificity", col = "red", xpd = TRUE, srt = 90)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
116 legend("topleft", c("Event: New model", "Event: Baseline model",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
117 "No Event: New model", "No Event: Baseline model"),
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
118 col = c("black", "black", "red", "red"),
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
119 lty = c(1,2, 1, 2), lwd = 2, bty = "n")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
120 dev.off()
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
121 return(data.frame("Null.p.sens"=thresh.model1,
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
122 "Null.sens"=sens.model1,
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
123 "Null.p.1spec"=thresh.model1,
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
124 "Null.1spec"=sens.model1,
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
125 "Alt.p.sens"=thresh.model2,
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
126 "Alt.sens"=sens.model2,
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
127 "Alt.p.1spec"=thresh.model2,
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
128 "Alt.1spec"=sens.model2))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
129
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
130 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
131
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
132
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
133
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
134 ### statistics from a raplot (is an adaptation of improveProb() from Hmisc)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
135
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
136 statistics.raplot = function(x1, x2, y, threshvec)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
137 {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
138
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
139 s = is.na(x1 + x2 + y) ###Remove rows with missing data
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
140 if (any(s)) {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
141 smiss = sum(s)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
142 s = !s
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
143 x1 = x1[s]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
144 x2 = x2[s]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
145 y = y[s]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
146 print.noquote(paste('Warning: removed',smiss,'cases with missing values'))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
147 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
148 n = length(y)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
149 y = as.numeric(y)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
150 u = sort(unique(y))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
151 if (length(u) != 2 || u[1] != 0 || u[2] != 1) {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
152 print.noquote("INPUT ERROR: y must have only two values: 0 and 1")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
153 sink()
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
154 quit(save="no",status=2)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
155 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
156 r = range(x1, x2)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
157 if (r[1] < 0 || r[2] > 1) {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
158 print.noquote("INPUT ERROR: x1 and x2 must be in [0,1]")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
159 sink()
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
160 quit(save="no",status=3)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
161 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
162 incidence=sum(y)/n
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
163 if (missing(threshvec)) {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
164 threshvec=c(0, incidence,1)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
165 print(paste('threshvec missing. using',paste(threshvec,collapse=',')))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
166 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
167 a = (y == 1)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
168 b = (y == 0)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
169 na = sum(a)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
170 nb = sum(b)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
171 d = x2 - x1
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
172 ### NRI
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
173 n.thresh=length(threshvec)-1
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
174 risk.class.x1.ev=cut2(x1[a],threshvec)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
175 risk.class.x2.ev=cut2(x2[a],threshvec)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
176 thresh=c()
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
177 lt = length(threshvec)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
178 for (i in 1:(lt-1)) {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
179 thresh[i] = paste("[",toString(threshvec[i]),",",toString(threshvec[i+1]),"]")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
180 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
181 levels(risk.class.x1.ev)=thresh
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
182 levels(risk.class.x2.ev)=thresh
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
183 cM.ev=confusionMatrix(risk.class.x2.ev,risk.class.x1.ev)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
184 pup.ev=0
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
185 pdown.ev=0
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
186 for (i in 1:(n.thresh-1)) { pup.ev = pup.ev + sum(cM.ev\$table[(i+1):n.thresh,i])}
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
187 for (i in 2:n.thresh) { pdown.ev = pdown.ev + sum(cM.ev\$table[1:(i-1),i])}
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
188 pup.ev=pup.ev/na
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
189 pdown.ev=pdown.ev/na
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
190 risk.class.x1.ne=cut2(x1[b],threshvec)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
191 risk.class.x2.ne=cut2(x2[b],threshvec)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
192 levels(risk.class.x1.ne)=thresh
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
193 levels(risk.class.x2.ne)=thresh
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
194 cM.ne=confusionMatrix(risk.class.x2.ne,risk.class.x1.ne)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
195 pup.ne=0
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
196 pdown.ne=0
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
197 for (i in 1:(n.thresh-1)){pup.ne=pup.ev+sum(cM.ne\$table[(i+1):n.thresh,i])}
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
198 for (i in 2:n.thresh){pdown.ne=pdown.ne+sum(cM.ne\$table[1:(i-1),i])}
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
199 pdown.ne=pdown.ne/nb
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
200 pup.ne=pup.ne/nb
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
201 nri = pup.ev - pdown.ev - (pup.ne - pdown.ne)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
202 se.nri = sqrt((pup.ev + pdown.ev)/na + (pup.ne + pdown.ne)/nb)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
203 z.nri = nri/se.nri
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
204 nri.ev = pup.ev - pdown.ev
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
205 se.nri.ev = sqrt((pup.ev + pdown.ev)/na)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
206 z.nri.ev = nri.ev/se.nri.ev
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
207 nri.ne = pdown.ne - pup.ne
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
208 se.nri.ne = sqrt((pdown.ne + pup.ne)/nb)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
209 z.nri.ne = nri.ne/se.nri.ne
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
210 ### Category Free NRI calculations
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
211 cfpup.ev = mean(d[a] > 0)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
212 cfpup.ne = mean(d[b] > 0)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
213 cfpdown.ev = mean(d[a] < 0)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
214 cfpdown.ne = mean(d[b] < 0)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
215 cfnri = cfpup.ev - cfpdown.ev - (cfpup.ne - cfpdown.ne)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
216 se.cfnri = sqrt((cfpup.ev + cfpdown.ev)/na + (cfpup.ne + cfpdown.ne)/nb)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
217 z.cfnri = cfnri/se.cfnri
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
218 cfnri.ev = cfpup.ev - cfpdown.ev
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
219 se.cfnri.ev = sqrt((cfpup.ev + cfpdown.ev)/na)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
220 z.cfnri.ev = cfnri.ev/se.cfnri.ev
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
221 cfnri.ne = cfpdown.ne - cfpup.ne
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
222 se.cfnri.ne = sqrt((cfpdown.ne + cfpup.ne)/nb)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
223 z.cfnri.ne = cfnri.ne/se.cfnri.ne
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
224 ### IDI calculations
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
225 improveSens = sum(d[a])/na
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
226 improveSpec = -sum(d[b])/nb
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
227 idi.ev = mean(improveSens)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
228 idi.ne = mean(improveSpec)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
229 idi = idi.ev - idi.ne
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
230 var.ev = var(d[a])/na
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
231 se.idi.ev = sqrt(var.ev)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
232 z.idi.ev = idi.ev/se.idi.ev
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
233 var.ne = var(d[b])/nb
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
234 se.idi.ne = sqrt(var.ne)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
235 z.idi.ne = idi.ne/se.idi.ne
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
236 se.idi = sqrt(var.ev + var.ne)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
237 z.idi = idi/se.idi
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
238 ### AUC calculations
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
239 roc.x1 = roc(y, x1)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
240 auc.x1 = auc(roc.x1)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
241 ci.auc.x1 = ci.auc(roc.x1)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
242 se.auc.x1 = (ci.auc.x1[3] - auc.x1)/qnorm(0.975)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
243 roc.x2 = roc(y, x2)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
244 auc.x2 = auc(roc.x2)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
245 ci.auc.x2 = ci.auc(roc.x2)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
246 se.auc.x2 = (ci.auc.x2[3] - auc.x2)/qnorm(0.975)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
247 roc.test.x1.x2 = roc.test(roc.x1, roc.x2) ###Uses the default Delong method
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
248 sens.x1 = roc.x1\$sensitivities
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
249 spec.x1 = 1 - roc.x1\$specificities
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
250 n.x1 = length(sens.x1)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
251 x1 = roc.x1\$thresholds
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
252 x1 = x1[c(-1,-n.x1)]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
253 sens.x1 = sens.x1[c(-1,-n.x1)]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
254 spec.x1 = spec.x1[c(-1,-n.x1)]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
255 sens.x2 = roc.x2\$sensitivities
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
256 spec.x2 = 1 - roc.x2\$specificities
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
257 n.x2 = length(sens.x2)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
258 x2 = roc.x2\$thresholds
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
259 x2 = x2[c(-1,-n.x2)]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
260 sens.x2 = sens.x2[c(-1,-n.x2)]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
261 spec.x2 = spec.x2[c(-1,-n.x2)]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
262 ### Integrated sensitivity and 1-specificity calculations
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
263 is.x1 = trapz(x = x1, y = sens.x1) ### area under curves (relates to integrated sens, 1-spec)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
264 is.x2 = trapz(x = x2, y = sens.x2)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
265 ip.x1 = trapz(x = x1, y = spec.x1)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
266 ip.x2 = trapz(x = x2, y = spec.x2)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
267
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
268 ### Output
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
269 output = c(n, na, nb, pup.ev, pup.ne, pdown.ev, pdown.ne, nri, se.nri, z.nri,
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
270 nri.ev, se.nri.ev, z.nri.ev, nri.ne, se.nri.ne, z.nri.ne,
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
271 cfpup.ev, cfpup.ne, cfpdown.ev, cfpdown.ne, cfnri, se.cfnri, z.cfnri,
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
272 cfnri.ev, se.cfnri.ev, z.cfnri.ev, cfnri.ne, se.cfnri.ne, z.cfnri.ne,
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
273 improveSens, improveSpec, idi.ev, se.idi.ev, z.idi.ev, idi.ne,
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
274 se.idi.ne, z.idi.ne, idi, se.idi, z.idi, is.x1, NA, is.x2, NA,
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
275 ip.x1, NA, ip.x2, NA, auc.x1, se.auc.x1, auc.x2, se.auc.x2,
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
276 roc.test.x1.x2\$p.value,incidence)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
277 names(output) = c("n", "na", "nb", "pup.ev", "pup.ne", "pdown.ev", "pdown.ne",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
278 "nri", "se.nri", "z.nri", "nri.ev", "se.nri.ev", "z.nri.ev",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
279 "nri.ne", "se.nri.ne", "z.nri.ne",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
280 "cfpup.ev", "cfpup.ne", "cfpdown.ev", "cfpdown.ne",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
281 "cfnri", "se.cfnri", "z.cfnri", "cfnri.ev", "se.cfnri.ev", "z.cfnri.ev",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
282 "cfnri.ne", "se.cfnri.ne", "z.cfnri.ne", "improveSens", "improveSpec",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
283 "idi.ev", "se.idi.ev", "z.idi.ev", "idi.ne", "se.idi.ne",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
284 "z.idi.ne", "idi", "se.idi", "z.idi", "is.x1", "se.is.x1",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
285 "is.x2", "se.is.x2", "ip.x1", "se.ip.x1", "ip.x2", "se.ip.x2",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
286 "auc.x1", "se.auc.x1", "auc.x2", "se.auc.x2",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
287 "roc.test.x1.x2.pvalue","incidence")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
288 resdf = data.frame(N=n, Na=na, Nb=nb, pup.ev=pup.ev, pup.ne=pup.ne, pdown.ev=pdown.ev, pdown.ne=pdown.ne, NRI=nri, NRI.se=se.nri, NRI.z=z.nri,
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
289 NRI.ev=nri.ev, NRI.ev.se=se.nri.ev, NRI.ev.z=z.nri.ev, NRI.ne=nri.ne, NRI.ne.se=se.nri.ne, NRI.ne.z=z.nri.ne,
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
290 cfpup.ev=cfpup.ev, cfpup.ne=cfpup.ne, cfpdown.ev=cfpdown.ev, cfpdown.ne=cfpdown.ne, CFNRI=cfnri, CFNRI.se=se.cfnri, CFNRI.z=z.cfnri,
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
291 CFNRI.ev=cfnri.ev, CFNRI.ev.se=se.cfnri.ev, CFNRI.ev.z=z.cfnri.ev, CFNRI.ne=cfnri.ne, CFNRI.ne.se=se.cfnri.ne, CFNRI.ne.z=z.cfnri.ne,
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
292 improvSens=improveSens, improvSpec=improveSpec, IDI.ev=idi.ev, IDI.ev.se=se.idi.ev, IDI.ev.z=z.idi.ev, IDI.ne=idi.ne,
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
293 IDI.ne.se=se.idi.ne, IDI.ne.z=z.idi.ne, IDI=idi, IDI.se=se.idi, IDI.z=z.idi, isx1=is.x1, isx2=is.x2,
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
294 ipxi=ip.x1, ipx2=ip.x2, AUC.x1=auc.x1, AUC.x1.se=se.auc.x1, AUC.x2=auc.x2, AUC.x2.se=se.auc.x2,
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
295 roctestpval=roc.test.x1.x2\$p.value,incidence=incidence)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
296 tr = t(resdf)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
297 tresdf = data.frame(measure=colnames(resdf),value=tr[,1])
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
298 return(list(resdf=tresdf,output=output))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
299 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
300
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
301
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
302 ### More comprehensive summary statistics from a raplot
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
303 ### Choice of confidence intervals determined through asymptotics or bootstrapping (n.boot = ### of bootstrap resamples)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
304 ### dp is number of decimal places for results table
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
305
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
306 summary.raplot = function(x1, x2, y, threshvec, cis = "boot", conf.level = 0.95, n.boot = 2000, dp = 4, stat_ra=NA)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
307 {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
308 results = stat_ra
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
309 if (cis == "boot") {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
310 print.noquote("Bootstrap estimates for SE")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
311 results.boot = matrix(NA, n.boot, length(names(results)))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
312
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
313 colnames(results.boot) = names(results)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
314
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
315 for (i in 1:n.boot) {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
316 ###boot.index = sample(length(cc.status), replace = TRUE)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
317 ###risk.model1.boot = risk.model1[boot.index]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
318 ###risk.model2.boot = risk.model2[boot.index]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
319 ###cc.status.boot = cc.status[boot.index]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
320 boot.index = sample(length(y), replace = TRUE)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
321 risk.model1.boot = x1[boot.index]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
322 risk.model2.boot = x2[boot.index]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
323 cc.status.boot = y[boot.index]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
324 r = statistics.raplot(x1 = risk.model1.boot, x2 = risk.model2.boot, y = cc.status.boot)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
325 results.boot[i, ] = r\$output
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
326 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
327
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
328 results.se.boot = apply(results.boot, 2, sd)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
329 print(paste(results.se.boot,collapse=','))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
330
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
331
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
332 results[grep("se", names(results))] = results.se.boot[grep("se", names(results)) - 1]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
333
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
334 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
335
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
336
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
337
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
338 ### calculate cis and return
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
339
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
340 z = abs(qnorm((1 - conf.level)/2))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
341
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
342 results.matrix = matrix(NA, 24, 2)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
343
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
344 results.matrix[1, ] = c("Total (n)", results["n"])
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
345 results.matrix[2, ] = c("Events (n)", results["na"])
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
346 results.matrix[3, ] = c("Non-events (n)", results["nb"])
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
347 results.matrix[4, ] = c("Category free NRI and summary statistics","-------------------------")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
348 results.matrix[5, ] = c("cfNRI events (%)",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
349 paste(round(100*results["cfnri.ev"], dp-2), " (",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
350 round(100*results["cfnri.ev"] - z * 100*results["se.cfnri.ev"], dp-2),
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
351 " to ", round(100*results["cfnri.ev"] +
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
352 z * 100*results["se.cfnri.ev"], dp-2), ")", sep = ""))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
353 results.matrix[6, ] = c("cfNRI non-events (%)",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
354 paste(round(100*results["cfnri.ne"], dp-2), " (",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
355 round(100*results["cfnri.ne"] - z * 100*results["se.cfnri.ne"], dp)-2,
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
356 " to ", round(100*results["cfnri.ne"] + z * 100*results["se.cfnri.ne"],
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
357 dp-2), ")", sep = ""))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
358 results.matrix[7, ] = c("cfNRI (%)",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
359 paste(round(100*results["cfnri"], dp-2), " (",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
360 round(100*results["cfnri"] - z * 100*results["se.cfnri"], dp-2),
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
361 " to ", round(100*results["cfnri"] + z * 100*results["se.cfnri"],
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
362 dp-2), ")", sep = ""))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
363 results.matrix[8, ] = c("NRI and summary statistics","-------------------------")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
364 results.matrix[9, ] = c("NRI events (%)",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
365 paste(round(100*results["nri.ev"], dp-2), " (",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
366 round(100*results["nri.ev"] - z * 100*results["se.nri.ev"], dp-2),
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
367 " to ", round(100*results["nri.ev"] +
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
368 z * 100*results["se.nri.ev"], dp-2), ")", sep = ""))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
369 results.matrix[10, ] = c("NRI non-events (%)",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
370 paste(round(100*results["nri.ne"], dp-2), " (",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
371 round(100*results["nri.ne"] - z * 100*results["se.nri.ne"], dp-2),
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
372 " to ", round(100*results["nri.ne"] + z * 100*results["se.nri.ne"],
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
373 dp-2), ")", sep = ""))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
374 results.matrix[11, ] = c("NRI (%)",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
375 paste(round(100*results["nri"], dp-2), " (",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
376 round(100*results["nri"] - z * 100*results["se.nri"], dp-2),
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
377 " to ", round(100*results["nri"] + z * 100*results["se.nri"],
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
378 dp-2), ")", sep = ""))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
379 results.matrix[12, ] = c("IDI and summary statistics","-------------------------")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
380 results.matrix[13, ] = c("IDI events",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
381 paste(round(results["idi.ev"], dp), " (",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
382 round(results["idi.ev"] - z * results["se.idi.ev"], dp),
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
383 " to ", round(results["idi.ev"] + z * results["se.idi.ev"],
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
384 dp), ")", sep = ""))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
385 results.matrix[14, ] = c("IDI non-events",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
386 paste(round(results["idi.ne"], dp), " (",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
387 round(results["idi.ne"] - z * results["se.idi.ne"], dp),
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
388 " to ", round(results["idi.ne"] + z * results["se.idi.ne"],
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
389 dp), ")", sep = ""))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
390 results.matrix[15, ] = c("IDI",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
391 paste(round(results["idi"], dp), " (",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
392 round(results["idi"] - z * results["se.idi"], dp),
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
393 " to ", round(results["idi"] + z * results["se.idi"],
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
394 dp), ")", sep = ""))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
395 results.matrix[16, ] = c("IS (null model)",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
396 paste(round(results["is.x1"], dp), " (",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
397 round(results["is.x1"] - z * results["se.is.x1"], dp),
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
398 " to ", round(results["is.x1"] + z * results["se.is.x1"],
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
399 dp), ")", sep = ""))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
400 results.matrix[17, ] = c("IS (alt model)",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
401 paste(round(results["is.x2"], dp), " (",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
402 round(results["is.x2"] - z * results["se.is.x2"], dp),
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
403 " to ", round(results["is.x2"] + z * results["se.is.x2"],
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
404 dp), ")", sep = ""))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
405 results.matrix[18, ] = c("IP (null model)",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
406 paste(round(results["ip.x1"], dp), " (",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
407 round(results["ip.x1"] - z * results["se.ip.x1"], dp),
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
408 " to ", round(results["ip.x1"] + z * results["se.ip.x1"],
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
409 dp), ")", sep = ""))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
410 results.matrix[19, ] = c("IP (alt model)",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
411 paste(round(results["ip.x2"], dp), " (",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
412 round(results["ip.x2"] - z * results["se.ip.x2"], dp),
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
413 " to ", round(results["ip.x2"] + z * results["se.ip.x2"],
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
414 dp), ")", sep = ""))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
415 results.matrix[20, ] = c("AUC","-------------------------")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
416 results.matrix[21, ] = c("AUC (null model)",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
417 paste(round(results["auc.x1"], dp), " (",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
418 round(results["auc.x1"] - z * results["se.auc.x1"], dp),
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
419 " to ", round(results["auc.x1"] + z * results["se.auc.x1"],
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
420 dp), ")", sep = ""))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
421 results.matrix[22, ] = c("AUC (alt model)",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
422 paste(round(results["auc.x2"], dp), " (",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
423 round(results["auc.x2"] - z * results["se.auc.x2"], dp),
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
424 " to ", round(results["auc.x2"] + z * results["se.auc.x2"],
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
425 dp), ")", sep = ""))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
426 results.matrix[23, ] = c("difference (P)", round(results["roc.test.x1.x2.pvalue"], dp))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
427 results.matrix[24, ] = c("Incidence", round(results["incidence"], dp))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
428
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
429 return(results.matrix)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
430 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
431
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
432
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
433
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
434 ]]>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
435
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
436 options(width=120)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
437 options(digits=5)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
438 logf = file("rgNRI.log", open = "a")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
439 sink(logf,type = c("output", "message"))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
440 Out_Dir = "$html_file.files_path"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
441 Input1 = "$input1"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
442 Input2 = "$input2"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
443 myTitle = "$title"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
444 outtab = "$nri_file"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
445 input1_obs = $input1_observed
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
446 input1_pred = $input1_predicted
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
447 input1_id = $input1_id
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
448 input2_obs = $input2_observed
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
449 input2_pred = $input2_predicted
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
450 input2_id = $input2_id
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
451 in1 = read.table(Input1,head=T,sep='\t')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
452 in2 = read.table(Input2,head=T,sep='\t')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
453 id1 = in1[,input1_id]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
454 id2 = in2[,input2_id]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
455 useme1 = in1[which(id1 %in% id2),]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
456 useme2 = in2[which(id2 %in% id1),]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
457 id1 = useme1[,input1_id]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
458 id2 = useme2[,input2_id]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
459 useme1 = useme1[order(id1),]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
460 useme2 = useme2[order(id2),]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
461 x1 = useme1[,input1_pred]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
462 x2 = useme2[,input2_pred]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
463 y1 = useme1[,input1_obs]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
464 y2 = useme2[,input2_obs]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
465 n.boot = $CImeth.nboot
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
466 conf.level = 0.95
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
467 cis = "$CImeth.cis"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
468 digits = 4
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
469 nydiff = sum(y1 != y2)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
470 if (nydiff &gt; 0) {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
471 print.noquote(paste('Input error: observed status column has',nydiff,'differences - cannot reliably proceed'))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
472 quit(save="no",status=1)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
473 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
474 y = y2
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
475 outplot = 'rgNRI_EventRisk.pdf'
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
476 res = raplot(x1=x1, x2=x2, y=y, outplot=outplot,title=myTitle)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
477
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
478 stats = statistics.raplot(x1=x1, x2=x2, y=y)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
479 res1 = stats\$resdf
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
480 out1 = stats\$output
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
481 print.noquote('Results:')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
482 print.noquote(res1,digits=4)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
483 res2 = summary.raplot(x1=x1, x2=x2, y=y, cis = cis, conf.level = conf.level, n.boot = n.boot, dp = digits, stat_ra=out1)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
484 print.noquote('Summary:')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
485 print.noquote(res2,digits=4)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
486 write.table(format(res1,digits=4),outtab,quote=F, col.names=F,sep="\t",row.names=F)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
487 print.noquote('SessionInfo for this R session:')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
488 sessionInfo()
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
489 print.noquote('warnings for this R session:')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
490 warnings()
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
491 sink()
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
492 </configfile>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
493 </configfiles>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
494 <inputs>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
495 <param name="title" type="text" value="NRI test" label="Plot Title" help="Will appear as the title for the comparison plot"/>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
496 <param name="input1" type="data" format="tabular" label="Select a tabular file from the baseline model with predicted and observed outcome column for each subject"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
497 multiple='False' help="Observed and predicted status columns must be selected from this file below - NOTE both models must be in same order with exact matches in all observed outcomes" optional="False"/>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
498 <param name="input1_observed" label="Select column containing observed outcome (0 for no event, 1 for an event)" type="data_column" data_ref="input1" numerical="True"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
499 multiple="False" use_header_names="True" optional="False" help = "Observed outcomes are compared in the two files to check that the datasets are from the same data"/>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
500 <param name="input1_predicted" label="Select column containing predicted event probabilies from baseline model" type="data_column" data_ref="input1" numerical="True"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
501 multiple="False" use_header_names="True" optional="False" help="Must be in range 0-1"/>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
502 <param name="input1_id" label="Select column containing subject ID from baseline model" type="data_column" data_ref="input1" numerical="True"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
503 multiple="False" use_header_names="True" optional="False" help="Subect IDs are needed to match subjects to compare predictions in the two inputs"/>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
504 <param name="input2" type="data" format="tabular" label="Select a tabular file from the new model with predicted and observed outcome columns for each subject"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
505 multiple='False' help="Observed and predicted status columns must be selected from this file below" />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
506 <param name="input2_observed" label="Select column containing observed outcome (0 for no event, 1 for an event)" type="data_column" data_ref="input2" numerical="True"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
507 multiple="False" use_header_names="True" optional="False" help = "Observed outcomes are compared in the two files to check that the datasets are from the same data"/>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
508 <param name="input2_predicted" label="Select column containing predicted event probabilities from the new model" type="data_column" data_ref="input2" numerical="True"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
509 multiple="False" use_header_names="True" optional="False" help="Must be in range 0-1"/>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
510 <param name="input2_id" label="Select column containing subject ID from the new model" type="data_column" data_ref="input2" numerical="True"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
511 multiple="False" use_header_names="True" optional="False" help="Subect IDs are needed to match subjects to compare predictions in the two inputs"/>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
512 <conditional name="CImeth">
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
513 <param name="cis" type="select" label="CI calculation method"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
514 help="Bootstrap will take time - a long time for thousands - asymptotic is quick and informative">
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
515 <option value="asymptotic" selected="true">Asymptotic estimate</option>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
516 <option value="boot">Bootstrap for empirical CIs</option>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
517 </param>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
518 <when value="boot">
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
519 <param name="nboot" type="integer" value="1000" label="Number of bootstrap replicates"/>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
520 </when>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
521 <when value="asymptotic">
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
522 <param name="nboot" type="hidden" value="1000"/>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
523 </when>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
524 </conditional>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
525 </inputs>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
526 <outputs>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
527 <data format="html" name="html_file" label="${title}.html"/>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
528 <data format="tabular" name="nri_file" label="${title}_nrires.xls"/>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
529 </outputs>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
530 <tests>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
531 <test>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
532 <param name='title' value='nri_test1' />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
533 <param name='input1' value='nri_test1.xls' ftype='tabular' />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
534 <param name='input2' value='nri_test1.xls' ftype='tabular' />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
535 <param name='input1_id' value="1" />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
536 <param name='input1_observed' value="2" />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
537 <param name='input1_predicted' value="3" />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
538 <param name='input2_observed' value="2" />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
539 <param name='input2_predicted' value="4" />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
540 <output name='html_file' file='nri_test1_out.html' compare='diff' lines_diff='10' />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
541 <output name='nri_file' file='nri_test1_out.xls' />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
542 </test>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
543 </tests>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
544 <help>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
545
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
546 **Before you start**
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
547
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
548 This is a simple tool to calculate various measures of improvement in prediction between two models described in pickering_paper_
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
549 It is based on an R script pickering_code_ written by Dr John W Pickering and Dr David Cairns from sunny Otago University which
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
550 has been debugged and slightly adjusted to fit a Galaxy tool wrapper.
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
551
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
552
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
553 **What it does**
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
554
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
555 Copied from the documentation in pickering_code_ ::
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
556
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
557
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
558 Functions to create risk assessment plots and associated summary statistics
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
559
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
560
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
561 (c) 2012 Dr John W Pickering, john.pickering@otago.ac.nz, and Dr David Cairns
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
562 Last modified August 2014
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
563
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
564 Redistribution and use in source and binary forms, with or without
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
565 modification, are permitted provided that the following conditions are met:
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
566 * Redistributions of source code must retain the above copyright
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
567 notice, this list of conditions and the following disclaimer.
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
568 * Redistributions in binary form must reproduce the above copyright
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
569 notice, this list of conditions and the following disclaimer in
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
570 the documentation and/or other materials provided with the distribution
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
571
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
572 FUNCTIONS
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
573 raplot
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
574 Produces a Risk Assessment Plot and outputs the coordinates of the four curves
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
575 Based on: Pickering, J. W. and Endre, Z. H. (2012). New Metrics for Assessing Diagnostic Potential of
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
576 Candidate Biomarkers. Clinical Journal of the American Society of Nephrology, 7, 1355–1364. doi:10.2215/CJN.09590911
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
577
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
578 statistics.raplot
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
579 Produces the NRIs, IDIs, IS, IP, AUCs.
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
580 Based on: Pencina, M. J., D'Agostino, R. B. and Steyerberg, E. W. (2011). Extensions of net reclassification improvement calculations to
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
581 measure usefulness of new biomarkers. Statistics in Medicine, 30(1), 11–21. doi:10.1002/sim.4085
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
582 Pencina, M. J., D'Agostino, R. B. and Vasan, R. S. (2008). Evaluating the added predictive ability of a new marker: From area under the
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
583 ROC curve to reclassification and beyond.
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
584 Statistics in Medicine, 27(2), 157–172. doi:10.1002/sim.2929
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
585 DeLong, E., DeLong, D. and Clarke-Pearson, D. (1988). Comparing the areas under 2 or more correlated receiver operating characteristic curves - a nonparametric approach.
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
586 Biometrics, 44(3), 837–845.
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
587
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
588 summary.raplot
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
589 Produces the NRIs, IDIs, IS, IP, AUCs with confidence intervals using a bootstrap or asymptotic procedure. (I prefer bootstrap which is chosed by cis=c("boot"))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
590
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
591
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
592 Required arguments for all functions:
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
593 x1 is calculated risk (eg from a glm) for the null model, i.e. predict(,type="response") on a glm object
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
594 x2 is calculated risk (eg from a glm) for the alternative model
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
595 y is the case-control indicator (0 for controls, 1 for cases)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
596 Optional argument
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
597 t are the boundaries of the risks for each group (ie 0, 1 and the thresholds beteween. eg c(0,0,3,0,7,1)). If missing, defaults to c(0, the incidence, 1)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
598
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
599
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
600 **Input**
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
601
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
602 The observed and predicted outcomes from two models to be compared.
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
603
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
604 **Output**
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
605
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
606 Lots'o'measures (TM) see pickering_paper_ for details
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
607
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
608 **Attributions**
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
609
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
610 pickering_paper_ is the paper the caclulations performed by this tool is based on
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
611
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
612 pickering_code_ is the R function from John Pickering exposed by this Galaxy tool with minor modifications and hacks by Ross Lazarus.
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
613
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
614 Galaxy_ (that's what you are using right now!) for gluing everything together
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
615
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
616 Otherwise, all code and documentation comprising this tool was written by Ross Lazarus and is
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
617 licensed to you under the LGPL_ like other rgenetics artefacts
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
618
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
619 .. _LGPL: http://www.gnu.org/copyleft/lesser.html
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
620 .. _pickering_code: http://www.researchgate.net/publication/264672640_R_function_for_Risk_Assessment_Plot__reclassification_metrics_NRI_IDI_cfNRI
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
621 .. _pickering_paper: http://cjasn.asnjournals.org/content/early/2012/05/24/CJN.09590911.full
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
622 .. _Galaxy: http://getgalaxy.org
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
623
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
624
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
625 </help>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
626
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
627 <citations>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
628 <citation type="doi">doi: 10.2215/​CJN.09590911</citation>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
629 </citations>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
630 </tool>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
631
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
632
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
633