在细胞轨迹分析中,仅需要准备三个数据即可

  1. 原始count数据
  2. 样本的meta信息
  3. 基因信息

准备三个数据的主要原因是将seurat对象装换为monocle对象

创建好monocle对象后仅需要走差异基因流程和排序流程就可以进行细胞轨迹追踪

# clear
if(T){rm(list=ls())setwd("C:\\Users\\yuansh\\Desktop")dir()
}# options
if(T){options(stringsAsFactors = F)options(as.is = T)
}# packages
if(T){library(stringr)library(magrittr)library(ggplot2)library(Seurat)library(devtools)library(clustree)library(tidyverse)library(gridExtra)library(ggridges)library(ggplot2)library(ggExtra)library(monocle)}# myfunctions
if(T){myhead = function(x){if(dim(x)[2]>5){return(x[1:5,1:5])}else(head(x))}myscale = function(x, scale_factor){(x / sum(x)) *scale_factor}
}# set work-dir
setwd('C:\\Users\\yuansh\\Desktop\\DLTumorCell\\code')# main
# 导入数据并预处理
load("../processfile/S03_Merged_main_filtered_with_neo_osi.RData")
sce = main_tiss_filtered1
rm(main_tiss_filtered1)
if(T){sce@meta.data$sample_name <- as.character(sce@meta.data$sample_name)sample_name <- as.character(sce@meta.data$sample_name)# Make table tab.1 <- table(sce@meta.data$sample_name) # Which samples have less than 10 cells samples.keep <- names(which(tab.1 > 10))metadata_keep <- filter(sce@meta.data, sample_name %in% samples.keep)# Subset Seurat object sce <- subset(sce, cells=as.character(metadata_keep$cell_id))scetable(sce@meta.data$sample_name)table(sce@meta.data$patient_id)#save(sce, file=paste(dir,"S03_subset_preprocessed.RData", sep=""))
}# 剔除组织样本中少于10个细胞的组织
sce
# 导入注释信息
pre.label = read.csv("../processfile/train-predict.csv",row.names = 1)# 这里注意一下,轨迹追中只需要上皮细胞
use.cells  <- row.names(pre.label)
sce <-subset(sce, cells=use.cells)  # 从原始数据中获取非免疫细胞表达矩阵
pre.label = pre.label$PredictLabel %>% as.data.frame() %>% set_rownames(rownames(pre.label))
sce = AddMetaData(sce,metadata = pre.label,col.name = 'prelabel')# 轨迹追踪准备数据
# 1.原始count数据
count = sce@assays$RNA@counts %>% as.matrix()
# 2.基因信息
gene_ann <- data.frame(gene_short_name = row.names(count), row.names = row.names(count)
)
# 3.样本注释信息
sample_ann = data.frame(group = sce@meta.data$prelabel,row.names = rownames(sce@meta.data)
)
# 初始化配置文件
pd <- new("AnnotatedDataFrame",data=sample_ann)
fd <- new("AnnotatedDataFrame",data=gene_ann)
# 穿件对象
cds <- newCellDataSet(count, phenoData = pd,featureData =fd,expressionFamily = negbinomial.size(),lowerDetectionLimit=1)
cds# 初始化对象信息
cds <- estimateSizeFactors(cds)
cds <- estimateDispersions(cds)# 识别差异基因
# 注意这一步需要很长的时间
if(F){disp_table <- dispersionTable(cds)unsup_clustering_genes <- subset(disp_table, mean_expression >= 0.1)cds <- setOrderingFilter(cds, unsup_clustering_genes$gene_id)dim(cds)diff_test_res <- differentialGeneTest(cds,fullModelFormulaStr = "~group")# 哪怕仅仅是65个单细胞,monocle的这个differentialGeneTest函数运行也不快。ordering_genes <- row.names (subset(diff_test_res, qval < 0.01))save(ordering_genes,file = '../processfile/ordering_genes_by_Biological_Condition_high.Rdata')
}
#导入轨迹分析需要的差异基因
# load(file = 'ordering_genes_by_Biological_Condition_high.Rdata')cds <- setOrderingFilter(cds, ordering_genes)
plot_ordering_genes(cds)
# 然后降维
cds <- reduceDimension(cds, max_components = 2,method = 'DDRTree')
# 降维是为了更好的展示数据。
# 降维有很多种方法, 不同方法的最后展示的图都不太一样, 其中“DDRTree”是Monocle2使用的默认方法
# 接着对细胞进行排序
cds <- orderCells(cds)
## 最后两个可视化函数
plot_cell_trajectory(cds, color_by = "prelabel")
ggsave('../plot/normal-tumor-trace.pdf',width = 8,height = 8)
# 可以很明显看到细胞的发育轨迹
# 还有几个其它可视化函数,我们明天介绍
plot_cell_trajectory(cds, color_by = "State")
plot_cell_trajectory(cds, color_by = "Pseudotime")
plot_cell_trajectory(cds, color_by = "State") +facet_wrap(~State, nrow = 1)

流程非常非常简单,感觉没什么好说的如果有不懂的可以通过以下的方式联系我

Best Regards,
Yuan.SH
---------------------------------------
School of Basic Medical Sciences,
Fujian Medical University,
Fuzhou, Fujian, China.
please contact with me via the following ways:
(a) e-mail :yuansh3354@163.com

(单细胞-SingleCell)拟时序分析-细胞轨迹追踪相关推荐

  1. SCS【9】单细胞转录组之构建细胞轨迹 (Monocle 3)

    点击关注,桓峰基因 桓峰基因公众号推出单细胞系列教程,有需要生信分析的老师可以联系我们!首选看下转录分析教程整理如下: Topic 6. 克隆进化之 Canopy Topic 7. 克隆进化之 Car ...

  2. 基于单细胞测序数据构建细胞状态转换轨迹(cell trajectory)方法总结

    细胞状态转换轨迹构建示意图(Trapnell et al. Nature Biotechnology, 2014) 在各种生物系统中,细胞都会展现出一系列的不同状态(如基因表达的动态变化等),这些状态 ...

  3. 单细胞分析实录(15): 基于monocle2的拟时序分析

    关于什么是"拟时序分析",可以参考本期推送的另一篇推文.这一篇直接演示代码 monocle2这个软件用得太多了,很多文章都是monocle2的图.因为只使用表达矩阵作为输入,相比于 ...

  4. Science综述 | 用单细胞基因组学将人类细胞表型匹配到基因型

    原文地址:https://science.sciencemag.org/content/365/6460/1401 <更多精彩,可关注微信公众号:AIPuFuBio,和大型免费综合生物信息学资源 ...

  5. 一文助你了解单细胞转录组拟时序分析软件

    前言 目前进行细胞轨迹分析的方法和软件非常之多,软件之间算法有什么差异?对于我们的分析结果有何影响?为了后续分析软件选择.分析不发愁,事半功倍,跟着小编来了解下! 01  拟时序分析背景及意义 在整个 ...

  6. python轨迹追踪、全链路日志追踪trace_id实现

    python轨迹追踪.全链路日志追踪trace_id实现 非链路日志(普通日志) 我收到一个请求,参数是 我收到一个请求,参数是 我收到一个请求,参数是 我收到一个请求,参数是 我收到一个请求,参数是 ...

  7. GPS/轨迹追踪、轨迹回放、围栏控制

    折腾一个多月终于弄完了这个项目,起初都未曾接触GPS/轨迹追踪.轨迹回放.圈划围栏...等一些在百度地图或者Googel地图操作的一些业务,后端的业务相对来说简单点 cas单点登录,mongdb灵活的 ...

  8. 无人驾驶汽车系统入门(十八)——使用pure pursuit实现无人车轨迹追踪

    无人驾驶汽车系统入门(十八)--使用pure pursuit实现无人车轨迹追踪 对于无人车辆来说,在规划好路径以后(这个路径我们通常称为全局路径),全局路径由一系列路径点构成,这些路径点只要包含空间位 ...

  9. Android鹰眼轨迹追踪

    先看下实现效果: 鹰眼是一套轨迹管理服务,接入该服务后,可追踪车辆/人员等运动物体,实现实时定位.轨迹追踪和轨迹存储查询等功能.基于鹰眼提供的接口和云端服务,可以迅速构建一套完全属于您自己的完整.精准 ...

最新文章

  1. 深入浅出Docker(一):Docker核心技术预览
  2. GAN的统一架构与WGAN
  3. 力扣算法题—073矩阵置零
  4. java软件工程师成长过程的学习
  5. (十)nodejs循序渐进-高性能游戏服务器框架pomelo之介绍和安装篇
  6. 【java】大并发下Timeout waiting for connection from pool 解决方案
  7. weblogic mysql数据源配置文件_通过weblogic数据源实现配置oracle and mysql方法
  8. 计算机的组成 —— 显卡
  9. StoreOnce的未来:惠普是否能真正实现一体化去重
  10. SQL*Plus和iSQL*Plus的区别(oracle)
  11. 网络规划设计师的参考资料和复习书籍
  12. 快速入门基于区块链的BPM系统--汇流BPM
  13. Linux进程间通信——管道通信详解
  14. 自动生成企业画像(标签)
  15. 读书笔记:程序员的数学 概率统计
  16. BUCK降压斩波电路MATLAB SIMULINK仿真
  17. 1688图片搜索API接口
  18. 跌停的奥飞娱乐 在“盲盒“市场上还有一席之地吗?
  19. scala-尾递归,Array.newbuilder,二维数组
  20. SEO笔记--代码优化(三)

热门文章

  1. 2023年华为认证(H12-811)新增题库(新测现在可以拿850分)
  2. 无效驱动器*解决方法
  3. 市场调研-全球与中国在线工作协助工具市场现状及未来发展趋势
  4. mysql导入github-employees测试数据
  5. 研发绩效管理和绩效考核_网络绩效伦理
  6. 测试使用SRv6构建家宽视频监控“云专线”
  7. 在html调节元素左右间距,HTML元素间距问题
  8. 大的、正规的期货公司
  9. vmware+redhat9 摄像头驱动安装方法一
  10. 什么是Struts2?有哪些优势