"""Classes to represent plates"""
from .Plate import Plate
from .Well import Well
def get_plate_class(num_wells):
return {
96: Plate96,
384: Plate384,
1536: Plate1536,
}[num_wells]
[docs]
class Plate96(Plate):
"""Base class for standard 96-well plates."""
num_rows = 8
num_columns = 12
[docs]
class Plate384(Plate):
"""Base class for standard 384-well plates."""
num_rows = 16
num_columns = 24
[docs]
class Plate1536(Plate):
"""Base class for 1536-well plates (32 rows, 48 columns)."""
num_rows = 32
num_columns = 48
[docs]
class Plate2x4(Plate):
"""Class for 8-well (2 x 4) plates such as colony plating plates."""
num_rows = 2
num_columns = 4
# Plate4ti0960
[docs]
class Plate4ti0960Well(Well):
"""Well for 96-well plate from 4titude."""
capacity = 150e-6
[docs]
class Plate4ti0960(Plate96):
"""96-well plate from 4titude."""
well_class = Plate4ti0960Well
# Plate4ti0130
[docs]
class Plate4ti0130Well(Well):
"""Well for 96-well plate with 2ml deepwells from 4titude."""
capacity = 1900e-6
[docs]
class Plate4ti0130(Plate96):
"""96-well plate with 2ml deepwells from 4titude."""
well_class = Plate4ti0130Well
# PlateLabcyteEchoLp0200Ldv
[docs]
class PlateLabcyteEchoLp0200LdvWell(Well):
"""Well for low dead volume 384-well Echo plate."""
capacity = 12e-6
echo_dead_volume = 3e-6
[docs]
class PlateLabcyteEchoLp0200Ldv(Plate384):
"""Low dead volume 384-well Echo plate."""
well_class = PlateLabcyteEchoLp0200LdvWell
# PlateLabcyteEchoP05525Pp
[docs]
class PlateLabcyteEchoP05525PpWell(Well):
"""Well for polypropylene 384-well ECHO plate."""
capacity = 50e-6
echo_dead_volume = 15e-6
[docs]
class PlateLabcyteEchoP05525Pp(Plate384):
"""Polypropylene 384-well ECHO plate."""
well_class = PlateLabcyteEchoP05525PpWell
[docs]
class Trough8x1(Plate):
"""Eight positions share the same content."""
num_rows = 8
num_columns = 1
def __init__(self, name, wells_data=None, plate_data=None):
Plate.__init__(self, name=name, wells_data=None, plate_data=None)
for well in self:
well.content = self["A1"].content