Skip to content

Commit da5d225

Browse files
authored
feat(shared-data, app): Labware to Support MILLIPLEX Protocols (#19008)
<!-- Thanks for taking the time to open a Pull Request (PR)! Please make sure you've read the "Opening Pull Requests" section of our Contributing Guide: https://github.com/Opentrons/opentrons/blob/edge/CONTRIBUTING.md#opening-pull-requests GitHub provides robust markdown to format your PR. Links, diagrams, pictures, and videos along with text formatting make it possible to create a rich and informative PR. For more information on GitHub markdown, see: https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax To ensure your code is reviewed quickly and thoroughly, please fill out the sections below to the best of your ability! --> # Overview Addition of Universal Heatershaker Type B Adapter and MILLIPLEX Microtiter Plate + Lid ## Test Plan and Hands on Testing - Labware, lid, and adapter have been tested to confirm dimensions and liquid handling within the MILLIPLEX protocol ## Changelog - Added shared-data definitions for `milliplex_microtiter_plate` , `milliplex_microtiter_plate_lid` , `opentrons_universal_flat_adapter_type_b` - Added custom adapter SVG and documentation of compatibility with heatershaker ## Review requests - Ensure the type b adapter looks good visually ## Risk assessment <!-- - Indicate the level of attention this PR needs. - Provide context to guide reviewers. - Discuss trade-offs, coupling, and side effects. - Look for the possibility, even if you think it's small, that your change may affect some other part of the system. - For instance, changing return tip behavior may also change the behavior of labware calibration. - How do your unit tests and on hands on testing mitigate this PR's risks and the risk of future regressions? - Especially in high risk PRs, explain how you know your testing is enough. -->
1 parent c3f2c2e commit da5d225

File tree

12 files changed

+1342
-8
lines changed

12 files changed

+1342
-8
lines changed

api/docs/v2/modules/heater_shaker.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,8 @@ You can use these standalone adapter definitions to load Opentrons verified or c
9292
- API Load Name
9393
* - Opentrons Universal Flat Heater-Shaker Adapter
9494
- ``opentrons_universal_flat_adapter``
95+
* - Opentrons Universal Flat Heater-Shaker Adapter Type B
96+
- ``opentrons_universal_flat_adapter_type_b``
9597
* - Opentrons 96 PCR Heater-Shaker Adapter
9698
- ``opentrons_96_pcr_adapter``
9799
* - Opentrons 96 Deep Well Heater-Shaker Adapter

api/integration_testing/labware_stackup/data.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@
110110
("opentrons_tough_pcr_auto_sealing_lid", 2),
111111
("opentrons_tough_universal_lid", 1),
112112
("opentrons_universal_flat_adapter", 1),
113+
("opentrons_universal_flat_adapter_type_b", 1),
113114
("opentrons_universal_flat_adapter_corning_384_wellplate_112ul_flat", 1),
114115
("protocol_engine_lid_stack_object", 1),
115116
("thermoscientificnunc_96_wellplate_1300ul", 2),

app/src/organisms/Desktop/Labware/LabwareCard/index.tsx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,12 @@ export function LabwareCard(props: LabwareCardProps): JSX.Element {
4545

4646
const viewBox = getLabwareViewBox(definition)
4747

48-
const xDimensionOverride =
49-
definition.parameters.loadName === 'opentrons_universal_flat_adapter'
50-
? UNIVERSAL_FLAT_ADAPTER_X_DIMENSION
51-
: viewBox.xDimension
48+
const xDimensionOverride = [
49+
'opentrons_universal_flat_adapter',
50+
'opentrons_universal_flat_adapter_type_b',
51+
].includes(definition.parameters.loadName)
52+
? UNIVERSAL_FLAT_ADAPTER_X_DIMENSION
53+
: viewBox.xDimension
5254

5355
return (
5456
<Box

app/src/organisms/Desktop/Labware/LabwareDetails/Gallery.tsx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,12 @@ export function Gallery(props: GalleryProps): JSX.Element {
3434
const { parameters: params } = definition
3535

3636
const { minX, minY, xDimension, yDimension } = getLabwareViewBox(definition)
37-
const xDimensionOverride =
38-
params.loadName === 'opentrons_universal_flat_adapter'
39-
? UNIVERSAL_FLAT_ADAPTER_X_DIMENSION
40-
: xDimension
37+
const xDimensionOverride = [
38+
'opentrons_universal_flat_adapter',
39+
'opentrons_universal_flat_adapter_type_b',
40+
].includes(params.loadName)
41+
? UNIVERSAL_FLAT_ADAPTER_X_DIMENSION
42+
: xDimension
4143

4244
const [currentImage, setCurrentImage] = useState<number>(0)
4345
const render = (

app/src/organisms/ODD/QuickTransferFlow/constants.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ export const SINGLE_CHANNEL_COMPATIBLE_LABWARE = [
6464
'opentrons/geb_96_tiprack_1000ul/1',
6565
'opentrons/geb_96_tiprack_10ul/1',
6666
'opentrons/ibidi_96_square_well_plate_300ul/2',
67+
'opentrons/milliplex_microtiter_plate/1',
6768
'opentrons/nest_12_reservoir_15ml/2',
6869
'opentrons/nest_12_reservoir_22ml/1',
6970
'opentrons/nest_1_reservoir_195ml/3',
@@ -134,6 +135,7 @@ export const EIGHT_CHANNEL_COMPATIBLE_LABWARE = [
134135
'opentrons/geb_96_tiprack_1000ul/1',
135136
'opentrons/geb_96_tiprack_10ul/1',
136137
'opentrons/ibidi_96_square_well_plate_300ul/2',
138+
'opentrons/milliplex_microtiter_plate/1',
137139
'opentrons/nest_12_reservoir_15ml/2',
138140
'opentrons/nest_12_reservoir_22ml/1',
139141
'opentrons/nest_1_reservoir_195ml/3',
@@ -183,6 +185,7 @@ export const NINETY_SIX_CHANNEL_COMPATIBLE_LABWARE = [
183185
'opentrons/geb_96_tiprack_1000ul/1',
184186
'opentrons/geb_96_tiprack_10ul/1',
185187
'opentrons/ibidi_96_square_well_plate_300ul/2',
188+
'opentrons/milliplex_microtiter_plate/1',
186189
'opentrons/nest_12_reservoir_15ml/2',
187190
'opentrons/nest_12_reservoir_22ml/1',
188191
'opentrons/nest_1_reservoir_195ml/3',
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import { COLORS } from '../../../helix-design-system'
2+
3+
export function OpentronsUniversalFlatAdapterTypeB(): JSX.Element {
4+
return (
5+
<svg>
6+
<path
7+
fill="none"
8+
stroke={COLORS.black90}
9+
d="M 55.0327 34.1351 c -1.8356 0 -3.3182 1.4826 -3.3182 3.3182 c 0 1.8356 1.4826 3.3182 3.3182 3.3182 c 1.8356 0 3.3182 -1.4826 3.3182 -3.3182 C 58.3509 35.6177 56.8683 34.1351 55.0327 34.1351 z M 55.0327 39.9596 c -1.412 0 -2.5063 -1.1296 -2.5063 -2.5063 c 0 -1.412 1.1649 -2.5063 2.5063 -2.5063 c 1.412 0 2.5063 1.1296 2.5063 2.5063 C 57.539 38.83 56.4094 39.9596 55.0327 39.9596 z M 111.0538 5.7892 C 111.0538 2.5769 108.4416 0 105.2293 0 H 5.8245 C 2.6122 0 0 2.6122 0 5.8245 v 63.3635 c 0 3.2476 2.6122 5.8245 5.8245 5.8245 h 99.4048 c 3.2123 0 5.7539 -2.5416 5.8245 -5.7186 l 0 -0.6354 c 0 -0.5295 0.353 -0.9178 0.8472 -0.9178 h 1.7297 h 2.1533 h 10.3429 c 0.706 0 1.3061 -0.6707 1.3061 -1.4826 v -3.7065 c 0 -0.8119 -0.6001 -1.4826 -1.3061 -1.4826 l -14.1906 -0.0353 c -0.4942 0 -0.8825 -0.3883 -0.8825 -0.9178 v -0.6354 V 15.6379 v -0.6354 c 0 -0.5295 0.353 -0.9178 0.8472 -0.9178 h 1.7297 h 2.1533 h 10.3429 c 0.706 0 1.3061 -0.6707 1.3061 -1.4826 V 8.8603 c 0 -0.8119 -0.6001 -1.4826 -1.3061 -1.4826 l -14.1906 -0.0353 c -0.4942 0 -0.8825 -0.4236 -0.8825 -0.9178 M 120.1612 13.2728 V 8.1896 h 0.9884 v 5.0832 H 120.1612 z M 126.6564 8.8603 v 3.7065 c 0 0.353 -0.2471 0.6707 -0.5295 0.6707 h -4.1654 V 8.1896 h 4.1654 C 126.4093 8.1896 126.6564 8.5073 126.6564 8.8603 z M 119.3846 8.1896 v 5.0832 H 115.784 h -2.1533 H 111.901 c -0.3177 0 -0.6001 0.1059 -0.8472 0.2471 V 7.8719 c 0.2471 0.1765 0.5648 0.2824 0.8825 0.2824 L 119.3846 8.1896 z M 120.1612 66.9641 v -5.0832 h 0.9884 v 5.0832 H 120.1612 z M 126.6564 62.5869 v 3.7065 c 0 0.353 -0.2471 0.6707 -0.5295 0.6707 h -4.1654 v -5.0832 h 4.1654 C 126.4093 61.9162 126.6564 62.2339 126.6564 62.5869 z M 119.3846 61.9162 v 5.0832 H 115.784 h -2.1533 H 111.901 c -0.3177 0 -0.6001 0.1059 -0.8472 0.2471 v -5.6127 c 0.2471 0.1765 0.5648 0.2824 0.8825 0.2824 L 119.3846 61.9162 z M 110.2772 68.6938 v 0.5295 c 0 2.7887 -2.2945 5.0479 -5.0479 5.0479 H 5.8245 c -2.7887 0 -5.0479 -2.2945 -5.0479 -5.0479 V 5.8245 c 0 -2.7887 2.2945 -5.0479 5.0479 -5.0479 h 99.4048 c 2.7887 0 5.0479 2.2945 5.0479 5.0479 v 9.1427 v 0.6354 V 68.6938 z"
10+
/>
11+
<g transform="translate(90,50) rotate(-90)">
12+
<rect
13+
x="0"
14+
y="0"
15+
width="30"
16+
height="10"
17+
stroke={COLORS.black90}
18+
fill="none"
19+
strokeWidth="1"
20+
rx="2"
21+
/>
22+
<text
23+
x="-15"
24+
y="7"
25+
transform="scale(1,-1) rotate(180)"
26+
textAnchor="middle"
27+
fontSize="6"
28+
fontWeight="bold"
29+
fontFamily="sans-serif"
30+
fill={COLORS.black90}
31+
>
32+
Type B
33+
</text>
34+
</g>
35+
</svg>
36+
)
37+
}

components/src/hardware-sim/Labware/LabwareAdapter/index.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { OpentronsAutoclavableDeckRiser } from './OpentronsAutoclavableDeckRiser
77
import { OpentronsFlex96TiprackAdapter } from './OpentronsFlex96TiprackAdapter'
88
import { OpentronsToughPCRAutoSealingLid } from './OpentronsToughPCRAutoSealingLid'
99
import { OpentronsUniversalFlatAdapter } from './OpentronsUniversalFlatAdapter'
10+
import { OpentronsUniversalFlatAdapterTypeB } from './OpentronsUniversalFlatAdapterTypeB'
1011

1112
import type { LabwareDefinition } from '@opentrons/shared-data'
1213

@@ -16,6 +17,7 @@ const LABWARE_ADAPTER_LOADNAME_PATHS = {
1617
opentrons_aluminum_flat_bottom_plate: OpentronsAluminumFlatBottomPlate,
1718
opentrons_flex_96_tiprack_adapter: OpentronsFlex96TiprackAdapter,
1819
opentrons_universal_flat_adapter: OpentronsUniversalFlatAdapter,
20+
opentrons_universal_flat_adapter_type_b: OpentronsUniversalFlatAdapterTypeB,
1921
opentrons_tough_pcr_auto_sealing_lid: OpentronsToughPCRAutoSealingLid,
2022
opentrons_flex_deck_riser: OpentronsAutoclavableDeckRiser,
2123
}

labware-library/src/components/labware-ui/labware-images.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -383,6 +383,12 @@ export const labwareImages: Record<string, string[]> = {
383383
opentrons_universal_flat_adapter: [
384384
new URL('../../images/universal_flat_adapter.jpg', import.meta.url).href,
385385
],
386+
opentrons_universal_flat_adapter_type_b: [
387+
new URL(
388+
'../../images/opentrons_universal_flat_adapter_type_b.png',
389+
import.meta.url
390+
).href,
391+
],
386392
opentrons_aluminum_flat_bottom_plate: [
387393
new URL('../../images/flat_bottom_aluminum.png', import.meta.url).href,
388394
],
16.5 KB
Loading

0 commit comments

Comments
 (0)