# different results coming from biomart online and biomaRt R library

I am playing with biomart in order to get the list of genes associated to a specific gene ontology (GO) term.

So, if I use the webservice as in this query:

I get at least 50 genes. If I download the file I can gen an exact count of them:

\$ cat mart_export.txt | wc -l
347


Now, I can do the same operation by using the R library biomaRt. Specifically:

> ensembl <- useEnsembl(biomart="ENSEMBL_MART_ENSEMBL", dataset='hsapiens_gene_ensembl')
> gene <- getBM(attributes = c('external_gene_name'), filters = 'go', values = 'GO:0030098', mart = ensembl)
> unique(gene)
external_gene_name
1               SPI1
2              PRKDC
3                TOX
4               LY6D
5               CBFB
6              IKZF1
7               RELB
8             FLT3LG


By doing so, these are all the genes I retrieve. The two results are totally different and I don't know why it. All these eight genes are found in the biomart file (I grepped it, to be sure).

I believe this is not an issue related to databases versions since I checked:

>listMarts()
biomart               version
1 ENSEMBL_MART_ENSEMBL      Ensembl Genes 94
2   ENSEMBL_MART_MOUSE      Mouse strains 94
3     ENSEMBL_MART_SNP  Ensembl Variation 94
4 ENSEMBL_MART_FUNCGEN Ensembl Regulation 94


and:

>listDatasets(ensembl)
...
38 Human genes (GRCh38.p12)
...


Both are the same version used by biomart online.

What is going on? Is it possible that biomart online is considering GO relations that are not specified in the R version?

• Funny: if I count the result of your query I get that there would be 361 genes. While we have 346 genes (you need to discount the header, and also as a tip wc -l mart_export.txt works as well). The difference between 361 and 346 might be duplicated gene, which suggests that they are considering GO child process. But I think that Emily might have a better answer for this. Have you searched online for similar questions?
– llrs
Nov 9 '18 at 8:43
• yes, you're rigth about the header ;-) I forgot about it. also yes I looked for other similar questions and I found the one that suggested me to check the version used by R biomaRt. Another similar question biostars.org/p/14948 does not answer. How come that you get 361 lines? I'll try that again, sending another equal query. Lets see
– gabt
Nov 9 '18 at 8:49
• Ok, I tried again and I still got 346 genes! This is weird!
– gabt
Nov 9 '18 at 8:52
• The 361 is using the count feature of the query page. Instead of results I pressed count at the top left header. If you deselect the unique rows you'll get more genes
– llrs
Nov 9 '18 at 9:16
• yes, I tried it but actually I don't know. Hopefully unique genes will be enough!
– gabt
Nov 9 '18 at 9:47

gene <- getBM(attributes = c('external_gene_name'), filters = 'go_parent_term', values = 'GO:0030098', mart = ensembl)