{
  "id": 433555,
  "title": "Protein embeddings clustering and prediction",
  "url": "/competitions/cafa-5-protein-function-prediction/discussion/433555",
  "author_name": "Giorgos F",
  "post_date": "2023-08-22T06:46:49.313000",
  "votes": 6,
  "comment_count": 0,
  "views": 0,
  "content": "<p>Well , that was it! The contest has finished and like <a href=\"https://www.kaggle.com/amerii\" target=\"_blank\">@amerii</a> , I was not able to post my solution last week due to competition rules. So , this is a small summary of the main idea : I used ProtT5 sequence embeddings and examined how they could be clustered using K-means and HDBSCAN revealing sequence homology in order to transfer annotation to all similar sequences of unseen data , since proteins of similar sequence are expected to show similar function. Results showed high in-cluster similarity  after testing randomly selected proteins in various clusters. A KNN classifier was then trained on cluster labels to predict new ones for test set. A large part of the set was classified as noise so an MLP model was trained to make predictions for unseen data that belong to noise. Having test data clustered we can now assign the most relevant GO terms that appear in the cluster based on various criteria. I examined enrichment analysis and using GO reznik similarities in clusters with no success so I ended up using frequency of appearance in cluster and in full dataset. I do not know if I will be allowed to make this kernel public (or if I am allowed to publish it somehow even outside the contest frame) but in any case it was for sure a very interesting journey.<br>\nGood luck to everyone that dedicated time to this competition!</p>",
  "messages": [
    {
      "id": 2402448,
      "postDate": "2023-08-22T06:46:49.313Z",
      "content": "<p>Well , that was it! The contest has finished and like <a href=\"https://www.kaggle.com/amerii\" target=\"_blank\">@amerii</a> , I was not able to post my solution last week due to competition rules. So , this is a small summary of the main idea : I used ProtT5 sequence embeddings and examined how they could be clustered using K-means and HDBSCAN revealing sequence homology in order to transfer annotation to all similar sequences of unseen data , since proteins of similar sequence are expected to show similar function. Results showed high in-cluster similarity  after testing randomly selected proteins in various clusters. A KNN classifier was then trained on cluster labels to predict new ones for test set. A large part of the set was classified as noise so an MLP model was trained to make predictions for unseen data that belong to noise. Having test data clustered we can now assign the most relevant GO terms that appear in the cluster based on various criteria. I examined enrichment analysis and using GO reznik similarities in clusters with no success so I ended up using frequency of appearance in cluster and in full dataset. I do not know if I will be allowed to make this kernel public (or if I am allowed to publish it somehow even outside the contest frame) but in any case it was for sure a very interesting journey.<br>\nGood luck to everyone that dedicated time to this competition!</p>",
      "rawMarkdown": "Well , that was it! The contest has finished and like @amerii , I was not able to post my solution last week due to competition rules. So , this is a small summary of the main idea : I used ProtT5 sequence embeddings and examined how they could be clustered using K-means and HDBSCAN revealing sequence homology in order to transfer annotation to all similar sequences of unseen data , since proteins of similar sequence are expected to show similar function. Results showed high in-cluster similarity  after testing randomly selected proteins in various clusters. A KNN classifier was then trained on cluster labels to predict new ones for test set. A large part of the set was classified as noise so an MLP model was trained to make predictions for unseen data that belong to noise. Having test data clustered we can now assign the most relevant GO terms that appear in the cluster based on various criteria. I examined enrichment analysis and using GO reznik similarities in clusters with no success so I ended up using frequency of appearance in cluster and in full dataset. I do not know if I will be allowed to make this kernel public (or if I am allowed to publish it somehow even outside the contest frame) but in any case it was for sure a very interesting journey.\nGood luck to everyone that dedicated time to this competition!",
      "votes": 6
    }
  ],
  "comments": [],
  "raw_markdown_by_id": {
    "2402448": "Well , that was it! The contest has finished and like @amerii , I was not able to post my solution last week due to competition rules. So , this is a small summary of the main idea : I used ProtT5 sequence embeddings and examined how they could be clustered using K-means and HDBSCAN revealing sequence homology in order to transfer annotation to all similar sequences of unseen data , since proteins of similar sequence are expected to show similar function. Results showed high in-cluster similarity  after testing randomly selected proteins in various clusters. A KNN classifier was then trained on cluster labels to predict new ones for test set. A large part of the set was classified as noise so an MLP model was trained to make predictions for unseen data that belong to noise. Having test data clustered we can now assign the most relevant GO terms that appear in the cluster based on various criteria. I examined enrichment analysis and using GO reznik similarities in clusters with no success so I ended up using frequency of appearance in cluster and in full dataset. I do not know if I will be allowed to make this kernel public (or if I am allowed to publish it somehow even outside the contest frame) but in any case it was for sure a very interesting journey.\nGood luck to everyone that dedicated time to this competition!"
  }
}