data_paths <- list( Control = "GSE146930/Rep1_Control/", Stroke = "GSE146930/Rep1_Stroke/" ) # 读取数据并创建 Seurat 对象 seurat_objects <- lapply(names(data_paths), function(group) { data_dir <- data_paths[[group]] seurat_obj <- Read10X(data.dir = data_dir) %>% CreateSeuratObject(project = group, min.cells = 3, min.features = 200) seurat_obj$condition <- group # 添加分组标签 return(seurat_obj) }) # 合并 Control 和 Stroke 两个数据集 seurat <- merge(seurat_objects$Control, y = seurat_objects$Stroke, add.cell.ids = names(data_paths)) 修改代码,文件为D:\R_project\GSE146930\Rep1\Control下的GSM4411137_SingleCell_Control_Rep1_barcodes.tsv、GSM4411137_SingleCell_Control_Rep1_genes.tsv、GSM4411137_SingleCell_Control_Rep1_matrix.mtx和D:\R_project\GSE146930\Rep1\Stroke下的GSM4411138_SingleCell_Stroke_Rep1_barcodes.tsv、GSM4411138_SingleCell_Stroke_Rep1_genes.tsv、GSM4411138_SingleCell_Stroke_Rep1_matrix.mtx
时间: 2025-03-28 17:00:08 浏览: 56
### 修改 R 脚本以加载指定目录下的文件
为了确保能够正确加载 `D:\R_project\GSE146930\Rep1` 下的 `.tsv` 和 `.mtx` 文件并将其导入到 Seurat 对象中,可以按照以下方法调整脚本:
#### 1. 设置工作目录
首先设置目标路径作为当前的工作目录。这一步是为了简化后续操作中的相对路径管理。
```r
setwd("D:/R_project/GSE146930/Rep1")
```
#### 2. 加载必要的库
Seurat 是用于单细胞数据分析的主要工具之一,因此需要先安装并加载它以及相关的依赖项。
```r
if (!requireNamespace("BiocManager", quietly = TRUE)) {
install.packages("BiocManager")
}
BiocManager::install(c("Matrix"))
library(Seurat)
library(Matrix)
```
#### 3. 导入矩阵数据
使用 `Read10X()` 函数可以从标准的 10X Genomics 输出文件夹中读取数据。这些文件通常包括 `matrix.mtx`、`genes.tsv` 或者 `features.tsv`(需重命名为 `genes.tsv`)、以及 `barcodes.tsv`[^1]。
以下是具体的实现方式:
```r
# 定义输入文件路径
data_dir <- "."
# 如果 features.tsv 存在,则需要手动重命名
file.rename(from = file.path(data_dir, "features.tsv"), to = file.path(data_dir, "genes.tsv"))
# 使用 Read10X() 函数读取数据
raw.data <- Read10X(data.dir = data_dir)
# 创建 Seurat 对象
seurat.obj <- CreateSeuratObject(counts = raw.data, project = "GSE146930_Rep1", min.cells = 3, min.features = 200)
```
上述代码会完成以下几个任务:
- 将 `features.tsv` 重命名为 `genes.tsv`,因为 `Read10X()` 需要这个名称才能正常解析基因信息。
- 利用 `Read10X()` 方法从指定目录下提取稀疏矩阵形式的数据。
- 构建初始的 Seurat 对象,并应用一些基本过滤条件(如最小细胞数和特征数量)。
#### 4. 数据预处理与质量控制
创建好 Seurat 对象后,还需要进一步执行标准化、归一化以及其他质控步骤。
```r
# 进行线粒体比例计算和其他 QC 参数评估
seurat.obj[["percent.mt"]] <- PercentageFeatureSet(seurat.obj, pattern = "^MT-", col.name = "percent.mt")
# 绘制 QC 图表
VlnPlot(seurat.obj, features = c("nFeature_RNA", "nCount_RNA", "percent.mt"), ncol = 3) + NoLegend()
FilterPlot(seurat.obj, idents = NULL, slots = c("data", "varFeatures")) + NoLegend()
# 基于阈值筛选高质量单元格
seurat.obj <- subset(
seurat.obj,
subset = nFeature_RNA > 200 & nFeature_RNA < 2500 &
percent.mt < 5
)
# 归一化表达量
seurat.obj <- NormalizeData(seurat.obj, normalization.method = "LogNormalize", scale.factor = 1e4)
# 找到高变基因
seurat.obj <- FindVariableFeatures(seurat.obj, selection.method = "vst", nfeatures = 2000)
```
以上代码实现了对原始计数矩阵的质量控制分析,包括去除低质量细胞、检测线粒体含量异常高的细胞等,并完成了数据归一化和高变异基因的选择过程。
---
###
阅读全文
相关推荐
















