Skip to content

✨ lumen-anndata

CI conda-forge pypi-version python-version

https://github.com/user-attachments/assets/836f0699-6379-4314-a861-7e3729d66f48

Overview

lumen-anndata is an extension to enable Lumen to interact with anndata objects, a common format for single-cell genomics data. It aims to allow researchers to use natural language to explore, analyze, and visualize complex single-cell datasets through a chat interface.

Features

lumen-anndata supports the following capabilities:

  • Natural language querying of anndata objects
  • Integration with select scanpy functions for running analysis and static plotting
  • Interactive visualization of single-cell data (UMAP, DotMap, HeatMap, Dendrogram, etc.) with HoloViz

Installation

Install it via pip:

pip install lumen-anndata

Usage

To launch the Lumen app, run:

lumen-anndata

---

Development

git clone https://github.com/holoviz-topics/lumen-anndata
cd lumen-anndata

For a simple setup use uv:

uv venv
source .venv/bin/activate # on linux. Similar commands for windows and osx
uv pip install -e .[dev]
uv pip install "git+https://github.com/holoviz/lumen@main#egg=lumen[ai-llama]"
pre-commit run
pytest tests

For the full Github Actions setup use pixi:

pixi run pre-commit-install
pixi run postinstall
pixi run test

This repository is adapted from copier-template-panel-extension

To update to the latest template version run:

pixi exec --spec copier --spec ruamel.yaml -- copier update --defaults --trust

Note: copier will show Conflict for files with manual changes during an update. This is normal. As long as there are no merge conflict markers, all patches applied cleanly.

To update the embeddings to use a new version of scanpy, increment the version in scripts/embed_docs.py and run:

python scripts/embed_docs.py

Ensure you have an OpenAI API key set in your environment variables. You can set it in your terminal session with:

export OPENAI_API_KEY="sk-..."

❤️ Contributing

Contributions are welcome! Please follow these steps to contribute:

  1. Fork the repository.
  2. Create a new branch: git checkout -b feature/YourFeature.
  3. Make your changes and commit them: git commit -m 'Add some feature'.
  4. Push to the branch: git push origin feature/YourFeature.
  5. Open a pull request.

Please ensure your code adheres to the project's coding standards and passes all tests.