Dear Jan,
thanks for bringing up this issue.
We have verified again all the source files, and algorithms. Here some thoughts:
We automatically get the data from GOA site: ftp://ftp.ebi.ac.uk/pub/databases/GO/goa/proteomes/25.H_sapiens.goa
In this file for each GO term are associated genes, usually one per line. Sometimes the the gene ID is followed by several records, that supposed to be synonyms. To cover as much as possible info, we initially took all these synonyms into account (theoretically translating to the same EntrezGeneID), not to miss some gene due to conversion problems. We noticed that in some cases (like in the example you sent us), these genes are not all synonyms (e.g. CDK3 and CDKN3), and decided to keep just the first gene id. For this reason in your example the two genes you should have associated with "G0 to G1 transition" are: MYC and CDK3.
Another issue are the term-term relations in GO. You mentioned
correctly that parent-child term pair, but in the same time we
have to consider the type of relation between these terms, and
"regulation of..." is a regulator term. Initially in such type of
interrelation the genes of the child were not added to the parent,
as recommended in GOA site "it would not be safe to include these
genes". Now I see that this message is a bit modified, and allows
to include them as associated with the parent term for
enrichments.
"Unlike is a and part of, grouping annotations to gene products grouped via regulates changes the relationship between the GO term and the gene product over the is a and part of relations. If gene product X is annotated as involved in a process that regulates glycolysis, it would not be correct to conclude that X participates in glycolysis. Nevertheless, some tools use regulates relations to group annotations. This can be useful for gene-set enrichment. The resulting gene sets include genes that are involved in processes that are causally related to the grouping term."
GO relations: http://geneontology.org/docs/ontology-relations/
Considering all this, by default we decided now to add the genes up the parent if there is a "regulates" type of relation. In addition, we added the possibility to switch this off if the user prefers it. This can be done in .properties file for each organism. After this feature is enabled/disabled, the GO files have to be updated. To disable this option again please set 'allow.relations.as.parents=false'
It is in the updated version (2.5.7) here in the property file.
#enable.add.all.child.genes.to.parent=false
# allow.relations.as.parents=false
#allow.empty.terms=true
If the option is un-commented by # it is considered automatically 'true'.
Also 'enable.add.all.child.genes.to.parent=false' would only allow direct term associations and would not add child associations to the parent. By default this is 'true'