我一直在试验GSEA的替代注释表达(mRNA)数据。 SPIA(信令路径集成分析)看起来很有趣,但似乎只有一条错误消息:
Error in spia(de = sigGenes, all = allGenes, organism = "hsa", plots = TRUE, :
de must be a vector of log2 fold changes. The names of de should >be
included in the reference array!
输入需要一个log2折叠变量的矢量(我的矢量名为sigGenes),Entrez ID作为关联名称,以及微阵列中包含的Entrez ID的整数矢量(allGenes):
head(sigGenes)
6144 115286 23530 10776 83933 6232
0.368 0.301 0.106 0.234 -0.214 0.591
head(allGenes)
6144 115286 23530 10776 83933 6232
我已经删除了其EntrezID注释为NA的值。 我还使用下面站点I列表中提供的示例将来自Illumina微阵列的数据仅限于Affymetrix阵列中发现的那些基因。我仍然得到同样的错误。
以下是R代码的全部内容:
library(Biobase)
library(limma)
library(SPIA)
sigGenes <- subset(full_table, P.Value<0.01)$logFC
names(sigGenes) <- subset(full_table, P.Value<0.01)$EntrezID
sigGenes<-sigGenes[!is.na(names(sigGenes))] # remove NAs
allGenes <- unique(full_table$EntrezID[!is.na(full_table$EntrezID)])
spiaOut <- spia(de=sigGenes, all=allGenes, organism="hsa", plots=TRUE, data.dir="./")
关于我还能尝试什么的任何想法? 如果偏离主题道歉(这里仍然是新的)。如果需要,很高兴在其他地方提出问题。
此处应用于Affymetrix平台数据的SPIA示例:http://www.gettinggeneticsdone.com/2012/03/pathway-analysis-for-high-throughput.html)
答案 0 :(得分:1)
删除重复项确实有帮助。 作为一种解决方法,我在每组重复项中选择了中值(仅因为值很接近),如下所示:
$a=1; $b=33; $c=1;
$condition = '$a==1||$b==2||$c==3';
eval('$isTrue = ' . $condition . ';');
echo intval($isTrue); // should output 1
或者只是删除重复项:
dups<-unique(names(sigGenes[which(duplicated(names(sigGenes)))])) # determine which are duplicates
dupID<-names(sigGenes) %in% dups # determine the laocation of all duplicates
sigGenes_dup<-vector(); j=0; # determine the median value for each duplicate
for (i in dups){j=j+1; sigGenes_dup[j]<- median(sigGenes[names(sigGenes)==i]) }
names(sigGenes_dup)<-dups
sigGenes<-sigGenes[!(names(sigGenes) %in% dups)] # remove duplicates from sigGenes
sigGenes<-c(sigGenes,sigGenes_dup) # append the median values of the duplicates
答案 1 :(得分:0)
根据我们的讨论,我建议删除sigGenes
中的重复条目。如果没有其他信息,很难说重复项可能来自何处,以及删除哪一项。