Metadata-Version: 2.4
Name: lobster-ai
Version: 1.0.14
Summary: Multi-Agent Bioinformatics Analysis System powered by LangGraph
Home-page: https://github.com/the-omics-os/lobster-ai
Author: Omics-OS
Author-email: Omics-OS <info@omics-os.com>
License-Expression: AGPL-3.0-or-later
Project-URL: Homepage, https://www.omics-os.com
Project-URL: Bug Tracker, https://github.com/the-omics-os/lobster/issues
Project-URL: Documentation, https://github.com/the-omics-os/lobster.wiki
Project-URL: Source Code, https://github.com/the-omics-os/lobster
Keywords: bioinformatics,RNA-seq,single-cell,AI,machine-learning,data-analysis,genomics
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Healthcare Industry
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Environment :: Console
Classifier: Framework :: FastAPI
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pandas>=1.5.0
Requires-Dist: numpy<2.4,>=1.23.0
Requires-Dist: scipy>=1.10.0
Requires-Dist: scikit-learn>=1.3.0
Requires-Dist: anndata>=0.9.0
Requires-Dist: mudata>=0.2.0
Requires-Dist: h5py>=3.9.0
Requires-Dist: langchain-core>=0.3.79
Requires-Dist: langgraph>=1.0.5
Requires-Dist: rich>=12.0.0
Requires-Dist: typer>=0.7.0
Requires-Dist: python-dotenv>=1.0.0
Requires-Dist: prompt-toolkit>=3.0.52
Requires-Dist: plotly>=5.0.0
Requires-Dist: matplotlib>=3.7.0
Requires-Dist: kaleido>=0.2.0
Requires-Dist: biopython>=1.81
Requires-Dist: statsmodels>=0.14.0
Requires-Dist: gseapy>=1.1.0
Requires-Dist: GEOparse
Requires-Dist: openpyxl>=3.1.0
Requires-Dist: pyreadr>=0.4.0
Requires-Dist: xmltodict>=0.13.0
Requires-Dist: lxml>=4.9.0
Requires-Dist: requests>=2.31.0
Requires-Dist: httpx>=0.27.0
Requires-Dist: cloudscraper>=1.2.71
Requires-Dist: pysradb>=2.5.1
Requires-Dist: nbformat>=5.9.0
Requires-Dist: papermill>=2.4.0
Requires-Dist: packaging>=25.0
Requires-Dist: tabulate>=0.9.0
Requires-Dist: tomli_w>=1.0
Requires-Dist: psutil>=7.0.0
Provides-Extra: anthropic
Requires-Dist: langchain-anthropic>=0.3.20; extra == "anthropic"
Provides-Extra: bedrock
Requires-Dist: langchain-aws>=0.1.0; extra == "bedrock"
Requires-Dist: boto3>=1.26.0; extra == "bedrock"
Provides-Extra: ollama
Requires-Dist: langchain-ollama>=0.3.10; extra == "ollama"
Requires-Dist: ollama>=0.6.0; extra == "ollama"
Provides-Extra: gemini
Requires-Dist: langchain-google-genai>=4.1.2; extra == "gemini"
Provides-Extra: openai
Requires-Dist: langchain-openai>=0.3.0; extra == "openai"
Provides-Extra: all-providers
Requires-Dist: lobster-ai[anthropic,azure,bedrock,gemini,ollama,openai]; extra == "all-providers"
Provides-Extra: docling
Requires-Dist: docling>=2.60.0; extra == "docling"
Requires-Dist: docling-core>=2.50.0; extra == "docling"
Provides-Extra: hdf5
Requires-Dist: tables>=3.8.0; extra == "hdf5"
Provides-Extra: server
Requires-Dist: fastapi>=0.100.0; extra == "server"
Requires-Dist: uvicorn>=0.23.0; extra == "server"
Requires-Dist: python-multipart>=0.0.20; extra == "server"
Provides-Extra: tui
Requires-Dist: textual>=6.7.1; extra == "tui"
Provides-Extra: vector-search
Requires-Dist: lobster-metadata[vector-search]~=1.0.0; extra == "vector-search"
Provides-Extra: observability
Requires-Dist: langfuse>=3.2.6; extra == "observability"
Requires-Dist: redis>=6.4.0; extra == "observability"
Provides-Extra: extended-data
Requires-Dist: polars>=1.32.3; extra == "extended-data"
Requires-Dist: rispy>=0.10.0; extra == "extended-data"
Provides-Extra: transcriptomics
Requires-Dist: lobster-transcriptomics~=1.0.0; extra == "transcriptomics"
Requires-Dist: lobster-research~=1.0.0; extra == "transcriptomics"
Requires-Dist: lobster-visualization~=1.0.0; extra == "transcriptomics"
Provides-Extra: doublet-detection
Requires-Dist: lobster-transcriptomics[doublet-detection]~=1.0.0; extra == "doublet-detection"
Provides-Extra: genomics
Requires-Dist: lobster-genomics~=1.0.0; extra == "genomics"
Requires-Dist: lobster-research~=1.0.0; extra == "genomics"
Requires-Dist: lobster-visualization~=1.0.0; extra == "genomics"
Provides-Extra: proteomics
Requires-Dist: lobster-proteomics[network-analysis]~=1.0.0; extra == "proteomics"
Requires-Dist: lobster-research~=1.0.0; extra == "proteomics"
Requires-Dist: lobster-visualization~=1.0.0; extra == "proteomics"
Provides-Extra: research
Requires-Dist: lobster-research~=1.0.0; extra == "research"
Requires-Dist: lobster-visualization~=1.0.0; extra == "research"
Provides-Extra: plink
Requires-Dist: bed-reader>=0.2.0; extra == "plink"
Provides-Extra: azure
Requires-Dist: langchain-azure-ai>=0.1.0; extra == "azure"
Requires-Dist: azure-ai-agents>=1.0.0b1; extra == "azure"
Requires-Dist: azure-ai-inference>=1.0.0b1; extra == "azure"
Requires-Dist: azure-ai-projects>=1.0.0b1; extra == "azure"
Requires-Dist: azure-identity>=1.25.0; extra == "azure"
Requires-Dist: azure-search-documents>=11.6.0; extra == "azure"
Requires-Dist: azure-storage-blob>=12.28.0; extra == "azure"
Provides-Extra: recommended
Requires-Dist: lobster-ai[anthropic,extended-data,transcriptomics,tui]; extra == "recommended"
Provides-Extra: full
Requires-Dist: lobster-ai[genomics,proteomics,transcriptomics]; extra == "full"
Requires-Dist: lobster-ai[all-providers,docling,extended-data,hdf5,tui,vector-search]; extra == "full"
Provides-Extra: dev
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
Requires-Dist: pytest-xdist>=3.0.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
Requires-Dist: pytest-mock>=3.10.0; extra == "dev"
Requires-Dist: pytest-benchmark>=4.0.0; extra == "dev"
Requires-Dist: pytest-timeout>=2.1.0; extra == "dev"
Requires-Dist: pytest-html>=3.2.0; extra == "dev"
Requires-Dist: pytest-json-report>=1.5.0; extra == "dev"
Requires-Dist: factory-boy>=3.2.0; extra == "dev"
Requires-Dist: responses>=0.25.8; extra == "dev"
Requires-Dist: httpretty>=1.1.4; extra == "dev"
Requires-Dist: freezegun>=1.2.0; extra == "dev"
Requires-Dist: faker>=19.0.0; extra == "dev"
Requires-Dist: moto>=4.1.0; extra == "dev"
Requires-Dist: fakeredis>=2.10.0; extra == "dev"
Requires-Dist: ftputil>=5.0.4; extra == "dev"
Requires-Dist: memory-profiler>=0.60.0; extra == "dev"
Requires-Dist: psutil>=5.9.0; extra == "dev"
Requires-Dist: black>=23.0.0; extra == "dev"
Requires-Dist: isort>=5.12.0; extra == "dev"
Requires-Dist: flake8>=6.0.0; extra == "dev"
Requires-Dist: pylint>=2.17.0; extra == "dev"
Requires-Dist: mypy>=1.0.0; extra == "dev"
Requires-Dist: bandit>=1.7.0; extra == "dev"
Requires-Dist: ruff>=0.0.300; extra == "dev"
Requires-Dist: pre-commit>=3.0.0; extra == "dev"
Requires-Dist: bumpversion>=0.6.0; extra == "dev"
Requires-Dist: twine>=4.0.0; extra == "dev"
Requires-Dist: build>=0.10.0; extra == "dev"
Requires-Dist: mkdocs>=1.5.0; extra == "dev"
Requires-Dist: mkdocs-material>=9.0.0; extra == "dev"
Requires-Dist: langfuse>=2.0.0; extra == "dev"
Requires-Dist: tabulate>=0.9.0; extra == "dev"
Requires-Dist: import-linter>=2.1; extra == "dev"
Requires-Dist: pipdeptree>=2.25; extra == "dev"
Provides-Extra: all
Requires-Dist: lobster-ai[azure,batteries,bulk-rnaseq,dev,genomics,ml,transcriptomics]; extra == "all"
Dynamic: author
Dynamic: home-page
Dynamic: license-file
Dynamic: requires-python

# Lobster AI

[![PyPI version](https://img.shields.io/pypi/v/lobster-ai.svg)](https://pypi.org/project/lobster-ai/)
[![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](https://www.python.org/downloads/)
[![License: AGPL-3.0](https://img.shields.io/badge/License-AGPL%203.0-blue.svg)](https://www.gnu.org/licenses/agpl-3.0)
[![Documentation](https://img.shields.io/badge/docs-omics--os.com-green.svg)](https://docs.omics-os.com)

> Open-source multi-agent bioinformatics engine. Describe your analysis in natural language.

[Documentation](https://docs.omics-os.com) · [PyPI](https://pypi.org/project/lobster-ai/) · [Omics-OS Cloud](https://app.omics-os.com)

## Quick Start

```bash
#installs only core lobster
curl -fsSL https://install.lobsterbio.com | bash
```

Then:

```bash
# Define LLM provider and domain expert installation
lobster init
```

Finaly:

```bash
lobster chat 
# or non-interactive
lobster query "Hi, what can you do?"
```

<details>
<summary>Windows, pip, and other install methods</summary>

**Windows** (PowerShell):
```powershell
irm https://install.lobsterbio.com/windows | iex
```

**uv** (recommended manual install):
```bash
uv tool install 'lobster-ai[full,anthropic]'
lobster init
```

**pip**:
```bash
pip install 'lobster-ai[full]'
lobster init
```

**Upgrade**:
```bash
uv tool upgrade lobster-ai    # uv
pip install -U lobster-ai      # pip
```

</details>

## Why Lobster AI

**Your machine, your data.** No uploads, no third-party cloud. Patient data and unpublished results stay on your hardware.

**Tool calls, not token dreams.** Agents execute real bioinformatics tools: Scanpy, PyDESeq2, AnnData. Every result is traceable to a function call with validated inputs and outputs.

**Reproducible by design.** W3C-PROV provenance tracking, Jupyter notebook export, and parameter schemas for every analysis. The same question produces the same pipeline.

## Agents

18 specialist agents across 9 packages. Install exactly what you need.

| Package | Domain | Status |
|---------|--------|--------|
| **lobster-ai** | Core engine, supervisor, infrastructure | Stable |
| **lobster-transcriptomics** | Single-cell & bulk RNA-seq, DE analysis, cell type annotation | Stable |
| **lobster-research** | PubMed, GEO, Pride, and more.. dataset discovery | Stable |
| **lobster-visualization** | Publication-quality Plotly plots | Stable |
| **lobster-metadata** | ID mapping, sample filtering, metadata validation | Stable |
| **lobster-genomics** | GWAS pipeline, clinical variant analysis | Beta |
| **lobster-proteomics** | Mass spec & affinity proteomics, biomarker discovery | Beta |
| **lobster-metabolomics** | LC-MS, GC-MS, NMR analysis | Beta |
| **lobster-structural-viz** | Protein structure visualization | Beta |
| **lobster-ml** | Feature selection, survival analysis, MOFA integration | Beta |

<details>
<summary>Install individual agents</summary>

```bash
# Pick agents interactively
lobster init --force

# Or install specific packages
uv tool install lobster-ai --with lobster-proteomics --with lobster-genomics

# Install everything
uv tool install 'lobster-ai[full,anthropic]'
```

</details>

<details>
<summary>Build your own agent</summary>

Create custom agents for any domain. Agents plug in via Python entry points — discovered automatically, no core changes needed.

Install the **lobster-dev** skill to teach your coding agent the full architecture:

```bash
curl -fsSL https://skills.lobsterbio.com | bash
```

Then ask your coding agent: *"Create a Lobster agent for [your domain]"* — it knows the package structure, AGENT_CONFIG pattern, factory function, tool design, testing, and the 28-step checklist.

</details>

## Usage

```bash
# Interactive chat
lobster chat

# Single-turn queries
lobster query "Download GSE109564 and cluster cells"
lobster query "Search PubMed for CRISPR studies in 2024"

# Session continuity
lobster query --session-id project1 "Search for Alzheimer's scRNA-seq datasets"
lobster query --session-id project1 "Download the top 3 results"
lobster query --session-id latest "Cluster the first dataset"
```

<details>
<summary>Pipeline export and slash commands</summary>

```bash
lobster chat
> /pipeline export         # Export reproducible Jupyter notebook
> /pipeline list           # List exported pipelines
> /pipeline run analysis.ipynb geo_gse109564
> /data                    # Show loaded datasets
> /status                  # Session info
> /help                    # All commands
```

</details>

<details>
<summary>Capabilities by domain</summary>

**Transcriptomics**
- Single-cell RNA-seq: QC, doublet detection (Scrublet), batch integration (Harmony/scVI), clustering, cell type annotation, trajectory inference (DPT/PAGA)
- Bulk RNA-seq: Salmon/kallisto/featureCounts import, sample QC, batch detection, normalization (DESeq2/VST/CPM), DE with PyDESeq2, GSEA, publication-ready export

**Genomics**
- GWAS: VCF/PLINK import, LD pruning, kinship, association testing, result clumping
- Clinical: variant annotation (VEP), gnomAD frequencies, ClinVar pathogenicity, variant prioritization

**Proteomics**
- Mass spec: MaxQuant/DIA-NN/Spectronaut import, PTM analysis, peptide-to-protein rollup, batch correction
- Affinity: Olink NPX/SomaScan ADAT/Luminex MFI import, LOD quality, bridge normalization
- Downstream: GO/Reactome/KEGG enrichment, kinase enrichment (KSEA), STRING PPI, biomarker panel selection

**Metabolomics**
- LC-MS, GC-MS, NMR with auto-detection
- QC (RSD, TIC), filtering, imputation, normalization (PQN/TIC/IS)
- PCA, PLS-DA, OPLS-DA, m/z annotation (HMDB/KEGG), lipid class analysis

**Machine Learning**
- Feature selection (stability selection, LASSO, variance filter)
- Survival analysis (Cox models, Kaplan-Meier, risk stratification)
- Cross-validation, SHAP interpretability, multi-omics integration (MOFA)

**Research & Metadata**
- Literature discovery (PubMed, PMC, GEO, PRIDE, MetaboLights)
- Dataset download orchestration, metadata harmonization, sample filtering

</details>

<details>
<summary>LLM providers</summary>

Lobster supports 5 LLM providers. Configure via `lobster init` or environment variables.

| Provider | Type | Setup | Use Case |
|----------|------|-------|----------|
| **Ollama** | Local | `ollama pull gpt-oss:20b` | Privacy, zero cost, offline |
| **Anthropic** | Cloud | API key | Fastest, best quality |
| **AWS Bedrock** | Cloud | AWS credentials | Enterprise, compliance |
| **Google Gemini** | Cloud | Google API key | Multimodal, long context |
| **Azure AI** | Cloud | Endpoint + credential | Enterprise Azure |

</details>

<details>
<summary>Coding agent skills</summary>

Teach your coding agents (Claude Code, Codex, Gemini CLI, OpenClaw) to use Lobster:

```bash
curl -fsSL https://skills.lobsterbio.com | bash
```

Installs two skills:
- **lobster-use** — End-user workflows (search PubMed, analyze cells, RNA-seq)
- **lobster-dev** — Developer guide (create agents, extend services, testing)

</details>

## Development

```bash
git clone https://github.com/the-omics-os/lobster.git
cd lobster
make dev-install    # editable install with dev deps
make test           # run all tests
make format         # black + isort
```

<details>
<summary>Environment variables</summary>

Set during `lobster init` or manually:

| Variable | Purpose |
|----------|---------|
| `ANTHROPIC_API_KEY` | Anthropic Direct |
| `AWS_BEDROCK_ACCESS_KEY` | AWS Bedrock |
| `AWS_BEDROCK_SECRET_ACCESS_KEY` | AWS Bedrock |
| `GOOGLE_API_KEY` | Google Gemini |
| `OLLAMA_BASE_URL` | Ollama server (default: `http://localhost:11434`) |
| `LOBSTER_LLM_PROVIDER` | Explicit provider selection |
| `LOBSTER_WORKSPACE` | Workspace directory |

</details>

## Ecosystem

| Project | Description | Link |
|---------|-------------|------|
| **Lobster AI** | Open-source multi-agent engine | [lobsterbio.com](https://lobsterbio.com) |
| **Omics-OS Cloud** | Managed cloud platform | [app.omics-os.com](https://app.omics-os.com) |
| **Documentation** | Guides, API reference, tutorials | [docs.omics-os.com](https://docs.omics-os.com) |

## Contributing

Contributions welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.

## License

**Code:** AGPL-3.0-or-later · **Docs:** CC BY 4.0 · See [LICENSE](LICENSE)

---

<p align="center">
  Built by <a href="https://omics-os.com">Omics-OS</a> to accelerate multi-omics research
  <br>
  <a href="https://omics-os.com">Omics-OS</a> · <a href="https://lobsterbio.com">Lobster AI</a> · <a href="https://docs.omics-os.com">Docs</a>
</p>
