download.file(
url = "https://single-cell-transcriptomics.s3.eu-central-1.amazonaws.com/projects/data/project1.tar.gz",
destfile = "project1.tar.gz"
)
untar("project1.tar.gz")
file.remove("project1.tar.gz")Project 1
Project 1 is about a single cell sequencing project of zebrafish retina. Photoreceptors were damaged with MNU and the response was investigated with help of transgenic fish that contained a construct with a non-coding regulatory element (careg) attached to an EGFP transcript, that can be used as a marker of regenerative activation. For single-cell transcriptomics analysis, cell suspensions were created from retinal cells, and processed with the 10x 3’ kit.
Available data
Data has been downloaded and prepared for you from GEO GSE202212. The count matrices are created with cellranger. To create the count tables, the EGFP sequence was added to the reference genome. The gene name of EGFP is EGFP.
In order to download the data, run (on the course server: once per group, in your group directory; see Working directories):
After extracting, a directory project1 appears with the following content:
.
├── data
│ ├── 10dp1
│ │ ├── filtered_feature_bc_matrix
│ │ │ ├── barcodes.tsv.gz
│ │ │ ├── features.tsv.gz
│ │ │ └── matrix.mtx.gz
│ │ └── web_summary.html
│ ├── 10dp2
│ │ ├── filtered_feature_bc_matrix
│ │ │ ├── barcodes.tsv.gz
│ │ │ ├── features.tsv.gz
│ │ │ └── matrix.mtx.gz
│ │ └── web_summary.html
│ ├── 3dp1
│ │ ├── filtered_feature_bc_matrix
│ │ │ ├── barcodes.tsv.gz
│ │ │ ├── features.tsv.gz
│ │ │ └── matrix.mtx.gz
│ │ └── web_summary.html
│ ├── 3dp2
│ │ ├── filtered_feature_bc_matrix
│ │ │ ├── barcodes.tsv.gz
│ │ │ ├── features.tsv.gz
│ │ │ └── matrix.mtx.gz
│ │ └── web_summary.html
│ ├── 7dp1
│ │ ├── filtered_feature_bc_matrix
│ │ │ ├── barcodes.tsv.gz
│ │ │ ├── features.tsv.gz
│ │ │ └── matrix.mtx.gz
│ │ └── web_summary.html
│ ├── 7dp2
│ │ ├── filtered_feature_bc_matrix
│ │ │ ├── barcodes.tsv.gz
│ │ │ ├── features.tsv.gz
│ │ │ └── matrix.mtx.gz
│ │ └── web_summary.html
│ ├── ctrl1
│ │ ├── filtered_feature_bc_matrix
│ │ │ ├── barcodes.tsv.gz
│ │ │ ├── features.tsv.gz
│ │ │ └── matrix.mtx.gz
│ │ └── web_summary.html
│ └── ctrl2
│ ├── filtered_feature_bc_matrix
│ │ ├── barcodes.tsv.gz
│ │ ├── features.tsv.gz
│ │ └── matrix.mtx.gz
│ └── web_summary.html
└── paper.pdf
17 directories, 33 files
Showing us that we have two replicates per treatment, and four treatments:
- ctrl: controls
- 3dp: 3 days post injury
- 7dp: 7 days post injury
- 10dp: 10 days post injury
Now create a Seurat object from the count matrices:
library(Seurat)
# the downloaded data directory; on your own computer, with an RStudio project
# in project1, this is "data"
data_dir <- "~/group_work/groupX/project1/data"
# vector of paths to all sample directories
datadirs <- list.files(path = data_dir, full.names = TRUE)
# get the sample names
# replace underscores with hyphen to correctly extract sample names later on
samples <- basename(datadirs) |> gsub("_", "-", x = _)
# files are in filter_feature_bc_matrix
datadirs <- paste(datadirs, "filtered_feature_bc_matrix", sep = "/")
names(datadirs) <- samples
# create a large sparse matrix from all count data
sparse_matrix <- Seurat::Read10X(data.dir = datadirs)
# create a seurat object from sparse matrix
seu <- Seurat::CreateSeuratObject(counts = sparse_matrix,
project = "Zebrafish")With this dataset, go through the steps we have performed during the course, and try to answer the following questions. Pay specific attention to quality control, clustering and annotation.
Guidance questions
If you’d like more structure, the following questions may guide your analyses:
Quality control and filtering
- Have a look at the seurat object before starting your analysis. How many cells and genes are present? Is the data already normalised?
- Assess the quality of the samples. Are there any important issues to consider? Would you remove genes?
Normalization, integration and visualization
- Which clustering resolution would you choose?
- Inspect the clustering (ie. % of mitochondrial, number of features..), would you filter out some populations? do you need to change your resolution?
Cell type annotation
- Annotate cells (at least rods, cones and MG) and describe EGFP behavior in the different conditions (Ctr, 3dp, 7dp, 10dp)
- Can you identify a subpopulation of MG cells expressing EGFP?
- Can you identify expression profile differences in injured vs uninjured rod cells? And in cone cells?
- How do your results compare to the ones from the paper?
Additional tips
- For mitochondrial genes, ribosomal genes and hemoglobin genes you can use the following patterns:
"^mt-","^rp[sl]"and"^hb[^(p)]". - Work iteratively; meaning that based on results of an analysis, adjust the previous analysis. For example, if clustering is not according to cell types, try to adjust the number of components or the resolution.
- You can plot the samples by condition (keeping the 2 replicates together). For that, try adding a new metadata column that summarises the information you need.
- For cell type annotation, have a look at the methods section from the original paper, they provide a supplementary table with retina gene markers.
- If you use an AI assistant with the LLM packs, make sure it knows this is zebrafish data: gene name patterns, like the ones above, and reference data for annotation differ from human.