scPilot operates as a true scientific assistant that automates core single-cell analyses—Cell-Type Annotation, Trajectory Inference, and GRN Prediction.
Unlike traditional "tool agents" that simply write code, scPilot performs Omics-Native Reasoning: it directly inspects data summaries, explicitly articulates biological hypotheses, and iteratively refines its conclusions using on-demand bioinformatics tools.
- 🔬 Biological Context First: Incorporates tissue, species, and experimental metadata into reasoning.
- 🔄 Iterative Refinement: Self-corrects hypotheses based on computational evidence (e.g., dotplots, marker genes).
- 📊 Transparent & Auditable: Generates full reasoning traces, not just black-box vectors.
Evaluated on scBench (9 expertly curated datasets), scPilot demonstrates superior performance over direct LLM prompting and traditional pipelines.
| Task | Metric Improvement | Key Result |
|---|---|---|
| Cell-Type Annotation | +11% Accuracy | Iterative reasoning lifts average accuracy by 11% compared to one-shot methods. |
| Trajectory Inference | -30% Graph Error | Cuts trajectory graph-edit distance by 30% (using Gemini-2.5-Pro). |
| GRN Prediction | +0.03 AUROC | Improves Gene Regulatory Network prediction AUROC over baseline baselines. |
scPilot is designed to be efficient. Average costs per run (using Gemini-2.5-Pro) are minimal:
- Cell-type annotation (Retina): ~$0.03 / run
- Trajectory inference (Neocortex): ~$0.04 / run
- GRN TF-gene prediction: ~$0.12 / run
Replace OPENAI_API_KEY and GOOGLE_API_KEY in /config/settings.py.
Refer to requirements.txt.
Note:
numpy < 2.0is required forpy-Monocle.
Download large file dependencies from Google Drive and place them in the scPilot/uploads/ folder.
In your config, set model_provider (openai/google) and model_name (e.g., gpt-4o, gemini-2.5-pro).
- Run:
Task1_scPilot.py(scPilot version) orTask1_direct.py(Direct prompting). - Config: Update
CellTypeAnnotationDatasets.xlsxwith your dataset details (grouping, species, etc.).
- Run:
Traj_scPilot_1.ipynbthrough3.ipynbfor scPilot;Traj_Direct_1.ipynbthrough3.ipynbfor Direct prompting. - Note: Direct version notebooks may require manual tree copying.
- Run:
Task3_combined.py(Generates both direct and scPilot predictions). - Options: Change
PREDICT_CONTEXTto "Liver", "Stomach", or "Kidney" in the config.
Results used in the paper can be found in the google drive.
This result includes 3 tasks (Task1_results/, Task2_results/ and Task3_results/), along with additional experiment, ablation study, etc) in the rebuttal stage.
If you use scPilot, please cite our NeurIPS 2025 paper:
@inproceedings{
gao2025scpilot,
title={scPilot: Large Language Model Reasoning Toward Automated Single-Cell Analysis and Discovery},
author={Yiming Gao and Zhen Wang and Jefferson Chen and Mark Antkowiak and Mengzhou Hu and JungHo Kong and Dexter Pratt and Jieyuan Liu and Enze Ma and Zhiting Hu and Eric P. Xing},
booktitle={The Thirty-ninth Annual Conference on Neural Information Processing Systems},
year={2025},
url={https://openreview.net/forum?id=Vzi96rTe4w}
}