## ----installation, echo=TRUE, eval=FALSE-----------------------------------
# ## try http:// if https:// URLs are not supported
# if (!requireNamespace("BiocManager", quietly=TRUE))
# install.packages("BiocManager")
# BiocManager::install("BPRMeth")
#
# ## Or download from Github repository
# # install.packages("devtools")
# devtools::install_github("andreaskapou/BPRMeth", build_vignettes = TRUE)
## ---- fig.retina = NULL, fig.align='center', fig.cap="Illustration of the process for infering methylation profiles using the `BPRMeth` package.", echo=FALSE----
knitr::include_graphics("../inst/figures/model.png")
## ---- fig.retina = NULL, fig.align='center', fig.cap="Workflow diagram and functionalities of the BPRMeth package.", echo=FALSE----
knitr::include_graphics("../inst/figures/workflow.png")
## ----load_met, echo=TRUE, message=FALSE, warning=FALSE---------------------
library(BPRMeth) # Load package
met_region <- encode_met
## ---- echo=TRUE, message=FALSE, warning=FALSE------------------------------
head(met_region$met[[20]])
## ---- echo=TRUE, message=FALSE, warning=FALSE------------------------------
head(met_region$anno)
## ---- echo=TRUE, message=FALSE, warning=FALSE------------------------------
NROW(met_region$anno)
## ----read_met_dt_pipeline, echo=TRUE, message=FALSE, eval=FALSE------------
# # Read bulk methylation data
# met_dt <- read_met(file = "met_file", type = "bulk_seq")
# # Read annotation file, which will create annotation regions as well
# anno_dt <- read_anno(file = "anno_file")
# # Create methylation regions that have CpG coverage
# met_region <- create_region_object(met_dt = met_dt, anno_dt = anno_dt)
## ---- echo=TRUE, message=FALSE, warning=FALSE------------------------------
expr <- encode_expr
## ---- echo=TRUE, message=FALSE, warning=FALSE------------------------------
head(expr)
## ---- echo=TRUE, message=FALSE, eval=FALSE, warning=FALSE------------------
# # Read expression data and log2 transform them
# expr <- read_expr(file = "expr_file", log2_transf = TRUE)
## ----create_basis, echo=TRUE, message=FALSE, warning=FALSE-----------------
# Create RBF basis object with 5 RBFs
basis_profile <- create_rbf_object(M = 5)
# Create RBF basis object with 0 RBFs, i.e. constant function
basis_mean <- create_rbf_object(M = 0)
## ----show_basis, echo=TRUE, message=FALSE, warning=FALSE-------------------
# Show the slots of the 'rbf' object
basis_profile
## ----infer_profiles, echo=TRUE, message=FALSE, warning=FALSE---------------
fit_profiles <- infer_profiles_vb(X = met_region$met, model = "binomial",
basis = basis_profile, is_parallel = FALSE)
fit_mean <- infer_profiles_vb(X = met_region$met, model = "binomial",
basis = basis_mean, is_parallel = FALSE)
## ----show_infer_object, echo=TRUE, message=FALSE, warning=FALSE------------
# Show structure of fit_profiles object
str(fit_profiles, max.level = 1)
## ----plotprofile, fig.wide=TRUE, echo=TRUE, fig.cap="Inferring methylation profiles. Methylation pattern for specific genomic region over +/-7kb promoter region.", message=FALSE, eval=TRUE, warning=FALSE----
# Choose promoter region 21 -> i.e. LEPREL2 gene
gene_id <- met_region$anno$id[21]
p <- plot_infer_profiles(region = 21, obj_prof = fit_profiles,
obj_mean = fit_mean, obs = met_region$met,
title = paste0("Gene ID ", gene_id))
print(p)
## ----predictexpr, echo=TRUE, message=FALSE, warning=FALSE, warning=FALSE----
# Set seed for reproducible results
set.seed(22)
# Perform predictions using methylation profiles
pred_profile <- predict_expr(prof_obj = fit_profiles, expr = expr,
anno = met_region$anno, model_name = "svm",
fit_feature = "RMSE", cov_feature = TRUE,
is_summary = FALSE)
# Perform predictions using mean methylation rate
pred_mean <- predict_expr(prof_obj = fit_mean, expr = expr,
anno = met_region$anno, model_name = "svm",
is_summary = FALSE)
## ----l9, echo=TRUE, message=FALSE, warning=FALSE---------------------------
print(paste("Profile r: ", round(pred_profile$test_errors$pcc, 2)))
print(paste("Mean r:", round(pred_mean$test_errors$pcc, 2)))
## ----plotpred, echo=TRUE, fig.cap="Relationship between DNA methylation patterns and gene expression. Scatter plots of predicted versus measured (log2-transformed) gene expression values using profiles (left) and rates (right); each shaded blue dot represents a different gene, The red line indicates the linear fit between the predicted and measured expression values.", fig.wide=TRUE, message=FALSE, eval=TRUE, warning=FALSE----
g1 <- plot_predicted_expr(pred_obj = pred_profile,
title = "Methylation profile")
g2 <- plot_predicted_expr(pred_obj = pred_mean,
title = "Methylation rate")
g <- cowplot::plot_grid(g1, g2, ncol = 2, nrow = 1)
print(g)
## ----clustering, echo=TRUE, message=FALSE, eval=TRUE, warning=FALSE--------
# Set seed for reproducible results
set.seed(12)
# Create basis object
basis_obj <- create_rbf_object(M = 3)
# Set number of clusters K
K <- 4
# Perform clustering
cl_obj <- cluster_profiles_vb(X = met_region$met, K = K, model = "binomial",
alpha_0 = .5, beta_0 = .1,
basis = basis_obj, vb_max_iter = 20)
## ----clusterplot, fig.wide=TRUE, echo=TRUE, fig.cap="Clustering methylation profiles across promoter-proximal regions.", message=FALSE, eval=TRUE, warning=FALSE----
cluster_plot <- plot_cluster_profiles(cluster_obj = cl_obj)
print(cluster_plot)
## ----infer_profiles_beta, fig.wide = TRUE, echo=TRUE, message=FALSE, warning=FALSE----
basis_obj <- create_rbf_object(M = 5)
# Infer beta profiles
beta_prof <- infer_profiles_mle(X = beta_data, model = "beta",
basis = basis_obj, is_parallel = FALSE)
p <- plot_infer_profiles(region = 15, obj_prof = beta_prof,
obs = beta_data, title = "Beta profile")
print(p)
## ----infer_profiles_bernoulli, fig.wide=TRUE, echo=TRUE, message=FALSE, warning=FALSE----
basis_prof <- create_rbf_object(M = 5)
basis_mean <- create_rbf_object(M = 0)
bern_prof <- infer_profiles_vb(X = bernoulli_data, model = "bernoulli",
basis = basis_prof, is_parallel = FALSE)
bern_mean <- infer_profiles_vb(X = bernoulli_data, model = "bernoulli",
basis = basis_mean, is_parallel = FALSE)
p <- plot_infer_profiles(region = 60, obj_prof = bern_prof,
obj_mean = bern_mean, obs = bernoulli_data,
title = "Bernoulli profile")
print(p)
## ----cluster_bernoulli, fig.wide=TRUE, echo=TRUE, fig.cap="Clustering Bernoulli methylation profiles.", message=FALSE, eval=TRUE, warning=FALSE----
# Perform clustering
cl_obj <- cluster_profiles_vb(X = bernoulli_data, K = 3, model = "bernoulli",
basis = basis_obj, vb_max_iter = 40)
cluster_plot <- plot_cluster_profiles(cluster_obj = cl_obj)
print(cluster_plot)
## ----session_info, echo=TRUE, message=FALSE--------------------------------
sessionInfo()
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.