Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/resources/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,7 @@ library/nest
library/opentrons
library/porvair
library/revvity
library/sergi
library/thermo_fisher
library/vwr
```
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
9 changes: 9 additions & 0 deletions docs/resources/library/sergi.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Sergi Lab Supplies

Company page: [Sergi Lab Supplies](https://sergilabsupplies.com/?srsltid=AfmBOoqk2e3QkpWxvWEtSXS4ySJVoly7hvdiji_ehH5-s6tM3gi67SMu)

## Plate Adaptors

| Description | Image | PLR definition |
|--------------------|--------------------|--------------------|
| 'SergiLabSupplies_96_MagneticRack_250ul_Vb'<br>Part no.: 1047<br>[manufacturer website](https://sergilabsupplies.com/collections/magnetic-racks/products/96-wells-magnetic-rack-for-dna-rna-and-other-molecules-purification)<br>A separator for purifying DNA, RNA or other biomolecules with magnetic beads | ![](img/sergi/SergiLabSupplies_96_MagneticRack_250ul_Vb.jpg) | `SergiLabSupplies_96_MagneticRack_250ul_Vb` |
7 changes: 7 additions & 0 deletions docs/resources/library/vwr.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,10 @@ Company page: [Wikipedia](https://en.wikipedia.org/wiki/VWR_International)
| Description | Image | PLR definition |
|--------------------|--------------------|--------------------|
| 'VWRReagentReservoirs25mL'<br>Part no.: 89094<br>[manufacturer website](https://us.vwr.com/store/product/4694822/vwr-disposable-pipetting-reservoirs)<br>Polystyrene Reservoirs | ![](img/vwr/VWRReagentReservoirs25mL.jpg) | `VWRReagentReservoirs25mL` |

## Plates

| Description | Image | PLR definition |
|--------------------|--------------------|--------------------|
| 'VWR_1_troughplate_195000uL_Ub'<br>Part no.: 77575-302<br>[manufacturer website](https://www.avantorsciences.com/us/en/product/47763965/vwr-multi-channel-polypropylene-reagent-reservoirs?isCatNumSearch=true&searchedCatalogNumber=77575-302)<br>Polypropylene multi-channel reagent reservoirs | ![](img/vwr/VWR_1_troughplate_195000uL_Ub.jpg) | `VWR_1_troughplate_195000uL_Ub` |
| 'VWR_96_wellplate_2mL_Vb'<br>Part no.: 76329-998<br>[manufacturer website](https://us-prod2.vwr.com/store/product/26915641/vwr-96-well-deep-well-plates-with-automation-notches)<br>Polypropylene multi-channel reagent reservoirs | ![](img/vwr/VWR_96_wellplate_2mL_Vb.jpg) | `VWR_96_wellplate_2mL_Vb` |
1 change: 1 addition & 0 deletions pylabrobot/resources/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
from .resource_stack import ResourceStack
from .revvity import *
from .rotation import Rotation
from .sergi import *
from .tecan import *
from .thermo_fisher import *
from .tip_rack import TipRack, TipSpot
Expand Down
1 change: 1 addition & 0 deletions pylabrobot/resources/sergi/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from .plate_adapters import SergiLabSupplies_96_MagneticRack_250ul_Vb
29 changes: 29 additions & 0 deletions pylabrobot/resources/sergi/plate_adapters.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
"""Sergi Lab Supplies plate adapters"""

from pylabrobot.resources.plate_adapter import PlateAdapter


def SergiLabSupplies_96_MagneticRack_250ul_Vb(name: str) -> PlateAdapter:
"""
Sergi Lab Supplies Magnetic Rack [cat. no. 1047]
- Holds a 96-well PCR plate for DNA/RNA purification
- SBS footprint: 127.76 x 85.48 mm
- Rack height: 22.0 mm
- Pulls magnetic beads ~1-2 mm above bottom
"""

# measurements from technical drawing:
# https://sergilabsupplies.com/collections/magnetic-racks/products/96-wells-magnetic-rack-for-dna-rna-and-other-molecules-purification
return PlateAdapter(
name=name,
size_x=127.76, # from spec
size_y=85.48, # from spec
size_z=22.0, # from spec
dx=9.88, # measured (127.76 - 108) / 2 = 9.88
dy=4.74, # measured (85.48 - 76) / 2 = 4.74
dz=7.0, # measured
adapter_hole_size_x=7.0, # measured
adapter_hole_size_y=7.0, # measured
adapter_hole_size_z=16.0, # measured (22.0 - 6) = 16.0
model="SergiLabSupplies_96_MagneticRack_250ul_Vb",
)
1 change: 1 addition & 0 deletions pylabrobot/resources/vwr/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
from .plates import VWR_1_troughplate_195000uL_Ub, VWR_96_wellplate_2mL_Vb
from .troughs import VWRReagentReservoirs25mL
76 changes: 76 additions & 0 deletions pylabrobot/resources/vwr/plates.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
from pylabrobot.resources.plate import Plate
from pylabrobot.resources.utils import create_ordered_items_2d
from pylabrobot.resources.well import (
CrossSectionType,
Well,
WellBottomType,
)


def VWR_1_troughplate_195000uL_Ub(name: str) -> Plate:
"""VWR NA Cat. No. 77575-302"""
# technical drawing:
# https://github.com/PyLabRobot/pylabrobot/pull/574#issuecomment-2967988150

# product info
# https://us-prod2.vwr.com/store/product/47763965/vwr-multi-channel-polypropylene-reagent-reservoirs

return Plate(
name=name,
size_x=127.76, # from spec
size_y=85.48, # from spec
size_z=31.4, # from spec
lid=None,
model=VWR_1_troughplate_195000uL_Ub.__name__,
ordered_items=create_ordered_items_2d(
Well,
size_x=127.76 - (14.38 - 8.9 / 2) * 2, # from spec
size_y=85.48 - (11.24 - 8.9 / 2) * 2, # from spec
size_z=26.85, # from spec
dx=9.93, # 14.38 - (8.9/2) from spec
dy=6.79, # 11.24 - (8.9/2) from spec
dz=3.55, # from spec
material_z_thickness=1, # 31.4 - (26.85 + 3.55) from spec
item_dx=9.0, # from spec
item_dy=9.0, # from spec
num_items_x=1, # from spec
num_items_y=1, # from spec
cross_section_type=CrossSectionType.RECTANGLE,
bottom_type=WellBottomType.U,
max_volume=195000, # from spec 195 mL
),
)


def VWR_96_wellplate_2mL_Vb(name: str) -> Plate:
"""VWR NA Cat. No. 76329-998"""
# product info
# https://us-prod2.vwr.com/store/product/26915641/vwr-96-well-deep-well-plates-with-automation-notches

# no technical drawing available

return Plate(
name=name,
size_x=127.76, # standard
size_y=85.48, # standard
size_z=44.0, # measured
lid=None,
model=VWR_96_wellplate_2mL_Vb.__name__,
ordered_items=create_ordered_items_2d(
Well,
size_x=10.0, # measured
size_y=10.0, # measured
size_z=43.5, # measured
dx=9.0, # measured
dy=5.5, # measured
dz=0.5, # 44.0 - 43.5 = 0.5
material_z_thickness=1, # estimate
item_dx=10.0, # measured
item_dy=10.0, # measured
num_items_x=12, # from spec
num_items_y=8, # from spec
Comment on lines +70 to +71
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this should be 1, 1

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i thought num_items_x and num_items_y refer to the number of wells in the x and y direction - 12 x 8 wells should get us the 96 wells

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think what Rick was calling attention to is that since it is reservoir, it is essentially a single well plate.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

changed to
num_items_x=1
num_items_y=1

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rickwierenga just a quick question about num_items_x and num_items_y - the vwr plate does have 96 different wells, so setting num_items_x and num_items_y to 1 won't let me use aspirate96 - see picture below

20250618_152556

could you explain a little bit about why it should be represented as a single well plate - im new the wet lab work so apologies if this is a naive question

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

for the plate in the image, it is num_items_x = 12, num_items_y = 8 because they are clearly 8x12 wells.

this seems to be a different plate from the technical drawing above, which has one big well (with 96 drain points)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

got it, i'll double check with @maraxen about this and confirm the plate specifications

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks. it's possible you're talking about two separate plates i think :)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, they are two different plates. Eric will add both and hopefully we can merge

cross_section_type=CrossSectionType.RECTANGLE,
bottom_type=WellBottomType.V,
max_volume=2200, # from spec 2.2 ml
),
)