No announcement yet.
  • Filter
  • Time
  • Show
Clear All
new posts

  • Gene names to GO terms

    Hey guys,

    i'm looking for a script which can somekind crawl a certain online database for gene names and fetch the GO terms, functionality (if known) from the database?

    Is there any tool that is able to map gene names to go terms?



  • #2
    Hi- One option is to use Ensembl/Biomart ( which has a Bioconductor package to query it. If you are happy with ensembl and R:

    ensembl<- useMart("ensembl",dataset="hsapiens_gene_ensembl")
    getBM(attributes=c('hgnc_symbol', 'go_id', 'name_1006'), filters = 'hgnc_symbol', values= c('ACTB', 'TNF'), mart= ensembl)
    Which produce a dataframe like:

        hgnc_symbol      go_id                                                            name_1006
    1           TNF GO:0007275                                 multicellular organismal development
    2           TNF GO:0006915                                                    apoptotic process
    3           TNF GO:0000122 negative regulation of transcription from RNA polymerase II promoter
    4           TNF GO:0008285                            negative regulation of cell proliferation
    Hope this helps!



    • #3
      perfect, thanks!


      • #4
        am new to GO business. Have noticed that for a given gene, many GO terms can be retrieved. is it possible to know to which category a GO term belong and display it, for ex biological process, molecular function or cellular component? Are there any other categories that could be interesting and GO terms could be retrieved?

        Do the people usually extract all GO terms pertaining to a given gene? If not how do they filter? All advices, info are welcome.

        Look forward to your reply,


        • #5
          The Gene Ontology Project covers 3 domains: cellular component, molecular function and biological project

          "cellular component, the parts of a cell or its extracellular environment;
          molecular function, the elemental activities of a gene product at the molecular level, such as binding or catalysis;
          biological process, operations or sets of molecular events with a defined beginning and end, pertinent to the functioning of integrated living units: cells, tissues, organs, and organisms."

          With Ensembl's bioMart, or any other gene annotation tool, you can specify the domain of interest.
          With Ensembl, you actually just ask for the domain for each term, then apply your own filtering.
          The domain you pick really depends on your subject of interest.

          I just find it preferable not to mix the terms from the 3 domains together. Just present the terms from the one domain you are interested in, or present separately the terms for each domain.


          • #6
            How is it possible to specify the domain using biomaRt, bioconductor package? specifically, which parameters of getBM?

            I saw that they have > 1000 attributes and 287 filters in biomaRt package. how to choose based on subject of interest?

            in parallel, I had a look at biomart on ensembl web site and could find the domain in a field but didn't find any field how to upload my gene list. but finding attributes and filters seem to be quicker. don't know which one could be preferable, biomaRt package or web page?
            Last edited by carolW; 12-12-2014, 12:09 PM.


            • #7
              Have a look at for additional resources/tools.


              • #8
                I've posted the R code.
                The attribute for the domain is namespace_1003 while the attribute for the term is name_1006.
                You can easily recover the attributes description with the function listAttributes().

                The website may be easier for a neophyte.
                You give your list of genes (Max. 500) in the Filter section.

                It's rarely interesting to recover the gene ontology term for individual genes anyway. More often, you'll want the enriched GO terms for a given list of genes (e.g. differentially expressed) vs the background. You can use DAVID (or Gorilla) for that. DAVID is extremely easy to use, quick and reliable.

                # Connect to biomaRt ensembl
                mart <- useMart("ensembl")
                mart <- useData("hsapiens_ensembl", mart=mart)
                attributes = listAttributes(mart)
                write.table(attributes, "attributes.txt", sep="\t", row.names=FALSE, quote=FALSE)
                # Recover gene terms and domain
                gene.terms <- getBM(filter="ensembl_gene_id", value="ENSG00000143632", attribute=c("ensembl_gene_id", "external_gene_name", "name_1006", "namespace_1003"), mart=mart)
                gene.terms <- subset(gene.terms, name_1006 != "")
                write.table(gene.terms, "gene_terms.txt", sep="\t", row.names=FALSE, quote=FALSE)


                • #9
                  Regarding David, should all clusters be considered or based on some criteria such as enrichment score and how?

                  In general, except GO enrichment, are there other ways to narrow down the list of GO terms?
                  Last edited by carolW; 12-12-2014, 01:18 PM.


                  • #10
                    I get an err msg when using useData

                    mart <- useData("hsapiens_ensembl", mart=mart)
                    Error: could not find function "useData"

                    and if it should have been useDataset

                    mart <- useDataset("hsapiens_ensembl", mart=mart)
                    Error in useDataset("hsapiens_ensembl", mart = mart) :
                    No valid Mart object given, specify a Mart object with the attribute mart

                    What is the correct function to use?

                    2- Moreover,I would like to make a list or graphics of the most frequent GO terms. So I used david and got a list of GO terms with their number of occurence obtained from the functional annotation chart file. However, some of the genes are just associated to a term which is not a GO term and the number of frequency of others are so close to each other that it's useless to make a graphics

                    phosphoprotein 232
                    acetylation 185
                    nucleus 134
                    cytoplasm 120
                    GO:0031974~membrane-enclosed lumen 99
                    GO:0043228~non-membrane-bounded organelle 98
                    GO:0043232~intracellular non-membrane-bounded organelle 98

                    How to identify the GO terms with the highest frequency and is it better to use the functional annotation clustering file? In this case, which GO terms and clusters to use?

                    Look forward to your reply,
                    Last edited by carolW; 12-28-2014, 07:05 AM. Reason: ask other questions related to the reply


                    Latest Articles


                    • seqadmin
                      Advanced Methods for the Detection of Infectious Disease
                      by seqadmin

                      The recent pandemic caused worldwide health, economic, and social disruptions with its reverberations still felt today. A key takeaway from this event is the need for accurate and accessible tools for detecting and tracking infectious diseases. Timely identification is essential for early intervention, managing outbreaks, and preventing their spread. This article reviews several valuable tools employed in the detection and surveillance of infectious diseases.
                      11-27-2023, 01:15 PM
                    • seqadmin
                      Strategies for Investigating the Microbiome
                      by seqadmin

                      Microbiome research has led to the discovery of important connections to human and environmental health. Sequencing has become a core investigational tool in microbiome research, a subject that we covered during a recent webinar. Our expert speakers shared a number of advancements including improved experimental workflows, research involving transmission dynamics, and invaluable analysis resources. This article recaps their informative presentations, offering insights...
                      11-09-2023, 07:02 AM





                    Topics Statistics Last Post
                    Started by seqadmin, Today, 02:24 PM
                    0 responses
                    Last Post seqadmin  
                    Started by seqadmin, Today, 07:37 AM
                    0 responses
                    Last Post seqadmin  
                    Started by seqadmin, Yesterday, 08:23 AM
                    0 responses
                    Last Post seqadmin  
                    Started by seqadmin, 12-01-2023, 09:55 AM
                    0 responses
                    Last Post seqadmin