Skip to content

add nest_1_troughplate_195000uL_Vb and nest_1_troughplate_185000uL_Vb #315

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 10 commits into from
Feb 4, 2025
Binary file not shown.
Binary file not shown.
2 changes: 2 additions & 0 deletions docs/resources/library/nest.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,7 @@ Wuxi NEST Biotechnology Co., Ltd. a leading life science plastic consumables man

| Description | Image | PLR definition |
|-|-|-|
| 'nest_1_troughplate_195000uL_Vb'<br>Part no.: 360101<br>[manufacturer website](https://www.nest-biotech.com/reagent-reserviors/59178416.html)<br>- Material: polypropylene | ![](img/nest/nest_1_troughplate_195000uL_Vb.webp) | `nest_1_troughplate_195000uL_Vb` |
| 'nest_1_troughplate_185000uL_Vb'<br>Part no.: 360101<br>[manufacturer website](https://www.nest-biotech.com/reagent-reserviors/59178415.html)<br>- Material: polypropylene | ![](img/nest/nest_1_troughplate_185000uL_Vb.webp) | `nest_1_troughplate_185000uL_Vb` |
| 'nest_8_troughplate_22000uL_Vb'<br>Part no.: 360101<br>[manufacturer website](https://www.nestscientificusa.com/product/detail/513006470820794368)<br>- Material: polypropylene | ![](img/nest/nest_8_troughplate_22000uL_Vb.jpg) | `nest_8_troughplate_22000uL_Vb` |
| 'nest_12_troughplate_15000uL_Vb'<br>Part no.: 360102<br>[manufacturer website](https://www.nestscientificusa.com/product/detail/513006470820794368)<br>- Material: polypropylene | ![](img/nest/nest_12_troughplate_15000uL_Vb.jpg) | `nest_12_troughplate_15000uL_Vb` |
106 changes: 94 additions & 12 deletions pylabrobot/resources/nest/plates.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,21 +12,103 @@
)


def nest_1_troughplate_195000uL_Vb(name: str) -> Plate:
"""part no 360103. 96 tiny holes, but one container."""
well_size_x = 127.76 - (14.38 - 9 / 2) * 2 # from datasheet
well_size_y = 85.48 - (11.24 - 9 / 2) * 2 # from datasheet
well_kwargs = {
"size_x": well_size_x,
"size_y": well_size_y,
"size_z": 26.85, # from datasheet
"bottom_type": WellBottomType.V,
# an approximation: the trapezoid at the bottom is not fully defined in the datasheet
"compute_height_from_volume": lambda liquid_volume: compute_height_from_volume_rectangle(
liquid_volume=liquid_volume, well_length=well_size_x, well_width=well_size_y
),
"compute_volume_from_height": lambda liquid_height: compute_volume_from_height_rectangle(
liquid_height=liquid_height, well_length=well_size_x, well_width=well_size_y
),
"material_z_thickness": 31.4 - 26.85 - 3.55, # from datasheet
}

return Plate(
name=name,
size_x=127.76, # from datasheet
size_y=85.48, # from datasheet
size_z=31.4, # from datasheet
lid=None,
model=nest_1_troughplate_195000uL_Vb.__name__,
ordered_items=create_ordered_items_2d(
Well,
num_items_x=1,
num_items_y=1,
dx=14.38 - 9 / 2, # from datasheet
dy=11.24 - 9 / 2, # from datasheet
dz=3.55, # from datasheet
item_dx=9.0, # from datasheet
item_dy=9.0, # from datasheet
**well_kwargs,
),
)


def nest_1_troughplate_185000uL_Vb(name: str) -> Plate:
"""part no 360104. 384 tiny holes, but one container."""
real_well_d = (85.48 - 8.99 * 2) / 15 # 4.5. in the drawing it says 2.4 which is wrong

well_size_y = 127.76 - (12.13 - real_well_d / 2) * 2 # from datasheet
well_size_x = 85.48 - (8.99 - real_well_d / 2) * 2 # from datasheet
well_kwargs = {
"size_x": well_size_x,
"size_y": well_size_y,
"size_z": 26.85, # from datasheet
"bottom_type": WellBottomType.V,
# an approximation: the trapezoid at the bottom is not fully defined in the datasheet
"compute_height_from_volume": lambda liquid_volume: compute_height_from_volume_rectangle(
liquid_volume=liquid_volume, well_length=well_size_x, well_width=well_size_y
),
"compute_volume_from_height": lambda liquid_height: compute_volume_from_height_rectangle(
liquid_height=liquid_height, well_length=well_size_x, well_width=well_size_y
),
"material_z_thickness": 31.4 - 26.85 - 3.55, # from datasheet
}

return Plate(
name=name,
size_x=127.76, # from datasheet
size_y=85.48, # from datasheet
size_z=31.4, # from datasheet
lid=None,
model=nest_1_troughplate_185000uL_Vb.__name__,
ordered_items=create_ordered_items_2d(
Well,
num_items_x=1,
num_items_y=1,
dx=12.13 - real_well_d / 2, # from datasheet
dy=8.99 - real_well_d / 2, # from datasheet
dz=3.55, # from datasheet
item_dx=9.0, # from datasheet
item_dy=9.0, # from datasheet
**well_kwargs,
),
)


def nest_8_troughplate_22000uL_Vb(name: str) -> Plate:
"""part no 360101. not validated"""
well_length = 8.2 # from datasheet
well_width = 107.5 # from datasheet
well_size_x = 107.5 # from datasheet
well_size_y = 8.2 # from datasheet
well_kwargs = {
"size_x": well_width,
"size_y": well_length,
"size_x": well_size_x,
"size_y": well_size_y,
"size_z": 26.85, # from datasheet
"bottom_type": WellBottomType.V,
# an approximation: the trapezoid at the bottom is not fully defined in the datasheet
"compute_height_from_volume": lambda liquid_volume: compute_height_from_volume_rectangle(
liquid_volume=liquid_volume, well_length=well_length, well_width=well_width
liquid_volume=liquid_volume, well_length=well_size_x, well_width=well_size_y
),
"compute_volume_from_height": lambda liquid_height: compute_volume_from_height_rectangle(
liquid_height=liquid_height, well_length=well_length, well_width=well_width
liquid_height=liquid_height, well_length=well_size_x, well_width=well_size_y
),
"material_z_thickness": 31.4 - 26.85 - 3.55, # from datasheet
}
Expand Down Expand Up @@ -54,19 +136,19 @@ def nest_8_troughplate_22000uL_Vb(name: str) -> Plate:

def nest_12_troughplate_15000uL_Vb(name: str) -> Plate:
"""part no 360102."""
well_length = 71.2 # from datasheet
well_width = 8.2 # from datasheet
well_size_x = 8.2 # from datasheet
well_size_y = 71.2 # from datasheet
well_kwargs = {
"size_x": well_width,
"size_y": well_length,
"size_x": well_size_x,
"size_y": well_size_y,
"size_z": 26.85, # from datasheet
"bottom_type": WellBottomType.V,
# an approximation: the trapezoid at the bottom is not fully defined in the datasheet
"compute_height_from_volume": lambda liquid_volume: compute_height_from_volume_rectangle(
liquid_volume=liquid_volume, well_length=well_length, well_width=well_width
liquid_volume=liquid_volume, well_length=well_size_x, well_width=well_size_y
),
"compute_volume_from_height": lambda liquid_height: compute_volume_from_height_rectangle(
liquid_height=liquid_height, well_length=well_length, well_width=well_width
liquid_height=liquid_height, well_length=well_size_x, well_width=well_size_y
),
"material_z_thickness": 31.4 - 26.85 - 3.55, # from datasheet
}
Expand Down