背景:单细胞转录组常规分析流程,01是单细胞转录组数据的下载和整理
- 为何选择单细胞转录组分析
首先,和常规的样本组织测序相比,单细胞测序能够测到一个肿瘤样本中T细胞B细胞肿瘤细胞等不同单细胞的基因表达量,而常规测序是测到这些不同细胞的平均表达量,无法做一个肿瘤样本中不同细胞类型的差异分析以及互作用分析,只能做肿瘤样本和正常样本的差异分析;其次,如果样本数目过少,就很难做常规测序,而样本数目少单细胞的数目却不少,仍然可以做单细胞测序分析。 - 数据下载
GEO数据库下载,直接在浏览器输入ncbi geo:
search.png
进入ncbi geo数据库的首页:
GEO首页.png
在右上角Search搜索框的位置输入自己需要的单细胞转录组数据的关键信息,例如我需要的是乳腺癌的单细胞转录组数据,我的关键信息是breast cancer scRNA-seq
,点进回车显示结果:
results.png
点进results进入数据详情页面:
数据详情页面.png
左侧是一些筛选条件,比如可以筛选最近3个月发表的文章数据,根据自己的需要从中挑选一个合适的文章数据,进入文章数据的详情页:
文章详情页.png
将页面下拉,找到单细胞转录组的数据信息并下载:
数据.png
这里,将数据GSE235168_RAW.tar
上传到服务器。
那么反过来,如果先发现了一篇文章,如何从文章中下载单细胞转录组的数据呢?直接将文章的PDF文件在网页打开,Ctrl+F
搜索GSE
,找到文章数据的GSE编号,再到ncbi geo首页进行搜索就可以啦。
gse.png - 数据整理
数据上传到服务器后,使用tar -zxvf GSE235168_RAW.tar -C GSE235168_RAW
进行解压,解压后进入该目录,发现目录下有多个以样本名字命名的文件:
files.png
那么,我们编写R脚本保存这些样本信息:
my.dir="" #'绝对路径 /home/***/04.workflow/05.scRNA_linsr/GSE149655_RAW/
samples=list.files(my.dir, full.names=F, recursive=F) #'路径下的以样本名命名的文件夹
dirs=paste0(my.dir,samples) #'样本名命名文件夹的完整路径
groups=gsub("[^a-zA-Z]","",samples)
meta.data<-data.frame(samples=samples,dirs=dirs,groups=groups)
colnames(meta.data)<-c("orig.ident","dirs","groups")
sub.meta.data<-meta.data[,c("orig.ident","groups")]
得到文件路径与样本批次信息:
承接上面的脚本,继续整理每个批次的counts矩阵,合并为
sc.merge.rds
并保存:
datalist<-lapply(dirs,function(x){
i<-Read10X(x)
sc<-CreateSeuratObject(i, project=meta.data[which(meta.data$dirs==x),1])
sc@meta.data$cell.id<-rownames(sc@meta.data)
sc@meta.data<-left_join(sc@meta.data,sub.meta.data,"orig.ident")
rownames(sc@meta.data)<-sc@meta.data$cell.id
return(sc)
})
sc.merge=merge(x = datalist[[1]], y = datalist[2:length(datalist)])
save.rds(sc.merge,"sc.merge.rds")
sc.merge.png
此时的counts矩阵的meta.data$groups
的T代表癌症细胞,N代表正常细胞,meta.data$orig.ident
保存了细胞的批次信息。此时的counts矩阵未作任何处理,接下来需要批次校正...
网友评论