Skip to main content

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

  • ModuleDefinition is a design.
  • Physical items are always InventoryImplementation with built pointing to the design.
  • SolidMediaPlate and Box are container implementations with explicit allowed row/column layout.
  • Placed items record:
    • contained_in_container
    • container_row
    • container_column
  • Every implementation has is_active and 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


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)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sbolinventory-0.1.0-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

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

Hashes for sbolinventory-0.1.0.tar.gz
Algorithm Hash digest
SHA256 aa677f099a5069e4ced42acc837d7b5ffa9af7f5e8a78f8f195e7ab68680343f
MD5 a62651a112c374c321f7d86e4dd194ed
BLAKE2b-256 8044043fc7520ec262b14540a0667f07d5efc0e1b9094d595f9c9a4c09ec1fc2

See more details on using hashes here.

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

Hashes for sbolinventory-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5613e276754697356c2a239bac32111bd6200683a2eb09b130ccc9db64fc7e60
MD5 0f7de89ece2cc2c8402fb544b9c61c18
BLAKE2b-256 36d845b3fef06e0b14b7ebfd3688f72f00663f66e9d1ce30a28bca18402df58c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page