Python package for SBOL-based laboratory inventory management.
Project description
SBOLInventory
SBOLInventory is a Python package for SBOL 2 inventory modeling that separates:
- external storage hierarchy (
Collection): fridges and shelves - physical containers/items (
Implementation): boxes, plates, and contained materials
Object graph
Fridge4C (Collection)
└── Shelf (Collection)
└── SolidMediaPlate (Implementation from MD)
└── PlatedStrain (Implementation from MD)
FridgeMinus80C (Collection)
└── Shelf (Collection)
└── Box (Implementation from MD)
└── BacterialStock (Implementation from MD)
└── ProcuredMaterial (Implementation from MD)
FridgeMinus20C (Collection)
└── Shelf (Collection)
└── Box (Implementation from MD)
└── DilutedPlasmid (Implementation from MD)
└── ProcuredMaterial (Implementation from MD)
Key concepts
ModuleDefinitionis a design.- Physical items are always
InventoryImplementationwithbuiltpointing to the design. SolidMediaPlateandBoxare container implementations with explicit allowed row/column layout.- Placed items record:
contained_in_containercontainer_rowcontainer_column
- Every implementation has
is_activeand can be discarded (set inactive).
Example
from sbol_inventory import (
make_document,
add_all,
make_fridge_4c,
make_shelf,
make_solid_media_plate,
make_plated_strain,
add_child,
place_in_container,
)
# Storage hierarchy (Collections)
doc = make_document()
fridge4 = make_fridge_4c("https://example.org/storage/4C")
shelf = make_shelf("https://example.org/storage/4C/shelf1")
# Physical containers/items (Implementations)
plate = make_solid_media_plate(
uri="https://example.org/implementation/plate1",
plate_md_uri="https://example.org/designs/plate_md",
rows=["A", "B", "C"],
columns=range(1, 5),
)
plated_strain = make_plated_strain(
uri="https://example.org/implementation/plated1",
strain_md_uri="https://example.org/designs/strain_md",
)
add_all(doc, [fridge4, shelf, plate, plated_strain])
add_child(fridge4, shelf)
add_child(shelf, plate)
# Place by row/column, validated against allowed and occupancy
place_in_container(plate, plated_strain, row="A", column=1)
Main API additions
make_box(...)make_diluted_plasmid(...)make_procured_material(...)make_plated_strain(...)place_in_container(...)move_item(...)remove_from_container(...)discard_implementation(...)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
sbolinventory-0.1.0.tar.gz
(8.7 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sbolinventory-0.1.0.tar.gz.
File metadata
- Download URL: sbolinventory-0.1.0.tar.gz
- Upload date:
- Size: 8.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aa677f099a5069e4ced42acc837d7b5ffa9af7f5e8a78f8f195e7ab68680343f
|
|
| MD5 |
a62651a112c374c321f7d86e4dd194ed
|
|
| BLAKE2b-256 |
8044043fc7520ec262b14540a0667f07d5efc0e1b9094d595f9c9a4c09ec1fc2
|
File details
Details for the file sbolinventory-0.1.0-py3-none-any.whl.
File metadata
- Download URL: sbolinventory-0.1.0-py3-none-any.whl
- Upload date:
- Size: 9.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5613e276754697356c2a239bac32111bd6200683a2eb09b130ccc9db64fc7e60
|
|
| MD5 |
0f7de89ece2cc2c8402fb544b9c61c18
|
|
| BLAKE2b-256 |
36d845b3fef06e0b14b7ebfd3688f72f00663f66e9d1ce30a28bca18402df58c
|