# NOT RUN {
mat<-replicate(100, rnorm(20))
mydecom<-sparseDecom( mat )
mat<-scale(mat)
mydecom2<-sparseDecom( mat )
# params that lead to algorithm similar to NMF
mydecom3<-sparseDecom( mat, z=1, sparseness=1 )
# }
# NOT RUN {
# for prediction
if ( usePkg("randomForest") & usePkg("spls") & usePkg('BGLR') ) {
data(lymphoma) # from spls
training<-sample( rep(c(TRUE,FALSE),31) )
sp<-0.02 ; myz<-0
ldd<-sparseDecom( lymphoma$x[training,], nvecs=5 , sparseness=( sp ),
mycoption=1, z=myz ) # NMF style
traindf<-data.frame( lclass=as.factor(lymphoma$y[ training ]),
eig = lymphoma$x[training,] %*% as.matrix(ldd$eigenanatomyimages ))
testdf<-data.frame( lclass=as.factor(lymphoma$y[ !training ]),
eig = lymphoma$x[!training,] %*% as.matrix(ldd$eigenanatomyimages ))
myrf<-randomForest( lclass ~ . , data=traindf )
predlymp<-predict(myrf, newdata=testdf)
print(paste('N-errors:',sum(abs( testdf$lclass != predlymp ) ),
' non-zero ',sum(abs( ldd$eigenanatomyimages ) > 0 ) ) )
# compare to http://arxiv.org/pdf/0707.0701v2.pdf
# now SNPs
data(mice)
snps<-quantifySNPs( mice.X, shiftit = TRUE )
numericalpheno<-as.matrix( mice.pheno[,c(4,5,13,15) ] )
nfolds<-6
train<-sample( rep( c(1:nfolds), 1800/nfolds ) )
train<-( train < 4 )
lrmat<-lowrankRowMatrix( as.matrix( snps[train,] ) , 50 )
lrmat=scale(lrmat)
snpd<-sparseDecom( lrmat-min(lrmat), nvecs=20 , sparseness=( 0.001), z=-1 )
projmat<-as.matrix( snpd$eig )
snpse<-as.matrix( snps[train, ] ) %*% projmat
traindf<-data.frame( bmi=numericalpheno[train,3] , snpse=snpse)
snpse<-as.matrix( snps[!train, ] ) %*% projmat
testdf <-data.frame( bmi=numericalpheno[!train,3] , snpse=snpse )
myrf<-randomForest( bmi ~ . , data=traindf )
preddf<-predict(myrf, newdata=testdf )
cor.test(preddf, testdf$bmi )
plot(preddf, testdf$bmi )
} # check for packages
# prior-based example
set.seed(123)
ref<-antsImageRead( getANTsRData("r16"))
ref<-iMath(ref,"Normalize")
mi<-antsImageRead( getANTsRData("r27"))
mi2<-antsImageRead( getANTsRData("r30"))
mi3<-antsImageRead( getANTsRData("r62"))
mi4<-antsImageRead( getANTsRData("r64"))
mi5<-antsImageRead( getANTsRData("r85"))
refmask<-getMask(ref)
refmask<-iMath(refmask,"ME",2) # just to speed things up
ilist<-list(mi,mi2,mi3,mi4,mi5)
for ( i in 1:length(ilist) )
{
ilist[[i]]<-iMath(ilist[[i]],"Normalize")
mytx<-antsRegistration(fixed=ref , moving=ilist[[i]] ,
typeofTransform = c("Affine") )
mywarpedimage<-antsApplyTransforms(fixed=ref,moving=ilist[[i]],
transformlist=mytx$fwdtransforms)
ilist[[i]]=mywarpedimage
}
mat=imageListToMatrix( ilist , refmask )
kmseg=kmeansSegmentation( ref, 3, refmask )
initlist=list()
for ( k in 1:3 )
initlist[[k]]=
thresholdImage(kmseg$probabilityimages[[k]],0.1,Inf) *
kmseg$probabilityimages[[k]]
eanat<-sparseDecom( mat,
inmask=refmask, ell1=0.1,
sparseness=0.0, smooth=0.5, verbose=1,
initializationList=initlist, cthresh=25,
nvecs=3, priorWeight=0.5 )
ee=matrixToImages( eanat$eigenanatomyimages, refmask )
eseg=eigSeg( refmask, ee )
priormat=imageListToMatrix( initlist, refmask )
cor( t(eanat$eigenanatomyimages), t(priormat) )
plot( ref, eseg )
# }
Run the code above in your browser using DataLab