|
| 1 | +""" Thermo Fisher & Thermo Fisher Scientific plates """ |
| 2 | + |
| 3 | +# pylint: disable=invalid-name |
| 4 | + |
| 5 | +from pylabrobot.resources.well import Well, WellBottomType, CrossSectionType |
| 6 | +from pylabrobot.resources.itemized_resource import create_equally_spaced |
| 7 | +from pylabrobot.resources.plate import Plate |
| 8 | + |
| 9 | +from pylabrobot.resources.volume_functions import calculate_liquid_volume_container_2segments_square_ubottom |
| 10 | + |
| 11 | + |
| 12 | +def _compute_volume_from_height_ThermoScientific_96_1200ul_Rd(h: float): |
| 13 | + if h > 20.5: |
| 14 | + raise ValueError(f"Height {h} is too large for ThermoScientific_96_1200ul_Rd") |
| 15 | + return calculate_liquid_volume_container_2segments_square_ubottom( |
| 16 | + x=8.15, |
| 17 | + h_cuboid=16.45, |
| 18 | + liquid_height=h) |
| 19 | + |
| 20 | + |
| 21 | +#: ThermoScientific_96_1200ul_Rd |
| 22 | +def ThermoScientific_96_1200ul_Rd(name: str, with_lid: bool = False) -> Plate: |
| 23 | + """ Fisher Scientific/Thermo Fisher cat. no.: 10243223/AB1127. |
| 24 | + - Material: Polypropylene (AB-1068, polystyrene) |
| 25 | + - Suitable for Autoclaving (15 minutes at 121°C) or Gamma Irradiation |
| 26 | + - Resistant to DMSO (100%); Ethanol (100%); Isopropanol (100%) |
| 27 | + - Round well shape designed for optimal sample recovery or square shape to |
| 28 | + maximize sample volume within ANSI footprint design |
| 29 | + - Each well has an independent sealing rim to prevent cross-contamination |
| 30 | + - U-bottomed wells ideally suited for sample resuspension |
| 31 | + - Sealing options: Adhesive Seals, Heat Seals, Storage Plate Caps and Cap |
| 32 | + Strips, and Storage Plate Sealing Mats |
| 33 | + - Cleanroom manufactured |
| 34 | + - ANSI-format for compatibility with automated systems |
| 35 | + """ |
| 36 | + return Plate( |
| 37 | + name=name, |
| 38 | + size_x=127.0, |
| 39 | + size_y=86.0, |
| 40 | + size_z=24.0, |
| 41 | + with_lid=with_lid, |
| 42 | + model="ThermoScientific_96_1200ul_Rd", |
| 43 | + lid_height=5, |
| 44 | + items=create_equally_spaced(Well, |
| 45 | + num_items_x=12, |
| 46 | + num_items_y=8, |
| 47 | + dx=9.6, |
| 48 | + dy=7.3, |
| 49 | + dz=0.2, |
| 50 | + item_dx=9, |
| 51 | + item_dy=9, |
| 52 | + size_x=8.3, |
| 53 | + size_y=8.3, |
| 54 | + size_z=20.5, |
| 55 | + bottom_type=WellBottomType.U, |
| 56 | + compute_volume_from_height=_compute_volume_from_height_ThermoScientific_96_1200ul_Rd, |
| 57 | + cross_section_type=CrossSectionType.RECTANGLE |
| 58 | + ), |
| 59 | + ) |
| 60 | + |
| 61 | + |
| 62 | +#: ThermoScientific_96_1200ul_Rd_L |
| 63 | +def ThermoScientific_96_1200ul_Rd_L(name: str, with_lid: bool = False) -> Plate: |
| 64 | + return ThermoScientific_96_1200ul_Rd(name=name, with_lid=with_lid) |
| 65 | + |
| 66 | + |
| 67 | +#: ThermoScientific_96_1200ul_Rd_P |
| 68 | +def ThermoScientific_96_1200ul_Rd_P(name: str, with_lid: bool = False) -> Plate: |
| 69 | + return ThermoScientific_96_1200ul_Rd(name=name, with_lid=with_lid).rotated(90) |
0 commit comments