I was reading "Use and misuse of the gene ontology annotations" (doi:10.1038/nrg2363) and I realized that all the tools I know that use GO don't use evidence code or relations between GO terms.
The evidence code of the annotation (IEA, TAS, ....) explain what is the origin of this relationship between gene and gene ontology. and the relations (is_a, part_of, ...), explains what is the relationship between GO terms
So far the tools I know to be used for Gene-GO analysis, doesn't use them, at most the inferred from electronic annotation is optionally excluded. But the relationship between GO are not used AFAIK in several tools like topGO, DAVID, AmiGO, GOStats, and the similarity scores of GO, like Resnik, Lin, Jiang, Rel and Wang.
Are there tools that use this information (and I have been simply clueless)? I am mainly interested in tools focused to humans.
There is at least one tool (related to Gene Ontology enrichment and functional analyses) that handles associations between genes and ontology terms. It is a Python package, called Bio.Ontology. It has been recently posted on bioRxiv.org (link to paper). Bio.Ontology is now included in BioPython.
This seems to be implemented in an old branch of Biopython. Also It allows to filter but it doesn't seem to take it into account for anything else, does it?
You are right. I moved my answer as a comment. Please let me know if you find a proper tool.
I found a tool, see my answer.
I hope to find it or some directions to go on
I am not sure I understand what you mean by the semantic similarity scores not taking into account relationship between terms because this is precisely what the ones you list do since they involve sets of ancestor terms. In my view, whether to use different types of relations should be left to the user as this is context-dependent. It is true that many "enrichment" tools do not take into account the ontology structure and thus are not very powerful. For my part I like this approach. The use of evidence code should also be left to the user since people have different opinions about what constitute good evidence.
Yes, I am aware that some of those tools include ancestor terms to the analysis. But the similarities doesn't take into account the type of relationship between the terms, only how the relationship exist: A->B->C not that A is_a B part_of C.
At most, I only have a choice to exclude certain evidence code (IEA). Not to select the evidences code ones I want, or to include several relations and exclude others.
Nice paper. Are those algorithms implemented in any package/library?
One consideration is whether or not it matters for the question at hand. Consider for example that part of a mitochondria is still mitochondria and that part of mitosis is still a mitotic process. For semantic similarities, you may not necessarily care about the distinction. However, I'd be interested to know if someone has experience with making this distinction and what difference that made to the outcome.
I don't know of any publicly available implementation of the pertinent set selection algorithm. I've implemented it in perl years ago.
For semantic similarity might be more useful the evidence code rather than the relation code, while for enrichment it might be more important the relation between terms than the evidence of said terms. That's why I asked for tools using them, or papers which explore them