WayScience / coSMicQC

Single cell Morphology Quality Control (coSMicQC)
BSD 3-Clause "New" or "Revised" License
2 stars 2 forks source link

New Feature: Adding Phenotypic Response Quality Control #47

Open axiomcura opened 1 week ago

axiomcura commented 1 week ago

Is this a duplicate of an existing idea for this project?

What is your idea?

The idea stems from this paper.

In this paper, we demonstrated that mAP (mean Average Precision) at the single-cell level can be used to analyze how cellular profiles change when exposed to a specific compound. The metric tracks two key aspects: how consistently different the response is from the control, and how consistent the response is within the population.

Here's the idea I have:

  1. Using AP Scores to Identify Outliers:

    • First, we will use the AP scores to identify outliers within the dataset. By identifying and removing cells that respond entirely differently from the majority of the population, we can focus on the predominant cellular responses.
  2. Implementing an Anomaly Detection Algorithm:

    • To detect these outliers, we need a robust anomaly detection algorithm. I've been exploring the Isolation Forest algorithm as documented in scikit-learn. This approach is particularly effective for detecting outliers because it is similar to a random forest but specifically identifies trees that are considered "outliers."
  3. Dealing with Outliers:

    • Once we have identified the outliers, several steps can be taken. The primary goal is to filter out cells that responded differently from the rest of the population. Additionally, these outliers can be used to generate new hypotheses or potential findings. Questions such as "Why are these cells responding this way?" or "What mechanisms are causing this response?" can lead to further investigation into the underlying biology of these responses.

I was thinking of developing this feature in a separate repository, allowing coSMicQC to use it as a plugin. What do you all think? @d33bs @jenna-tomkinson Let's start a convo here c:

Would you like to work on a solution for this?