{
  "id": 403166,
  "title": "Should we predict parents?",
  "url": "/competitions/cafa-5-protein-function-prediction/discussion/403166",
  "author_name": "",
  "post_date": "2023-04-21T15:10:11.159503200Z",
  "votes": 8,
  "comment_count": 4,
  "views": 0,
  "content": "<ol>\n<li>When making predictions, do we need to include all the parent GO terms of a term we specify or will they be automatically inferred for us from the child terms that we include?</li>\n<li>In the training/test data, if a protein is marked as having GO term X, is it guaranteed that all the parent, grandparent, etc. terms of X are also included for that protein?  (If not, are we being asked to additionally predict which of the parent terms the annotator will have decided to include?)</li>\n</ol>",
  "messages": [
    {
      "id": "2229664",
      "postDate": "04/21/2023 15:10:11",
      "content": "<ol>\n<li>When making predictions, do we need to include all the parent GO terms of a term we specify or will they be automatically inferred for us from the child terms that we include?</li>\n<li>In the training/test data, if a protein is marked as having GO term X, is it guaranteed that all the parent, grandparent, etc. terms of X are also included for that protein?  (If not, are we being asked to additionally predict which of the parent terms the annotator will have decided to include?)</li>\n</ol>",
      "rawMarkdown": "1. When making predictions, do we need to include all the parent GO terms of a term we specify or will they be automatically inferred for us from the child terms that we include?\n1. In the training/test data, if a protein is marked as having GO term X, is it guaranteed that all the parent, grandparent, etc. terms of X are also included for that protein?  (If not, are we being asked to additionally predict which of the parent terms the annotator will have decided to include?)",
      "votes": null
    },
    {
      "id": "2229938",
      "postDate": "04/21/2023 20:40:36",
      "content": "<blockquote>\n  <ol>\n  <li>When making predictions, do we need to include all the parent GO terms of a term we specify or will they be automatically inferred for us from the child terms that we include?</li>\n  </ol>\n</blockquote>\n<p>They will be automatically inferred (or \"propagated\"). </p>\n<blockquote>\n  <ol>\n  <li>In the training/test data, if a protein is marked as having GO term X, is it guaranteed that all the parent, grandparent, etc. terms of X are also included for that protein? (If not, are we being asked to additionally predict which of the parent terms the annotator will have decided to include?)</li>\n  </ol>\n</blockquote>\n<p>A term is guaranteed to have all the parents. This is known as the <a href=\"https://pubmed.ncbi.nlm.nih.gov/20479498/\" target=\"_blank\">True Path Rule. </a></p>",
      "rawMarkdown": "> 1. When making predictions, do we need to include all the parent GO terms of a term we specify or will they be automatically inferred for us from the child terms that we include?\n\nThey will be automatically inferred (or \"propagated\"). \n\n>2. In the training/test data, if a protein is marked as having GO term X, is it guaranteed that all the parent, grandparent, etc. terms of X are also included for that protein? (If not, are we being asked to additionally predict which of the parent terms the annotator will have decided to include?)\n\nA term is guaranteed to have all the parents. This is known as the [True Path Rule. ](https://pubmed.ncbi.nlm.nih.gov/20479498/)",
      "votes": null
    },
    {
      "id": "2231389",
      "postDate": "04/23/2023 09:02:33",
      "content": "<p>What about the prediction confidence scores? <br>\ne.g. if I predict for a child term with confidence 0.1, and for a parent or ancestor term with confidence 0.6 ?</p>",
      "rawMarkdown": "What about the prediction confidence scores? \ne.g. if I predict for a child term with confidence 0.1, and for a parent or ancestor term with confidence 0.6 ?",
      "votes": null
    },
    {
      "id": "2236311",
      "postDate": "04/26/2023 18:11:36",
      "content": "<p>Good question.  And what if I predict child A with score 0.1 and child B with score 0.2 and don't specify the parent at all.  Then what score does it get?</p>",
      "rawMarkdown": "Good question.  And what if I predict child A with score 0.1 and child B with score 0.2 and don't specify the parent at all.  Then what score does it get?",
      "votes": null
    },
    {
      "id": "2236362",
      "postDate": "04/26/2023 19:35:22",
      "content": "<p>According to the rules, it should be 0.2, i.e., the max of child A and B.</p>\n<p>See: <a href=\"https://www.kaggle.com/competitions/cafa-5-protein-function-prediction/overview/evaluation\" target=\"_blank\">https://www.kaggle.com/competitions/cafa-5-protein-function-prediction/overview/evaluation</a><br>\n\"In case the predictions in the submitted files are not propagated to the root of ontology, the predictions will be recursively propagated by assigning each parent term a score that is the maximum score among its children's scores.\"</p>\n<p>I don't think any predicted scores are changed at all. If you predict a child with score 0.1 and the parent with 0.6, then those scores are used. Only missing parents are propagated. Though, this could lead to \"strange\" results, if you predict a higher score for the child than the parent.</p>",
      "rawMarkdown": "According to the rules, it should be 0.2, i.e., the max of child A and B.\n\nSee: https://www.kaggle.com/competitions/cafa-5-protein-function-prediction/overview/evaluation\n\"In case the predictions in the submitted files are not propagated to the root of ontology, the predictions will be recursively propagated by assigning each parent term a score that is the maximum score among its children's scores.\"\n\nI don't think any predicted scores are changed at all. If you predict a child with score 0.1 and the parent with 0.6, then those scores are used. Only missing parents are propagated. Though, this could lead to \"strange\" results, if you predict a higher score for the child than the parent.",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 2229938,
      "author_name": "iddux1",
      "author_url": "",
      "post_date": "04/21/2023 20:40:36",
      "content": "<blockquote>\n  <ol>\n  <li>When making predictions, do we need to include all the parent GO terms of a term we specify or will they be automatically inferred for us from the child terms that we include?</li>\n  </ol>\n</blockquote>\n<p>They will be automatically inferred (or \"propagated\"). </p>\n<blockquote>\n  <ol>\n  <li>In the training/test data, if a protein is marked as having GO term X, is it guaranteed that all the parent, grandparent, etc. terms of X are also included for that protein? (If not, are we being asked to additionally predict which of the parent terms the annotator will have decided to include?)</li>\n  </ol>\n</blockquote>\n<p>A term is guaranteed to have all the parents. This is known as the <a href=\"https://pubmed.ncbi.nlm.nih.gov/20479498/\" target=\"_blank\">True Path Rule. </a></p>",
      "votes": null,
      "replies": [
        {
          "id": 2231389,
          "author_name": "danofer",
          "author_url": "",
          "post_date": "04/23/2023 09:02:33",
          "content": "<p>What about the prediction confidence scores? <br>\ne.g. if I predict for a child term with confidence 0.1, and for a parent or ancestor term with confidence 0.6 ?</p>",
          "votes": null,
          "replies": [
            {
              "id": 2236311,
              "author_name": "andrewrrose",
              "author_url": "",
              "post_date": "04/26/2023 18:11:36",
              "content": "<p>Good question.  And what if I predict child A with score 0.1 and child B with score 0.2 and don't specify the parent at all.  Then what score does it get?</p>",
              "votes": null,
              "replies": [
                {
                  "id": 2236362,
                  "author_name": "norixmb",
                  "author_url": "",
                  "post_date": "04/26/2023 19:35:22",
                  "content": "<p>According to the rules, it should be 0.2, i.e., the max of child A and B.</p>\n<p>See: <a href=\"https://www.kaggle.com/competitions/cafa-5-protein-function-prediction/overview/evaluation\" target=\"_blank\">https://www.kaggle.com/competitions/cafa-5-protein-function-prediction/overview/evaluation</a><br>\n\"In case the predictions in the submitted files are not propagated to the root of ontology, the predictions will be recursively propagated by assigning each parent term a score that is the maximum score among its children's scores.\"</p>\n<p>I don't think any predicted scores are changed at all. If you predict a child with score 0.1 and the parent with 0.6, then those scores are used. Only missing parents are propagated. Though, this could lead to \"strange\" results, if you predict a higher score for the child than the parent.</p>",
                  "votes": null,
                  "replies": []
                }
              ]
            }
          ]
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "2229664": "1. When making predictions, do we need to include all the parent GO terms of a term we specify or will they be automatically inferred for us from the child terms that we include?\n1. In the training/test data, if a protein is marked as having GO term X, is it guaranteed that all the parent, grandparent, etc. terms of X are also included for that protein?  (If not, are we being asked to additionally predict which of the parent terms the annotator will have decided to include?)",
    "2229938": "> 1. When making predictions, do we need to include all the parent GO terms of a term we specify or will they be automatically inferred for us from the child terms that we include?\n\nThey will be automatically inferred (or \"propagated\"). \n\n>2. In the training/test data, if a protein is marked as having GO term X, is it guaranteed that all the parent, grandparent, etc. terms of X are also included for that protein? (If not, are we being asked to additionally predict which of the parent terms the annotator will have decided to include?)\n\nA term is guaranteed to have all the parents. This is known as the [True Path Rule. ](https://pubmed.ncbi.nlm.nih.gov/20479498/)",
    "2231389": "What about the prediction confidence scores? \ne.g. if I predict for a child term with confidence 0.1, and for a parent or ancestor term with confidence 0.6 ?",
    "2236311": "Good question.  And what if I predict child A with score 0.1 and child B with score 0.2 and don't specify the parent at all.  Then what score does it get?",
    "2236362": "According to the rules, it should be 0.2, i.e., the max of child A and B.\n\nSee: https://www.kaggle.com/competitions/cafa-5-protein-function-prediction/overview/evaluation\n\"In case the predictions in the submitted files are not propagated to the root of ontology, the predictions will be recursively propagated by assigning each parent term a score that is the maximum score among its children's scores.\"\n\nI don't think any predicted scores are changed at all. If you predict a child with score 0.1 and the parent with 0.6, then those scores are used. Only missing parents are propagated. Though, this could lead to \"strange\" results, if you predict a higher score for the child than the parent."
  },
  "source": "meta"
}