{
  "id": 418006,
  "title": "EDA insights",
  "url": "/competitions/cafa-5-protein-function-prediction/discussion/418006",
  "author_name": "Darek Kłeczek",
  "post_date": "2023-06-18T09:54:16.933000",
  "votes": 28,
  "comment_count": 0,
  "views": 0,
  "content": "<p>I spent some time doing <a href=\"https://www.kaggle.com/code/thedrcat/cafa-5-protein-function-prediction-eda\" target=\"_blank\">exploratory analysis on the competition data</a>, here are the top conclusions. Would love to see if you have similar or different findings and any ideas how to address them. </p>\n<ul>\n<li><strong>How to choose labels for prediction</strong></li>\n</ul>\n<p>There's a lot of potential labels (43248 nodes in the ontology graph), but we can only predict max 1500 labels per protein id. The default approach is to choose 1500 most frequent notes and use them, but we could also get more sophisticated. </p>\n<ul>\n<li><strong>How to handle the ontology graph</strong></li>\n</ul>\n<p>Our predictions are automatically propagated through the ontology DAG, so that might be a way of going past 1500 labels limit. We can also use the graph structure when making predictions. </p>\n<ul>\n<li><strong>Which features we use for predictions</strong></li>\n</ul>\n<p>The default approach is using the protein language models encodings or sequence similarity, but there's a wealth of features in UniProtKB that could be used as well, the taxonomy data etc.</p>\n<ul>\n<li><strong>Sequence length is important</strong></li>\n</ul>\n<p>We can see both very short (3 residues) and very long (35375 residues sequences) and they may not be well represented by the LLMs. How to handle them? </p>\n<ul>\n<li><strong>Handling of the long tail</strong></li>\n</ul>\n<p>When we look at label distributions, there are some very frequent labels and then a steep fall with a long tail of rare labels. These rare labels may also be very valuable given the competition metric (information accretion). </p>\n<ul>\n<li><strong>Distribution shift</strong></li>\n</ul>\n<p>New labels may be different from historical annotations. We can also see some differences betweent train &amp; test, e.g. it looks like there are some species that have much more representation in test superset than train.</p>\n<p>Hope this is helpful. Here's the <a href=\"https://www.kaggle.com/code/thedrcat/cafa-5-protein-function-prediction-eda\" target=\"_blank\">EDA notebook</a>. </p>",
  "messages": [
    {
      "id": 2307598,
      "postDate": "2023-06-18T09:54:16.933Z",
      "content": "<p>I spent some time doing <a href=\"https://www.kaggle.com/code/thedrcat/cafa-5-protein-function-prediction-eda\" target=\"_blank\">exploratory analysis on the competition data</a>, here are the top conclusions. Would love to see if you have similar or different findings and any ideas how to address them. </p>\n<ul>\n<li><strong>How to choose labels for prediction</strong></li>\n</ul>\n<p>There's a lot of potential labels (43248 nodes in the ontology graph), but we can only predict max 1500 labels per protein id. The default approach is to choose 1500 most frequent notes and use them, but we could also get more sophisticated. </p>\n<ul>\n<li><strong>How to handle the ontology graph</strong></li>\n</ul>\n<p>Our predictions are automatically propagated through the ontology DAG, so that might be a way of going past 1500 labels limit. We can also use the graph structure when making predictions. </p>\n<ul>\n<li><strong>Which features we use for predictions</strong></li>\n</ul>\n<p>The default approach is using the protein language models encodings or sequence similarity, but there's a wealth of features in UniProtKB that could be used as well, the taxonomy data etc.</p>\n<ul>\n<li><strong>Sequence length is important</strong></li>\n</ul>\n<p>We can see both very short (3 residues) and very long (35375 residues sequences) and they may not be well represented by the LLMs. How to handle them? </p>\n<ul>\n<li><strong>Handling of the long tail</strong></li>\n</ul>\n<p>When we look at label distributions, there are some very frequent labels and then a steep fall with a long tail of rare labels. These rare labels may also be very valuable given the competition metric (information accretion). </p>\n<ul>\n<li><strong>Distribution shift</strong></li>\n</ul>\n<p>New labels may be different from historical annotations. We can also see some differences betweent train &amp; test, e.g. it looks like there are some species that have much more representation in test superset than train.</p>\n<p>Hope this is helpful. Here's the <a href=\"https://www.kaggle.com/code/thedrcat/cafa-5-protein-function-prediction-eda\" target=\"_blank\">EDA notebook</a>. </p>",
      "rawMarkdown": "I spent some time doing [exploratory analysis on the competition data](https://www.kaggle.com/code/thedrcat/cafa-5-protein-function-prediction-eda), here are the top conclusions. Would love to see if you have similar or different findings and any ideas how to address them. \n\n- **How to choose labels for prediction**\n\nThere's a lot of potential labels (43248 nodes in the ontology graph), but we can only predict max 1500 labels per protein id. The default approach is to choose 1500 most frequent notes and use them, but we could also get more sophisticated. \n\n- **How to handle the ontology graph**\n\nOur predictions are automatically propagated through the ontology DAG, so that might be a way of going past 1500 labels limit. We can also use the graph structure when making predictions. \n\n- **Which features we use for predictions**\n\nThe default approach is using the protein language models encodings or sequence similarity, but there's a wealth of features in UniProtKB that could be used as well, the taxonomy data etc.\n\n- **Sequence length is important**\n\nWe can see both very short (3 residues) and very long (35375 residues sequences) and they may not be well represented by the LLMs. How to handle them? \n\n- **Handling of the long tail**\n\nWhen we look at label distributions, there are some very frequent labels and then a steep fall with a long tail of rare labels. These rare labels may also be very valuable given the competition metric (information accretion). \n\n- **Distribution shift**\n\nNew labels may be different from historical annotations. We can also see some differences betweent train & test, e.g. it looks like there are some species that have much more representation in test superset than train.\n\nHope this is helpful. Here's the [EDA notebook](https://www.kaggle.com/code/thedrcat/cafa-5-protein-function-prediction-eda). ",
      "votes": 28
    }
  ],
  "comments": [],
  "raw_markdown_by_id": {
    "2307598": "I spent some time doing [exploratory analysis on the competition data](https://www.kaggle.com/code/thedrcat/cafa-5-protein-function-prediction-eda), here are the top conclusions. Would love to see if you have similar or different findings and any ideas how to address them. \n\n- **How to choose labels for prediction**\n\nThere's a lot of potential labels (43248 nodes in the ontology graph), but we can only predict max 1500 labels per protein id. The default approach is to choose 1500 most frequent notes and use them, but we could also get more sophisticated. \n\n- **How to handle the ontology graph**\n\nOur predictions are automatically propagated through the ontology DAG, so that might be a way of going past 1500 labels limit. We can also use the graph structure when making predictions. \n\n- **Which features we use for predictions**\n\nThe default approach is using the protein language models encodings or sequence similarity, but there's a wealth of features in UniProtKB that could be used as well, the taxonomy data etc.\n\n- **Sequence length is important**\n\nWe can see both very short (3 residues) and very long (35375 residues sequences) and they may not be well represented by the LLMs. How to handle them? \n\n- **Handling of the long tail**\n\nWhen we look at label distributions, there are some very frequent labels and then a steep fall with a long tail of rare labels. These rare labels may also be very valuable given the competition metric (information accretion). \n\n- **Distribution shift**\n\nNew labels may be different from historical annotations. We can also see some differences betweent train & test, e.g. it looks like there are some species that have much more representation in test superset than train.\n\nHope this is helpful. Here's the [EDA notebook](https://www.kaggle.com/code/thedrcat/cafa-5-protein-function-prediction-eda). "
  }
}