Perfom a Gene Ontology Analysis from GO terms txt file
1
0
Entering edit mode
6 months ago
Hamtaro ▴ 50

Hello everybody.

It's the first time I've been confronted with something like this. After performing a differential analysis using a Tomato genome downloaded from this page, I would like to perform a Gene Enrichment analysis on the differentially expressed genes. However, I have never used a GOterm.txt (from here) as a reference.

enter image description here

Could you tell me how I should do it or a guide/app?

Thanks!

RNA-Seq GO • 741 views
ADD COMMENT
0
Entering edit mode

Hello,

To perform functional enrichment analysis there are packages such as topGO or clusterProfiler that can work very well. Lately I've been using clusterProfiler for the graphs it comes from, maybe you should take a look at the clusterProfiler manual:

https://yulab-smu.top/biomedical-knowledge-mining-book/clusterprofiler-go.html

If your organism does not have support you may need to use AnnotationHub to retrieve GO terms:

https://guangchuangyu.github.io/cn/2017/07/clusterprofiler-maize/#disqus_thread

ADD REPLY
0
Entering edit mode

Thank u for your reply. The problem is that I used the genome and gene annotation from that webpage, not ensemble or ncbi, so I have to use the Goterm.txt file from that webpage

ADD REPLY
0
Entering edit mode
6 months ago
sansan96 ▴ 130

I understand, here is an example with topGO where you need a differential expression table (DESeq2 for example) and a table of GO terms:


library(topGO)
library(ALL)

#DEGs table.
 DE<-read.csv("C:/DE.csv")

#Go terms and ID
 genes2GO<-readMappings(file = "C:/Genes2GO.txt",sep = "\t", IDsep = ";")    

#Column with ID and p-value
GeneList <-DE[,6]       
names(GeneList) <-DE[,1]

#Object GO
 GOdata <-new("topGOdata",
          description = "Simple session", ontology = "BP",                 #BP, MF o CC 
          allGenes = GeneList  ,geneSel = topDiffGenes,   
          nodeSize = 10,                                                
          annot=annFUN.gene2GO,gene2GO = genes2GO  )                     

#Test Fisher o KS
 Fisher  <- runTest(GOdata  , algorithm = "classic", statistic = "fisher")
 KS      <- runTest(GOdata  , algorithm = "classic", statistic = "ks")
 KS_elim <- runTest(GOdata  , algorithm = "elim", statistic = "ks")

#Results
 Genetable<-GenTable(GOdata, classicFisher = Fisher,classicKS = KS, elimKS = KS_elim,orderBy = "elimKS", ranksOf = "classicFisher", topNodes =20)

Review the Bioconductor manual.

ADD COMMENT
0
Entering edit mode

Your table should look like this (GO terms):

geneid  GOid
Zm00001eb000010 GO:0003690;GO:0003727;GO:0019843;GO:0005739
Zm00001eb000020 GO:0004806;GO:0006511;GO:0065007
Zm00001eb000050 GO:0000723;GO:0006281;GO:0006351;GO:0010556
ADD REPLY

Login before adding your answer.

Traffic: 2133 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6