Skip to content

Commit

Permalink
feat(shared-data, labware-library): add deck riser definition and new…
Browse files Browse the repository at this point in the history
… Lid category to LL (#16410)

re AUTH-869, AUTH-892, PLAT-533, and AUTH-887

<!--
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

<!--
Describe your PR at a high level. State acceptance criteria and how this
PR fits into other work. Link issues, PRs, and other relevant resources.
-->

Adding a new deck riser definition with its image to shared data so it
can be displayed in the Labware Library, and updating the TC lid
definition to include a stacking offset for the deck riser. Also, adding
a new 'Lid' category to the Labware Library for the TC auto-sealing
lids.

## Test Plan and Hands on Testing
- Make sure the Opentrons Flex Deck Riser shows up in the Labware
Library's "Adapter" category
- Ensure that the “Lid” category appears on the left navigation of the
Labware Library site
- When the “Lid” category is selected, the Opentrons Tough PCR
Auto-Sealing Lid appears in the search results

For testing deck riser definition on a Flex:
- Run a protocol that have the gripper move a stack of TC lids from and
to the deck riser. Example protocol I used:

[deck_riser_with_tc_lid_test1.zip](https://github.com/user-attachments/files/17463215/deck_riser_with_tc_lid_test1.zip)


<!--
Describe your testing of the PR. Emphasize testing not reflected in the
code. Attach protocols, logs, screenshots and any other assets that
support your testing.
-->

## Changelog

<!--
List changes introduced by this PR considering future developers and the
end user. Give careful thought and clear documentation to breaking
changes.
-->
- Added the opentrons_flex_deck_riser definition to shared-data after
tested it with TC lids on the Flex
- Updated the opentrons_tough_pcr_auto_sealing_lid definition and added
its image to LL
- Updated files to include a 'Lid' category in LL

## Review requests

<!--
- What do you need from reviewers to feel confident this PR is ready to
merge?
- Ask questions.
-->

## 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.
-->

---------

Co-authored-by: shiyaochen <[email protected]>
  • Loading branch information
syao1226 and shiyaochen authored Oct 23, 2024
1 parent 2f8a751 commit bbe06f1
Show file tree
Hide file tree
Showing 13 changed files with 81 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ export function generateCompatibleLabwareForPipette(
(acc, definition) => {
if (
definition.allowedRoles != null &&
definition.allowedRoles.includes('adapter')
(definition.allowedRoles.includes('adapter') ||
definition.allowedRoles.includes('lid'))
) {
return acc
} else if (pipetteSpecs.channels === 1) {
Expand Down
4 changes: 4 additions & 0 deletions components/src/images/labware/measurement-guide/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,10 @@ const FOOTPRINT_DIAGRAMS: Diagrams = {
new URL(FOOTPRINT_IMAGE_RELATIVE_PATH, import.meta.url).href,
new URL(DIMENSIONS_HEIGHT_PLATE_IMAGE_RELATIVE_PATH, import.meta.url).href,
],
lid: [
new URL(FOOTPRINT_IMAGE_RELATIVE_PATH, import.meta.url).href,
new URL(DIMENSIONS_HEIGHT_PLATE_IMAGE_RELATIVE_PATH, import.meta.url).href,
],
}

const ALUM_BLOCK_FOOTPRINTS: Diagrams = {
Expand Down
9 changes: 9 additions & 0 deletions labware-library/src/components/labware-ui/labware-images.ts
Original file line number Diff line number Diff line change
Expand Up @@ -468,4 +468,13 @@ export const labwareImages: Record<string, string[]> = {
import.meta.url
).href,
],
opentrons_tough_pcr_auto_sealing_lid: [
new URL(
'../../images/opentrons_tough_pcr_auto_sealing_lid.jpg',
import.meta.url
).href,
],
opentrons_flex_deck_riser: [
new URL('../../images/opentrons_flex_deck_riser.jpg', import.meta.url).href,
],
}
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.
2 changes: 2 additions & 0 deletions labware-library/src/localization/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ export const CATEGORY_LABELS_BY_CATEGORY = {
trash: 'Trash',
other: 'Other',
adapter: 'Adapter',
lid: 'Lid',
}

export const PLURAL_CATEGORY_LABELS_BY_CATEGORY = {
Expand All @@ -20,6 +21,7 @@ export const PLURAL_CATEGORY_LABELS_BY_CATEGORY = {
wellPlate: 'Well Plates',
reservoir: 'Reservoirs',
aluminumBlock: 'Aluminum Blocks',
lid: 'Lid',
trash: 'Trashes',
other: 'Other',
}
Expand Down
6 changes: 6 additions & 0 deletions shared-data/js/labware.ts
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,9 @@ import opentronsFlex96Tiprack1000UlV1Uncasted from '../labware/definitions/2/ope
import opentronsFlex96Tiprack200UlV1Uncasted from '../labware/definitions/2/opentrons_flex_96_tiprack_200ul/1.json'
import opentronsFlex96Tiprack50UlV1Uncasted from '../labware/definitions/2/opentrons_flex_96_tiprack_50ul/1.json'
import opentronsFlex96TiprackAdapterV1Uncasted from '../labware/definitions/2/opentrons_flex_96_tiprack_adapter/1.json'
import opentronsFlexDeckRiserV1Uncasted from '../labware/definitions/2/opentrons_flex_deck_riser/1.json'
import opentronsFlexLidAbsorbancePlateReaderModuleV1Uncasted from '../labware/definitions/2/opentrons_flex_lid_absorbance_plate_reader_module/1.json'
import opentronsToughPcrAutoSealingLidV1Uncasted from '../labware/definitions/2/opentrons_tough_pcr_auto_sealing_lid/1.json'
import opentronsUniversalFlatAdapterV1Uncasted from '../labware/definitions/2/opentrons_universal_flat_adapter/1.json'
import opentronsUniversalFlatAdapterCorning384Wellplate112UlFlatV1Uncasted from '../labware/definitions/2/opentrons_universal_flat_adapter_corning_384_wellplate_112ul_flat/1.json'
import opentrons96DeepWellTempModAdapterV1Uncasted from '../labware/definitions/2/opentrons_96_deep_well_temp_mod_adapter/1.json'
Expand Down Expand Up @@ -285,7 +287,9 @@ const opentronsFlex96Tiprack1000UlV1 = opentronsFlex96Tiprack1000UlV1Uncasted as
const opentronsFlex96Tiprack200UlV1 = opentronsFlex96Tiprack200UlV1Uncasted as LabwareDefinition2
const opentronsFlex96Tiprack50UlV1 = opentronsFlex96Tiprack50UlV1Uncasted as LabwareDefinition2
const opentronsFlex96TiprackAdapterV1 = opentronsFlex96TiprackAdapterV1Uncasted as LabwareDefinition2
const opentronsFlexDeckRiserV1 = opentronsFlexDeckRiserV1Uncasted as LabwareDefinition2
const opentronsFlexLidAbsorbancePlateReaderModuleV1 = opentronsFlexLidAbsorbancePlateReaderModuleV1Uncasted as LabwareDefinition2
const opentronsToughPcrAutoSealingLidV1 = opentronsToughPcrAutoSealingLidV1Uncasted as LabwareDefinition2
const opentronsUniversalFlatAdapterV1 = opentronsUniversalFlatAdapterV1Uncasted as LabwareDefinition2
const opentronsUniversalFlatAdapterCorning384Wellplate112UlFlatV1 = opentronsUniversalFlatAdapterCorning384Wellplate112UlFlatV1Uncasted as LabwareDefinition2
const thermoscientificnunc96Wellplate1300UlV1 = thermoscientificnunc96Wellplate1300UlV1Uncasted as LabwareDefinition2
Expand Down Expand Up @@ -452,7 +456,9 @@ const latestDefs = {
opentronsFlex96Tiprack200UlV1,
opentronsFlex96Tiprack50UlV1,
opentronsFlex96TiprackAdapterV1,
opentronsFlexDeckRiserV1,
opentronsFlexLidAbsorbancePlateReaderModuleV1,
opentronsToughPcrAutoSealingLidV1,
opentronsUniversalFlatAdapterV1,
opentronsUniversalFlatAdapterCorning384Wellplate112UlFlatV1,
thermoscientificnunc96Wellplate1300UlV1,
Expand Down
2 changes: 1 addition & 1 deletion shared-data/js/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ export type LabwareDisplayCategory =
| 'trash'
| 'other'
| 'adapter'

| 'lid'
export type LabwareVolumeUnits = 'µL' | 'mL' | 'L'

// TODO(mc, 2019-05-29): Remove this enum in favor of string + exported
Expand Down
41 changes: 41 additions & 0 deletions shared-data/labware/definitions/2/opentrons_flex_deck_riser/1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
{
"ordering": [],
"brand": {
"brand": "Opentrons",
"brandId": []
},
"metadata": {
"displayName": "Opentrons Flex Deck Riser",
"displayCategory": "adapter",
"displayVolumeUnits": "\u00b5L",
"tags": []
},
"dimensions": {
"xDimension": 140,
"yDimension": 98,
"zDimension": 21
},
"wells": {},
"groups": [
{
"metadata": {},
"wells": []
}
],
"parameters": {
"format": "96Standard",
"quirks": [],
"isTiprack": false,
"isMagneticModuleCompatible": false,
"loadName": "opentrons_flex_deck_riser"
},
"namespace": "opentrons",
"version": 1,
"schemaVersion": 2,
"allowedRoles": ["adapter"],
"cornerOffsetFromSlot": {
"x": 0,
"y": 0,
"z": 0
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
},
"metadata": {
"displayName": "Opentrons Tough PCR Auto-Sealing Lid",
"displayCategory": "other",
"displayCategory": "lid",
"displayVolumeUnits": "\u00b5L",
"tags": []
},
Expand All @@ -17,7 +17,12 @@
"zDimension": 12.8
},
"wells": {},
"groups": [],
"groups": [
{
"metadata": {},
"wells": []
}
],
"cornerOffsetFromSlot": {
"x": 0,
"y": 0,
Expand Down Expand Up @@ -60,6 +65,11 @@
"x": 0,
"y": 0,
"z": 8.193
},
"opentrons_flex_deck_riser": {
"x": 0,
"y": 0,
"z": 0
}
},
"gripForce": 15,
Expand Down
3 changes: 2 additions & 1 deletion shared-data/labware/schemas/2.json
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,8 @@
"wellPlate",
"aluminumBlock",
"adapter",
"other"
"other",
"lid"
]
},
"safeString": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@ class DisplayCategory(str, Enum):
aluminumBlock = "aluminumBlock"
adapter = "adapter"
other = "other"
lid = "lid"


class LabwareRole(str, Enum):
Expand Down
1 change: 1 addition & 0 deletions shared-data/python/opentrons_shared_data/labware/types.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
Literal["aluminumBlock"],
Literal["adapter"],
Literal["other"],
Literal["lid"],
]

LabwareFormat = Union[
Expand Down

0 comments on commit bbe06f1

Please sign in to comment.