Single-cell RNA-sequencing analysis of Saccharomyces cerevisiae in response to rapamycin treatment.
This repository contains the full analysis pipeline for a single-cell RNA-seq time-course experiment in S. cerevisiae. Cells were profiled at multiple time points before and after rapamycin treatment. The analysis identifies highly variable genes, accounts for cell-cycle-driven variation by binning cells into narrow cell-cycle time windows, and tracks how gene variability changes across time after rapamycin treatment.
Key questions addressed:
- Which genes are the most variable in wild-type yeast at steady state (before rapamycin)?
- How does gene variability change over time following rapamycin treatment?
- Are there co-expression patterns among highly variable, lowly expressed genes (e.g., FIT2/FIT3)?
- Do genes highlighted by a parallel BarSeq experiment overlap with the most variable genes identified here?
The analysis expects the following input files in a data/ directory (not included in this repository):
| File | Description |
|---|---|
2021_RAPA_TIMECOURSE.tsv.gz |
Gene count matrix (cells × ~5,843 genes) across all strains and time points |
Cell_Cycle_Metadata_01112024.tsv.gz |
Cell-cycle phase and pseudotime assignments for each cell |
The count matrix contains cells from multiple genetic backgrounds (Gene column) sampled at several time points (Pool column, 1–8). Pools 1–2 correspond to the pre-rapamycin baseline; pools 3–8 cover the time course after treatment.
.
├── code/
│ ├── Gene_Variance.Rmd # 01 – Gene-level variance and gene-set annotation
│ ├── Bootstrapping.Rmd # 02 – Bootstrap analysis to determine minimum cell count per bin
│ ├── Cluster_Cells.Rmd # 03 – Seurat-based cell clustering by cell-cycle phase
│ ├── IntraCluster_Analysis.Rmd # 04 – Intra-cluster variance analysis (pre-rapamycin)
│ ├── IntraCluster_Analysis_FIT2vsFIT3.Rmd # 05 – Deep-dive into FIT2/FIT3 co-expression
│ ├── IntraCluster_AllTimePoints.Rmd # 06 – Intra-cluster variance across all time points
│ ├── Barseq_Variance.Rmd # 07 – Cross-comparison with BarSeq candidate genes
│ ├── Pdr5_Pdr3.Rmd # Exploratory analysis of PDR5 and PDR3 expression
│ ├── jobs_to_submit.R # Renders all numbered Rmd files sequentially
│ ├── submit_jobs.sh # SLURM submission script (NYU Greene HPC)
│ └── functions/
│ ├── loadNoRapaTreat.R # Loads & preprocesses WT cells before rapamycin
│ ├── LoadWholeWtDataset.R # Loads & preprocesses all WT cells (all time points)
│ └── readSTARsoloCounts.R # Fixed version of Seurat's STARsolo count reader
├── images_for_rmd/ # Static images embedded in Rmd reports
│ ├── Blast_FIT2vsFIT3.png
│ ├── CLUSTALW_FIT2vsFIT3_DNA.png
│ ├── CLUSTALW_FIT2vsFIT3_protein.png
│ └── FIT2_FIT3_on_DNA.png
├── LICENSE
└── README.md
Results (HTML reports, plots, .Rds objects) are written to a results/ directory that is created automatically at run time.
The numbered Rmd scripts are designed to be run in order:
- Gene_Variance – Calculates per-gene variance, annotates genes using
biomaRtandclusterProfiler, and exports gene statistics and gene-set descriptions. - Bootstrapping – Bootstraps random subsets of cells (250–2,000) to determine how many cells per time bin are needed to obtain a regression model close to the full-dataset model (target: Pearson ≥ 0.95, achieved at ~800–1,000 cells).
- Cluster_Cells – Creates a Seurat object from the pre-rapamycin WT cells and clusters them to confirm that cells separate by cell-cycle phase.
- IntraCluster_Analysis – Divides cells into 3-minute cell-cycle time bins, fits a linear model per bin, computes residuals, and rank-combines genes across bins to identify the most variable genes independent of cell-cycle progression.
- IntraCluster_Analysis_FIT2vsFIT3 – Investigates the correlated high-expression bursts of FIT2 and FIT3, including sequence-level comparisons to rule out mapping artifacts.
- IntraCluster_AllTimePoints – Extends the intra-cluster variance analysis to all rapamycin time points (merging consecutive pool pairs to maintain sufficient cell counts per bin).
- Barseq_Variance – Cross-references candidate genes from a parallel fluconazole BarSeq experiment with the scRNA-seq variability rankings.
cd code/
sbatch submit_jobs.shThis loads R 4.3.1, then runs jobs_to_submit.R, which renders all seven numbered Rmd files and saves HTML reports to ../results/.
Open any individual .Rmd file in RStudio and knit it, or render from the R console:
setwd("code/")
rmarkdown::render("Gene_Variance.Rmd", output_dir = "../results/")To run the full pipeline sequentially:
setwd("code/")
source("jobs_to_submit.R")The analysis uses R (≥ 4.3) with the following packages:
CRAN: tidyverse, reshape2, Seurat, ggpubr, ggridges, ggExtra, gridExtra, readxl, knitr, kableExtra, RColorBrewer, conflicted
Bioconductor: biomaRt, clusterProfiler, enrichplot, pathview, org.Sc.sgd.db, tidyheatmaps
Other: Matrix
Simone Zaghen