In my first approach to the use of Gene Ontology, I have found a discordance if we consult either Mouse Genome Informatics (MGI) or Ensembl for these data.
Concretely, for the mouse genes Zic1 (NCBI 2271) and Zic2 (NCBI 2272), MGI assigns them up to 23 and 24 different GO terms, respectively.
However these numbers are different according to Ensembl data retrieved through R/Bioconductor. In particular, for Zic2 (Id 22772) the difference is very significant (24 terms in MGI vs. only 3 terms in Ensembl):
> my_ensembl = useMart ("ensembl", dataset = "mmusculus_gene_ensembl")
> getBM (attributes = "go_id", filters ="entrezgene" , values = '22771', mart = my_ensembl)
go_id
1 GO:0003676
2 GO:0046872
3 GO:0003677
4 GO:0005634
../..
22 GO:0008589
23 GO:0007389
24 GO:0021510
25 GO:0042472
> getBM (attributes = "go_id", filters ="entrezgene" , values = '22772', mart = my_ensembl)
go_id
1 GO:0003676
2 GO:0005634
3 GO:0016604
>
So, my questions are: Which is the reason for this discordance? Has it something to do with the different types of evidence to assign GO terms? Also, in order to proceed to analysis like GO enrichment, which of these two databases would be more appropriate?