annotate rglasso_cox.xml @ 12:7949cc3b28b0 draft default tip

Deleted selected files
author fubar
date Sun, 01 Nov 2015 18:27:03 -0500
parents d351a1ec1e18
children
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="rglasso_cox" name="Lasso" version="0.03">
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
2 <description>and cox regression using elastic net</description>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
3 <requirements>
10
31be675baa50 Fixes to paths in git for deps
fubar
parents: 0
diff changeset
4 <requirement type="package" version="3.2.2">R</requirement>
0
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 "rglasso"
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 <![CDATA[
11
d351a1ec1e18 GRRR!!! as at nov 2015, glmnet fails to load methods. see https://github.com/dhimmel/elevcan/issues/1
fubar
parents: 10
diff changeset
16 library('methods')
d351a1ec1e18 GRRR!!! as at nov 2015, glmnet fails to load methods. see https://github.com/dhimmel/elevcan/issues/1
fubar
parents: 10
diff changeset
17 #### as at nov 2015, glmnet fails to load methods. see https://github.com/dhimmel/elevcan/issues/1
0
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
18 library('glmnet')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
19 library('lars')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
20 library('survival')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
21 library('pec')
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 message=function(x) {print.noquote(paste(x,sep=''))}
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 ross.cv.glmnet = function (x, y, weights, offset = NULL, lambda = NULL, type.measure = c("mse",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
28 "deviance", "class", "auc", "mae"), nfolds = 10, foldid,
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
29 grouped = TRUE, keep = FALSE, parallel = FALSE, ...)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
30 {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
31 if (missing(type.measure))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
32 type.measure = "default"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
33 else type.measure = match.arg(type.measure)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
34 if (!is.null(lambda) && length(lambda) < 2)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
35 stop("Need more than one value of lambda for cv.glmnet")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
36 N = nrow(x)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
37 if (missing(weights))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
38 weights = rep(1, N)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
39 else weights = as.double(weights)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
40 y = drop(y)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
41 glmnet.call = match.call(expand.dots = TRUE)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
42 sel = match(c("type.measure", "nfolds", "foldid", "grouped",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
43 "keep"), names(glmnet.call), F)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
44 if (any(sel))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
45 glmnet.call = glmnet.call[-sel]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
46 glmnet.call[[1]] = as.name("glmnet")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
47 glmnet.object = glmnet(x, y, weights = weights, offset = offset,
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
48 lambda = lambda, ...)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
49 glmnet.object\$call = glmnet.call
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
50 is.offset = glmnet.object\$offset
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
51 lambda = glmnet.object\$lambda
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
52 if (inherits(glmnet.object, "multnet")) {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
53 nz = predict(glmnet.object, type = "nonzero")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
54 nz = sapply(nz, function(x) sapply(x, length))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
55 nz = ceiling(apply(nz, 1, median))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
56 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
57 else nz = sapply(predict(glmnet.object, type = "nonzero"),
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
58 length)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
59 if (missing(foldid))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
60 foldid = sample(rep(seq(nfolds), length = N))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
61 else nfolds = max(foldid)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
62 if (nfolds < 3)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
63 stop("nfolds must be bigger than 3; nfolds=10 recommended")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
64 outlist = as.list(seq(nfolds))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
65 if (parallel && require(foreach)) {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
66 outlist = foreach(i = seq(nfolds), .packages = c("glmnet")) %dopar%
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
67 {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
68 sel = foldid == i
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
69 if (is.matrix(y))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
70 y_sub = y[!sel, ]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
71 else y_sub = y[!sel]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
72 if (is.offset)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
73 offset_sub = as.matrix(offset)[!sel, ]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
74 else offset_sub = NULL
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
75 glmnet(x[!sel, , drop = FALSE], y_sub, lambda = lambda,
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
76 offset = offset_sub, weights = weights[!sel],
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
77 ...)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
78 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
79 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
80 else {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
81 for (i in seq(nfolds)) {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
82 sel = foldid == i
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
83 if (is.matrix(y))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
84 y_sub = y[!sel, ]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
85 else y_sub = y[!sel]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
86 if (is.offset)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
87 offset_sub = as.matrix(offset)[!sel, ]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
88 else offset_sub = NULL
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
89 outlist[[i]] = glmnet(x[!sel, , drop = FALSE],
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
90 y_sub, lambda = lambda, offset = offset_sub,
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
91 weights = weights[!sel], ...)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
92 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
93 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
94 fun = paste("cv", class(glmnet.object)[[1]], sep = ".")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
95 cvstuff = do.call(fun, list(outlist, lambda, x, y, weights,
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
96 offset, foldid, type.measure, grouped, keep))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
97 cvm = cvstuff\$cvm
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
98 cvsd = cvstuff\$cvsd
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
99 cvname = cvstuff\$name
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
100
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
101 out = list(lambda = lambda, cvm = cvm, cvsd = cvsd, cvup = cvm +
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
102 cvsd, cvlo = cvm - cvsd, nzero = nz, name = cvname, glmnet.fit = glmnet.object)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
103 if (keep)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
104 out = c(out, list(fit.preval = cvstuff\$fit.preval, foldid = foldid))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
105
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
106 lamin = if (type.measure == "auc")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
107 getmin(lambda, -cvm, cvsd)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
108 else getmin(lambda, cvm, cvsd)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
109 out = c(out, as.list(lamin))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
110 hitsse = rep(0,ncol(x))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
111 hitsmin = rep(0,ncol(x))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
112 names(hitsse) = colnames(x)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
113 names(hitsmin) = colnames(x)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
114 olmin = lamin\$lambda.min
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
115 ol1sd = lamin\$lambda.1se
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
116 lambs = c(olmin,ol1sd)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
117 names(lambs) = c('olmin','ol1sd')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
118 for (cvfit in outlist) {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
119 colmin = which(cvfit\$lambda == olmin)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
120 col1se = which(cvfit\$lambda == ol1sd)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
121 nzmin = which(cvfit\$beta[,colmin] != 0)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
122 nz1se = which(cvfit\$beta[,col1se] != 0)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
123 hitsse[nz1se] = hitsse[nz1se] + 1
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
124 hitsmin[nzmin] = hitsmin[nzmin] + 1
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
125 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
126 obj = c(out,list(cvhits.1se=hitsse,cvhits.min=hitsmin))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
127 class(obj) = "cv.glmnet"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
128 obj
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 mdsPlot = function(dm,myTitle,groups=NA,outpdfname,transpose=T)
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 samples = colnames(dm)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
135 mt = myTitle
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
136 pcols=c('maroon')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
137 if (! is.na(groups))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
138 {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
139 gu = unique(groups)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
140 colours = rainbow(length(gu),start=0.1,end=0.9)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
141 pcols = colours[match(groups,gu)]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
142 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
143 mydata = dm
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
144 if (transpose==T)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
145 {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
146 mydata = t(dm)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
147 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
148 npred = ncol(mydata)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
149 d = dist(mydata)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
150 fit = cmdscale(d,eig=TRUE, k=min(10,npred-2))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
151 xmds = fit\$points[,1]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
152 ymds = fit\$points[,2]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
153 pdf(outpdfname)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
154 plot(xmds, ymds, xlab="Dimension 1", ylab="Dimension 2",
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
155 main=paste(mt,"MDS Plot"),type="n", col=pcols, cex=0.35)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
156 text(xmds, ymds, labels = row.names(mydata), cex=0.35, col=pcols)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
157 grid(col="lightgray",lty="dotted")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
158 dev.off()
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
159 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
160
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
161
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
162 getpredp_logistic = function(x,yvec,yvarname,id)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
163 {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
164 yvals = unique(yvec)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
165 if (length(yvals) != 2) {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
166 message(c('ERROR: y does not have 2 values =',paste(yvals,collapse=',')))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
167 return(NA)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
168 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
169 cols = colnames(x)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
170 if (length(cols) == 0) {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
171 message('ERROR: No columns in input x? Cannot predict!')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
172 return(NA)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
173 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
174 cn = paste(cols, collapse = ' + ')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
175
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
176 formstring=paste("y ~",cn)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
177 form = as.formula(formstring)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
178 ok = complete.cases(x)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
179
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
180 if (sum(ok) < length(ok)) {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
181 x = x[ok,]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
182 yvec = yvec[ok]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
183 id = id[ok]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
184 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
185 nx = data.frame(id=id,x,y=yvec)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
186 print('nx,yvec:')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
187 print(head(nx,n=3))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
188 print(yvec)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
189 mdl = glm(form, data=nx, family="binomial", na.action=na.omit)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
190 message(c('Model format =',formstring))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
191 message(paste('Predictive model details used to generate logistic outcome probabilities for',yvarname,':'))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
192 print(summary(md1))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
193 print(anova(md1))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
194 predp = predict(md1,nx,type="response")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
195 p1 = data.frame(id=id,pred_response=predp,obs_response=yvec)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
196 return(p1)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
197 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
198
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
199 getpredp_cox = function(x,time,status,id,predict_at)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
200 {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
201 cols = colnames(x)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
202 if (length(cols) == 0) {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
203 message('ERROR: No columns in input x? Cannot predict!')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
204 return(NA)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
205 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
206 cn = paste(colnames(x), collapse = ' + ')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
207
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
208 formstring=paste("Surv(time, status) ~",cn)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
209
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
210 form = as.formula(formstring)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
211
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
212 ok = complete.cases(x)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
213
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
214 if (sum(ok) < length(ok)) {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
215 x = x[ok,]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
216 time = time[ok]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
217 status = status[ok]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
218 id = id[ok]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
219 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
220 nx = data.frame(x,time=time,status=status)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
221 m1 = coxph(form, data=nx,singular.ok=TRUE)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
222 print.noquote('Predictive model details used to generate survival probabilities:')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
223 print.noquote(m1)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
224 predpq = predictSurvProb(object=m1, newdata=nx, times=predict_at)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
225 predpq = 1-predpq
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
226 colnames(predpq) = paste('p_surv_to',predict_at,sep='_')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
227 p1 = data.frame(id=id,predpq,time=time,status=status)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
228 return(p1)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
229 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
230
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
231
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
232 dolasso_cox = function(x,y,debugOn=F,maxsteps=10000,nfold=10,xcolnames,ycolnames,optLambda='lambda.1se',out_full=F,out_full_file=NA,
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
233 out_pred=F,out_pred_file=NA,cox_id=NA, descr='Cox test',do_standard=F,alpha=0.9,penalty,predict_at,mdsplots=F)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
234 {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
235 logf = file("cox_rglasso.log", open = "a")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
236 sink(logf,type = c("output", "message"))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
237 res = NULL
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
238 if (mdsplots==T) {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
239 outpdfname = 'cox_x_in_sample_space_MDS.pdf'
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
240 p = try({ mdsPlot(x,'measurements in sample space',groups=NA,outpdfname=outpdfname,transpose=T) },T)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
241 if (class(p) == "try-error")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
242 {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
243 print.noquote(paste('Unable to produce predictors in sample space mds plot',p))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
244 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
245 outpdfname = 'cox_samples_in_x_space_MDS.pdf'
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
246 p = try({mdsPlot(x,'samples in measurement space',groups=y,outpdfname=outpdfname,transpose=F) },T)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
247 if (class(p) == "try-error")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
248 {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
249 print.noquote(paste('Unable to produce samples in measurement space mds plots',p))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
250 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
251 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
252 if (is.na(predict_at)) { predict_at = quantile(y) }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
253 message(paste('@@@ Cox model will be predicted at times =',paste(predict_at,collapse=',')))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
254 do_standard = do_standard
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
255 standardize = do_standard
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
256 normalize = do_standard
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
257 p = try({larsres = glmnet(x,y,family='cox',standardize=standardize,alpha=alpha,penalty.factor=penalty )},T)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
258 if (class(p) == "try-error")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
259 {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
260 print.noquote('Unable to run cox glmnet on your data')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
261 print.noquote(p)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
262 sink()
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
263 return(NA)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
264 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
265 if (out_full == T)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
266 {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
267 b = as.matrix(larsres\$beta)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
268 nb = length(colnames(b))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
269 bcoef = b[,nb]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
270 lastl = larsres\$lambda[length(larsres\$lambda)]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
271 allres = data.frame(x=rownames(b),beta=bcoef,lambda=lastl)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
272 write.table(format(allres,digits=5),out_full_file,quote=FALSE, sep="\t",row.names=F)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
273 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
274
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
275 outpdf = paste('cox',descr,'glmnetdev.pdf',sep='_')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
276 try(
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
277 {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
278 pdf(outpdf)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
279 plot(larsres,main='cox glmnet',label=T)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
280 grid()
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
281 dev.off()
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
282 },T)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
283
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
284 larscv = NA
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
285
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
286 p = try({larscv=ross.cv.glmnet(x,y,family=fam,type.measure='deviance',penalty=penalty)},T)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
287 if (class(p) == "try-error") {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
288 print.noquote(paste('Unable to cross validate your data',p))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
289 sink()
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
290 return(NA)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
291 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
292 lse = larscv\$cvhits.1se
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
293 lmin = larscv\$cvhits.min
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
294 tot = lse + lmin
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
295 allhits = data.frame(hits_lambda_1se = lse,hits_lambda_min = lmin)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
296 nzhits = allhits[which(tot != 0),]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
297 message('Times each predictor was selected in CV models (excluding zero count predictors)')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
298 print.noquote(nzhits)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
299 out_nz_file = 'cox_cross_validation_model_counts.xls'
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
300 write.table(nzhits,out_nz_file,quote=FALSE, sep="\t",row.names=F)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
301
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
302 outpdf = paste('cox',descr,'glmnet_cvdeviance.pdf',sep='_')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
303
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
304 p = try(
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
305 {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
306 pdf(outpdf)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
307 plot(larscv,main='Deviance',label=T)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
308 grid()
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
309 dev.off()
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
310 },T)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
311 if (optLambda == 'lambda.min') {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
312 best_lambda = larscv\$lambda.min
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
313 bestcoef = as.matrix(coef(larscv, s = "lambda.min"))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
314 } else {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
315 best_lambda = larscv\$lambda.1se
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
316 bestcoef = as.matrix(coef(larscv, s = "lambda.1se"))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
317 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
318 inmodel = which(bestcoef != 0)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
319 coefs = bestcoef[inmodel]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
320 preds = rownames(bestcoef)[inmodel]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
321
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
322 names(coefs) = preds
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
323 pen = as.logical( ! penalty[inmodel])
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
324 if (out_pred==T)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
325 {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
326 if (length(inmodel) > 0 ) {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
327 predcols = inmodel
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
328 xmat = as.matrix(x[,predcols])
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
329 colnames(xmat) = preds
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
330 bestpred = getpredp_cox(x=xmat,time=y[,'time'],status=y[,'status'],id=cox_id, predict_at=predict_at)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
331 pred = data.frame(responsep=bestpred, best_lambda=best_lambda,lamchoice=optLambda,alpha=alpha)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
332 write.table(pred,out_pred_file,quote=FALSE, sep="\t",row.names=F)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
333 } else { print.noquote('WARNING: No coefficients in selected model to predict with - no predictions made') }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
334 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
335 if (debugOn) {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
336 print.noquote(paste('best_lambda=',best_lambda,'saving cox respreds=',paste(names(coefs),collapse=','),'as predictors of survival. Coefs=',paste(coefs,collapse=',')))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
337 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
338 p = try({res = data.frame(regulator=names(coefs),partial_likelihood=coefs,forced_in=pen,glmnet_model='cox',best_lambda=best_lambda,
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
339 lambdaChoice=optLambda,alpha=alpha)},T)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
340 if (class(p) == "try-error") {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
341 message(paste('@@@ unable to return a dataframe',p))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
342 sink()
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
343 return(NA)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
344 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
345 print.noquote('@@@ Results preview:')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
346 print.noquote(res,digits=5)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
347 sink()
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
348 return(res)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
349
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
350 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
351
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
352
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
353 do_lasso = function(x=NA,y=NA,do_standard=T,debugOn=T,defaultFam="gaussian",optLambda='minLambda',descr='description', indx=1,target='target',sane=F,
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
354 alpha=0.9,nfold=10,penalty=c(),out_pred=F,out_pred_file='outpred',yvarname='yvar',id=c(),mdsplots=F)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
355 {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
356 logf = file(paste(target,"rglasso.log",sep='_'), open = "a")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
357 sink(logf,type = c("output", "message"))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
358 res = NA
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
359 phe_is_bin = (length(unique(y)) == 2)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
360 forcedin = paste(colnames(x)[which(penalty == 0)],collapse=',')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
361 fam = "gaussian"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
362 if (defaultFam %in% c("poisson","binomial","gaussian","multinomial")) fam=defaultFam
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
363 if (phe_is_bin == T) {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
364 fam = "binomial"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
365 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
366 print.noquote(paste('target=',target,'is binary=',phe_is_bin,'dim(x)=',paste(dim(x),collapse=','),'length(y)=',length(y),'force=',forcedin,'fam=',fam))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
367 standardize = do_standard
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
368 p = try({larsres = glmnet(x,y,family=fam,standardize=standardize,maxit=10000,alpha=alpha,penalty.factor=penalty) },T)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
369 if (class(p) == "try-error")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
370 {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
371 print(paste('ERROR: unable to run glmnet for target',target,'error=',p))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
372 sink()
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
373 return(NA)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
374 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
375
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
376 mt = paste('Glmnet fraction deviance for',target)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
377 outpdf = paste(target,'glmnetPath.pdf',sep='_')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
378 pdf(outpdf)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
379 plot(larsres,main=mt,label=T)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
380 grid()
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
381 dev.off()
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
382
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
383 outpdf = paste(target,'glmnetDeviance.pdf',sep='_')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
384
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
385 mt2 = paste('Glmnet lambda for',target)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
386
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
387 pdf(outpdf)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
388 plot(larsres,xvar="lambda",main=mt2,label=T)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
389 grid()
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
390 dev.off()
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
391
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
392 larscv = NA
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
393 if (fam=="binomial") {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
394 tmain = paste(target,'AUC')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
395 outpdf = paste(target,'glmnetCV_AUC.pdf',sep='_')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
396 p = try({larscv = ross.cv.glmnet(x=x,y=y,family=fam,type.measure='auc')},T)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
397 } else {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
398 tmain = paste(target,'CV MSE')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
399 outpdf = paste(target,'glmnetCV_MSE.pdf',sep='_')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
400 p = try({larscv = ross.cv.glmnet(x=x,y=y,family=fam,type.measure='mse')},T)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
401 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
402 if (class(p) == "try-error")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
403 {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
404 print(paste('ERROR: unable to run cross validation for target',target,'error=',p))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
405 sink()
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
406 return(NA)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
407 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
408
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
409 pdf(outpdf)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
410 plot(larscv,main=tmain)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
411 grid()
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
412 dev.off()
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
413
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
414 lse = larscv\$cvhits.1se
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
415 lmin = larscv\$cvhits.min
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
416 tot = lse + lmin
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
417 allhits = data.frame(pred=colnames(x),hits_lambda_1se = lse,hits_lambda_min = lmin)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
418 nzhits = allhits[which(tot != 0),]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
419 message('Total hit count for each predictor over all CV models (excluding zero count predictors)')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
420 print.noquote(nzhits)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
421 out_nz_file = paste(target,'cross_validation_model_counts.xls',sep='_')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
422 write.table(nzhits,out_nz_file,quote=FALSE, sep="\t",row.names=F)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
423
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
424 ipenalty = c(0,penalty)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
425 if (optLambda == 'lambda.min') {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
426 best_lambda = larscv\$lambda.min
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
427 bestpred = as.matrix(coef(larscv, s = "lambda.min"))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
428 } else {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
429 best_lambda = larscv\$lambda.1se
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
430 bestpred = as.matrix(coef(larscv, s = "lambda.1se"))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
431 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
432 inmodel = which(bestpred != 0)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
433 coefs = bestpred[inmodel,1]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
434 preds = rownames(bestpred)[inmodel]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
435 iforced = ipenalty[inmodel]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
436 forced = ! as.logical(iforced)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
437 names(coefs) = preds
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
438 ncoef = length(coefs) - 1
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
439 if (out_pred==T && fam=="binomial")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
440 {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
441 print.noquote(paste('Predicting',target,'probabilities from binomial glmnet at alpha',alpha,'and lambda',best_lambda))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
442 bestpred = predict.glmnet(larsres,s=best_lambda,newx=x,type="response")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
443 bestpred = exp(bestpred)/(1+exp(bestpred))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
444 pred = data.frame(id=id,y=y,predp=as.vector(bestpred), best_lambda=best_lambda)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
445 write.table(pred,out_pred_file,quote=FALSE, sep="\t",row.names=F)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
446 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
447 if (debugOn) {cat(indx,'best_lambda=',best_lambda,'saving',fam,'respreds=',names(coefs),'as predictors of',target,'coefs=',coefs,'\n')}
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
448 res = try(data.frame(i=indx,pred=target,regulator=names(coefs),coef=coefs,forced_in=forced,glmnet_model=fam,ncoef=ncoef,
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
449 best_lambda=best_lambda,lambdaChoice=optLambda,alpha=alpha),T)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
450 if (class(res) == "try-error") {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
451 sink()
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
452 return(NA) }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
453 print.noquote(res)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
454 sink()
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
455 return(res)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
456 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
457
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
458
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
459 dolasso_generic = function(predvars=NA,depvars=NA,debugOn=T,maxsteps=100, alpha=0.9,nfold=10,xcolnames=c(),ycolnames=c(),optLambda='minLambda', out_pred_file=NA,
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
460 descr="describe me",do_standard=F,defaultFam="gaussian",penalty=c(),out_pred=F,cox_id=c(),mdsplots=F,xfilt=0.95)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
461 {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
462 logf = file("rglasso.log", open = "a")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
463 sink(logf,type = c("output", "message"))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
464 xdat = predvars
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
465 xm = data.matrix(xdat)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
466 res = NULL
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
467 id = cox_id
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
468 depnames = ycolnames
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
469 ndep = length(depnames)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
470 if (mdsplots==T) {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
471 outpdfname = 'rglasso_x_in_sample_space_MDS.pdf'
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
472 p = try({ mdsPlot(xm,'measurements in sample space',groups=NA,outpdfname=outpdfname,transpose=T) },T)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
473 if (class(p) == "try-error")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
474 {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
475 print.noquote(paste('Unable to produce predictors in sample space mds plot. Error:',p))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
476 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
477 outpdfname = 'rglasso_samples_in_x_space_MDS.pdf'
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
478 p = try({mdsPlot(xm,'samples in measurement space',groups=NA,outpdfname=outpdfname,transpose=F) },T)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
479 if (class(p) == "try-error")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
480 {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
481 print.noquote(paste('Unable to produce samples in measurement space mds plot. Error:',p))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
482 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
483 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
484 ndat = nrow(xm)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
485 cfracs = colSums(! is.na(xm))/ndat
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
486 keepme = (cfracs >= xfilt)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
487 print.noquote(paste('Removing', sum(! keepme), 'xvars with more than',xfilt,'fraction missing'))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
488 vars = apply(xm,2,var,na.rm=T)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
489 xm = xm[,keepme]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
490 for (i in c(1:max(1,ndep))) {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
491 target = depnames[i]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
492 if (length(target) < 1) { target='y' }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
493 if (i %% 100 == 0) { cat(i,target,'\n') }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
494 if (ndep <= 1) {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
495 y=depvars
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
496 } else {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
497 y = depvars[,i]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
498 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
499 if (fam == "binomial") {y = as.factor(y)}
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
500 x = xm
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
501 id = cox_id
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
502 if (fam != "cox") {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
503 ok = complete.cases(x,y)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
504 if (sum(! ok) > 0) {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
505 message(paste('@@@ Removing',sum(! ok),'cases with missing y of',length(y),'@@@'))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
506 y = y[(ok)]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
507 x = x[(ok),]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
508 id = id[(ok)]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
509 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
510 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
511 ok = complete.cases(y)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
512 if (sum(ok) == 0 ) {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
513 print(paste("No complete cases found for",target,"in input x dim =",paste(dim(xm),collapse=','),"length y=",length(y)))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
514 } else {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
515 if (i == 1) { outpred = out_pred_file
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
516 } else {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
517 outpred = paste(target,'predicted_output.xls')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
518 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
519 regres = do_lasso(x=x,y=y,do_standard=do_standard,debugOn=debugOn,defaultFam=defaultFam,optLambda=optLambda,out_pred_file=outpred,
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
520 descr=descr,indx=i,target=target,alpha=alpha,nfold=nfold,penalty=penalty,out_pred=out_pred,yvarname=target,id=id,mdsplots=mdsplots)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
521 if (! is.na(regres)) { res = rbind(res,regres) }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
522 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
523 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
524 print.noquote('@@@ Results preview:')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
525 print.noquote(res,digits=5)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
526 sink()
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
527 return(res)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
528 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
529
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
530
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
531 corPlot=function(xdat=c(),main='main title',is_raw=T)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
532 {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
533 library(pheatmap)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
534 library(gplots)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
535 if (is_raw) {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
536 cxdat = cor(xdat,method="spearman",use="pairwise.complete.obs")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
537 } else {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
538 cxdat=xdat
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
539 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
540 xro = nrow(cxdat)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
541 if (xro > 1000) stop("Too many rows for heatmap, who can read?!")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
542 fontsize_col = 5.0
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
543 pheatmap(cxdat, main=main, show_colnames = F, width=30, height=30,
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
544 fontsize_row=fontsize_col, border_color=NA)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
545 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
546
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
547
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
548 runTest = function(n=10)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
549 {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
550 set.seed (NULL)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
551 Y = data.frame(y1=runif (n),y2=runif(n))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
552 Xv <- runif(n*n)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
553 X <- matrix(Xv, nrow = n, ncol = n)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
554
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
555 mydf <- data.frame(Y, X)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
556
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
557 regres_out = dolasso_generic(predvars=X,depvars=Y,debugOn=T,p.cutoff = 0.05,maxsteps=10000,nfold=10,
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
558 descr='randomdata',do_standard=do_standard,defaultFam="gaussian",alpha=0.05)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
559 return(regres_out)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
560 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
561 ]]>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
562 options(width=512)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
563 options(digits=5)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
564 alpha = $alpha
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
565 nfold = $nfold
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
566 optLambda = "$optLambda"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
567 Out_Dir = "$html_file.files_path"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
568 Input = "$input1"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
569 indat = read.table(Input,head=T,sep='\t')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
570 datcols = colnames(indat)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
571 myTitle = "$title"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
572 outtab = "$model_file"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
573 do_standard = as.logical("$do_standard")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
574 mdsplots = as.logical("$mdsplots")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
575 fam = "$model.fam"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
576 xvar_cols_in = "$xvar_cols"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
577 force_xvar_cols_in = "$force_xvar_cols"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
578 xvar_cols = as.numeric(strsplit(xvar_cols_in,",")[[1]])
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
579 force_xvar_cols = c()
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
580 penalties = rep(1,length(datcols))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
581 forced_in = NA
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
582
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
583 logxform = "$logxform_cols"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
584 if (logxform != "None") {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
585 logxform_cols = as.numeric(strsplit(logxform,",")[[1]])
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
586 if (length(logxform_cols) > 0) {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
587 small = 1e-10
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
588 sset = indat[,logxform_cols]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
589 zeros = which(sset==0,arr.ind=T)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
590 nz = nrow(zeros)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
591 if (nz &gt; 0) {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
592 message(paste('Log transforming encountered',nz,'zeros - added 1e-10'))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
593 sset[zeros] = sset[zeros] + small
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
594 lset = log(sset)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
595 indat[,logxform_cols] = lset
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
596 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
597 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
598 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
599 if (force_xvar_cols_in != "None")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
600 {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
601 force_xvar_cols = as.numeric(strsplit(force_xvar_cols_in,",")[[1]])
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
602 allx = c(xvar_cols,force_xvar_cols)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
603 xvar_cols = unique(allx)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
604 xvar_cols = xvar_cols[order(xvar_cols)]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
605 penalties[force_xvar_cols] = 0
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
606 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
607 penalty = penalties[xvar_cols]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
608 forcedin = paste(datcols[which(penalties == 0)],collapse=',')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
609 cox_id_col = NA
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
610 cox_id = NA
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
611
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
612 message(paste('@@@ Using alpha =',alpha,'for all models'))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
613 x = indat[,xvar_cols]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
614 nx = nrow(x)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
615 cx = ncol(x)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
616 message(paste('@@@@ Input has',nx,'samples and',cx,'predictors'))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
617 if (cx > nx) {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
618 message('@@@ WARNING: Models will have more variables than cases so glmnet will likely return one of many possible solutions! Please DO NOT expect reliable results - glmnet is clever but not magical @@@')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
619 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
620
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
621 xcolnames = datcols[xvar_cols]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
622
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
623 if (file.exists(Out_Dir) == F) dir.create(Out_Dir)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
624 out_full = F
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
625 out_full_file = NA
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
626 out_pred_file = ""
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
627 out_pred = as.logical("$model.output_pred")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
628
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
629 #if $model.fam == "binomial" or $model.fam == "cox":
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
630 cox_id_col = $model.cox_id
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
631 cox_id = indat[,cox_id_col]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
632 if (out_pred == T) {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
633 out_pred_file="$output_pred_file"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
634 rownames(x) = cox_id
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
635 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
636 #end if
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
637 #if $model.fam == "cox":
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
638 cox_time = $model.cox_time
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
639 cox_status = $model.cox_status
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
640 out_full = as.logical("$model.output_full")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
641 if (out_full == T) { out_full_file="$output_full_file" }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
642 yvar_cols = c(cox_time,cox_status)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
643 ycolnames = c('time','status')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
644 istat = as.double(indat[,cox_status])
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
645 itime = as.double(indat[,cox_time])
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
646 predict_at = quantile(itime)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
647 if ("$model.predict_at" &gt; "")
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
648 {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
649 pa = "$model.predict_at"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
650 predict_at = as.numeric(strsplit(pa,",")[[1]])
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
651 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
652 y = data.frame(time = itime, status = istat)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
653 ustat = unique(istat)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
654 if ((length(ustat) != 2) | (! 1 %in% ustat ) | (! 0 %in% ustat))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
655 {
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
656 print.noquote(paste('INPUT ERROR: status must have 0 (censored) or 1 (event) but found',paste(ustat,collapse=',') ))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
657 quit(save='no',status=1)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
658 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
659 y = as.matrix(y)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
660 x = as.matrix(x)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
661 print.noquote(paste('@@@ Cox model will predict yvar=',datcols[cox_status],'using cols=',paste(xcolnames,collapse=','),'n preds=',length(xcolnames),
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
662 'forced in=',forcedin))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
663 regres_out = dolasso_cox(x=x,y=y,debugOn=F,maxsteps=10000,nfold=nfold,xcolnames=xcolnames,ycolnames=ycolnames,optLambda=optLambda,out_full=out_full,out_full_file=out_full_file,
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
664 out_pred=out_pred,out_pred_file=out_pred_file,cox_id=cox_id,descr=myTitle,do_standard=do_standard,alpha=alpha,penalty=penalty,predict_at=predict_at,mdsplots=mdsplots)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
665 #else:
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
666 yvar_cols = "$model.yvar_cols"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
667 yvar_cols = as.numeric(strsplit(yvar_cols,",")[[1]])
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
668 ycolnames = datcols[yvar_cols]
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
669 print.noquote(paste('@@@',fam,'model will predict yvar=',paste(ycolnames,collapse=','),'using cols=',paste(xcolnames,collapse=','),'n preds=',length(xcolnames),
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
670 'forced in=',forcedin))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
671 y = data.matrix(indat[,yvar_cols])
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
672 print.noquote(paste('Model will use',fam,'link function to predict yvar=',paste(ycolnames,collapse=','),'n preds=',length(xcolnames),'forced in=',forcedin))
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
673 regres_out = dolasso_generic(predvars=x,depvars=y,debugOn=F, maxsteps=10000,nfold=nfold,xcolnames=xcolnames,ycolnames=ycolnames,optLambda=optLambda,out_pred_file=out_pred_file,
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
674 descr=myTitle,do_standard=do_standard,defaultFam=fam,alpha=alpha,penalty=penalty,out_pred=out_pred,cox_id=cox_id,mdsplots=mdsplots)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
675 #end if
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
676
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
677 write.table(format(regres_out,digits=5),outtab,quote=FALSE, sep="\t",row.names=F)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
678 print.noquote('@@@ SessionInfo for this R session:')
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
679 sessionInfo()
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
680 warnings()
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
681
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
682 </configfile>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
683 </configfiles>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
684 <inputs>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
685 <param name="title" type="text" value="lasso test" label="Title for job outputs" help="Typing a short, meaningful text here will help remind you (and explain to others) what the outputs represent">
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
686 <sanitizer invalid_char="">
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
687 <valid initial="string.letters,string.digits"><add value="_" /> </valid>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
688 </sanitizer>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
689 </param>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
690 <param name="input1" type="data" format="tabular" label="Select an input tabular text file from your history. Rows represent samples; Columns are measured phenotypes"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
691 multiple='False' optional="False" help="Tabular text data with samples as rows, phenotypes as columns with a header row of column identifiers" />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
692 <param name="xvar_cols" label="Select columns containing numeric variables to use as predictor (x) variables" type="data_column" data_ref="input1" numerical="False"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
693 multiple="True" use_header_names="True" force_select="True" />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
694 <param name="force_xvar_cols" label="Select numeric columns containing variables ALWAYS included as predictors in cross validation" type="data_column" data_ref="input1" numerical="False"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
695 multiple="True" use_header_names="True" force_select="False"/>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
696 <conditional name="model">
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
697 <param name="fam" type="select" label="GLM Link function for models"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
698 help="Binary dependant variables will automatically be set to Binomial no matter what this is set to">
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
699 <option value="gaussian" selected="true">Gaussian - continuous dependent (y)</option>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
700 <option value="binomial">Binomial dependent variables</option>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
701 <option value="poisson">Poisson (eg counts)</option>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
702 <option value="cox">Cox models - require special setup for y variables - see below</option>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
703 </param>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
704 <when value="gaussian">
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
705 <param name="yvar_cols" label="Select numeric columns containing variables to use as the dependent (y) in elasticnet" type="data_column" data_ref="input1" numerical="False"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
706 multiple="True" use_header_names="True" help = "If multiple, each will be modelled against all the x variables and reported separately." force_select="True"/>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
707 <param name="output_full" type="hidden" value='F' />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
708 <param name="output_pred" type="hidden" value='F' />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
709 <param name="cox_id" label="Select column containing a unique sample identifier"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
710 help = "Only really needed for output sample specific predicted values downstream."
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
711 type="data_column" data_ref="input1" numerical="False" force_select="True"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
712 multiple="False" use_header_names="True" />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
713 </when>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
714 <when value="binomial">
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
715 <param name="yvar_cols" label="Select numeric columns containing variables to use as the dependent (y) in elasticnet" type="data_column" data_ref="input1" numerical="False"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
716 multiple="True" use_header_names="True" help = "If multiple, each will be modelled against all the x variables and reported separately." force_select="True"/>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
717 <param name="output_full" type="hidden" value='F' />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
718 <param name="output_pred" type="select" label="Create a tabular output with predicted values for each subject from the optimal model for (eg) NRI estimates" >
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
719 <option value="F" selected="true">No predicted value output file</option>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
720 <option value="T">Create a predicted value output file</option>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
721 </param>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
722 <param name="cox_id" label="Select column containing a unique sample identifier"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
723 help = "Only really needed for output sample specific predicted values downstream."
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
724 type="data_column" data_ref="input1" numerical="False" force_select="True"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
725 multiple="False" use_header_names="True" />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
726 <param name="predict_at" type="hidden" value='' />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
727
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
728 </when>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
729 <when value="poisson">
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
730 <param name="yvar_cols" label="Select columns containing variables to use as the dependent (y) in elasticnet" type="data_column" data_ref="input1" numerical="True"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
731 multiple="True" use_header_names="True" help = "If multiple, each will be modelled against all the x variables and reported separately." force_select="True"/>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
732 <param name="output_full" type="hidden" value='F' />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
733 <param name="output_pred" type="hidden" value='F' />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
734 <param name="predict_at" type="hidden" value='' />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
735 <param name="cox_id" label="Select column containing a unique sample identifier"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
736 help = "Optional. Only really needed for output sample specific predicted values downstream. Free - enjoy"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
737 type="data_column" data_ref="input1" numerical="True" force_select="False"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
738 multiple="False" use_header_names="True" />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
739 </when>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
740 <when value="cox">
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
741 <param name="cox_time" label="Select column containing time under observation for Cox regression"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
742 type="data_column" data_ref="input1" numerical="True" force_select="True"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
743 multiple="False" use_header_names="True" help = "This MUST contain a time period - eg continuous years or days to failure or right censoring"/>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
744 <param name="cox_status" label="Select column containing status = 1 for outcome of interest at the end of the time under observation or 0 for right censoring"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
745 type="data_column" data_ref="input1" numerical="True" force_select="True"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
746 multiple="False" use_header_names="True" help = "This MUST contain 1 for subjects who had an event at that time or 0 for a right censored observation"/>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
747 <param name="cox_id" label="Select column containing a unique sample identifier"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
748 help = "Optional. Only really needed for output sample specific predicted values downstream. Free - enjoy"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
749 type="data_column" data_ref="input1" numerical="False" force_select="False"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
750 multiple="False" use_header_names="True" />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
751 <param name="output_full" type="select" label="Create a tabular output with coefficients for all predictors" >
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
752 <option value="F" selected="true">No full model output file</option>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
753 <option value="T">Create a full model output file</option>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
754 </param>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
755 <param name="output_pred" type="select" label="Create a tabular output with predicted values for each subject from the optimal model for (eg) NRI estimates" >
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
756 <option value="F" selected="true">No predicted value output file</option>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
757 <option value="T">Create a predicted value output file</option>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
758 </param>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
759 <param name="predict_at" type="text" value='' label="Provide a comma separated list of times to make a prediction for each subject"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
760 optional="True" help="Default (blank) will return predictions at 0%,25%,50%,75%,100% of the observed times which should be informative" />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
761
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
762 </when>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
763 </conditional>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
764 <param name="optLambda" type="select" label="Value to use when reporting optimal model and coefficients" help="minLambda will have more predictors - 1SDLambda will be more parsimonious">
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
765 <option value="lambda.1se" selected="true">Lambda + 1 SE of min MSE or AUC (fewer coefficients - more false negatives)</option>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
766 <option value="lambda.min">Lambda at min MSE or max AUC (more coefficients - more false positives)</option>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
767 </param>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
768 <param name="logxform_cols" optional="True" label="Select numeric columns to be log transformed before use as predictors or dependent variables" type="data_column"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
769 data_ref="input1" numerical="True" multiple="True" use_header_names="True" help = "The wisdom of doing this depends entirely on your predictors - eg can help diminish long-tailed outlier influence"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
770 force_select="False"/>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
771 <param name="do_standard" type="select" label="Standardise x vars"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
772 help="If all measurements on same scale, may not be needed. Coefficients are always returned on the original scale.">
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
773 <option value="False" selected="true">No standardisation of predictors</option>l
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
774 <option value="True">Standardise predictors before model</option>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
775 </param>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
776 <param name="mdsplots" type="select" label="Generate MDS plots of samples in measurement space and measurements in sample space" >
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
777 <option value="False" selected="true">No MDS plots</option>l
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
778 <option value="True">Yes create MDS plots</option>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
779 </param>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
780 <param name="alpha" type="float" value="0.95" min="0.01" max="1.0" label="Alpha - see glmnet docs. 1 for pure lasso. 0.0 for pure ridge regression"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
781 help="Default 0.95 allows lasso to cope better with expected predictor collinearity. Use (eg) 0.5 for hybrid regularised regression or (eg) 0.025 for ridge regression"/>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
782 <param name="nfold" type="integer" value="10" label="Number of folds for internal cross validation"
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
783 help="Default of 10 is usually ok"/>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
784 </inputs>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
785 <outputs>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
786 <data format="html" name="html_file" label="${title}.html"/>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
787 <data format="tabular" name="model_file" label="${title}_modelres.xls"/>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
788 <data format="tabular" name="output_full_file" label="${title}_full_cox_model.xls">
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
789 <filter>model['output_full'] == 'T'</filter>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
790 </data>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
791 <data format="tabular" name="output_pred_file" label="${title}_predicted_from_model.xls">
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
792 <filter>model['output_pred'] == 'T'</filter>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
793 </data>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
794 </outputs>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
795 <tests>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
796 <test>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
797 <param name='input1' value='cox_test.xls' ftype='tabular' />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
798 <param name='treatment_name' value='case' />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
799 <param name='title' value='Cox glmnet test' />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
800 <param name='nfold' value='10' />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
801 <param name='logxform_cols' value='' />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
802 <param name='alpha' value='0.95' />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
803 <param name='do_standard' value="True" />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
804 <param name='cox_time' value='1' />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
805 <param name='cox_status' value='2' />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
806 <param name='cox_id' value='1' />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
807 <param name='predict_at' value='' />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
808 <param name='fam' value='cox' />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
809 <param name='yvar_cols' value='' />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
810 <param name='xvar_cols' value='3,4,5' />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
811 <param name='force_xvar_cols' value='3' />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
812 <param name='output_full' value='F' />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
813 <param name='output_pred' value='F' />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
814 <output name='model_file' file='coxlassotest_modelres.xls'>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
815 <assert_contents>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
816 <has_text text="rhubarb" />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
817 <has_text text="TRUE" />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
818 <!-- &#009; is XML escape code for tab -->
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
819 <!-- has_line line="regulator&#009;partial_likelihood&#009;forced_in&#009;glmnet_model&#009;best_lambda" / -->
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
820 <has_line line="regulator&#009;partial_likelihood&#009;forced_in&#009;glmnet_model&#009;best_lambda&#009;lambdaChoice&#009;alpha" />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
821 <has_n_columns n="7" />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
822 </assert_contents>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
823 </output>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
824 <output name='html_file' file='coxlassotest.html' compare='diff' lines_diff='16' />
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
825 </test>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
826 </tests>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
827 <help>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
828
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
829 **Before you start**
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
830
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
831 Please read the glmnet documentation @ glmnet_
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
832
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
833 This Galaxy wrapper merely exposes that code and the glmnet_ documentation is essential reading
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
834 before getting useful results here.
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
835
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
836 **What it does**
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
837
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
838 From documentation at glmnet_ ::
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
839
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
840 Glmnet is a package that fits a generalized linear model via penalized maximum likelihood.
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
841 The regularization path is computed for the lasso or elasticnet penalty at a grid of values for the regularization parameter lambda.
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
842 The algorithm is extremely fast, and can exploit sparsity in the input matrix x.
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
843 It fits linear, logistic and multinomial, poisson, and Cox regression models.
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
844 A variety of predictions can be made from the fitted models.
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
845
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
846 Internal cross validation is used to optimise the choice of lambda based on CV AUC for logistic (binomial outcome) models, or CV mse for gaussian.
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
847
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
848 **Warning about the tyrany of dimensionality**
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
849
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
850 Yes, this package will select 'optimal' models even when you (optimistically) supply more predictors than you have cases.
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
851 The model returned is unlikely to represent the only informative regularisation path through your data - if you run repeatedly with
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
852 exactly the same settings, you will probably see many different models being selected.
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
853 This is not a software bug - the real problem is that you just don't have enough information in your data.
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
854
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
855 Sufficiently big jobs will take a while (eg each lasso regression with 20k features on 1k samples takes about 2-3 minutes on our aged cluster)
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
856
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
857 **Input**
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
858
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
859 Assuming you have more measurements than samples, you supply data as a tabular text file where each row is a sample and columns
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
860 are variables. You specify which columns are dependent (predictors) and which are observations for each sample. Each of multiple
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
861 dependent variable columns will be run and reported independently. Predictors can be forced in to the model.
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
862
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
863 **Output**
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
864
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
865 For each selected dependent regression variable, a brief report of the model coefficients predicted at the
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
866 'optimal' nfold CV value of lambda.
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
867
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
868 **Predicted event probabilities for Cox and Logistic models**
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
869
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
870 If you want to compare (eg) two competing clinical predictions, there's a companion generic NRI tool
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
871 for predicted event probabilities. Estimates dozens of measures of improvement in prediction. Currently only works for identical id subjects
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
872 but can probably be extended to independent sample predictions.
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
873
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
874 Given a model, we can generate a predicted p (for status 1) in binomial or cox frameworks so models can be evaluated in terms of NRI.
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
875 Of course, estimates are likely substantially inflated over 'real world' performance by being estimated from the same sample - but you probably
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
876 already knew that since you were smart enough to reach this far down into the on screen help. The author salutes you, intrepid reader!
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
877
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
878 It may seem an odd thing to do, but we can predict p for an event for each subject from our original data, given a parsimonious model. Doing
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
879 this for two separate models (eg, forcing in an additional known explanatory measurement to the new model) allows comparison of the two models
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
880 predicted status for each subject, or the same model in independent populations to see how badly it does
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
881
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
882 **Attributions**
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
883
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
884 glmnet_ is the R package exposed by this Galaxy tool.
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
885
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
886 Galaxy_ (that's what you are using right now!) for gluing everything together
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
887
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
888 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
889 licensed to you under the LGPL_ like other rgenetics artefacts
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
890
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
891 .. _LGPL: http://www.gnu.org/copyleft/lesser.html
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
892 .. _glmnet: http://web.stanford.edu/~hastie/glmnet/glmnet_alpha.html
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
893 .. _Galaxy: http://getgalaxy.org
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
894 </help>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
895
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
896 <citations>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
897 <citation type="bibtex">
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
898 @Article{Friedman2010, title = {Regularization Paths for Generalized Linear Models via Coordinate Descent},
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
899 author = {Jerome Friedman and Trevor Hastie and Robert Tibshirani},
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
900 journal = {Journal of Statistical Software},
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
901 year = {2010},
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
902 volume = {33},
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
903 number = {1},
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
904 pages = {1--22},
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
905 url = {http://www.jstatsoft.org/v33/i01/}
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
906 }
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
907 </citation>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
908 <citation type="doi">
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
909 10.1093/bioinformatics/bts573
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
910 </citation>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
911 </citations>
cf295f36d606 Initial commit for iuc/test rglasso
fubar
parents:
diff changeset
912 </tool>