WaveCrest是一种用于根据基因表达重建单细胞拟时序轨迹的R包。 WaveCrest包含两个模块-第一个模块实现扩展的最近插入(ENI)算法,该算法重建合适的细胞顺序,第二个模块可用于识别动态变换的基因。
library(WaveCrest)
输入需要两个数据:1.细胞-基因表达矩阵;2.细胞所处的时期
data(WaveCrestExData)
CondVector <- rep(paste("t",1:4,sep=""),each=30)
Conditions <- factor(CondVector, levels=c("t1","t2","t3","t4"))
对数据进行标准化
Sizes <- MedianNorm(WaveCrestExData,alternative = TRUE)
DataNorm <- GetNormalizedMat(WaveCrestExData, Sizes)
查看前5个按照时间的基因表达模式
Markers <- rownames(DataNorm)[1:5]
par(mfrow=c(2,3))
frame()
legend("top", levels(Conditions),col=1:4,pch=1,ncol=1)
for(i in 1:5) {
plot(DataNorm[Markers[i],],col=as.numeric(Conditions),ylab="Normalized expression", xlab="Original order",main=Markers[i])}
1.重建细胞时序
#重建细胞时序后基因表达模式
#WaveCrestENI() function can be used to reconstruct the cell order.
ENIRes <- WaveCrestENI(Markers, WaveCrestExData, Conditions, N=1000)
par(mfrow=c(2,3))
frame()
legend("top", levels(Conditions),col=1:4,pch=1,ncol=1)
for(i in 1:5) {
plot(DataNorm[Markers[i],ENIRes],col=as.numeric(Conditions),
ylab="Normalized expression", xlab="Recovered order",main=Markers[i])}
2.鉴定其他动态变化的基因
DataNormRemain <- DataNorm[setdiff(rownames(DataNorm),Markers),]
IdenRes <- WaveCrestIden(DataNormRemain, ENIRes)
#The WaveCrestIden() function outputs mean square errors of the gene specific fittings.
IdenRes[1:5] # top 5 genes
#To visualize the top 5 genes identified by the WaveCrestIden() function
par(mfrow=c(3,3))
frame()
legend("top", levels(Conditions),col=1:4,pch=1,ncol=1)
for(i in 1:5) {
plot(DataNorm[names(IdenRes)[i],ENIRes],col=as.numeric(Conditions),
ylab="Normalized expression", xlab="Recovered order",
main=names(IdenRes)[i])}
参考:https://github.com/lengning/WaveCrest/blob/master/package/WaveCrestVig_v1.pdf
网友评论