theislab / theislab/moscot

Issue with Proportional Splitting in Sankey Diagram for RunX1ko Genotype Using MOSCOT

Open
#835 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
216
Forks
16
Avg merge
16h 2m
Merged PRs (30d)
3

Description

I'm encountering an issue with the MOSCOT library when generating Sankey diagrams to visualize cell lineage transitions for a single-cell RNA-seq dataset. The dataset contains three genotypes (WT, RunX1ko, RunX1/2Ko) with three time points (3, 7, and 28 days). I'm using moscot.problems.time.TemporalProblem to compute transport maps and a custom function to visualize the results as Sankey diagrams for each genotype (combined, WT, RunX1ko).

The Sankey diagrams for the combined dataset and WT genotype are satisfactory, showing specific lineage transitions between clusters across time points. However, for the RunX1ko genotype, the Sankey diagram exhibits proportional splitting: cells from each cluster at an earlier time point (e.g., 7 days) are distributed to all clusters at the next time point (e.g., 28 days) in a ratio proportional to the cell number ratio among clusters in the target time point. This results in a diffuse transport map that doesn’t reflect biologically meaningful lineage transitions.

Dataset Details
  • Data: Single-cell RNA-seq AnnData object with genotypes (WT, RunX1ko, RunX1/2Ko).
  • Time Points: 3, 7, and 28 days.
  • Cell Count Imbalance: For RunX1ko, the 7-day time point has more cells than the 28-day time point (e.g., 1000 vs. 300 cells), unlike WT, which shows increasing cell counts over time.

Any guidance on optimizing MOSCOT for datasets with cell count imbalances or genotype-specific dynamics would be greatly appreciated.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the RunX1ko case with moscot.problems.time.TemporalProblem and compare its transport maps with the combined and WT cases. Investigate how the 7-day versus 28-day cell-count imbalance affects the Sankey output, then document or validate a MOSCOT configuration that avoids the reported proportional splitting.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
bioinformatics
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.