Description Usage Arguments Value See Also Examples
Apply the estimates from cycle_npreg_insample
to another gene expression dataset to infer an angle, or cell cycle
phase, for each cell.
1 2 3 4 5 6 7 8 9 10 11 12  | cycle_npreg_outsample(
  Y_test,
  sigma_est,
  funs_est,
  method.trend = c("trendfilter", "loess", "bspline"),
  normed = TRUE,
  polyorder = 2,
  method.grid = "uniform",
  ncores = 2,
  grids = 100,
  get_trend_estimates = FALSE
)
 | 
Y_test | 
 A   | 
sigma_est | 
 A vector of gene-specific standard errors of the cyclic trends.  | 
funs_est | 
 A vector of cyclic functions used to estimate cyclic trends.  | 
method.trend | 
 How to estimate cyclic trend of gene expression
values. We offer three options:   | 
normed | 
 Is the data already normalized?   | 
polyorder | 
 We estimate cyclic trends of gene expression levels using nonparamtric trend filtering.  | 
method.grid | 
 The approach used to initialize angles in the
computation.   | 
ncores | 
 We use doParallel package for parallel computing.  | 
grids | 
 number of bins to be selected along 0 to 2pi.  | 
get_trend_estimates | 
 Re-estimate the cylic trend based on the
predicted cell cycle phase, or not (  | 
A list with the following elements:
Y | 
 The inputted gene expression marix.  | 
cell_times_est | 
 Inferred angles or cell cycle phases (not ordered).  | 
loglik_est | 
 Log-likelihoods for each gene.  | 
cell_times_reordered | 
 The inferred angles, in ascending order.  | 
Y_reorded | 
 The input gene expression matrix reordered by
  | 
sigma_reordered | 
 Standard error of the cyclic trend for each
gene, reordered by   | 
funs_reordered | 
 A list of functions for approximating the
cyclic trends of gene expression levels for each gene, reordered by
  | 
mu_reordered | 
 Estimated cyclic trend of gene expression
values for each gene, reordered by   | 
prob_per_cell_by_celltimes | 
 Probabilities of each cell belonging to each bin.  | 
cycle_npreg_insample for estimating parameters for
cyclic functions from training data,
cycle_npreg_loglik for log-likehood at angles between
0 to 2pi, and cycle_npreg_mstep for estimating cyclic
functions given inferred phases from
cycle_npreg_loglik.
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 54 55 56 57 58  | library(SingleCellExperiment)
data(sce_top101genes)
# Select top 5 cyclic genes.
sce_top5 <- sce_top101genes[order(rowData(sce_top101genes)$pve_fucci,
                                  decreasing = TRUE)[1:5],]
# Select NA18511 samples for training and test sets.
coldata               <- colData(sce_top5)
which_samples_train   <- rownames(coldata)[coldata$chip_id != "NA18511"]
which_samples_predict <- rownames(coldata)[coldata$chip_id == "NA18511"]
# Learn gene cyclic functions from the training data using the
# trend filtering method.
sce_top5    <- data_transform_quantile(sce_top5)
expr_quant  <- assay(sce_top5, "cpm_quantNormed")
Y_train     <- expr_quant[, colnames(expr_quant) %in% which_samples_train]
theta_train <- coldata$theta_shifted[rownames(coldata) %in%
                 which_samples_train]
names(theta_train) <- rownames(coldata)[rownames(coldata) %in%
                                        which_samples_train]
model_5genes_train <- cycle_npreg_insample(Y = Y_train,theta = theta_train,
                                           polyorder = 2,ncores = 2,
                                           method.trend = "trendfilter")
# Predict cell cycle in the test samples.
Y_test <- sce_top5[,colnames(sce_top5) %in% which_samples_predict]
model_5genes_predict <-
  cycle_npreg_outsample(Y_test = Y_test,
                        sigma_est = model_5genes_train$sigma_est,
                        funs_est = model_5genes_train$funs_est,
                        method.trend = "trendfilter",
                        ncores = 2,get_trend_estimates = FALSE)
# Estimate cyclic gene expression levels given the cell cycle for each
# gene.
predict_cyclic <-
  fit_cyclical_many(Y = assay(model_5genes_predict$Y,"cpm_quantNormed"),
                    theta = colData(model_5genes_predict$Y)$cellcycle_peco)
# Plot the cell cycle predictions vs. FUCCI phase.
par(mfrow = c(2,3),mar = c(4,4,3,1))
for (g in seq_along(rownames(model_5genes_predict$Y))) {
  plot(assay(model_5genes_predict$Y,"cpm_quantNormed")[
        rownames(model_5genes_predict$Y)[g],],
       x = colData(model_5genes_predict$Y)$cellcycle_peco,axes = FALSE,
       xlab = "FUCCI phase",ylab = "predicted phase")
  x <- seq(0,2*pi,length.out = 100)
  lines(x = x,y = predict_cyclic$cellcycle_function[[
                     rownames(model_5genes_predict$Y)[g]]](x),
        lwd = 1.5,col = "tomato")
  axis(2)
  axis(1,at = seq(0,2*pi,length.out = 5),
       labels = c(0,expression(pi/2),expression(pi),expression(3*pi/2),
                  expression(2*pi)))
  abline(h = 0,lwd = 1,col = "skyblue",lty = "dotted")
  title(names(model_5genes_predict$Y)[g])
}
 | 
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.