Question: Obsolete Terms In Ontologies
7
gravatar for Andrew Craig
9.0 years ago by
Andrew Craig90
Andrew Craig90 wrote:

I have a database storing genotype data. I also want to add phenotype data by using terms taken from the Human Phenotype Ontology.

When the phenotype ontology is updated, if a term I have used becomes obsolete, I will need to replace the obsolete term with a newer equivalent. I notice OBO defines tags "replaced_by" which indicates an alternative term that can be used to automatically replace the obsoleted term and "consider" which is similar but needs additional human intervention. Unfortunately the ontology I am interested in using does not seem to provide these attributes.

Apart from the two obvious ways to manage this i.e "use one version of the ontology and never update" or "just prompt the user to redo the annotation for expired terms", is there another established way to automatically identify replacements for obsoleted terms in an ontology? For example it seems as though some information from the relationships in the two ontology graphs could be exploited here?

If anyone could suggest a paper dealing with this problem I would be very grateful.

ontology • 2.0k views
ADD COMMENTlink modified 8.4 years ago by iw9oel_ad6.0k • written 9.0 years ago by Andrew Craig90
3
gravatar for iw9oel_ad
9.0 years ago by
iw9oel_ad6.0k
iw9oel_ad6.0k wrote:

Unfortunately, the replaced_by tag is sometimes not used, even by well-established OBO ontologies like the SO (Sequence Ontology). In contrast, the GO (Gene Ontology) is heavily curated and usually contains this information, for the reasons that you have discovered.

I would contact the curators of the ontology to request that they include this information in future, explaining why you (as a member of their user community) need it.

If you need to find out where previous term deprecations have occurred, you will need access to the ontology's source repository. If possible, convert it to git and use git bisect to track down the point at which the term was obsoleted. You may see other terms in that (or neighbouring) commits that indicate why it happened.

While it may be possible to recover some hints from the rest of the ontology, it is probably easier to look at the edit history.

If we assume a semantically similar term has superseded the old one, it would be possible to query for that. However, if the old term were removed because it was simply wrong, the old and new terms could have radically different semantics and be very hard to link.

ADD COMMENTlink written 9.0 years ago by iw9oel_ad6.0k

Thanks Keith, I'll try contacting the HPO curators.

ADD REPLYlink written 9.0 years ago by Andrew Craig90

The OBO 1.2 spec states that "Obsolete terms must have no relationships, and no defined is_a, inverse_of, disjoint_from, union_of, or intersection_of tags." Therefore most useful information is elided on obsoletion and the querying I suggested is not possible without the previous version of the ontology. If you have two different versions you can use obodiff. From the OBO-Edit documentation: "The obodiff utility compares a pair of OBO files and reports all of the edits necessary to transform the first file into the second."

ADD REPLYlink written 9.0 years ago by iw9oel_ad6.0k
2
gravatar for Pierre Lindenbaum
9.0 years ago by
France/Nantes/Institut du Thorax - INSERM UMR1087
Pierre Lindenbaum121k wrote:

See Alternatives for Obsolete Terms on wiki.geneontology.org.

It must be possible to get all this information using a mysql database for GO; A public mysql for GO is available here.

See also "searching for Obsolete terms".

ADD COMMENTlink modified 10 months ago by RamRS23k • written 9.0 years ago by Pierre Lindenbaum121k

Thank you for your suggestions. I realised my question is a little ambiguous. I am writing as an end user of the ontology, not the ontology curator.

In a nutshell, my question is there another way to infer appropriate replacement term(s) for an obsoleted term in an ontology that does not provide any "replaced_by" or "consider" attributes.

ADD REPLYlink written 9.0 years ago by Andrew Craig90
2
gravatar for Pierre Lindenbaum
9.0 years ago by
France/Nantes/Institut du Thorax - INSERM UMR1087
Pierre Lindenbaum121k wrote:

2nd answer:

download GO as OWL:

wget http://archive.geneontology.org/latest-full/go_201007-termdb.owl.gz
gunzip go_201007-termdb.owl.gz

and apply the following stylesheet:


<xsl:stylesheet xmlns:xsl="&lt;a href="http://www.w3.org/1999/XSL/Transform" "="" rel="nofollow">http://www.w3.org/1999/XSL/Transform'
    version='1.0'
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:oboInOwl="http://www.geneontology.org/formats/oboInOwl#"
    >

<xsl:output method="text"/>

<xsl:template match="/">
<xsl:apply-templates select="//oboInOwl:replacedBy"/>
</xsl:template>

<xsl:template match="oboInOwl:replacedBy">
<xsl:value-of select="substring-after(@rdf:resource,'#')"/>
<xsl:text>  replace </xsl:text>
<xsl:value-of select="substring-after(../@rdf:about,'#')"/>
<xsl:text>
</xsl:text>
</xsl:template>

</xsl:stylesheet>

using xsltproc:

xsltproc obsolete.xsl go_201007-termdb.owl

result:

GO_0000750 replace GO_0000174
GO_0005337 replace GO_0000259
GO_0005622 replace GO_0000259
GO_0046961 replace GO_0000260
GO_0046962 replace GO_0000261
GO_0000753 replace GO_0000284
GO_0000384 replace GO_0000362
GO_0000384 replace GO_0000363
(...)
ADD COMMENTlink modified 10 months ago by RamRS23k • written 9.0 years ago by Pierre Lindenbaum121k
1

Impressive answer in such a short time. I though I you had a new job?? Your clear 4,216 BioStar overlord state is well deserved...

ADD REPLYlink written 9.0 years ago by Egon Willighagen5.2k
1

Egon, this is a just a race between Neil and me :-) ( must win, must win, must win...)

ADD REPLYlink written 9.0 years ago by Pierre Lindenbaum121k

Again thanks for the suggestion, but I don't think this answers the question, my fault for not writing more clearly.

I know the standard way to replace obsolete terms is via the "replaced_by" attribute.

I am working with the human phenotype ontology (HPO) not the gene ontology (GO). HPO does not provide any "replaced_by" information.

I am looking for a method to identify replacement terms for obsoleted terms when no "replaced_by" information was provided by the ontology curators.

ADD REPLYlink written 9.0 years ago by Andrew Craig90
Please log in to add an answer.

Help
Access

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 2.3.0
Traffic: 1114 users visited in the last hour