gsva_mat=gsva(expr=gene_exp,gset.idx.list=KeggSet,kcdf="Possion",verbose=T,parallel.sz=parallel::detectCores()) 错误于gsva(expr = gene_exp, gset.idx.list = KeggSet, kcdf = "Possion", : Calling gsva(expr=., gset.idx.list=., method=., ...) is defunct; use a method-specific parameter object (see '?gsva').
那么来看看gsva更新了什么吧~
gsva(expr=., gset.idx.list=., method=., ...)
这样的调用方式,而是需要使用方法特定的参数对象。这意味着用户需要先创建一个参数对象,然后将其作为参数传递给gsva()
函数。例如,使用gsvaParam()
函数创建参数对象。GsvaMethodParam-class
,plageParam-class
,ssgseaParam-class
和zscoreParam-class
,这些类提供了更多自定义分析的方法。computeGeneSetsOverlap
用于计算基因集之间的重叠,deduplicateGeneSets
用于去除重复的基因集,filterGeneSets
用于过滤基因集,geneIdsToGeneSetCollection
用于将基因ID转换为GeneSetCollection对象等。gsvaAnnotation
函数,用于存储和检索表达数据对象中的注释元数据,这有助于在基因集和表达数据使用不同的基因标识符类型时自动映射基因标识符。这些更新使得GSVA包更加灵活和强大,能够适应更多的数据分析需求,并提供了更好的用户体验。
library(GSVA)
p <- 10 ## number of genes
n <- 30 ## number of samples
nGrp1 <- 15 ## number of samples in group 1
nGrp2 <- n - nGrp1 ## number of samples in group 2
## consider three disjoint gene sets
geneSets <- list(set1=paste("g", 1:3, sep=""),
set2=paste("g", 4:6, sep=""),
set3=paste("g", 7:10, sep=""))
geneSets
## sample data from a normal distribution with mean 0 and st.dev. 1
y <- matrix(rnorm(n*p), nrow=p, ncol=n,
dimnames=list(paste("g", 1:p, sep="") , paste("s", 1:n, sep="")))
y
## genes in set1 are expressed at higher levels in the last 'nGrp1+1' to 'n' samples
y[geneSets$set1, (nGrp1+1):n] <- y[geneSets$set1, (nGrp1+1):n] + 2
y
y的数据如下:
注意 gsvaParam 函数中不同 kcdf = c("Gaussian", "Poisson", "none") 的选择。
## build GSVA parameter object
gsvapar <- gsvaParam(y, geneSets, maxDiff=TRUE)
## estimate GSVA enrichment scores for the three sets
gsva_es <- gsva(gsvapar)
head(gsva_es)
这样就轻松的拿到 升级后的代码结果了: