Single Cell RNA-seq Analysis Workshop
  • About
  • Software Setup
  • Schedule
  • Materials
  • Datasets
  • Cheat Sheets
  • Additional Resources

FAQ — Common Workshop Issues

The questions that come up every workshop. If yours isn’t here, ask on the workshop’s chat channel (see About) and we’ll add it.

Setup & installs

BiocManager::install() is taking forever / hanging on a single package

The most common cause is a slow Bioconductor mirror. Pick a closer one:

chooseBioCmirror()        # interactive; pick a US mirror if you're in the US
options(BioC_mirror = "https://bioconductor.org")

Then re-run BiocManager::install().

Mac: “compilation failed” / clang errors during install

You’re missing the Xcode command-line tools. In a terminal:

xcode-select --install

Re-launch RStudio after it finishes. If you also see gfortran not found, install gfortran for macOS and retry.

Windows / WSL: R can’t see the project files

Don’t keep your project on the Windows side (/mnt/c/Users/...) and run R from WSL — file I/O is dramatically slower and case-sensitivity differs. Either:

  • Run R + RStudio inside WSL (recommended for advanced users), with the project under ~/, or
  • Run RStudio for Windows with the project on the Windows side.

Pick one and stick with it.

“RStudio can’t find my newly installed packages”

Almost always a stale R session. Restart R: Session → Restart R (or Ctrl/Cmd + Shift + F10). If a package was installed from a different R version, run:

.libPaths()                       # which library is being used?
installed.packages()[, "Package"] # what's actually installed there?

If the version doesn’t match, point RStudio at the correct R install: Tools → Global Options → General → R version.

Seurat install fails with a Matrix / SeuratObject version mismatch

Reinstall the trio together, in this order:

install.packages(c("Matrix", "SeuratObject", "Seurat"))

Then restart R.

Datasets

Read10X() says “Barcode file missing” or “matrix file missing”

You almost certainly pointed at the wrong directory. The argument should be the folder containing barcodes.tsv.gz, features.tsv.gz, and matrix.mtx.gz, not any of those files. Run:

list.files("data/filtered_feature_bc_matrix")

You should see exactly those three filenames.

I ran the tutorial but no figures / tables / .rds files appeared

They were almost certainly created — just not where you were looking. The tutorials expect a project folder with a scripts/ subfolder (where you put the downloaded .qmd files) — see Datasets → Expected directory layout and the downloadable README on the Materials page. Run each .qmd from scripts/; on first run it creates data/ and output/ModN/ as siblings of scripts/ (at the project root), and prints the exact location:

This module writes its figures & tables to: /Users/you/my_scrnaseq_project/output/Mod1

If you can’t find your files:

  1. Check getwd() — it should be your scripts/ folder. The code writes to ../data and ../output (one level up), so the files land at the project root. In RStudio, “Run Current Chunk” uses the folder the .qmd is in; a stray setwd() or the Tools ▸ Global Options ▸ R Markdown ▸ “Evaluate chunks in directory” setting can change it.
  2. Keep all the tutorial .qmd files together in scripts/. Tutorial 01 writes ../data/ifnb_preprocessed.rds and Tutorial 02 reads it from the same project data/; if the files are scattered across folders the hand-off breaks with cannot open the connection.
  3. Nothing runs on Render with eval: false — the chunks are tagged #| eval: false, so rendering the document shows the code without executing it. To actually produce files, run the chunks interactively (▶ / Ctrl-Cmd-Enter) or flip eval: true.

Running the analysis

Old results keep coming back / a fix doesn’t take effect (“stale” output)

These tutorials do not use knitr/Quarto chunk caching, so this is almost always one of two kinds of staleness:

  • In memory — R keeps every object you’ve made for the whole session, so a later chunk can use an old object after you’ve edited an earlier one.
  • On disk — each tutorial reads the .rds its predecessor saved into data/; if you change an earlier tutorial but don’t re-run it, the next one loads the old data/*.rds.

To get a clean run:

  1. Restart R to empty the session: Session ▸ Restart R (Ctrl/Cmd + Shift + F10), then re-run top-to-bottom — Run ▸ Restart R and Run All Chunks does both. (rm(list = ls()) clears variables but not loaded packages; prefer Restart R.)
  2. Stop RStudio reloading old objects: Tools ▸ Global Options ▸ General — uncheck “Restore .RData into workspace at startup” and set “Save workspace to .RData on exit” to Never.
  3. Re-run any earlier tutorial you changed so it overwrites its data/*.rds. To force a full clean rebuild, delete data/ and start again from Tutorial 01 (run from your scripts/ folder): unlink("../data", recursive = TRUE). ifnb re-downloads from its package cache, so you only regenerate the intermediates.
  4. To clear only the stale plots/tables shown under chunks in the editor (display only, not computation): the Run/gear menu has “Clear All Output”.

My UMAP doesn’t match the slide / handout exactly

Expected. UMAP and clustering both depend on a random seed. The cluster identities and overall topology should match; rotation/reflection of the embedding will not. To reproduce exactly, set:

set.seed(2026)
seu <- RunUMAP(seu, dims = 1:30, seed.use = 2026)
seu <- FindClusters(seu, random.seed = 2026)

FindMarkers is slow

Install presto (it’s in the install script). Seurat will detect it automatically and use a much faster Wilcoxon implementation.

I get warnings about future / parallelization

Most are safe to ignore. To silence and pick a sensible default, add at the top of your script:

options(future.globals.maxSize = 8 * 1024^3)   # 8 GB
future::plan("multicore", workers = 4)         # or "multisession" on Windows

“Cannot allocate vector of size XX Gb”

You’ve run out of RAM. Options, in increasing order of effort:

  1. Restart R and only load the objects you need.
  2. Subset cells (subset(seu, downsample = 5000) for an exploration session).
  3. Use sparse-matrix operations (Seurat does by default; check that you haven’t accidentally turned the assay into a dense matrix).
  4. Move to Talapas: a --mem=64G interactive job is plenty for most tutorials.

Talapas / HPC

“Permission denied (publickey, password)”

You either typed the password wrong, or your account isn’t active yet. Reset at https://duckid.uoregon.edu/ and verify you can log in to a UO web service first. Email RACS if it persists.

Duo prompt never arrives

Make sure the Duo Mobile app is open and your phone has data/Wi-Fi. If pushes don’t work, type 2 instead of 1 at the Duo prompt to get a phone-call code, or 3 for a passcode.

srun says “Invalid account or account/partition combination”

You forgot --account=<myPIRG> or your SLURM_ACCOUNT env-var isn’t set. See the SLURM Basics tutorial §2.

My job is PD (pending) forever

Run squeue -j <jobid> --start — the REASON column tells you why. Common ones:

  • Resources — you asked for more than the cluster currently has free; let earlier jobs drain.
  • Priority — normal queueing; you’ll run when it’s your turn.
  • ReqNodeNotAvail, Reserved for maintenance — your wall time runs into a maintenance window. Shorten --time or add --time-min.

scratch/ looks empty after a few months

/scratch/<PIRG>/ purges files not accessed in 90 days. Move important outputs to /projects/<PIRG>/ or to LSRS for long-term storage. RACS does not back up Talapas.

Workshop logistics

Where do I download the tutorials?

Materials page → Download the tutorials. Each link is a raw .qmd file you open in RStudio.

Can I work in Python / scanpy instead of R / Seurat?

Yes — the lectures are framework-agnostic, and most tutorials include a Python equivalent in a panel-tabset block. The tutorials assume Seurat by default, but a working scanpy equivalent that produces the same output is perfectly fine.

I don’t have a Talapas account — can I still attend?

Yes. Everything except the SLURM Basics tutorial runs on a laptop. Talapas is recommended for the integration / large-dataset stretch goals but isn’t required.

Are recordings available?

See About for the recording policy and link.

Back to top

© Single Cell RNA-seq Workshop

Center for Biomedical Data Science (CBDS)

Built with Quarto