我们很多时候都很好奇作者的r包是如何写出来的,手痒的时候就想学习一下源码,顺便改一 问题来源 为什么要写今天这个推文呢? 起因是因为我想使用seurat自带函数画热图,奈何这个图不是那么好看 DoHeatmap(pbmc,features = features,draw.lines = FALSE ) 于是,我想自己手动改一下这个热图 我们接下来使用r,打开两个文件看一下看一下 file.edit('~/gzh/seurat_codes_learning/seurat-release-5.0.2/R/mixscape.R') file.edit ('~/gzh/seurat_codes_learning/seurat-release-5.0.2/R/visualization.R') 最后就顺利找到了源代码,可以看到DoHeatmap的画图功能其实来自于另外一个函数 那为什么两个p不一样呢 主要还是因为两个数据格式不一样嘛,一个是seurat产生的对象,另外一个是pheatmap产生的对象。如果感兴趣,可以去看看pheatmap的源码是什么,然后比较一下。
序 第三单元第十讲:使用Seurat包 载入数据,创建对象 rm(list = ls()) Sys.setenv(R_MAX_NUM_DLLS=999) ## 首先载入文章的数据 load(file= TRUE 17429 7153 # 存在7000多个基因在任何一个细胞中都没表达 右图显示了:大部分细胞都包含2000个以上的有表达的基因 开始使用CreateSeuratObject构建Seurat 对象: 因为Seurat存在两个版本,并且应用都比较多,所以这里会列出两种版本的代码 # 使用Seurat V3版本(以下简写"V3")(版本3有大量的参数从之前的genes改成了features) sce min.genes = 2000, project = "sce") > sce An object of class Seurat 预处理之归一化 关于Seurat归一化原理,可以看这一篇:https://www.biorxiv.org/content/biorxiv/early/2019/03/18/576827.full.pdf
Seurat是一个分析转录组数据的R包,我们之前的推文对其进行过描述: Seurat 学习笔记 该包于去年新推出了整合功能。 步骤如下: 数据预处理 作者把单细胞数据放在了SeuratData等一系列包中,如果你的网速不行,可以直接到网页下载数据。 library(Seurat) #devtools::install_github('satijalab/seurat-data') library(SeuratData) #InstallData FindIntegrationAnchors(object.list = reference.list, dims = 1:30) 然后我们将这些锚点传递给IntegrateData函数,该函数返回一个Seurat pancreas.integrated <- IntegrateData(anchorset = pancreas.anchors, dims = 1:30) 现在我们得到了seurat对象——一个整合后的表达矩阵
Seurat是分析单细胞数据一个非常好用的包,几句代码就可以出图,如feature plot,violin plot,heatmap等,但是图片有些地方需要改善的地方,默认的调整参数没有提供,好在Seurat 默认的feature plot是坐标轴形式 FeaturePlot(seurat.object,features = c("Thy1")) ? image.png 改成加框: FeaturePlot(seurat.object,features = c("Thy1"))+annotate(geom = 'segment', y = Inf, yend image.png 去掉框顺便改个颜色 FeaturePlot(object = seurat.object, features = c('Thy1'),cols = c("lightgrey" ,"#
library(Seurat) #import data #C_data T_data 为要分析的data.frame Control<-CreateSeuratObject(counts =C_data
GSE84465 目的是复现文献的第一幅总图 文献 二、大致思路 (1)根据GEO号下载表达矩阵,以及meta信息; (2)根据meta信息筛选tumor cell 的表达矩阵; (3)根据表达矩阵构建Seurat 4、构建Seurat对象,以及质控、可视化 group=data.frame(group=new.b[index,3], row.names = colnames(a_filt )) library("Seurat") scRNA = CreateSeuratObject(counts=a_filt, meta.data (unique(sort(top20))) #这里选取的是wilcox方法挑选的差异基因 p3_2 <- DoHeatmap(scRNA, features = top20, group.by = "<em>seurat</em>_clusters 但是原文使用的limma<em>包</em>识别,去重后仅有96个gene,而我自己尝试的或还有227个,相差比较大。
二、用R语言的Seurat包读入数据,并创建Seurat对象 参考教程:单细胞实战(1)数据下载-数据读取-seurat对象创建-腾讯云开发者社区-腾讯云 (tencent.com) 重点介绍我加载Seurat ‘Matrix’ 1.5-3,但需要的是>= 1.6.1 表明 Seurat 包需要比当前安装的 Matrix 包版本更高的版本 尝试先卸载再重新安装: remove.packages("Matrix" ) install.packages("Matrix") 安装完成后,再次尝试加载 Seurat 包: library(Seurat) 仍然报错??? 移除旧版本的包: remove.packages('Matrix') remove.packages('SeuratObject') remove.packages('Seurat') 确保包已被卸载 ") # 应返回‘1.6-1’ 最后安装 Seurat 包 install.packages("Seurat") library(Seurat) 注如果安装 Seurat 包还有问题 手动下载:https
/seurat/seurat_files_nbt.zip 同时还提供两个公共数据的实战演练教程: https://www.dropbox.com/s/4d00eyd84qscyd2/IntegratedAnalysis_Examples.zip pbmc3k/pbmc3k_filtered_gene_bc_matrices.tar.gz ## 下载整个压缩包解压即可重现整个流程 # Load the PBMC dataset list.files 包里面被封装成了函数:FindMarkers,有一系列参数可以选择,然后又4种找差异基因的算法: ROC test (“roc”) t-test (“t”) LRT test based on zero-inflated - FindMarkers(object = pbmc, ident.1 = 0, thresh.use = 0.25, test.use = "roc", only.pos = TRUE) 同时,该包提供了一系列可视化方法来检查差异分析的结果的可靠性 后面还有一个10X的单细胞实战,用的就是这个包,敬请期待。
目前已经给大多数共享服务器的公共R包库中的seurat4升级到了seurat5。 2解决办法 我们先登录网页版Rstudio 用.libPaths()函数查看一下我们目前载入R包的路径 最初Rb包路径 其中第一个是自己家目录下的(拥有读写权限),第二三个是服务器公共的,普通用户是没有 而我们日常调用的Seurat5就装在第二个路径下,因此我们可以把.libPaths() 中的2的路径删掉,不使用服务器提供的公共R包库/home/data/refdir/Rlib 。 删掉 /home/data/refdir/Rlib 路径就不会载入服务器上公用的 Seurat5,但是这样设置之后,一堆包也不会载进来,所以下面需要自己配置 Seurat4和其依赖的环境 注意,修改路径这里我把自己的默认路径 这时候在R中敲.libPaths()还是原先的R包路径,点击session Restar R重启R 然后就是我们更改后的.libPaths了 我们下载的包会默认装在第一个路径下面, 我们先下载 Seurat5
但是这样的转化总有需求,于是,Seurat团队开发了SeuratDisk包,希望满足数据在Seurat和Scanpy之间快速搬家的需求。 and https://mojaveazure.github.io/seurat-disk/index.html 显然,作者这是在提示我们安装新的R包:seurat-disk,于是我们挺听话地去安装了 debug(LoadH5Seurat) cellxgene <- LoadH5Seurat('some.processed.gzip.h5seurat', assays ="RNA") # 一波回车 debug( as.Seurat) #因为LoadH5Seurat里面用了这个函数,所以在LoadH5Seurat的debug环境种再debug as.Seurat Seurat Weekly 专栏总结(送圣诞礼物) Seurat Weekly NO.0 || 开刊词 Seurat Weekly NO.1 || 到底分多少个群是合适的?!
本期Seurat weekly 就和大家探索一下Seurat 的交互系统。 在Seurat中交互的参数一般是interactive,我们需要找到哪些函数有这个参数。 思考:如何查一个R包中哪些函数有某一参数? 先载入R包和数据,并执行简单的降维。 开发比较小的,或作为辅助功能的Shiny,miniUI是比较实用的,而且还支持多种展示形式,如下: 除了内置的交互形式之外,也有热心的Seurat开发了在线版的Seurat:SeuratV3Wizard 除了直接在线分析也可以在自己的R中安装azimuth 包,以方便本地使用。 if (! 之后用Shiny包装它并不是复杂,如Azimuth的源码,shiny完成的是对Seurat包的调用程序。
装好了,但是我4月30号手欠的听从了R的指示,说要安装limma去做后面的亚群差异分析的时候,我的服务器的后台装东西的时候又把我的Seurat挤掉了,我又开始在服务器当中不断去添加依赖库的过程。 首先是R语言版本的升级 我在尝试了对R4.0版本的安装Seurat后,发现我的编译路径一直在报错,因为我们的服务器目前是有两个R语言的版本,一个低版本的,一个是4.0以上的,所以有的时候如果没有将路径给全 -fPIC CXX14=/opt/rh/devtoolset-9/root/usr/bin/g++ -std=c++14 -fPIC 接下来就是跳转到R下面,进行install.packages("Seurat 接下来开始对每个缺少的包进行安装。 首先是stringi包 // 输入最传统的install.packages的方法 install.packages("stringi") [图片.png] 相比于昨天也是成功的装了stringi包,如果是后台缺少相关的环境条件
写在前面 单细胞分析的小伙伴们一定对 Seurat 不陌生,它几乎是所有scRNA-seq入门必备的“瑞士军刀”。 今天要介绍的是一款让你在 Seurat 世界里“如虎添翼”的神器—— SeuratExtend:基于Seurat的强大拓展包! 它不仅兼容原生Seurat工作流,还提供了大量一行命令即可实现的高质量可视化、数据统计与特征分析功能。 用到的包 rm(list = ls()) library(Seurat) library(SeuratExtend) 示例数据 pbmc 降维图 基本用法 DimPlot2(pbmc) 可视化不同变量
文章目录 一、创建 Seurat 对象 二、标准预处理流程 1.基因质控指标来筛选细胞 2.归一化数据 3.识别高异质性特征 4.缩放数据 5.线性维度约化 PCA VizDimLoadings 方法一:JackStrawPlot 方法二:ElbowPlot 6.聚类细胞 7.非线性维度约化(UMAP/TSNE) 8.发现差异表达特征(cluster bioers) 9.识别细胞类型 一、创建 Seurat amazonaws.com/10x.files/samples/cell/pbmc3k/pbmc3k_filtered_gene_bc_matrices.tar.gz library(dplyr) library(Seurat /data/pbmc3k/filtered_gene_bc_matrices/hg19/") # Initialize the Seurat object with the raw (non-normalized 5.确定数据集的维度 为了克服在单细胞数据中在单个特征中的技术噪音,Seurat 聚类细胞是基于PCA分数的。每个PC代表着一个‘元特征’(带有跨相关特征集的信息)。
以前我们做了一个Seurat包官方的可视化函数投票:可视化单细胞亚群的标记基因的5个方法,下面的5个基础函数相信大家都是已经烂熟于心了: VlnPlot(pbmc, features = c("MS4A1 标准流程 端到端的单细胞管道SCP-快速开始 SCP—为单细胞分析设计的端到端解决方案 端到端的单细胞管道SCP-安装 接下来分享另外一个本身珍藏已久的年度爱用包(scillus)给大家,此包的 官方完整名字是 folder,这取决于输入数据的格式,构造方式如下: # 注意 此包目前仅支持Seurat v4版本的绘图,v5会报错 library(Seurat, lib.loc = "/nas2/zhangj/biosoft (metadata = m) 3、功能二:单细胞结果可视化 # 注意 此包目前仅支持Seurat v4版本的绘图,v5会报错 # 注意2:单独提供Seurat也可以绘图!! 作者将其打包变成了一个超级好的包!
只好求助jimmy老师了,在Jimmy的指导下,参阅了下面的教程完成了单个H5文件读入和转化为Seurat对象合并然后作图的方法: https://nbisweden.github.io/workshop-scRNAseq /labs/compiled/seurat/seurat_01_qc.html 确实很简单,我马上就可以开始做起来了。 rm(list=ls()) options(stringsAsFactors = F) library(Seurat) # H5文件读入和转化为Seurat对象 # https://nbisweden.github.io /workshop-scRNAseq/labs/compiled/seurat/seurat_01_qc.html setwd('GSE146981_RAW/') fs=list.files(pattern ) # H5文件读入和转化为Seurat对象 # https://nbisweden.github.io/workshop-scRNAseq/labs/compiled/seurat/seurat_01
前言 前面介绍了自己利用cellranger count的结果进行seurat分析,但是整合数据方面做得还是不如原作者优秀,虽然我们不知道他们是如何处理的,但还是可以继续向下进行,而且这一次将会使用他们合并好的数据 # 作者利用的是Seurat V2的ExtractField函数 # for Seurat V2 timePoints <- sapply(colnames(dataPBMC), 按照常理,10X的数据应该能做到平均表达800个基因 创建Seurat对象 # Seurat V2 PBMC <- CreateSeuratObject(raw.data = dataPBMC, 保存对象 save(PBMC,file = 'patient1.PBMC.output.Rdata') # 结果有1.9G ---- 附加 一个问题:Seurat2、3得到的结果差别大吗? Seurat V2结果 探究一下Seurat2和3的分群结果 起初我认为这两个版本的差异蛮大的,因为看tsne图明显感觉V2更好一些,导致我得出了错误的结论,认为两个版本的包处理结果千差万别。
用到的包 rm(list = ls()) library(Seurat) library(SeuratExtend) 示例数据 pbmc 小提琴图 基本用法 genes <- c("CD3D","CD14
Seurat是目前单细胞数据分析最常用的软件之一,本文介绍下如何在Seurat里做三维的tsne计算以及进行可视化展示。 生成每个细胞因所属不同cluster进而所对应的不同颜色: cb_palette.use <- cb_palette[1:length(unique(data.combined$seurat_clusters ))] col_match <- data.frame(cluster=unique(data.combined$seurat_clusters),col=cb_palette.use) col_draw <- col_match[match(data.combined$seurat_clusters,col_match[,1]),2] 2.1 方法一,使用plot3d进行可视化 library(rgl (tmp.tsne.3) fig <- plot_ly(tmp.tsne.3, x = ~tSNE_1, y = ~tSNE_2, z = ~tSNE_3, color =data.combined$seurat_clusters
")packageVersion("Seurat")Resources里面是不同的目录,R包放在了library中。 可以在终端中也确认一下“ /Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/library”是原始路径,保存着seruat5版本的包括其他R包的信息 ", .libPaths()))”这句代码,这句代码的含义是先进行前面的路径的R包调取,如果前者的R包不存在,那就会其他路径的调取R包。 但笔者一般会把后面的.libPath()去掉,只用一个路径(V4和V5完全独立,当然R包也要装双份,看每个人的习惯)。 ")packageVersion("Seurat")# 设定路径,重启加载Seurat,就会是4版.libPaths(c("/Library/Frameworks/R.framework/Versions