TrendCatcher 是一个专门用于识别时间序列数据中关键趋势变化的 R 包,特别适用于动态的生物学或医学研究场景,如单细胞转录组测序数据的时间或伪时间序列分析。
它的设计目的是帮助研究人员捕捉数据随时间变化的模式,特别是那些与生物过程相关的动态转变。
TrendCatcher 的核心原理是通过模型拟合和统计检验来识别数据中显著的趋势。它将数据集分段,使用非线性回归模型拟合每个分段,并通过比较模型拟合的变化来检测出显著的趋势。这种方法能够有效处理复杂的、非线性的生物学数据,特别是时间序列数据中的变化点。
rm(list = ls())
# install.packages("./TrendCatcher_1.0.0.tar.gz", repos = NULL, type = "source")
# devtools::install_github("jaleesr/TrendCatcher", dependencies = TRUE, build_vignettes = FALSE)
library(tidyverse)
library(TrendCatcher)
TrendCatcher
需要输入数据为count
矩阵!~😘
example.file.path<-system.file("extdata", "Brain_DemoCountTable.csv", package = "TrendCatcher")
tb <- read.csv(example.file.path, row.names = 1)
head(tb)
这里我们为了节省时间就把已经运行好的结果加进来吧。😜
example.file.path<-system.file("extdata", "Brain_DemoCountTable.csv", package = "TrendCatcher")
master.list<-run_TrendCatcher(count.table.path = example.file.path,
baseline.t = 0,
time.unit = "h",
min.low.count = 1,
para.core.n = 4,
dyn.p.thres = 0.05
)
names(master.list)
print(c(master.list$time.unit, master.list$baseline.t))
master.list$t.arr
master.list$Project.name
head(master.list$raw.df)
head(master.list$fitted.count)
head(master.list$master.table)
包内有相关函数,不过我觉得不是很好用,很费时间。⌚️
大家试试别的转换方式,比这个快的太多了,这里就不赘述了。🙃
gene.symbol.df<-get_GeneEnsembl2Symbol(ensemble.arr = master.list$master.table$Gene)
master.table.new<-cbind(master.list$master.table,
gene.symbol.df[match(master.list$master.table$Gene, gene.symbol.df$Gene), c("Symbol", "description")])
master.list$master.table<-master.table.new
head(master.list$master.table)
gene.symbol.arr<-unique(master.list$master.table$Symbol)[1:6]
p<-draw_GeneTraj(master.list = master.list, gene.symbol.arr = gene.symbol.arr, ncol = 3, nrow = 2)
p
draw_TrajClusterGrid(master.list = master.list, min.traj.n = 9)
par(mar=c(1,1,1,1))
draw_TrajClusterPie(master.list = master.list,inner.radius = 0.7, cex.out = 1, cex.in = 1, fig.title = "Hierarchical Pie Chart")