Hi, I have got an Error in .local(.Object, ...) : allGenes must be a factor with 2 levels using the following code
> library(edgeR)
> library(topGO)
...
> tr <- glmTreat(fit, contrast=B.LvsP, lfc=log2(1.5))
> topTags(tr)
Coefficient: -1*Leaves.2 1*Leaves.3
logFC unshrunk.logFC logCPM PValue FDR
sp0090975 2.6 2.6 2.8 5.7e-14 2.7e-09
sp0037632 -3.0 -3.0 3.4 1.7e-13 2.7e-09
sp0074153 -3.9 -3.9 3.8 1.8e-13 2.7e-09
sp0008306 3.2 3.2 2.9 1.8e-13 2.7e-09
sp0073530 -4.5 -4.5 3.4 2.3e-12 2.3e-08
sp0025713 -3.9 -3.9 4.4 2.6e-12 2.3e-08
sp0037721 7.8 8.0 2.4 2.7e-12 2.3e-08
sp0083660 2.0 2.0 4.4 3.2e-12 2.3e-08
sp0052245 -2.9 -2.9 4.9 3.9e-12 2.6e-08
sp0071520 -3.3 -3.3 2.7 5.8e-12 3.4e-08
> geneID2GO <- readMappings(file = "~GOmapping.tsv")
> head(geneID2GO)
$`"V1"`
[1] "\"V14\""
$`"sp0000005"`
[1] "\"GO:0003723\""
$`"sp0000006"`
[1] "\"GO:0016021\""
$`"sp0000007"`
[1] "\"GO:0003700" "GO:0006355" "GO:0043565\""
$`"sp0000016"`
[1] "\"GO:0046983\""
$`"sp0000017"`
[1] "\"GO:0004672" "GO:0005524" "GO:0006468\""
> geneUniverse <- names(geneID2GO)
> head(geneUniverse)
[1] "\"V1\"" "\"sp0000005\"" "\"sp0000006\"" "\"sp0000007\"" "\"sp0000016\""
[6] "\"sp0000017\""
> genesOfInterest <- rownames(tr@.Data[[1]])
> head(genesOfInterest)
[1] "sp0025247" "sp0025250" "sp0025268" "sp0025270" "sp0025282" "sp0056834"
> geneList <- factor(as.integer(geneUniverse %in% genesOfInterest))
> head(geneList)
[1] 0 0 0 0 0 0
Levels: 0
> names(geneList) <- geneUniverse
> myGOdata <- new("topGOdata",
+ description="My project",
+ ontology="BP",
+ allGenes=geneList,
+ annot = annFUN.gene2GO,
+ gene2GO = geneID2GO)
Error in .local(.Object, ...) : allGenes must be a factor with 2 levels
What did I miss?
Thank you in advance.
Are you sure that the line
geneList <- factor(as.integer(geneUniverse %in% genesOfInterest))
is doing what you expect it to do? First converting to integers and then factors doesn't look right to me. I'm neither sure that the lookup with%in%
is going to work as you'd expect. The%in%
operator will just return indices, but not actual values.Your geneList variable appears to be just zeros, i.e., a single factor.
Happy to assist further