首页
学习
活动
专区
圈层
工具
发布
33 篇文章
1
CellChat三部曲1:使用CellChat对单个数据集进行细胞间通讯分析
2
CellChat三部曲2:使用CellChat 对多个数据集细胞通讯进行比较分析
3
CellChat 三部曲3:具有不同细胞类型成分的多个数据集的细胞通讯比较分析
4
多个单细胞亚群合并
5
如何读取单细胞数据
6
纯生信单细胞数据挖掘-全代码放送
7
单细胞测序流程(单细胞rna测序)
8
单细胞亚群比例变化和表达量差异分析
9
生信中各种ID转换
10
单细胞功能注释和富集分析(GO、KEGG、GSEA)(2021公开课配套笔记)
11
细胞亚群的生物学命名
12
scRNA包学习Monocle2
13
单细胞转录组基础分析六:伪时间分析
14
Seurat包的findmarkers函数只能根据划分好的亚群进行差异分析吗
15
​cytoscape的十大插件之二--MCODE插件
16
从零到壹:Cytoscape插件使用心得~MCODE篇
17
cytoscape的cytohubba及MCODE插件寻找子网络hub基因
18
上下调基因各自独立进行GO数据库的3分类富集(求美图代码)
19
拟时序分析的热图提取基因问题
20
单细胞亚群合并与提取(2021公开课配套笔记)
21
单细胞转录组之Seurat包全流程-数据过滤、降维分群及可视化
22
CellChat细胞通讯(二)可视化篇
23
GWAS全基因组关联分析流程(BWA+samtools+gatk+Plink+Admixture+Tassel)
24
WGCNA分析,简单全面的最新教程(在线做,但也需要懂原理)
25
统计遗传学:第九章,GWAS+群体分析+亲缘关系分析
26
干货:把知识经验整理为电子书
27
如何在箱线图添加显著性--代码分享
28
ANNOVAR 软件用法还可以更复杂
29
3DSNP 数据库 | 注释 SNP 信息
30
使用FUSION进行TWAS分析
31
R包”gwasrapidd”------快速获取GWAS Catalog数据库的信息
32
连锁不平衡小工具-----LDlink的使用教程
33
🤩 CMplot | 完美复刻Nature上的曼哈顿图(一)
清单首页生信文章详情

如何读取单细胞数据

代码语言:javascript
代码运行次数:0
复制
library(Seurat)
library(tidyverse)
library(Matrix)

dataset_loc <- "expression_tables_cellrangerV3" #此处改为自己的文件夹路径
ids <- c("UCD_Adj_VitE","UCD_Supp_VitE") #此处视自己的文件名来定

读取单个文件

方式一:Read10X

代码语言:javascript
代码运行次数:0
复制
## Read10X
seurat_data <- Read10X(data.dir = paste(dataset_loc, ids[1],"filtered_feature_bc_matrix", sep="/"))
seurat_obj <- CreateSeuratObject(counts = seurat_data)
# write.table(seurat_obj@assays$RNA@counts, "all.datatable.txt",sep="\t", quote=F, col.names=NA)

方式二:Read10X_h5

注:如果自己没有h5格式的文件可以忽略此方法。

代码语言:javascript
代码运行次数:0
复制
## Read10X_h5
seurat_data <- Read10X_h5(file.path(dataset_loc, ids[1], "filtered_feature_bc_matrix.h5"), use.names = T)
seurat_obj <- CreateSeuratObject(counts = seurat_data)

方式三:read.table

注:同方法二,如果没有 “all.datatable.txt” 的文件,也可忽略此步骤。这里只是提供多种情况下的读入方法。(想尝试的话,方法一有生成 “all.datatable.txt” 的代码,不过要注意路径。)

代码语言:javascript
代码运行次数:0
复制
## read matrix
matrix_data <- read.table(file.path(dataset_loc, ids[1], "all.datatable.txt"), sep="\t", header=T, row.names=1)
# dim(matrix_data)
# matrix_data[1:4,1:4]

seurat_obj <- CreateSeuratObject(counts = matrix_data)

方式四:readMM

代码语言:javascript
代码运行次数:0
复制
# Read in `matrix.mtx`
counts <- readMM(gzfile(file.path(dataset_loc,ids[1],"filtered_feature_bc_matrix","matrix.mtx.gz")))

# Read in `genes.tsv`
genes <- read_tsv(gzfile(file.path(dataset_loc,ids[1],"filtered_feature_bc_matrix","features.tsv.gz")), col_names = FALSE)
gene_ids <- genes$X1

# Read in `barcodes.tsv`
cells <- read_tsv(gzfile(file.path(dataset_loc,ids[1],"filtered_feature_bc_matrix","barcodes.tsv.gz")), col_names = FALSE)
cell_ids <- cells$X1

# Create a sparse matrix for more efficient computation
counts <- as(counts, "dgCMatrix")

# Make the column names as the cell IDs and the row names as the gene IDs
rownames(counts) <- gene_ids
colnames(counts) <- cell_ids

seurat_obj <- CreateSeuratObject(counts = counts)

读取多个文件

方式一:do.call

代码语言:javascript
代码运行次数:0
复制
d10x.data <- sapply(ids, function(i){
  d10x <- Read10X(data.dir = file.path(dataset_loc,i,"filtered_feature_bc_matrix"))
  colnames(d10x) <- paste(i,sapply(strsplit(colnames(d10x),split="_"),'[[',1L),sep="_")
  d10x
})

seurat_merge <- do.call("cbind", d10x.data) # for "dgCMatrix"
seurat_data <- CreateSeuratObject(seurat_merge, min.cells = 1, min.features = 1, names.field = 1, names.delim = "\\_") 
# table(Idents(seurat_data))
# head(seurat_data@meta.data)

方式二:merge

代码语言:javascript
代码运行次数:0
复制
for (file in ids){
  seurat_data <- Read10X(data.dir = paste(dataset_loc, file,"filtered_feature_bc_matrix", sep="/"))
  seurat_obj <- CreateSeuratObject(counts = seurat_data, project = file)
  assign(file, seurat_obj)
}

# Create a merged Seurat object
merged_seurat <- merge(x = eval(parse(text=ids[1])), y = eval(parse(text=ids[2])), add.cell.id = ids)
# table(Idents(merged_seurat))
# head(merged_seurat@meta.data)

注:示例数据在https://share.weiyun.com/yqfUzaYK,可以自行下载尝试。

下一篇
举报
领券