Metadata-Version: 2.4
Name: isa-json-steward
Version: 2.0.0
Summary: ISA-JSON Data Steward — a desktop application and toolkit for managing ISA-JSON investigation metadata
Author: ISA-JSON Data Steward Contributors
License-Expression: MIT
Project-URL: Homepage, https://github.com/Pierretreh/isa-json-steward
Project-URL: Documentation, https://github.com/Pierretreh/isa-json-steward#readme
Project-URL: Repository, https://github.com/Pierretreh/isa-json-steward.git
Keywords: ontology,isa-json,fair-data,pyqt6,gui
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: X11 Applications :: Qt
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Interface Engine/Protocol Translator
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: PyQt6>=6.6.0
Requires-Dist: rdflib>=7.0.0
Requires-Dist: Biopython>=1.83
Requires-Dist: Pillow>=10.0.0
Requires-Dist: openpyxl>=3.1.0
Requires-Dist: pandas>=2.0.0
Requires-Dist: isatools>=0.14.3
Requires-Dist: python-docx>=1.0.0
Provides-Extra: dev
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
Requires-Dist: black>=26.5.1; extra == "dev"
Requires-Dist: isort>=5.12.0; extra == "dev"
Requires-Dist: mypy>=1.0.0; extra == "dev"
Requires-Dist: flake8>=6.0.0; extra == "dev"
Requires-Dist: bandit>=1.7.0; extra == "dev"
Requires-Dist: safety>=2.0.0; extra == "dev"
Requires-Dist: pre-commit>=3.0.0; extra == "dev"
Provides-Extra: ontology
Requires-Dist: owlready2>=0.40; extra == "ontology"
Requires-Dist: pyshacl>=0.40; extra == "ontology"
Provides-Extra: conversion
Requires-Dist: czifile>=2019.7.2; extra == "conversion"
Requires-Dist: fcsparser>=0.2.4; extra == "conversion"
Requires-Dist: tifffile>=2023.4.12; extra == "conversion"
Requires-Dist: openslide-python>=1.3.1; extra == "conversion"
Requires-Dist: readlif>=0.6.5; extra == "conversion"
Dynamic: license-file

# ISA-JSON Data Steward

A desktop application and command-line toolkit for creating, validating, and managing ISA-JSON investigation metadata.

## Features

- **GUI Application** — Desktop interface for managing ISA-JSON studies, assays, materials, and process sequences
- **Batch Processing Pipeline** — Automated conversion of experimental data to ISA-JSON format
- **ISA-JSON Export** — Generate compliant ISA-JSON files with full metadata
- **Ontology Integration** — Browse and link ontology terms to experimental metadata
- **Template System** — Configurable templates for assays, devices, materials, and protocols
- **Validation** — ISA-JSON schema validation and semantic checks

## Requirements

- Python 3.11+

## Installation

```bash
pip install -e ".[dev]"
```

## Usage

### GUI Application
```bash
python -m gui.main
```

### CLI Tools
```bash
# Generate ISA-JSON from batch data
isa-json-steward-batch --data-root ./data --output-dir ./output

# Or using the module invocation
python -m utils.batch --data-root ./data --output-dir ./output

# Validate ISA-JSON files
python scripts/isa_json_validation.py path/to/file.json
```

### Using Profiles

The application supports domain-specific profiles that customize templates, ontology references, and configuration:

```bash
# Load a profile
python -m gui.main --profile ./path/to/profile/

# Or set via environment variable
export ISA_STEWARD_PROFILE=./path/to/profile/
```

See the [Profile Documentation](docs/USER_WORKFLOW_GUIDE.md) for details on creating custom profiles.

## Development

```bash
# Install dev dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Run linting
pre-commit run --all-files
```

## Project Structure

```
├── gui/              # Desktop GUI application
│   ├── dialogs/      # Dialog windows
│   ├── pages/        # Main application pages
│   ├── widgets/      # Reusable UI widgets
│   └── resources/    # Stylesheets and assets
├── utils/            # Core utilities
│   └── batch/        # Batch processing pipeline (run via `isa-json-steward-batch` or `python -m utils.batch`)
├── scripts/          # Standalone CLI tools
├── tests/            # Test suite
├── config/           # Default configuration
└── docs/             # Documentation
```

## License

This project is licensed under the MIT License — see [LICENSE](LICENSE) for details.

## Contributing

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