This is a test version of Biostars. For the public version, visit https://www.biostars.org.
How to add GO pValue in blast2GO ?

Hi, I want to use REVIGO TreeMap in order to summarize and visualize the GO terms related to my Differentially Expressed Genes/transcripts (DEGs).

I found the GO term for them using Blast2GO.

But it seems that REVIGO needs "pValue"s, which is not included in the .annot file exported from Blast2GO.

How can I add pValue to my GO terms?

Best

NOTE: Blast2GO results example

TRINITY_DN187708_c5_g2_i7 GO:0005515 diphthine methyltransferase

TRINITY_DN190758_c1_g1_i9 GO:0016307 phosphatidylinositol 4-phosphate 5-kinase type-1 alpha

TRINITY_DN190758_c1_g1_i9 GO:0006897

TRINITY_DN190758_c1_g1_i9 GO:0046854

go annotation revigo blast2go

2 answers

Hi,

You need to perform enrichment analysis of GO terms for DEGs over all GO terms to get p-values (can use BINGO). You can use just GO terms without p-values also but REVIGO will not give weightage based on p-values.

Hi and thank you. would you please explain more what you mean by "over all GO terms" here? as I have collected GO terms just for my 200 DEGs. Thanks

Thank you.

I am working on a non model fish. I have 500K transcripts and 200 of them are DEG which I collect GO for them using Blast2GO. The closest model animal to my sample is is zebra fish.

Should I use GO of zebra fish as some kind of background? where can I collect all Danio rerio GO terms?

Easy way is to map your DEGs to zebrafish genes (find orthologues) and then you can use many of the tools which have zebrafish gene annotations (eg. clusterProfiler)

Perhaps you can use all the mapped GO terms as your background and the GO associated to DEGs to test for enrichment using a hypergeometric or fisher's exact test.

But as Puli said you can use Revigo without p-values.

    #after running maker merged gff file was used and first round of filtration was carried out by AED score cutoff. 
    awk '{if($3=="mRNA")print$0}' ./base.all.gff |grep -v "trnascan"|grep  "est2genome"| grep "mRNA-1"| grep "_AED=0.00"|grep "Name"|awk '{split($9,a,";");print a[2]}'|awk '{split($1,a,"=");print a[2]}'> ./for_Augustus/MAKER_filter1_list

    grep -Fwf ./for_Augustus/MAKER_filter1_list ./base.all.gff > ./for_Augustus/MAKER_filter1.gff

    #remove mono exonic genes

     cat ./for_Augustus/MAKER_filter1.gff |awk '{split($9,a,";");print$3,a[2]}'|awk '{split($2,b,"=");print$1,b[2]}'| awk 'a ~ $0{print}; {a=$0}'|grep "^exon"| awk '{split($2,c,"-mRNA");print c[1]}'| sort -u > ./for_Augustus/non_monoExonic_MAKER_filter2.gff_list

    grep -Fwf ./for_Augustus/non_monoExonic_MAKER_filter2.gff_list ./for_Augustus/MAKER_filter2.gff > ./for_Augustus/MAKER_filter3.gff

    # get both three prime and five prime utr containing genes

    cat ./for_Augustus/MAKER_filter3.gff |awk '/three_prime_UTR/ {print$0}' |awk '{split($9,a,";");print$3,a[2]}'|awk '{split($2,b,"=");print$1,b[2]}'| awk '{split($2,c,"-mRNA");print c[1]}'| sort -u > ./for_Augustus/three_prime_utr_positive_gene_list

    cat ./for_Augustus/MAKER_filter3.gff |awk '/five_prime_UTR/ {print$0}' |awk '{split($9,a,";");print$3,a[2]}'|awk '{split($2,b,"=");print$1,b[2]}'| awk '{split($2,c,"-mRNA");print c[1]}'| sort -u > ./for_Augustus/five_prime_utr_positive_gene_list

    sort  ./for_Augustus/three_prime_utr_positive_gene_list ./for_Augustus/five_prime_utr_positive_gene_list |uniq -d > ./for_Augustus/five_three_prime_utr_positive_gene_list


    grep -Fwf ./for_Augustus/five_three_prime_utr_positive_gene_list ./for_Augustus/MAKER_filter3.gff > ./for_Augustus/MAKER_filter4.gff

# remove utrs from gff (optional, but I will suggest for running without errors)

awk '!/three_prime_UTR|five_prime_UTR/ {print$0}' ./MAKER_filter4_mod.gff > ./MAKER_filter4_mod_withoutUTR.gff


#convert to gb format (scripts are in augustus)

./scripts/gff2gbSmallDNA.pl ./MAKER_filter4_mod_withoutUTR.gff  /genome.fasta 10 ./MAKER_filter4_mod_withoutUTR.gb

# split test and training set (~1:5) (this is example, modify accordingly)

./scripts/randomSplit.pl ./MAKER_filter4_mod_withoutUTR.gb 200
grep -c LOCUS ./MAKER_filter4_mod_withoutUTR.gb*                                                               

./MAKER_filter4_mod_withoutUTR.gb:1279
./MAKER_filter4_mod_withoutUTR.gb.test:200
./MAKER_filter4_mod_withoutUTR.gb.train:1079

# create new file for your species (of interest) 

./scripts/new_species.pl --species=species

#etrain

./bin/etraining --species=species ./MAKER_filter4_mod_withoutUTR.gb.train

#test
./bin/augustus --species=species ./MAKER_filter4_mod_withoutUTR.gb.test | tee firsttest.out

#optimize
./scripts/optimize_augustus.pl --cpus=10 --species=species ./MAKER_filter4_mod_withoutUTR.gb.train --metapars=./config/species/species/species_metapars.cfg



#busco
./scripts/run_BUSCO.py -c 10 --long -sp species -o species_test -i /genome.fasta -l /BUSCO/busco/data/eukaryota_odb9 -m genome

Let me know if you face any problem with running these lines.

Best

Log in to answer this question.