Metadata-Version: 2.4
Name: proteomics-lab
Version: 0.3.8
Summary: Install and import alias package for bijux-proteomics-lab.
Project-URL: Homepage, https://bijux.io/bijux-proteomics/
Project-URL: Documentation, https://bijux.io/bijux-proteomics/07-bijux-proteomics-lab/
Project-URL: Repository, https://github.com/bijux/bijux-proteomics
Project-URL: Issues, https://github.com/bijux/bijux-proteomics/issues
Project-URL: Changelog, https://github.com/bijux/bijux-proteomics/blob/main/packages/proteomics-lab/CHANGELOG.md
Project-URL: Security, https://github.com/bijux/bijux-proteomics/blob/main/SECURITY.md
Author-email: Bijan Mousavi <bijan@bijux.io>
Maintainer-email: Bijan Mousavi <bijan@bijux.io>
License: Apache-2.0
License-File: LICENSE
License-File: NOTICE
Keywords: compatibility,lab,packaging,proteomics
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Typing :: Typed
Requires-Python: <4,>=3.11
Requires-Dist: bijux-proteomics-foundation<0.4.0,>=0.3.8
Requires-Dist: bijux-proteomics-lab<0.4.0,>=0.3.8
Description-Content-Type: text/markdown

# proteomics-lab

<!-- bijux-proteomics-badges:generated:start -->
[![Python 3.11+](https://img.shields.io/badge/python-3.11%2B-3776AB?logo=python&logoColor=white)](https://pypi.org/project/proteomics-lab/)
[![Typing: typed](https://img.shields.io/badge/typing-typed%20(PEP%20561)-0A7BBB)](https://pypi.org/project/proteomics-lab/)
[![License: Apache-2.0](https://img.shields.io/badge/license-Apache--2.0-0F766E)](https://github.com/bijux/bijux-proteomics/blob/main/LICENSE)
[![CI Status](https://github.com/bijux/bijux-proteomics/actions/workflows/verify.yml/badge.svg?branch=main)](https://github.com/bijux/bijux-proteomics/actions/workflows/verify.yml?query=branch%3Amain)
[![GitHub Repository](https://img.shields.io/badge/github-bijux%2Fbijux--proteomics-181717?logo=github)](https://github.com/bijux/bijux-proteomics)

[![proteomics-lab](https://img.shields.io/pypi/v/proteomics-lab?label=proteomics--lab&logo=pypi)](https://pypi.org/project/proteomics-lab/)
[![agentic-proteins](https://img.shields.io/pypi/v/agentic-proteins?label=agentic--proteins&logo=pypi)](https://pypi.org/project/agentic-proteins/)
[![bijux-proteomics-foundation](https://img.shields.io/pypi/v/bijux-proteomics-foundation?label=foundation&logo=pypi)](https://pypi.org/project/bijux-proteomics-foundation/)
[![bijux-proteomics-core](https://img.shields.io/pypi/v/bijux-proteomics-core?label=core&logo=pypi)](https://pypi.org/project/bijux-proteomics-core/)
[![bijux-proteomics-runtime](https://img.shields.io/pypi/v/bijux-proteomics-runtime?label=runtime&logo=pypi)](https://pypi.org/project/bijux-proteomics-runtime/)
[![bijux-proteomics-intelligence](https://img.shields.io/pypi/v/bijux-proteomics-intelligence?label=intelligence&logo=pypi)](https://pypi.org/project/bijux-proteomics-intelligence/)
[![bijux-proteomics-knowledge](https://img.shields.io/pypi/v/bijux-proteomics-knowledge?label=knowledge&logo=pypi)](https://pypi.org/project/bijux-proteomics-knowledge/)
[![bijux-proteomics-lab](https://img.shields.io/pypi/v/bijux-proteomics-lab?label=lab&logo=pypi)](https://pypi.org/project/bijux-proteomics-lab/)

[![agentic-proteins](https://img.shields.io/badge/agentic--proteins-ghcr-181717?logo=github)](https://github.com/bijux/bijux-proteomics/pkgs/container/bijux-proteomics%2Fagentic-proteins)
[![bijux-proteomics-foundation](https://img.shields.io/badge/foundation-ghcr-181717?logo=github)](https://github.com/bijux/bijux-proteomics/pkgs/container/bijux-proteomics%2Fbijux-proteomics-foundation)
[![bijux-proteomics-core](https://img.shields.io/badge/core-ghcr-181717?logo=github)](https://github.com/bijux/bijux-proteomics/pkgs/container/bijux-proteomics%2Fbijux-proteomics-core)
[![bijux-proteomics-intelligence](https://img.shields.io/badge/intelligence-ghcr-181717?logo=github)](https://github.com/bijux/bijux-proteomics/pkgs/container/bijux-proteomics%2Fbijux-proteomics-intelligence)
[![bijux-proteomics-knowledge](https://img.shields.io/badge/knowledge-ghcr-181717?logo=github)](https://github.com/bijux/bijux-proteomics/pkgs/container/bijux-proteomics%2Fbijux-proteomics-knowledge)
[![bijux-proteomics-lab](https://img.shields.io/badge/lab-ghcr-181717?logo=github)](https://github.com/bijux/bijux-proteomics/pkgs/container/bijux-proteomics%2Fbijux-proteomics-lab)

[![proteomics-lab docs](https://img.shields.io/badge/docs-proteomics--lab-2563EB?logo=materialformkdocs&logoColor=white)](https://bijux.io/bijux-proteomics/07-bijux-proteomics-lab/)
[![agentic-proteins docs](https://img.shields.io/badge/docs-agentic--proteins-2563EB?logo=materialformkdocs&logoColor=white)](https://bijux.io/bijux-proteomics/02-agentic-proteins/)
[![bijux-proteomics-foundation docs](https://img.shields.io/badge/docs-foundation-2563EB?logo=materialformkdocs&logoColor=white)](https://bijux.io/bijux-proteomics/03-bijux-proteomics-foundation/)
[![bijux-proteomics-core docs](https://img.shields.io/badge/docs-core-2563EB?logo=materialformkdocs&logoColor=white)](https://bijux.io/bijux-proteomics/04-bijux-proteomics-core/)
[![bijux-proteomics-runtime docs](https://img.shields.io/badge/docs-runtime-2563EB?logo=materialformkdocs&logoColor=white)](https://bijux.io/bijux-proteomics/09-bijux-proteomics-runtime/)
[![bijux-proteomics-intelligence docs](https://img.shields.io/badge/docs-intelligence-2563EB?logo=materialformkdocs&logoColor=white)](https://bijux.io/bijux-proteomics/05-bijux-proteomics-intelligence/)
[![bijux-proteomics-knowledge docs](https://img.shields.io/badge/docs-knowledge-2563EB?logo=materialformkdocs&logoColor=white)](https://bijux.io/bijux-proteomics/06-bijux-proteomics-knowledge/)
[![bijux-proteomics-lab docs](https://img.shields.io/badge/docs-lab-2563EB?logo=materialformkdocs&logoColor=white)](https://bijux.io/bijux-proteomics/07-bijux-proteomics-lab/)
<!-- bijux-proteomics-badges:generated:end -->

`proteomics-lab` is the compatibility alias for the canonical lab owner
`bijux-proteomics-lab`.
It is the install and import alias for bijux-proteomics-lab.

Use this package when you want a shorter distribution and import name for assay
planning and handoff behavior without creating a second owner.

## Alias at a glance

- Use `proteomics-lab` when you want a shorter package name for assay
  planning, readiness, and handoff entrypoints.
- Start with the
  [canonical lab package docs](https://bijux.io/bijux-proteomics/07-bijux-proteomics-lab/)
  because this package only forwards into that owner surface.
- Route lab behavior to `bijux-proteomics-lab`; keep this package focused on
  compatibility naming and import forwarding.

## 0.3.8 Release Highlights

- The alias now sends readers to the current lab handbook instead of sounding
  like a second operational owner.
- Release guidance and compatibility wording now make the forwarding contract
  explicit before a reader reaches the deeper sections.

## Installation

```bash
pip install proteomics-lab
```

## Public APIs

The alias forwards the canonical lab planning surface through `proteomics_lab`:

```python
from bijux_proteomics.domain.assays import AssayRequirement
from bijux_proteomics.domain.program_spec import create_program_spec
from bijux_proteomics.domain.reviews import ReviewGate
from proteomics_lab import build_advisory_assay_plan

program = create_program_spec(
    program_id="prog-readme",
    name="binder rescue",
    objective="recover binding while preserving folding",
    target_id="protein:p11111",
    target_name="PTM1",
    sequence="MPEPTIDEK",
    organism="human",
    mechanism="stabilize productive packing",
).model_copy(
    update={
        "assay_panel": [
            AssayRequirement(
                assay_id="primary-binding",
                purpose="confirm target engagement",
                readout="binding_score",
                sample_kind="biophysical",
                blocking=True,
            )
        ],
        "review_gates": [
            ReviewGate(
                gate_id="pre-synthesis",
                name="Pre-synthesis review",
                required_roles=["scientist"],
                decision_inputs=["evidence_bundle"],
            )
        ],
    }
)
plan = build_advisory_assay_plan(program)

assert plan.program_id == "prog-readme"
assert plan.recommendations[0].assay_id == "primary-binding"
```

## Package identity

- Distribution name: `proteomics-lab`
- Import root: `proteomics_lab`
- Canonical owner package: `bijux-proteomics-lab`
- Canonical owner import root: `bijux_proteomics_lab`

## Package boundaries

- this package owns compatibility naming for the lab surface
- assay planning, handoffs, and execution-adjacent lab policy remain owned by
  `bijux-proteomics-lab`
- new lab behavior must land in the canonical owner before alias exports change

## What this package must not do

- define a second assay-planning or handoff owner
- drift away from canonical lab behavior
- become an independent release surface for lab semantics

## Contract checkpoints

- alias exports must keep forwarding to canonical lab behavior
- docs must keep the canonical lab owner explicit
- compatibility changes must stay covered by alias-package tests

## Choose this package when

- you need a shorter import and distribution name for lab entrypoints
- migration constraints prefer `proteomics_lab`
- packaging or compatibility work needs a named alias for the lab owner

## Route elsewhere when

- the change alters assay-planning, handoff, or lab-policy semantics
- the work adds behavior not already owned by the canonical package
- the alias would stop being forwarding-only

## Verification route

- run alias compatibility tests before changing lab imports or metadata
- review `docs/ARCHITECTURE.md`, `docs/BOUNDARIES.md`, and `docs/CONTRACTS.md`
  when alias claims or routing language change
- validate the canonical lab README and tests when behavior changes are
  proposed

## Review questions

- does the change preserve this package as an alias only
- is the canonical lab owner still explicit in docs and behavior
- would the same outcome remain correct if consumers imported the canonical
  package directly

## Escalation route

- route lab behavior changes to `bijux-proteomics-lab`
- stop and review boundaries when package-local assay semantics start appearing
- escalate before release when routing or metadata drift could confuse the lab
  owner

## Consumer impact signals

- import-path or package-name changes are high-impact because downstream
  operational tooling may depend on them directly
- alias documentation changes should still be reviewed against the canonical
  lab owner
- wording-only clarifications carry lower release risk than routing or behavior
  changes

## Explicit non-goals

- this package does not own core scientific semantics
- this package does not create a second assay-planning or handoff owner
- this package does not replace the canonical lab release surface

## Documentation

- Release guidance lives in this `README.md`, this package `CHANGELOG.md`, and
  package `docs/*.md` under the canonical lab owner surface.
- [Product architecture](https://bijux.io/bijux-proteomics/01-bijux-proteomics/foundation/product-architecture/)
- [Cross-package ownership](https://bijux.io/bijux-proteomics/01-bijux-proteomics/foundation/cross-package-ownership/)
- [Canonical lab package docs](https://bijux.io/bijux-proteomics/07-bijux-proteomics-lab/)
- [Changelog](CHANGELOG.md)
