diff --git a/R/BASiCS-simulate.R b/R/BASiCS-simulate.R
index 743f48f11b47bbcbd29789b83d78348bba95e0cb..f2f40da935393b8f76003990ca10de021a5a5aa0 100644
--- a/R/BASiCS-simulate.R
+++ b/R/BASiCS-simulate.R
@@ -25,7 +25,9 @@
 #' Code: \url{https://github.com/catavallejos/BASiCS}
 #'
 #' @examples
-#' sim <- BASiCSSimulate()
+#' if (requireNamespace("BASiCS", quietly = TRUE)) {
+#'     sim <- BASiCSSimulate()
+#' }
 #' @export
 BASiCSSimulate <- function(params = newBASiCSParams(), verbose = TRUE, ...) {
 
diff --git a/R/mfa-estimate.R b/R/mfa-estimate.R
index 62aa212951ec26e51ad7f7aaea05c27ee585e1d2..1ff363c85d517e44118d6c1a08f21bafb371e484 100644
--- a/R/mfa-estimate.R
+++ b/R/mfa-estimate.R
@@ -16,11 +16,13 @@
 #'
 #' @examples
 #' # Load example data
-#' library(scater)
-#' data("sc_example_counts")
+#' if (requireNamespace("mfa", quietly = TRUE)) {
+#'     library(scater)
+#'     data("sc_example_counts")
 #'
-#' params <- mfaEstimate(sc_example_counts)
-#' params
+#'     params <- mfaEstimate(sc_example_counts)
+#'     params
+#' }
 #' @export
 mfaEstimate <- function(counts, params = newMFAParams()) {
     UseMethod("mfaEstimate")
diff --git a/R/mfa-simulate.R b/R/mfa-simulate.R
index 8f6a7a29312d30dd87f942fd66aead64a81db5b1..eb7e1d1867e076eee377d2bfa88b6f7a407a7a8d 100644
--- a/R/mfa-simulate.R
+++ b/R/mfa-simulate.R
@@ -27,7 +27,9 @@
 #' Code: \url{https://github.com/kieranrcampbell/mfa}
 #'
 #' @examples
-#' sim <- mfaSimulate()
+#' if (requireNamespace("mfa", quietly = TRUE)) {
+#'     sim <- mfaSimulate()
+#' }
 #' @export
 mfaSimulate <- function(params = newMFAParams(), verbose = TRUE, ...) {
 
diff --git a/R/pheno-estimate.R b/R/pheno-estimate.R
index cccf02fd575db38a2a210602b7f2501a480aee72..b7ee6e8dcbe442a51e938e1eab13c82bfffdf398 100644
--- a/R/pheno-estimate.R
+++ b/R/pheno-estimate.R
@@ -15,12 +15,14 @@
 #' @return PhenoParams object containing the estimated parameters.
 #'
 #' @examples
-#' # Load example data
-#' library(scater)
-#' data("sc_example_counts")
+#' if (requireNamespace("phenopath", quietly = TRUE)) {
+#'     # Load example data
+#'     library(scater)
+#'     data("sc_example_counts")
 #'
-#' params <- phenoEstimate(sc_example_counts)
-#' params
+#'     params <- phenoEstimate(sc_example_counts)
+#'     params
+#' }
 #' @export
 phenoEstimate <- function(counts, params = newPhenoParams()) {
     UseMethod("phenoEstimate")
diff --git a/R/pheno-simulate.R b/R/pheno-simulate.R
index 56c2e99ddb5d45834214c941892dfc40a68221a1..8e068a3fc110a523509165d95ef6021010541ebd 100644
--- a/R/pheno-simulate.R
+++ b/R/pheno-simulate.R
@@ -29,8 +29,9 @@
 #' Code: \url{https://github.com/kieranrcampbell/phenopath}
 #'
 #' @examples
-#' sim <- phenoSimulate()
-#'
+#' if (requireNamespace("phenopath", quietly = TRUE)) {
+#'     sim <- phenoSimulate()
+#' }
 #' @export
 #' @importFrom SingleCellExperiment SingleCellExperiment
 phenoSimulate <- function(params = newPhenoParams(), verbose = TRUE, ...) {
diff --git a/R/sparseDC-estimate.R b/R/sparseDC-estimate.R
index b4b02eaa35aec14df70db929ac8581f5fb65f55c..99c8b7c3e61cf24eb41f274eea6675925b8edc19 100644
--- a/R/sparseDC-estimate.R
+++ b/R/sparseDC-estimate.R
@@ -24,16 +24,18 @@
 #' @return SparseParams object containing the estimated parameters.
 #'
 #' @examples
-#' # Load example data
-#' library(scater)
-#' data("sc_example_counts")
+#' if (requireNamespace("SparseDC", quietly = TRUE)) {
+#'     # Load example data
+#'     library(scater)
+#'     data("sc_example_counts")
 #'
-#' set.seed(1)
-#' conditions <- sample(1:2, ncol(sc_example_counts), replace = TRUE)
+#'     set.seed(1)
+#'     conditions <- sample(1:2, ncol(sc_example_counts), replace = TRUE)
 #'
-#' params <- sparseDCEstimate(sc_example_counts[1:500, ], conditions,
-#'                            nclusters = 3)
-#' params
+#'     params <- sparseDCEstimate(sc_example_counts[1:500, ], conditions,
+#'                                nclusters = 3)
+#'     params
+#' }
 #' @export
 sparseDCEstimate <- function(counts, conditions, nclusters, norm = TRUE,
                              params = newSparseDCParams()) {
diff --git a/R/sparseDC-simulate.R b/R/sparseDC-simulate.R
index 6b410ed1215e8f01a1282900408717c9530ccb77..5aa9a4ed6939262d8935d8d2597808a85123ee76 100644
--- a/R/sparseDC-simulate.R
+++ b/R/sparseDC-simulate.R
@@ -31,8 +31,9 @@
 #' Paper: \url{10.1093/nar/gkx1113}
 #'
 #' @examples
-#' sim <- sparseDCSimulate()
-#'
+#' if (requireNamespace("SparseDC", quietly = TRUE)) {
+#'     sim <- sparseDCSimulate()
+#' }
 #' @export
 #' @importFrom SingleCellExperiment SingleCellExperiment
 sparseDCSimulate <- function(params = newSparseDCParams(),
diff --git a/R/zinb-simulate.R b/R/zinb-simulate.R
index 7ebefa296772125bc7d35423b2d2cf831071109c..83da9739bbc9530c141b090c81a055c073458a35 100644
--- a/R/zinb-simulate.R
+++ b/R/zinb-simulate.R
@@ -30,7 +30,9 @@
 #' Code: \url{https://github.com/drisso/zinbwave}
 #'
 #' @examples
-#' sim <- zinbSimulate()
+#' if (requireNamespace("zinbwave", quietly = TRUE)) {
+#'     sim <- zinbSimulate()
+#' }
 #'
 #' @export
 #' @importFrom SingleCellExperiment SingleCellExperiment
diff --git a/man/BASiCSSimulate.Rd b/man/BASiCSSimulate.Rd
index 635d549ee3c908deb937bbb4e145d0714c04e4bc..acdfb16115cf167fa2b7f07daf06206e8ed2ac2d 100644
--- a/man/BASiCSSimulate.Rd
+++ b/man/BASiCSSimulate.Rd
@@ -28,7 +28,9 @@ See \code{\link[BASiCS]{BASiCS_Sim}} for more details of how the simulation
 works.
 }
 \examples{
-sim <- BASiCSSimulate()
+if (requireNamespace("BASiCS", quietly = TRUE)) {
+    sim <- BASiCSSimulate()
+}
 }
 \references{
 Vallejos CA, Marioni JC, Richardson S. BASiCS: Bayesian Analysis of
diff --git a/man/mfaEstimate.Rd b/man/mfaEstimate.Rd
index c8ad13e6cf8ff7775d21c36ae89b991470df3b40..9bf15216a02efc578eaed631c3e112870ed0e1ce 100644
--- a/man/mfaEstimate.Rd
+++ b/man/mfaEstimate.Rd
@@ -33,9 +33,11 @@ details on the parameters.
 }
 \examples{
 # Load example data
-library(scater)
-data("sc_example_counts")
+if (requireNamespace("mfa", quietly = TRUE)) {
+    library(scater)
+    data("sc_example_counts")
 
-params <- mfaEstimate(sc_example_counts)
-params
+    params <- mfaEstimate(sc_example_counts)
+    params
+}
 }
diff --git a/man/mfaSimulate.Rd b/man/mfaSimulate.Rd
index ec2a98e243fd7942f29bc715cac6890b68b4397e..016bb04b23c334caab222ca71631f7ece920135e 100644
--- a/man/mfaSimulate.Rd
+++ b/man/mfaSimulate.Rd
@@ -29,7 +29,9 @@ output from log-expression to counts and returns a
 how the simulation works.
 }
 \examples{
-sim <- mfaSimulate()
+if (requireNamespace("mfa", quietly = TRUE)) {
+    sim <- mfaSimulate()
+}
 }
 \references{
 Campbell KR, Yau C. Probabilistic modeling of bifurcations in single-cell
diff --git a/man/phenoEstimate.Rd b/man/phenoEstimate.Rd
index 1c102ba3d2f02c73a5d5101298d5bfa7cac957ed..7a46a24ed86b247e49cf7fb81088b6b2de753504 100644
--- a/man/phenoEstimate.Rd
+++ b/man/phenoEstimate.Rd
@@ -32,10 +32,12 @@ input data. The total number of genes is evenly divided into the four types.
 See \code{\link{PhenoParams}} for more details on the parameters.
 }
 \examples{
-# Load example data
-library(scater)
-data("sc_example_counts")
+if (requireNamespace("phenopath", quietly = TRUE)) {
+    # Load example data
+    library(scater)
+    data("sc_example_counts")
 
-params <- phenoEstimate(sc_example_counts)
-params
+    params <- phenoEstimate(sc_example_counts)
+    params
+}
 }
diff --git a/man/phenoSimulate.Rd b/man/phenoSimulate.Rd
index 34f5efb79b85a6acbcbefed7142e797d6f10034e..24c43a8a41fcc9d104a5fd2f08913b4d432109d9 100644
--- a/man/phenoSimulate.Rd
+++ b/man/phenoSimulate.Rd
@@ -31,8 +31,9 @@ See \code{\link[phenopath]{simulate_phenopath}} and the PhenoPath paper for
 more details about how the simulation works.
 }
 \examples{
-sim <- phenoSimulate()
-
+if (requireNamespace("phenopath", quietly = TRUE)) {
+    sim <- phenoSimulate()
+}
 }
 \references{
 Campbell K, Yau C. Uncovering genomic trajectories with heterogeneous genetic
diff --git a/man/sparseDCEstimate.Rd b/man/sparseDCEstimate.Rd
index 72671dc48112523b4d4beae3d5463bc8395afb17..cbfdbe8c62f9735b1d5a8177c9fbeed5cad359dc 100644
--- a/man/sparseDCEstimate.Rd
+++ b/man/sparseDCEstimate.Rd
@@ -46,14 +46,16 @@ input data. The counts are preprocessed using
 See \code{\link{SparseDCParams}} for more details on the parameters.
 }
 \examples{
-# Load example data
-library(scater)
-data("sc_example_counts")
+if (requireNamespace("SparseDC", quietly = TRUE)) {
+    # Load example data
+    library(scater)
+    data("sc_example_counts")
 
-set.seed(1)
-conditions <- sample(1:2, ncol(sc_example_counts), replace = TRUE)
+    set.seed(1)
+    conditions <- sample(1:2, ncol(sc_example_counts), replace = TRUE)
 
-params <- sparseDCEstimate(sc_example_counts[1:500, ], conditions,
-                           nclusters = 3)
-params
+    params <- sparseDCEstimate(sc_example_counts[1:500, ], conditions,
+                               nclusters = 3)
+    params
+}
 }
diff --git a/man/sparseDCSimulate.Rd b/man/sparseDCSimulate.Rd
index 4c1f3419e0c5f8724ae20a893d26b0dd0eda3a80..c88ac8d89f80c86d8a3a9a0f9065508d6f444ae9 100644
--- a/man/sparseDCSimulate.Rd
+++ b/man/sparseDCSimulate.Rd
@@ -31,8 +31,9 @@ See \code{\link[SparseDC]{sim_data}} and the SparseDC paper for
 more details about how the simulation works.
 }
 \examples{
-sim <- sparseDCSimulate()
-
+if (requireNamespace("SparseDC", quietly = TRUE)) {
+    sim <- sparseDCSimulate()
+}
 }
 \references{
 Campbell K, Yau C. Uncovering genomic trajectories with heterogeneous genetic
diff --git a/man/zinbSimulate.Rd b/man/zinbSimulate.Rd
index 17c6611ee19c0ce88a5412947f5945b2737f3738..ab3d22722800ca590375d2c7f4f50e570af9142c 100644
--- a/man/zinbSimulate.Rd
+++ b/man/zinbSimulate.Rd
@@ -28,7 +28,9 @@ See \code{\link[zinbwave]{zinbSim}} and the ZINB-WaVE paper for
 more details about how the simulation works.
 }
 \examples{
-sim <- zinbSimulate()
+if (requireNamespace("zinbwave", quietly = TRUE)) {
+    sim <- zinbSimulate()
+}
 
 }
 \references{
diff --git a/tests/testthat/test-BASiCS-simulate.R b/tests/testthat/test-BASiCS-simulate.R
index 98d6cade8d45e99a33f0b9c99891bae84cffd483..081ada534571ca9819c5e5b365c583c148d92cc3 100644
--- a/tests/testthat/test-BASiCS-simulate.R
+++ b/tests/testthat/test-BASiCS-simulate.R
@@ -2,5 +2,5 @@ context("BASiCS simulation")
 
 test_that("BASiCS simulation output is valid", {
     skip_if_not_installed("BASiCS")
-    expect_true(validObject(sparseDCSimulate()))
+    expect_true(validObject(BASiCSSimulate()))
 })