I have genes differentially expressed between two groups (case and control). I would like to annotate them by classifying them according to their biological functions.

I work on parasites of Plasmodium Falciparum type Dd2 which are divided into two groups (case and control). I carried out a Differential expression analysis with cuffdiff and CummeRbund then I annotated my genes on plasmodb.org.

Example of id genes: pfDd2_14005040

Now I would like to do a pathway analysis to see which biological pathways these genes are involved in.

StupidWolf, I resumed my annotation with the 3D7 strain of plasmoduim Falciparum then I created my geneList as you indicated but when I make the dotplot nothing is displayed


gene <- c ("PF3D7_0936800","PF3D7_1478900","PF3D7_1009700","PF3D7_0508500")
geneList = keys(org.Pf.plasmo.db)
enr <- enrichGO(gene,universe=geneList,OrgDb='org.Pf.plasmo.db',keyType ="SYMBOL",ont="BP")

The output gives a white rectangle

                   ID                           Description GeneRatio  BgRatio     pvalue
GO:0006323 GO:0006323                         DNA packaging       1/2  21/2615 0.01599974
GO:0071103 GO:0071103               DNA conformation change       1/2  30/2615 0.02281728
GO:0051276 GO:0051276               chromosome organization       1/2  58/2615 0.04387582
GO:0006996 GO:0006996                organelle organization       1/2 144/2615 0.10712138
GO:0016043 GO:0016043       cellular component organization       1/2 203/2615 0.14925925
GO:0006464 GO:0006464 cellular protein modification process       1/2 265/2615 0.19244223
            p.adjust     qvalue        geneID Count
GO:0006323 0.1026777 0.07205456 PF3D7_0508500     1
GO:0071103 0.1026777 0.07205456 PF3D7_0508500     1
GO:0051276 0.1316275 0.09237015 PF3D7_0508500     1
GO:0006996 0.2203602 0.15463872 PF3D7_0508500     1
GO:0016043 0.2203602 0.15463872 PF3D7_0508500     1
GO:0006464 0.2203602 0.15463872 PF3D7_1009700     1
> dotplot(enr)

enter image description here

Once again I need your help.

  • $\begingroup$ EnrichR, gprofiler2, clusterprofiler, to give some keywords you can look up. $\endgroup$
    – user3051
    Commented Apr 6, 2020 at 12:02
  • $\begingroup$ I used webtools like: DAVID, Reactome, panther. But they all tell me that my id genes are not in the right format. I made my annotations on plasmodb.org $\endgroup$
    – Diango
    Commented Apr 6, 2020 at 19:51
  • 1
    $\begingroup$ I cannot help you with no information provided. How do your genes look, so first of all which species. Is it Ensembl IDs, HGNC? Please add some background. $\endgroup$
    – user3051
    Commented Apr 6, 2020 at 19:53
  • $\begingroup$ i think david,etc might not have plasmodium annotations, so they cannot map your gene id to pathways... you use this.. bioconductor.org/packages/release/data/annotation/html/… $\endgroup$
    – StupidWolf
    Commented Apr 6, 2020 at 22:57

1 Answer 1


I guess plasmodium doesn't have that many online tools dedicated to it so you can use the annotation packages from bioconductor and try it. I used clusterProfiler for analysis and org.Pf.plasmo.db for annotation below.

From this paper, grabbed table 1, a table of supposed genes involved in something:

genes = c("PF3D7_1302100", "PF3D7_0501300", "PF3D7_0302500*", "PF3D7_1030200", 
"PF3D7_0302200*", "PF3D7_1327300", "PF3D7_0410000", "PF3D7_0104300", 
"PF3D7_0420300", "PF3D7_0810000*", "PF3D7_0522300", "PF3D7_0935700*", 
"PF3D7_0424700*", "PF3D7_1477700*", "PF3D7_0202000*", "PF3D7_1371600", 
"PF3D7_1036300", "PF3D7_0422900", "PF3D7_0501400", "PF3D7_0221700", 
"PF3D7_0301000", "PF3D7_1454100", "PF3D7_0831800", "PF3D7_0424900", 
"PF3D7_1447500", "PF3D7_1477400", "PF3D7_0424800", "PF3D7_0823700", 
"PF3D7_1477300", "PF3D7_0814100", "PF3D7_1372100", "PF3D7_0201500", 
"PF3D7_0825300", "PF3D7_0201700", "PF3D7_1470000", "PF3D7_1401000", 
"PF3D7_0724900", "PF3D7_0601700", "PF3D7_1410000", "PF3D7_0109300", 
"PF3D7_1347300", "PF3D7_0201800", "PF3D7_1242100", "PF3D7_0403300", 
"PF3D7_0114500", "PF3D7_1301200", "PF3D7_0931200", "PF3D7_0832200.1", 
"PF3D7_0305900", "PF3D7_0608310", "PF3D7_0221800", "PF3D7_0511100", 
"PF3D7_1001300", "PF3D7_1225900", "PF3D7_1444600", "PF3D7_1349900", 
"PF3D7_1008300", "PF3D7_0919600", "PF3D7_1210300", "PF3D7_0929700", 
"PF3D7_0701600", "PF3D7_0201600", "PF3D7_0801600", "PF3D7_1463600", 
"PF3D7_0201900", "PF3D7_0905000", "PF3D7_1310000", "PF3D7_0315200", 
"PF3D7_1139200", "PF3D7_1023500", "PF3D7_1111300", "PF3D7_0930700", 
"PF3D7_1350800", "PF3D7_0412300", "PF3D7_0831900", "PF3D7_0406600", 
"PF3D7_1448100", "PF3D7_0114300", "PF3D7_0526100", "PF3D7_1243200", 
"PF3D7_0921100", "PF3D7_0301900", "PF3D7_0622700", "PF3D7_0811800", 
"PF3D7_0114200", "PF3D7_0221500", "PF3D7_1129850", "PF3D7_1142200", 
"PF3D7_0114100", "PF3D7_0512900", "PF3D7_1346200", "PF3D7_1369400", 
"PF3D7_0314300", "PF3D7_0324100", "PF3D7_0107700", "PF3D7_1122000", 
"PF3D7_0618800", "PF3D7_0601200", "PF3D7_1360300", "PF3D7_1318500", 
"PF3D7_1111700", "PF3D7_0901900", "PF3D7_1313900", "PF3D7_1101700", 
"PF3D7_1313200", "PF3D7_1039700", "PF3D7_0222100", "PF3D7_1371500", 
"PF3D7_1344700", "PF3D7_1408300", "PF3D7_0929800", "PF3D7_0115000", 
"PF3D7_1462900", "PF3D7_1352600", "PF3D7_0626200", "PF3D7_0831750", 
"PF3D7_0602300", "PF3D7_0521100", "PF3D7_1452100", "PF3D7_0718900", 
"PF3D7_0101300", "PF3D7_0815700", "PF3D7_0113600", "PF3D7_0937200", 
"PF3D7_1108800", "PF3D7_0221100", "PF3D7_0921500", "PF3D7_1038300", 
"PF3D7_0201400", "PF3D7_0822200", "PF3D7_0937000", "PF3D7_0301100"

We can for example using clusterProfiler:


Besides the list of interest, you need to get a "universe" of all genes tested, in your situation it will be genes that you tested for differential gene expression, below I used all the genes annotated:

geneList = keys(org.Pf.plasmo.db)

enr <- enrichGO(genes,universe=geneList, OrgDb='org.Pf.plasmo.db', 
keyType ="SYMBOL",ont="BP")

Above is a GO term enrichment, biological processes, you can look at the result like this:

    GO:0042000 GO:0042000
    GO:0044417 GO:0044417
    GO:0044766 GO:0044766
    GO:0051808 GO:0051808
    GO:0051836 GO:0051836
    GO:1902579 GO:1902579
    GO:0042000                                             translocation of peptides or proteins into host
    GO:0044417                                                        translocation of molecules into host
    GO:0044766                                                                    multi-organism transport
    GO:0051808 translocation of peptides or proteins into other organism involved in symbiotic interaction
    GO:0051836            translocation of molecules into other organism involved in symbiotic interaction
    GO:1902579                                                                 multi-organism localization

And you can plot it:


enter image description here

You can read more about the analysis you can do at the package website

  • $\begingroup$ genes = c("PfDd2_090042100*", "PfDd2_060005300*","PfDd2_020024700*","PfDd2_050038200*", "PfDd2_130078600*","PfDd2_050037500*", "PfDd2_060005700*","PfDd2_120045400*" ) --> No gene can be mapped.... --> Expected input gene ID: PF3D7_1405400,PF3D7_0623400,PF3D7_1025600,PF3D7_1439000,PF3D7_1423000,PF3D7_0716100 --> return NULL... $\endgroup$
    – Diango
    Commented Apr 7, 2020 at 6:40
  • $\begingroup$ Apparently in this database there is no emotion that matches my gene_id (pdDd2_xxxxx) instead of PF3D7_xxxxxx. ps: I am working on the Dd2 strain of the parasite and not the 3D7 strain $\endgroup$
    – Diango
    Commented Apr 7, 2020 at 6:43
  • $\begingroup$ Anyway you can map it to the PF3D7? For pathway etc analysis, you are as good as your annotation. I am not so familiar with plasmodium, but surely somehow must have encountered this problem? $\endgroup$
    – StupidWolf
    Commented Apr 7, 2020 at 8:29
  • $\begingroup$ Okey thank you very much for your suggestions I will resume the annotation with 3D7 $\endgroup$
    – Diango
    Commented Apr 7, 2020 at 9:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.