Learn R Programming

MOFA (version 1.3.1)

predict: Do predictions using a fitted MOFA model

Description

This function uses the factors and the corresponding weights to do data predictions.

Usage

predict(object, views = "all", factors = "all", type = c("inRange",
  "response", "link"))

Arguments

object

a MOFAmodel object.

views

character vector with the view name(s), or numeric vector with the view index(es). Default is "all".

factors

character vector with the factor name(s) or numeric vector with the factor index(es). Default is "all".

type

type of prediction returned, either:

  • response: gives the response vector, the mean for Gaussian and Poisson, and success probabilities for Bernoulli.

  • link: gives the linear predictions.

  • inRange: rounds the fitted values of integer-valued distributions (Poisson and Bernoulli) to the next integer. This is the default option.

Value

Returns a list with data predictions.

Details

Matrix factorization models generate a denoised and condensed low-dimensional representation of the data which capture the main sources of heterogeneity of the data. Such representation can be used to do predictions (data reconstruction) and imputation (see impute). For mathematical details, see the Methods section of the MOFA article.

Examples

Run this code
# NOT RUN {
library(ggplot2)

# Example on the CLL data
filepath <- system.file("extdata", "CLL_model.hdf5", package = "MOFAdata")
MOFA_CLL <- loadModel(filepath)

# predict drug response data using all factors
predictedDrugs <- predict(MOFA_CLL, view="Drugs")

# predict all views using all factors (default)
predictedAll <- predict(MOFA_CLL)

# predict Mutation data using all factors, returning Bernoulli probabilities
predictedMutations <- predict(MOFA_CLL, view="Mutations", type="response")

# predict Mutation data using all factors, returning binary classes
predictedMutationsBinary <- predict(MOFA_CLL, view="Mutations", type="inRange")

# Compare the predictions with the true data
pred <- as.numeric(predictedAll$Drugs)
true <- as.numeric(getTrainData(MOFA_CLL)$Drugs)
qplot(pred,true) + geom_hex(bins=100) + coord_equal() + 
   geom_abline(intercept=0, slope=1, col="red")

# Example on the scMT data
filepath <- system.file("extdata", "scMT_model.hdf5", package = "MOFAdata")
MOFA_scMT <- loadModel(filepath)

# Predict all views using all factors (default)
predictedAll <- predict(MOFA_scMT)
 
# Compare the predictions with the true data
view <- "RNA expression"
pred <- as.numeric(predictedAll[[view]])
true <- as.numeric(getTrainData(MOFA_scMT)[[view]])
qplot(pred,true) + geom_hex(bins=100) + coord_equal() + 
   geom_abline(intercept=0, slope=1, col="red") 
# }

Run the code above in your browser using DataLab