Obsoleting an Existing Ontology Term: Difference between revisions

From GO Wiki
Jump to navigation Jump to search
(34 intermediate revisions by 2 users not shown)
Line 3: Line 3:


==Check and notification procedure prior to obsoletion==
==Check and notification procedure prior to obsoletion==
  Need to add something about other mappings (such as EC2GO), but I dont know where those live


# '''Annotation usage''': Check if the term (or any of its children) is being used for annotation:
# '''Annotation usage''': Check if the term (or any of its children) is being used for annotation:
Line 13: Line 11:
#* In Protégé, go to the <code>Class Usage</code> tab to see if that ID is used elsewhere. Search for the term name or the term IRI (ie with underscore between GO and the numerical part of the ID, for example: 'GO_0030722'
#* In Protégé, go to the <code>Class Usage</code> tab to see if that ID is used elsewhere. Search for the term name or the term IRI (ie with underscore between GO and the numerical part of the ID, for example: 'GO_0030722'
#*If the term is a parent to other terms or is used in logical definitions, replace those uses by another term as appropriate.  
#*If the term is a parent to other terms or is used in logical definitions, replace those uses by another term as appropriate.  
#* Be sure that the term has not been used with a <code>replaced_by</code> or <code>consider tag</code>. If it has, update these, if possible, or remove them.
#* Be sure that the term has not been used with a <code>replaced_by</code> or <code>consider tag</code>. If it has, update these, if possible, or remove them. '''Note that the <code>consider tag</code> does not appear in the Usage tab; you need to do a search with the GO ID and look in the results section for 'consider' entities using the ID'''. 
# '''Subset usage''': Check if the term is used in a subset: In Protégé, look for any values present in the <code>in_subset</code> tag. Report the information in the GitHub ticket. Also to check to see if there is a Reactome xref to the term. If there is, notify Reactome in the obsoletion email. There is no need to edit the xref because Reactome xrefs are imported automatically from a file supplied by Reactome.
# '''Subset usage''': Check if the term is used in a subset: In Protégé, look for any values present in the <code>in_subset</code> tag. Report the information in the GitHub ticket. Also to check to see if there is a Reactome xref to the term. If there is, notify Reactome in the obsoletion email. There is no need to edit the xref because Reactome xrefs are imported automatically from a file supplied by Reactome.
# '''Taxon Constraints:''' Check to see if the term has been used in a taxon constraint. If it has, the source file needs to be modified and the taxon constraint imports need to be regenerated. See: [[Adding_Taxon_Restrictions]]. Consider moving the taxon constraint to a parent term.  
# '''Taxon Constraints:''' Check to see if the term has been used in a taxon constraint. If it has, the source file needs to be modified and the taxon constraint imports need to be regenerated. See: [[Adding_Taxon_Restrictions]]. Consider moving the taxon constraint to a parent term.  
# '''External mappings:''' Check if there are automatic mappings to external resources (you need to use QuickGO for this, since it has a lot more electronic annotations, r look at individual files here: http://current.geneontology.org/ontology/external2go/index.html). Any IEAs to the following resources should be reported to the [https://github.com/geneontology/go-site/blob/master/metadata/group-contacts.csv contact person] from that source:
#* HAMAP
#* InterPro
#* Rfam
#* Unirule
#* UNIPROTKB_SL (subcellular locations)
#* UNIPROTKB_KW (keywords)
# '''Notification:''' Send an email notification to <code>go-friends@mailman.stanford.edu</code>.
# '''Notification:''' Send an email notification to <code>go-friends@mailman.stanford.edu</code>.
  Template:
#* Paste the email in the corresponding GitHub ticket.
#* Also create a ticket in the [https://github.com/geneontology/go-announcements go-announcements GitHub repo]. Copy and paste the email notification message, and link to the original go-ontology ticket. Close the go-announcements ticket when you close the go-ontology ticket.
  Obsoletion email template:
   SUBJECT: Proposal to obsolete [GO:ID] [GO term name]
   SUBJECT: Proposal to obsolete [GO:ID] [GO term name]
   BODY: Dear all, The proposal has been made to obsolete: [GO:ID] [GO term name]. The reason for obsoletion is [ [http://wiki.geneontology.org/index.php/Obsoleting_an_Existing_Ontology_Term#Possible_reasons_for_obsoletion SPECIFY] ].  
   BODY: Dear all, The proposal has been made to obsolete: [GO:ID] [GO term name]. The reason for obsoletion is [ [http://wiki.geneontology.org/index.php/Obsoleting_an_Existing_Ontology_Term#Possible_reasons_for_obsoletion SPECIFY] ].  
Line 26: Line 33:
  Any comments can be  added to the issue: [link to GitHub ticket].  
  Any comments can be  added to the issue: [link to GitHub ticket].  
  We are opening a comment period for this proposed obsoletion. We’d like to proceed and obsolete this term on [7 days after the message; unless it involves a lot of reannotation, in this case it can be longer] '''Unless objections are received by [DATE], we will assume that you agree to this change.'''
  We are opening a comment period for this proposed obsoletion. We’d like to proceed and obsolete this term on [7 days after the message; unless it involves a lot of reannotation, in this case it can be longer] '''Unless objections are received by [DATE], we will assume that you agree to this change.'''
# '''Paste the email in the corresponding GitHub ticket.'''
# '''Create a ticket in the [https://github.com/geneontology/go-announcements go-announcements GitHub repo]'''. Copy and paste the email notification message, and link to the original go-ontology ticket. Close the go-announcements ticket when you close the go-ontology ticket.


===Possible reasons for obsoletion===
===Possible reasons for obsoletion===
Line 44: Line 48:
* ''The reason for obsoletion is that this term the meaning of the term is ambiguous.''
* ''The reason for obsoletion is that this term the meaning of the term is ambiguous.''


==Protégé Obsoletion Process==
==Protégé 5.5 Obsoletion Process==


# Navigate to the term to be obsoleted.
# Navigate to the term to be obsoleted.
#* '''If you do not have the obsoletion plugin installed:'''
# Go to the menu <code>Edit</code> > <code>Deprecate entity</code>
##'''Make the status of the term obsolete:'''
# Protege will prompt you to choose a deprecation profile. Select the <code>Gene Ontology (GO)</code> option.  
### In the ‘Annotations’ window, click on the + sign next to ‘Annotations’.
# Protege will prompt you to enter an obsoletion comment.  
### In the resulting pop-up window, select <code>owl:deprecated</code> from the left-hand menu.
# Protege will prompt you to add a <code>replace_by</code> term. This is optional.  
### Make sure the <code>Literal</code> tab view is selected from the right-hand tab list. Type true in the text box.
# If you skip the previous step, Protege will prompt you to add one or more <code>consider</code> terms.  
### In the <code>Type</code> drop-down menu underneath the text box, select <code>xsd:boolean</code>
# Protege will perform all operations required for the obsoletion.
### Click <code>OK</code>. You should now see the term crossed out in the Class hierarchy view.
# Save  
### '''Remove equivalence axiom''': In the <code>Description</code> window, under <code>Equivalent To</code>, click the <code>x</code> on the right-hand side to delete the logical definition.
# The stanza looks like this:  
### '''Remove ‘SubClass Of’ relations''': In the <code>Description</code> window, under the <code>SubClass Of</code> entry, click the <code>x</code> on the right-hand side to delete the SubClass Relation.
### '''Term label''': Add 'obsolete’ at the beginning of the term label: In the <code>Annotations</code> window, click on the <code>o</code> on the right-hand side of the <code>rdfs:label</code> entry to edit the term string. In the resulting window, in the <code>Literal</code> tab, in front of the term name, type: obsolete For example: 'obsolete gamma-glutamyltransferase activity'. Note the case-sensitivity. Make sure to have a space (and no other character) between ‘obsolete’ and the term label.
## '''If you have the obsoletion plugin installed:'''
### Under the <code>Edit<code> menu, choose <code>Make entity obsolete</code>.
###* You should now see the term crossed out in the <code>Class hierarchy view</code> (ie, the <code>owl:deprecated=true</code> is automatically added).
###* Also, all of the declarations in the <code>Description</code> window should be removed.
###* The term label should have 'obsolete' in front.
# '''Definition''': Add ‘OBSOLETE’ to the term definition: In the ‘Description’ window, click on the o on the right-hand side of the definition entry. In the resulting window, in the Literal tab, at the beginning of the definition, type: OBSOLETE. For example: 'OBSOLETE. Catalysis of the reaction: (5-L-glutamyl)-peptide + an amino acid = peptide + 5-L-glutamyl-amino acid.' Note the case-sensitivity.
# '''Remove ‘Slims’ ''': In the ‘OBO annotation’ window, under the ‘Subset’ entry, remove any slims that include the term. If there is a replaced_by tag on the obsolete term, add the target term to those slims. http://wiki.geneontology.org/index.php/Adding_a_Term_to_a_GO_Subset_(Slim)
# '''Obsoletion comment''' Add a statement about why the term was made obsolete: In the <code>Annotations</code> window, select + to add an annotation. In the resulting menu, select rdfs:comment and select Type: Xsd:string. Standard comments should be adapted from the notification email (http://wiki.geneontology.org/index.php/Obsoleting_an_Existing_Ontology_Term#Possible_reasons_for_obsoletion), starting with "This term was made obsolete because", and the reason.  
# '''Alternatives for Obsolete Terms''':
#* '''Replace by''': If the obsoleted term is replaced by another term in the ontology: In the <code>Annotations</code> window, select <code>+</code> to add an annotation. In the resulting menu, select <code>term replaced by</code> and '''enter the term ID''' of the replacement term.
#** '''Note''': Only one <code>replaced by</code> term can be used per obsoleted term.
#* '''Consider''': If there is no single term  term replacing the obsolete term, but there are terms that might be appropriate for annotation, add those term IDs in the <code>consider</code> tag: In the <code>Annotations</code> window, select <code>+</code> to add an annotation. In the resulting menu, select <code>consider</code> and '''enter the term ID''' of the replacement term.
#** '''Note''': Add as many ‘consider‘ terms as needed.
# Save changes.
# The stanza looks like this:  
  [Term]  
  [Term]  
  id: GO:0016910  
  id: GO:0016910  
  name: SAP kinase 3 activity  
  name: obsolete SAP kinase 3 activity  
  namespace: molecular_function  
  namespace: molecular_function  
  def: "OBSOLETE (was not defined before being made obsolete)." [GOC:mah]  
  def: "OBSOLETE.(was not defined before being made obsolete)." [GOC:mah]  
  comment: This term was made obsolete because it describes a gene product.  
  comment: This term was made obsolete because it describes a gene product.  
  synonym: "SAPK3" EXACT []  
  synonym: "SAPK3" EXACT []  
Line 82: Line 69:
  consider: GO:0004674  
  consider: GO:0004674  
  consider: GO:0007254
  consider: GO:0007254
===Bug - Protégé 5.5 Obsoletion Default installation===
* '''BUG''' As of July 10, the 'OBSOLETE' inserted in front of the '''term definition''' is missing the period. It needs to be added manually. (This has been reported to the Protege team [https://github.com/protegeproject/protege/issues/909]; '''temporary fix instructions are here:''' [[Protege5_5_setup_for_GO_Eds#Fix_Deprecate_Entity_functionality]]).
==(Deprecated) Manual Protégé Obsoletion Process==
  NOTE THAT YOU SHOULD NOT NEED TO USE THIS METHOD
# Navigate to the term to be obsoleted.
#'''Make the status of the term obsolete:'''
## In the ‘Annotations’ window, click on the + sign next to ‘Annotations’.
## In the resulting pop-up window, select <code>owl:deprecated</code> from the left-hand menu.
## Make sure the <code>Literal</code> tab view is selected from the right-hand tab list. Type "true" in the text box.
## In the <code>Type</code> drop-down menu underneath the text box, select <code>xsd:boolean</code>
## Click <code>OK</code>. You should now see the term crossed out in the <code>Class hierarchy</code> view.
# '''Remove equivalence axiom''': In the <code>Description</code> window, under <code>Equivalent To</code>, click the <code>x</code> on the right-hand side to delete the logical definition.
# '''Remove ‘SubClass Of’ relations''': In the <code>Description</code> window, under the <code>SubClass Of</code> entry, click the <code>x</code> on the right-hand side to delete the SubClass Relation.
# '''Edit Term label''': Add 'obsolete’ at the beginning of the term label: In the <code>Annotations</code> window, click on the <code>o</code> on the right-hand side of the <code>rdfs:label</code> entry to edit the term string. In the resulting window, in the <code>Literal</code> tab, in front of the term name, type: obsolete For example: 'obsolete gamma-glutamyltransferase activity'. Note the case-sensitivity. Make sure to have a space (and no other character) between ‘obsolete’ and the term label.
# '''Definition''': Add ‘OBSOLETE.’ to the term definition: In the <code>Description</code> window, click on the <code>o</code> on the right-hand side of the definition entry. In the resulting window, in the  <code>Literal</code> tab, at the beginning of the definition, type: 'OBSOLETE.'. For example: 'OBSOLETE. Catalysis of the reaction: (5-L-glutamyl)-peptide + an amino acid = peptide + 5-L-glutamyl-amino acid.' Note the case-sensitivity.
# '''Remove ‘Slims''': In the <code>OBO annotation</code> window, under the <code>Subset</code> entry, remove any slims that include the term. If there is a <code>replaced_by</code> tag on the obsolete term, add the target term to those slims. See also [[Adding_a_Term_to_a_GO_Subset_(Slim)]].
# '''Obsoletion comment:''' Add a statement about why the term was made obsolete: In the <code>Annotations</code> window, select <code>+</code> to add an annotation. In the resulting menu, select <code>rdfs:comment</code> and select <code>Type: Xsd:string</code>. Standard comments should be adapted from the notification email ([[Obsoleting_an_Existing_Ontology_Term#Possible_reasons_for_obsoletion]]), starting with 'This term was made obsolete because', and the reason.
# '''Alternatives for Obsolete Terms''':
#* '''Replace by''': If the obsoleted term is replaced by another term in the ontology: In the <code>Annotations</code> window, select <code>+</code> to add an annotation. In the resulting menu, select <code>term replaced by</code> and '''enter the term ID''' of the replacement term.
#** '''Note''': Only one <code>replaced by</code> term can be used per obsoleted term.
#* '''Consider''': If there is no single term  term replacing the obsolete term, but there are terms that might be appropriate for annotation, add those term IDs in the <code>consider</code> tag: In the <code>Annotations</code> window, select <code>+</code> to add an annotation. In the resulting menu, select <code>consider</code> and '''enter the term ID''' of the replacement term.
#** '''Note''': Add as many <code>consider</code> terms as needed.
# Save changes.




Line 87: Line 101:


== Review Status ==
== Review Status ==
Last reviewed: July 2, 2019
Last reviewed: July 10, 2019


[[Ontology_Development#Editing_the_Ontology |Back to: Editing the Ontology]]
[[Ontology_Development#Editing_the_Ontology |Back to: Editing the Ontology]]


[[Category:GO Editors]][[Category:Ontology]][[Category:Editor_Guide_2018]]
[[Category:GO Editors]][[Category:Ontology]][[Category:Editor_Guide_2018]]

Revision as of 06:30, 14 May 2020

  See Ontology_Editors_Daily_Workflow for creating branches and basic Protégé instructions.


Check and notification procedure prior to obsoletion

  1.  Annotation usage: Check if the term (or any of its children) is being used for annotation:
    • Go to AmiGO, search for the term, either by label or ID.
    • Use filters on the left to look at direct annotations, EXP annotations, ISS annotation, InterPro2GO annotations. Report the information in the GitHub ticket.
    • Note affected groups and number of annotations per groups, grouped by EXP and ISS (IEAs and ISOs should be ignored). Report the information in the GitHub ticket.
  2. Ontology usage: Check if the term is used elsewhere in the ontology.
    • In Protégé, go to the Class Usage tab to see if that ID is used elsewhere. Search for the term name or the term IRI (ie with underscore between GO and the numerical part of the ID, for example: 'GO_0030722'
    • If the term is a parent to other terms or is used in logical definitions, replace those uses by another term as appropriate.
    • Be sure that the term has not been used with a replaced_by or consider tag. If it has, update these, if possible, or remove them. Note that the consider tag does not appear in the Usage tab; you need to do a search with the GO ID and look in the results section for 'consider' entities using the ID.
  3. Subset usage: Check if the term is used in a subset: In Protégé, look for any values present in the in_subset tag. Report the information in the GitHub ticket. Also to check to see if there is a Reactome xref to the term. If there is, notify Reactome in the obsoletion email. There is no need to edit the xref because Reactome xrefs are imported automatically from a file supplied by Reactome.
  4. Taxon Constraints: Check to see if the term has been used in a taxon constraint. If it has, the source file needs to be modified and the taxon constraint imports need to be regenerated. See: Adding_Taxon_Restrictions. Consider moving the taxon constraint to a parent term.
  5.  External mappings: Check if there are automatic mappings to external resources (you need to use QuickGO for this, since it has a lot more electronic annotations, r look at individual files here: http://current.geneontology.org/ontology/external2go/index.html). Any IEAs to the following resources should be reported to the contact person from that source:
    • HAMAP
    • InterPro
    • Rfam
    • Unirule
    • UNIPROTKB_SL (subcellular locations)
    • UNIPROTKB_KW (keywords)
  6. Notification: Send an email notification to go-friends@mailman.stanford.edu.
    • Paste the email in the corresponding GitHub ticket.
    • Also create a ticket in the go-announcements GitHub repo. Copy and paste the email notification message, and link to the original go-ontology ticket. Close the go-announcements ticket when you close the go-ontology ticket.
Obsoletion email template:
 SUBJECT: Proposal to obsolete [GO:ID] [GO term name]
 BODY: Dear all, The proposal has been made to obsolete: [GO:ID] [GO term name]. The reason for obsoletion is [ SPECIFY ]. 
There are X experimental annotations to this term by (list of impacted groups and their respective numbers of EXP and ISS annotations). 
There are X InterPro2GO mappings to this term. 
This term is included in the XXX subset(s).
New or existing terms that are suggested for transferring annotations (optional).
Any comments can be  added to the issue: [link to GitHub ticket]. 
We are opening a comment period for this proposed obsoletion. We’d like to proceed and obsolete this term on [7 days after the message; unless it involves a lot of reannotation, in this case it can be longer] Unless objections are received by [DATE], we will assume that you agree to this change.

Possible reasons for obsoletion

  • The reason for obsoletion is that there is no evidence that this function/process/component exists. (eg: GO:0019562 L-phenylalanine catabolic process to phosphoenolpyruvate; GO:0097605 regulation of nuclear envelope permeability’; GO:0015993 molecular hydrogen transport).
  • The reason for obsoletion is that the term is not clearly defined and usage has been inconsistent (eg: GO:0030818 negative regulation of cAMP biosynthetic process).
  • The reason for obsoletion is that this term represents a GO-CAM model. (eg: GO:0072317 glucan endo-1,3-beta-D-glucosidase activity involved in ascospore release from ascus; GO:0100060 negative regulation of SREBP signaling pathway by DNA binding).
  • The reason for obsoletion is that this term represent an assay and not a real process. (eg: GO:0035826 rubidium ion transport).
  • The reason for obsoletion is that the data from the paper for which the term was requested can be accurately described using [appropriate GO term] (eg: GO:0015032 storage protein import into fat body).
  • it represents a gene product.
  • The reason for obsoletion is that this term refers to a class of proteins.
  • The reason for obsoletion is that this term was added in error; it does not refer to a normal subcellular structure.
  • The reason for obsoletion is that this term more specific terms were created.
  • The reason for obsoletion is that this term was an unnecessary grouping term.
  • The reason for obsoletion is that this term the meaning of the term is ambiguous.

Protégé 5.5 Obsoletion Process

  1. Navigate to the term to be obsoleted.
  2. Go to the menu Edit > Deprecate entity
  3. Protege will prompt you to choose a deprecation profile. Select the Gene Ontology (GO) option.
  4. Protege will prompt you to enter an obsoletion comment.
  5. Protege will prompt you to add a replace_by term. This is optional.
  6. If you skip the previous step, Protege will prompt you to add one or more consider terms.
  7. Protege will perform all operations required for the obsoletion.
  8. Save
  9. The stanza looks like this:
[Term] 
id: GO:0016910 
name: obsolete SAP kinase 3 activity 
namespace: molecular_function 
def: "OBSOLETE.(was not defined before being made obsolete)." [GOC:mah] 
comment: This term was made obsolete because it describes a gene product. 
synonym: "SAPK3" EXACT [] 
is_obsolete: true 
consider: GO:0004674 
consider: GO:0007254


Bug - Protégé 5.5 Obsoletion Default installation

(Deprecated) Manual Protégé Obsoletion Process

 NOTE THAT YOU SHOULD NOT NEED TO USE THIS METHOD
  1. Navigate to the term to be obsoleted.
  2. Make the status of the term obsolete:
    1. In the ‘Annotations’ window, click on the + sign next to ‘Annotations’.
    2. In the resulting pop-up window, select owl:deprecated from the left-hand menu.
    3. Make sure the Literal tab view is selected from the right-hand tab list. Type "true" in the text box.
    4. In the Type drop-down menu underneath the text box, select xsd:boolean
    5. Click OK. You should now see the term crossed out in the Class hierarchy view.
  3. Remove equivalence axiom: In the Description window, under Equivalent To, click the x on the right-hand side to delete the logical definition.
  4. Remove ‘SubClass Of’ relations: In the Description window, under the SubClass Of entry, click the x on the right-hand side to delete the SubClass Relation.
  5. Edit Term label: Add 'obsolete’ at the beginning of the term label: In the Annotations window, click on the o on the right-hand side of the rdfs:label entry to edit the term string. In the resulting window, in the Literal tab, in front of the term name, type: obsolete For example: 'obsolete gamma-glutamyltransferase activity'. Note the case-sensitivity. Make sure to have a space (and no other character) between ‘obsolete’ and the term label.
  6. Definition: Add ‘OBSOLETE.’ to the term definition: In the Description window, click on the o on the right-hand side of the definition entry. In the resulting window, in the Literal tab, at the beginning of the definition, type: 'OBSOLETE.'. For example: 'OBSOLETE. Catalysis of the reaction: (5-L-glutamyl)-peptide + an amino acid = peptide + 5-L-glutamyl-amino acid.' Note the case-sensitivity.
  7. Remove ‘Slims: In the OBO annotation window, under the Subset entry, remove any slims that include the term. If there is a replaced_by tag on the obsolete term, add the target term to those slims. See also Adding_a_Term_to_a_GO_Subset_(Slim).
  8. Obsoletion comment: Add a statement about why the term was made obsolete: In the Annotations window, select + to add an annotation. In the resulting menu, select rdfs:comment and select Type: Xsd:string. Standard comments should be adapted from the notification email (Obsoleting_an_Existing_Ontology_Term#Possible_reasons_for_obsoletion), starting with 'This term was made obsolete because', and the reason.
  9. Alternatives for Obsolete Terms:
    • Replace by: If the obsoleted term is replaced by another term in the ontology: In the Annotations window, select + to add an annotation. In the resulting menu, select term replaced by and enter the term ID of the replacement term.
      • Note: Only one replaced by term can be used per obsoleted term.
    • Consider: If there is no single term term replacing the obsolete term, but there are terms that might be appropriate for annotation, add those term IDs in the consider tag: In the Annotations window, select + to add an annotation. In the resulting menu, select consider and enter the term ID of the replacement term.
      • Note: Add as many consider terms as needed.
  10. Save changes.


 See Ontology_Editors_Daily_Workflow for commit, push and merge instructions.

Review Status

Last reviewed: July 10, 2019

Back to: Editing the Ontology