Skip to content

[codex] refactor: rename ligand receptor workflow to cci#2

Merged
hutaobo merged 2 commits intomainfrom
codex/rename-lr-to-cci
Apr 29, 2026
Merged

[codex] refactor: rename ligand receptor workflow to cci#2
hutaobo merged 2 commits intomainfrom
codex/rename-lr-to-cci

Conversation

@hutaobo
Copy link
Copy Markdown
Owner

@hutaobo hutaobo commented Apr 29, 2026

Summary

This PR performs the intentional breaking rename from the ligand-receptor workflow to the CCI/TopoLink-CCI workflow across source, tests, docs, tutorials, benchmark scaffolding, and tracked topology artifacts.

What changed

  • Replaces the public API with pyXenium.cci.cci_topology_analysis and removes the old public pyXenium.ligand_receptor package.
  • Renames user-facing score/output language from LR_score to CCI_score, and renames the input argument from lr_pairs to interaction_pairs while preserving biological ligand/receptor table columns for CCI LR-resource mode.
  • Renames the Atera benchmark workflow from atera-lr / lr_2026_atera to atera-cci / cci_2026_atera, including env names, runner utilities, CLI docs, and scaffold files.
  • Updates RTD/API/tutorial navigation to publish pyXenium.cci, cci.html, and cci_benchmarking.html instead of the old ligand-receptor pages.
  • Updates tracked manuscript/topology artifacts and GMI/contour references to use CCI terminology where they expose pyXenium-generated interaction summaries.

Breaking change

Old public imports and CLI names are intentionally not retained:

  • pyXenium.ligand_receptor is removed.
  • ligand_receptor_topology_analysis is removed from the public API.
  • pyxenium benchmark atera-lr ... is replaced by pyxenium benchmark atera-cci ....

Third-party API names such as Squidpy ligrec, COMMOT ligand-receptor database calls, and R package argument names are kept where required by external packages.

Validation

  • python -m compileall src\pyXenium benchmarking\cci_2026_atera\scripts benchmarking\cci_2026_atera\runners\python
  • python -m pytest tests/test_topology_analysis.py tests/test_cci_benchmarking.py tests/test_cci_benchmark_cli.py tests/test_pdc_benchmark_scripts.py tests/test_validation_module.py -q
  • python -m pytest tests/test_cli.py tests/test_contour_boundary_ecology.py tests/test_gmi_pdc_plan.py -q
  • Import check: from pyXenium.cci import cci_topology_analysis passes.
  • Old import check: from pyXenium.ligand_receptor import ligand_receptor_topology_analysis raises ModuleNotFoundError.
  • Clean staged-tree Sphinx build: python -m sphinx -b html docs docs\_build\html.
  • Grep gate confirms no old public API strings remain in the committed tree: pyXenium.ligand_receptor, ligand_receptor_topology_analysis, atera-lr, lr_2026_atera, LR_score, lr_pairs, pyx-lr, r-lr.

Notes

The local working tree still contains unrelated unstaged WIP and generated benchmark outputs. They were intentionally excluded from this PR.

Copy link
Copy Markdown
Contributor

@sourcery-ai sourcery-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry @hutaobo, your pull request is larger than the review limit of 150000 diff characters

@hutaobo hutaobo marked this pull request as ready for review April 29, 2026 15:40
Copilot AI review requested due to automatic review settings April 29, 2026 15:40
Copy link
Copy Markdown
Contributor

@sourcery-ai sourcery-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, we are unable to review this pull request

The GitHub API does not allow us to fetch diffs exceeding 300 files, and this pull request has 408

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot wasn't able to review this pull request because it exceeds the maximum number of files (300). Try reducing the number of changed files and requesting a review from Copilot again.

@hutaobo hutaobo merged commit b08a5bc into main Apr 29, 2026
4 checks passed
@hutaobo hutaobo deleted the codex/rename-lr-to-cci branch April 29, 2026 15:45
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4cf4868cbe

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

"DEFAULT_ATERA_WTA_CERVICAL_CONTOUR_KEY": (".atera_wta_cervical_end_to_end", "DEFAULT_ATERA_WTA_CERVICAL_CONTOUR_KEY"),
"DEFAULT_ATERA_WTA_CERVICAL_DATASET_PATH": (".atera_wta_cervical_end_to_end", "DEFAULT_ATERA_WTA_CERVICAL_DATASET_PATH"),
"DEFAULT_ATERA_WTA_CERVICAL_EXPANDED_CONTOUR_KEY": (".atera_wta_cervical_end_to_end", "DEFAULT_ATERA_WTA_CERVICAL_EXPANDED_CONTOUR_KEY"),
"DEFAULT_ATERA_WTA_CERVICAL_LR_PANEL": (".atera_wta_cervical_end_to_end", "DEFAULT_ATERA_WTA_CERVICAL_LR_PANEL"),
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Export the renamed cervical CCI panel constant

pyXenium.validation now advertises DEFAULT_ATERA_WTA_CERVICAL_LR_PANEL, but atera_wta_cervical_end_to_end.py only defines DEFAULT_ATERA_WTA_CERVICAL_CCI_PANEL. Because __getattr__ resolves this mapping dynamically, any code that imports or accesses DEFAULT_ATERA_WTA_CERVICAL_LR_PANEL (including from pyXenium.validation import * via __all__) will raise AttributeError at runtime instead of returning the panel constant.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants