Description Usage Arguments Details Value Author(s) References Examples
Derive the weight matrix for fitting the LogitNet model.
1 | LogitNet.weight(X.m, chr)
|
X.m |
numeric matrix (n by p). Columns are for genes/loci and rows are for samples. Missing values are not allowed. The genes/loci are ordered according to their positions on the genome. |
chr |
numeric vector of length p. This vector gives the chromosome information of each gene/locus. |
This function returns a weight matrix charactering the spatial correlations along the genome. This matrix provides the value for one input parameter of function LogitNet(). LogitNet is developed for infering interaction network of binary variables. The method is based on penalized logistic regression with an extension to account for spatial correlation in the genomic instability data. (Wang, Chao and Hsu, 2009).
w.s |
numeric matrix (p by p), which characterizes the spatial correlation along the genome for each gene/locus. |
Pei Wang, Dennis Chao, Li Hsu
Pei Wang, Dennis Chao, Li Hsu, "Learning oncogenic pathways from binary genomic instability data", Biometrics, (submitted 2009, July)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | ######################## obtain a data example
data(LogitNet.data)
data.m=LogitNet.data$data.m
chromosome=LogitNet.data$chromosome
p=ncol(data.m)
######################## specify the penalty parameter
lambda.n=5
lambda.v=exp(seq(log(13), log(30), length=lambda.n))
######################## calculate the weight matrix
w.m=LogitNet.weight(data.m, chr=chromosome)
######################## perform cross validation to select lambda
if(0) ### this part will take 10 minutes.
{
try.CV=LogitNet.CV(data.m, w.m, lambda.v, fold=5)
temp=apply(try.CV[[3]], 2, sum)
index=which.max(temp)
}
index=2
######################## estimate the model at selected lambda values
result=LogitNet(data.m, w.m, lambda.v[index]) ###20-30 seconds
######################## illustrate the result similar to Figure 3 of Wang et al. (2009)).
temp=result
diag(temp)=0
par(cex=1.8)
image(1:p, 1:p, temp!=0, col=c("white", "red"), axes=FALSE, xlab="Marker Loci", ylab="Marker Loci")
abline(h=(0:5)*p/6+p/6/2, col=4, lty=3, lwd=0.8)
abline(v=(0:5)*p/6+p/6/2, col=4, lty=3, lwd=0.8)
axis(1, at=c(1,1:6*100), labels=c(1,1:6*100))
axis(2, at=c(1,1:6*100), labels=c(1,1:6*100))
axis(3, at=(0:5)*p/6+p/6/2, labels=c("A", "B", "C", "D", "E", "F"), col.axis=4, tick=FALSE)
axis(4, at=(0:5)*p/6+p/6/2, labels=c("A", "B", "C", "D", "E", "F"), col.axis=4, tick=FALSE)
lab.v=c("A", "B", "C", "D", "E", "F")
cut=30
for(i in 0:4)
{
cur=i*p/6+p/6/2
cur2=(i+1)*p/6+p/6/2
x.cur=c(cur-cut, cur, cur+cut, cur)
y.cur=c(cur2, cur2-cut, cur2, cur2+cut)
polygon(x.cur, y.cur, border=grey(0.5))
polygon(y.cur, x.cur, border=grey(0.5))
}
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.