Metadata-Version: 2.4
Name: mdvtools
Version: 1.3.0
Summary: Multi Dimensional Viewer (MDV) is web based application for analyzing data
Author: Martin Sergeant, PeterTodd
Author-email: Martin Sergeant <m.j.sergeant1@googlemail.com>, PeterTodd <peter.todd@well.ox.ac.uk>
License-Expression: GPL-3.0-only
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Dist: anndata==0.12.2
Requires-Dist: fasteners>=0.18,<0.19
Requires-Dist: flask==3.0.3
Requires-Dist: flask-socketio>=5.3.6,<6
Requires-Dist: h5py>=3.10.0,<4
Requires-Dist: mudata>=0.3.0
Requires-Dist: numpy<2.3.0
Requires-Dist: numcodecs>=0.16.1
Requires-Dist: pandas==2.3.2
Requires-Dist: scanpy==1.11.4
Requires-Dist: scipy>=1.11.3,<2
Requires-Dist: werkzeug>=3.0.2,<4
Requires-Dist: gevent>=25.5.1,<26
Requires-Dist: polars>=1.31.0,<2
Requires-Dist: spatialdata>=0.7.2,<0.8
Requires-Dist: spatialdata-io>=0.6.0,<0.7
Requires-Dist: generate-tiff-offsets>=0.1.7,<0.2
Requires-Dist: mdvtools[app] ; extra == 'all'
Requires-Dist: flask-sqlalchemy>=3.1.1,<4 ; extra == 'app'
Requires-Dist: psycopg2-binary>=2.9.9,<3 ; extra == 'app'
Requires-Dist: gunicorn==23.0.0 ; extra == 'app'
Requires-Dist: psycogreen>=1.0.2,<2 ; extra == 'app'
Requires-Dist: langchain>=0.3.27,<0.4 ; extra == 'app'
Requires-Dist: langchain-experimental>=0.3.4,<0.4 ; extra == 'app'
Requires-Dist: langchain-openai>=0.3.33,<0.4 ; extra == 'app'
Requires-Dist: langchain-community>=0.3,<0.4 ; extra == 'app'
Requires-Dist: faiss-cpu==1.12.0 ; extra == 'app'
Requires-Dist: matplotlib>=3.8.4,<4 ; extra == 'app'
Requires-Dist: regex>=2024.5.15,<2025 ; extra == 'app'
Requires-Dist: python-dotenv>=1.0.1,<2 ; extra == 'app'
Requires-Dist: nbformat>=5.10.4,<6 ; extra == 'app'
Requires-Dist: tabulate>=0.9.0,<0.10 ; extra == 'app'
Requires-Dist: ruff>=0.3.7,<0.4 ; extra == 'app'
Requires-Dist: gspread>=6.1.2,<7 ; extra == 'app'
Requires-Dist: oauth2client>=4.1.3,<5 ; extra == 'app'
Requires-Dist: authlib==1.6.4 ; extra == 'app'
Requires-Dist: requests>=2.32.3,<3 ; extra == 'app'
Requires-Dist: python-jose>=3.3.0,<4 ; extra == 'app'
Requires-Dist: auth0-python>=4.9.0,<5 ; extra == 'app'
Requires-Dist: flask-jwt-extended>=4.7.1,<5 ; extra == 'app'
Requires-Dist: redis>=5.2.1,<6 ; extra == 'app'
Requires-Python: >=3.11, <3.13
Project-URL: Homepage, https://github.com/Taylor-CCB-Group/MDV
Project-URL: Bug Tracker, https://github.com/Taylor-CCB-Group/MDV/issues
Provides-Extra: all
Provides-Extra: app
Description-Content-Type: text/markdown

# MDV Tools

**Multi-Dimensional Viewer (MDV)** is a web-based application for analysing and visualising
large, multi-dimensional data (single-cell, spatial, and general tabular data). `mdvtools`
is the Python package for **creating, manipulating, and viewing MDV projects** — including a
lightweight local server and the ability to export a project as a static website.

- Homepage / source: https://github.com/Taylor-CCB-Group/MDV
- Issues: https://github.com/Taylor-CCB-Group/MDV/issues

## Installation

```bash
pip install mdvtools
```

This installs the **slim core**: everything you need to build, manipulate, view, and serve
MDV projects, including spatial-data support.

For the **full application** — database-backed project management, the chat/LLM assistant,
and authentication — install the `app` extra:

```bash
pip install "mdvtools[app]"
```

If you call a full-app feature on a slim install, you'll get a clear message telling you to
`pip install "mdvtools[app]"` rather than a cryptic import error.

> **Testing a pre-release from TestPyPI:**
> ```bash
> pip install --index-url https://test.pypi.org/simple/ \
>             --extra-index-url https://pypi.org/simple/ mdvtools
> ```

## Quickstart

Create and serve an MDV project from the `pbmc3k` example dataset. `folder` is where the
project is stored — any location you can write to; it's created if it doesn't exist.

```python
import scanpy
from mdvtools.conversions import convert_scanpy_to_mdv
from mdvtools.serverlite import serve_project

folder = "/path/to/mytestproject"
data = scanpy.datasets.pbmc3k_processed()

project = convert_scanpy_to_mdv(folder, data)
serve_project(project)            # serves at http://localhost:5050
```

Open http://localhost:5050 in your browser to explore the project. The project files live in
`folder` and can be re-served later or exported as a static site.

There's also a command-line interface:

```bash
mdvtools --help
```

## License

GPL-3.0-only. See the [repository](https://github.com/Taylor-CCB-Group/MDV) for full details.
