Hi @willem,
Can you please elaborate on what you mean by “hardcoded”?
To your points:
plate information […] a) requires contributors to be python programmers with access to a repository
Q1: Yes, PyLabRobot is a Python library; what is your suggestion as an alternative and why is an alternative needed?
superuser permissions
Q2: Why does one require superuser permissions to execute Python files?
b) requires others to update their code in order to use new (other people’s) plates - which makes it harder on you to have a stable release for a while
Yes, in order to use new plate definitions one has to pull these new definitions from the repository, whether the definitions are stored in a classic database or .py files doesn’t really change this?
But there are plenty of ways to use new definitions faster:
e.g. just send them to each other like
from pylabrobot.resources.plate import Plate
from pylabrobot.resources.utils import create_ordered_items_2d
from pylabrobot.resources.well import (
CrossSectionType,
Well,
WellBottomType,
)
def Cor_Axy_24_wellplate_10mL_Vb(name: str, with_lid: bool = False) -> Plate:
"""
Corning cat. no.: P-DW-10ML-24-C-S
- manufacturer_link: https://ecatalog.corning.com/life-sciences/b2b/UK/en/
Genomics-&-Molecular-Biology/Automation-Consumables/Deep-Well-Plate/
Axygen%C2%AE-Deep-Well-and-Assay-Plates/p/P-DW-10ML-24-C
- brand: Axygen
- distributor: (Fisher Scientific, 12557837)
- material: Polypropylene
- sterile: yes
- autoclavable: yes
"""
return Plate(
name=name,
size_x=127.76,
size_y=85.48,
size_z=44.24,
lid=None,
model="Cor_Axy_24_wellplate_10mL_Vb",
ordered_items=create_ordered_items_2d(
Well,
num_items_x=6,
num_items_y=4,
dx=9.8,
dy=7.2,
dz=1.2,
item_dx=18,
item_dy=18,
size_x=17.0,
size_y=17.0,
size_z=42,
bottom_type=WellBottomType.V,
material_z_thickness=1.0,
cross_section_type=CrossSectionType.RECTANGLE,
),
)
Now you can place this definition into any script that you want, instantly ![]()
I wonder:
Q3: Are you suggesting a website-based database with users contributing resource information straight into the database without a pull request into the database?
Q3.a: Do you see the issue with the requirement of being a GitHub user?
Q3.b: How would we validate contributions in that case?
One important aspect of the PLR Resource Library is that we aim to cross-validate all resources added to it.
Jumping the pull request stage sounds like it might make the cross-validation before addition to the Resource Library harder (and misses version-control?).
As @rickwierenga mentioned, we have been working on a repository-hosted text-based database for a while.
There is no major obstacle with building such a database. The general issue we found is simply resource naming conventions, resulting limited namespace, missing manufacturer information, and oftentimes that users misunderstand the difference between a supplier and the original manufacturer, all resources must be stored by the manufacturer’s
Q4: I suggest we have a separate thread to discuss this database and what you think would be useful for it?
We can share all the information about our current approach there without deviating this threads purpose further.