Skip to main content

scllm is a Python package for single-cell analysis using LLMs.

Project description

scllm

A Python package for annotating single-cell RNA sequencing data using Large Language Models.

PyPI version Documentation License: MIT

Overview: LangChain 🤝 scanpy

scllm leverages the power of Large Language Models to automatically annotate cell types in single-cell RNA sequencing data. It integrates seamlessly with scanpy and provides an intuitive interface for cell type annotation, factor analalysis and differential expression analysis based on marker gene expression.

Installation

You can install scllm using pip:

pip install scllm

Or using uv 🚀:

uv pip install scllm

Quick Start

import os

# Enter your API key for ChatGPT
os.environ["OPENAI_API_KEY"] = "Enter your API key here."

import scanpy as sc
import scllm

# Load your data
adata = sc.read_h5ad('your_data.h5ad')

# Perform clustering if not already done
sc.tl.leiden(adata)

# Initialize your LLM (example with OpenAI)
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(temperature=0.0, model="gpt-4o-mini")

# Annotate clusters
adata = scllm.annotate_cluster(adata, 'leiden', llm)

# Access annotations
print(adata.obs['leiden_annotated'])

Features

  • Automatic cell type annotation using LLMs
  • Seamless integration with scanpy
  • Support for multiple LLM providers
  • Interactive Jupyter notebook examples
  • Customizable annotation parameters

Documentation

For detailed documentation and examples, visit our documentation page.

Check out our example notebooks:

Requirements

  • Python ≥ 3.10
  • scanpy ≥ 1.11.0
  • langchain ≥ 0.3.7
  • And other dependencies listed in pyproject.toml

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Citation

If you use scllm in your research, please cite:

@software{vohringer2024scllm,
  author = {Vöhringer, Harald},
  title = {scllm: Single-Cell Annotation with Large Language Models},
  year = {2024},
  publisher = {GitHub},
  url = {https://github.com/sagar87/scllm}
}

Contact

Harald Vöhringer - harald.voeh@gmail.com

Project Link: https://github.com/sagar87/scllm

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

scllm-0.2.0.tar.gz (7.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

scllm-0.2.0-py3-none-any.whl (18.5 kB view details)

Uploaded Python 3

File details

Details for the file scllm-0.2.0.tar.gz.

File metadata

  • Download URL: scllm-0.2.0.tar.gz
  • Upload date:
  • Size: 7.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.6

File hashes

Hashes for scllm-0.2.0.tar.gz
Algorithm Hash digest
SHA256 3c87bf8c49388942710db704cbbe8842beea924399b5d51436f2aba44c9c1004
MD5 0e490c21e7529c15e8a81d9d43ac0b50
BLAKE2b-256 acb9eabd1d23335f13e0c64c46ffb35bfe50ac3f513cb440d923316151dec881

See more details on using hashes here.

File details

Details for the file scllm-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: scllm-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 18.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.6

File hashes

Hashes for scllm-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2edc366d8c44aebd8f8f9e6a950da875f4c3f46ad59b831897d90ad4fd886e32
MD5 009baa84cc9cfac49dcb102e1df75f66
BLAKE2b-256 daf3c8333affb1691d1d3828ec90ea966b94df1a649df674cfc25d66a04e073f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page