% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/network.glmnet.R
\name{glmSparseNet}
\alias{glmSparseNet}
\title{Calculate GLM model with network-based regularization}
\usage{
glmSparseNet(
  xdata,
  ydata,
  network,
  network.options = networkOptions(),
  experiment.name = NULL,
  ...
)
}
\arguments{
\item{xdata}{input data, can be a matrix or MultiAssayExperiment}

\item{ydata}{response data compatible with glmnet}

\item{network}{type of network, see below}

\item{network.options}{options to calculate network}

\item{experiment.name}{name of experiment to use as input in
MultiAssayExperiment object (only if xdata is an object of this class)}

\item{...}{parameters that glmnet accepts}
}
\value{
an object just as glmnet
}
\description{
network parameter accepts:
}
\details{
* string to calculate network based on data (correlation, covariance)
 * matrix representing the network
 * vector with already calculated penalty weights (can also be used directly
   with glmnet)
}
\examples{
xdata <- matrix(rnorm(100), ncol = 20)
glmSparseNet(xdata, rnorm(nrow(xdata)), 'correlation', family = 'gaussian')
glmSparseNet(xdata, rnorm(nrow(xdata)), 'covariance', family = 'gaussian')

#
#
# Using MultiAssayExperiment
# load data
xdata <- MultiAssayExperiment::miniACC
# TODO aking out x indivudals missing values
# build valid data with days of last follow up or to event
event.ix <- which(!is.na(xdata$days_to_death))
cens.ix <- which(!is.na(xdata$days_to_last_followup))
xdata$surv_event_time <- array(NA, nrow(colData(xdata)))
xdata$surv_event_time[event.ix] <- xdata$days_to_death[event.ix]
xdata$surv_event_time[cens.ix] <- xdata$days_to_last_followup[cens.ix]
# Keep only valid individuals
valid.ix <- as.vector(!is.na(xdata$surv_event_time) &
                      !is.na(xdata$vital_status) &
                      xdata$surv_event_time > 0)
xdata.valid <- xdata[, rownames(colData(xdata))[valid.ix]]
ydata.valid <- colData(xdata.valid)[,c('surv_event_time', 'vital_status')]
colnames(ydata.valid) <- c('time', 'status')
glmSparseNet(xdata.valid,
             ydata.valid,
             family          = 'cox',
             network         = 'correlation',
             experiment.name = 'RNASeq2GeneNorm')
}
