annotate rglasso_cox.xml @ 20:bb725f6d6d38 draft default tip

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