Metadata-Version: 2.4
Name: lobster-ai
Version: 1.1.1
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: jinja2>=3.1
Requires-Dist: packaging>=25.0
Requires-Dist: tabulate>=0.9.0
Requires-Dist: tomli_w>=1.0
Requires-Dist: psutil>=7.0.0
Requires-Dist: lobster-ai-tui~=1.1.0; platform_system != "Windows"
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: classic-tui
Requires-Dist: textual>=6.7.1; extra == "classic-tui"
Provides-Extra: vector-search
Requires-Dist: lobster-metadata[vector-search]~=1.1.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[batch-integration]~=1.1.0; extra == "transcriptomics"
Requires-Dist: lobster-research~=1.1.0; extra == "transcriptomics"
Requires-Dist: lobster-visualization~=1.1.0; extra == "transcriptomics"
Provides-Extra: doublet-detection
Requires-Dist: lobster-transcriptomics[doublet-detection]~=1.1.0; extra == "doublet-detection"
Provides-Extra: genomics
Requires-Dist: lobster-genomics~=1.1.0; extra == "genomics"
Requires-Dist: lobster-research~=1.1.0; extra == "genomics"
Requires-Dist: lobster-visualization~=1.1.0; extra == "genomics"
Provides-Extra: proteomics
Requires-Dist: lobster-proteomics[network-analysis]~=1.1.0; extra == "proteomics"
Requires-Dist: lobster-research~=1.1.0; extra == "proteomics"
Requires-Dist: lobster-visualization~=1.1.0; extra == "proteomics"
Provides-Extra: research
Requires-Dist: lobster-research~=1.1.0; extra == "research"
Requires-Dist: lobster-visualization~=1.1.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,classic-tui,extended-data,transcriptomics]; extra == "recommended"
Provides-Extra: full
Requires-Dist: lobster-ai[genomics,proteomics,transcriptomics]; extra == "full"
Requires-Dist: lobster-ai[all-providers,classic-tui,docling,extended-data,hdf5,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

<div align="center">
  <img alt="Lobster AI Logo" src="https://raw.githubusercontent.com/the-omics-os/lobster/main/docs/assets/lobster-logo.png" width="420">
</div>

<br/>

<div align="center">
  <b>Open-source multi-agent bioinformatics engine. Describe your analysis in natural language.</b>
</div>

<br/>

<div align="center">
  <a href="https://docs.omics-os.com"><img src="https://img.shields.io/badge/docs-omics--os.com-black?style=for-the-badge&logo=readthedocs" alt="Docs"></a>
  &nbsp;&nbsp;
  <a href="https://app.omics-os.com"><img src="https://img.shields.io/badge/cloud-Omics--OS-blue?style=for-the-badge&logo=googlecloud" alt="Cloud"></a>
  &nbsp;&nbsp;
  <a href="https://pypi.org/project/lobster-ai/"><img src="https://img.shields.io/badge/PyPI-lobster--ai-black?style=for-the-badge&logo=pypi" alt="PyPI"></a>
  &nbsp;&nbsp;
  <a href="https://discord.gg/omics-os"><img src="https://img.shields.io/badge/Discord-Join_Community-7289DA?style=for-the-badge&logo=discord&logoColor=white" alt="Discord"></a>
</div>

<br/>

<div align="center">
  <table border="0" cellspacing="0" cellpadding="8">
    <tr>
      <td><img src="https://raw.githubusercontent.com/the-omics-os/lobster/main/docs/assets/testimonial-1.svg" width="260" alt="Testimonial 1"></td>
      <td><img src="https://raw.githubusercontent.com/the-omics-os/lobster/main/docs/assets/testimonial-2.svg" width="260" alt="Testimonial 2"></td>
      <td><img src="https://raw.githubusercontent.com/the-omics-os/lobster/main/docs/assets/testimonial-3.svg" width="260" alt="Testimonial 3"></td>
    </tr>
  </table>
</div>

<br/>

<div align="center">
  🌤️ <b>Want to skip the setup?</b> Run massive multi-omics pipelines instantly on <b><a href="https://app.omics-os.com">Omics-OS Cloud</a></b>!
</div>

---

# 🧑‍🔬 Human Quickstart

**1. Install Lobster AI (macOS/Linux):**
```bash
curl -fsSL https://install.lobsterbio.com | bash
```
*(Windows users: `irm https://install.lobsterbio.com/windows | iex`)*

**2. Configure your LLM (Anthropic, Gemini, local Ollama, etc.):**
```bash
lobster init
```

**3. Run your first analysis:**
```bash
lobster query "Download GSE109564 and cluster the cells"
# Or run interactively: lobster chat
```

<br/>

# 🤖 For AI Coding Agents

Teach your coding agent (Claude Code, Cursor, Gemini) to use and extend Lobster AI instantly:
```bash
curl -fsSL https://skills.lobsterbio.com | bash
```
*Installs the `lobster-use` and `lobster-dev` skills so your AI knows our entire 10-package architecture.*

<br/>

# 🎬 Watch it Work

### 🧬 Single-Cell Transcriptomics
**Task:** *"Download GSE109564, run QC, and cluster cells."*
```bash
$ lobster query "Download GSE109564, run QC, and cluster cells"
[Supervisor] Routing to Transcriptomics Expert...
[Transcriptomics] Delegating download of 'GSE109564' to Data Expert...
[Data Expert] Download complete. Modality 'GSE109564' loaded.
[Transcriptomics] Running QC (calculating MT fraction, filtering cells/genes)...
[Transcriptomics] Normalizing and finding highly variable genes...
[Transcriptomics] Running PCA, Neighborhood graph, and UMAP...
[Transcriptomics] Clustering via Leiden (resolution=1.0)...
✅ Analysis complete. UMAP plot generated and saved to workspace.
```

### 🔬 Mass Spec Proteomics
**Task:** *"Import MaxQuant data, perform batch correction, and select biomarker panels."*
```bash
$ lobster query "Import MaxQuant data, perform batch correction, and select biomarker panels"
[Supervisor] Routing to Proteomics Expert...
[Proteomics] Parsing proteinGroups.txt and experimental design...
[Proteomics] Filtering contaminants and reverse hits...
[Proteomics] Performing median normalization and ComBat batch correction...
[Proteomics] Delegating to Biomarker Discovery Expert...
[Biomarker Expert] Running LASSO stability selection with nested cross-validation...
✅ Complete. 12 robust biomarker candidates identified (Stability score > 0.8).
```

### 📚 Automated Literature Discovery
**Task:** *"Search PubMed for CRISPR studies in 2024 and download the top 3 datasets."*
```bash
$ lobster query "Search PubMed for CRISPR studies in 2024 and download the top 3 datasets."
[Supervisor] Routing to Research Agent...
[Research] Searching PubMed: "(CRISPR[Title/Abstract]) AND 2024[Date - Publication]"
[Research] Extracting GEO accessions from top 10 relevant papers...
[Research] Found GSE251842, GSE252910, GSE260124.
[Research] Delegating batch download to Data Expert...
✅ Datasets downloaded and harmonized into AnnData objects.
```

<br/>

# 🧠 The Architecture

Lobster isn't just a chatbot; it's a modular ecosystem of **22 specialist agents across 10 packages**.
* **Your machine, your data:** Patient data never leaves your hardware.
* **Tool calls, not token dreams:** Agents execute real, validated Python packages (Scanpy, PyDESeq2).
* **100% Reproducible:** W3C-PROV tracking and automatic Jupyter notebook exports.

<div align="center">
  <img alt="Ecosystem Topology" src="https://raw.githubusercontent.com/the-omics-os/lobster/main/docs/assets/architecture-topology.svg" width="88%">
  <br/><br/>
  <img alt="Core Architecture" src="https://raw.githubusercontent.com/the-omics-os/lobster/main/docs/assets/architecture-core.svg" width="88%">
</div>

<br/>

# 🛠️ Build Your Own Agent

The `lobster-dev` skill gives your coding assistant (Claude Code, Gemini CLI, Cursor) deep knowledge of how Lobster agents are structured. Describe the biological domain you need — it scaffolds the package, wires the tools, writes the tests, and registers the agent.

<div align="center">
  <table border="0" cellspacing="0" cellpadding="12">
    <tr>
      <td width="50%" valign="top" align="center">
        <b>1. The Request</b><br/><br/>
        <img alt="Claude Terminal" src="https://raw.githubusercontent.com/the-omics-os/lobster/main/docs/assets/terminal-preview.svg" width="100%">
      </td>
      <td width="50%" valign="top" align="center">
        <b>2. The Result</b><br/><br/>
        <img alt="Hackability Preview" src="https://raw.githubusercontent.com/the-omics-os/lobster/main/docs/assets/hackability-preview.svg" width="100%">
      </td>
    </tr>
  </table>
</div>

<br/>

# ❓ Deep Dives & FAQ

<details>
<summary><b>What omics domains are supported?</b></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><b>Which LLMs can I use?</b></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><b>Pipeline export and slash commands</b></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><b>Advanced installation (Windows, pip)</b></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>

<details>
<summary><b>How do I build my own agent?</b></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>

<br/>

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