diff --git a/app/src/assets/images/labware/opentrons_flex_deck_riser.png b/app/src/assets/images/labware/opentrons_flex_deck_riser.png new file mode 100644 index 00000000000..a06f26bf445 Binary files /dev/null and b/app/src/assets/images/labware/opentrons_flex_deck_riser.png differ diff --git a/app/src/assets/images/labware/opentrons_tough_pcr_auto_sealing_lid.png b/app/src/assets/images/labware/opentrons_tough_pcr_auto_sealing_lid.png new file mode 100644 index 00000000000..bc0cffa3df6 Binary files /dev/null and b/app/src/assets/images/labware/opentrons_tough_pcr_auto_sealing_lid.png differ diff --git a/app/src/assets/localization/en/protocol_setup.json b/app/src/assets/localization/en/protocol_setup.json index f2e284e607e..94e679b4aba 100644 --- a/app/src/assets/localization/en/protocol_setup.json +++ b/app/src/assets/localization/en/protocol_setup.json @@ -120,6 +120,7 @@ "labware_position_check_step_description": "Recommended workflow that helps you verify the position of each labware on the deck.", "labware_position_check_step_title": "Labware Position Check", "labware_position_check_text": "Labware Position Check is a recommended workflow that helps you verify the position of each labware on the deck. During this check, you can create Labware Offsets that adjust how the robot moves to each labware in the X, Y and Z directions.", + "labware_quantity": "Quantity: {{quantity}}", "labware_setup_step_description": "Gather the following labware and full tip racks. To run your protocol without Labware Position Check, place and secure labware in their initial locations.", "labware_setup_step_title": "Labware", "last_calibrated": "Last calibrated: {{date}}", diff --git a/app/src/molecules/LabwareStackModal/LabwareStackModal.tsx b/app/src/molecules/LabwareStackModal/LabwareStackModal.tsx index 9c6602023a8..7e7bd0766c7 100644 --- a/app/src/molecules/LabwareStackModal/LabwareStackModal.tsx +++ b/app/src/molecules/LabwareStackModal/LabwareStackModal.tsx @@ -32,6 +32,8 @@ import { THERMOCYCLER_MODULE_TYPE, } from '@opentrons/shared-data' import tiprackAdapter from '/app/assets/images/labware/opentrons_flex_96_tiprack_adapter.png' +import tcLid from '/app/assets/images/labware/opentrons_tough_pcr_auto_sealing_lid.png' +import deckRiser from '/app/assets/images/labware/opentrons_flex_deck_riser.png' import type { RobotType, RunTimeCommand } from '@opentrons/shared-data' @@ -58,6 +60,13 @@ const LIST_ITEM_STYLE = css` justify-content: ${JUSTIFY_SPACE_BETWEEN}; ` +const ADAPTER_LOAD_NAMES_TO_SHOW_IMAGE: { [key: string]: string } = { + opentrons_flex_96_tiprack_adapter: tiprackAdapter, + opentrons_flex_deck_riser: deckRiser, +} +const LABWARE_LOAD_NAMES_TO_SHOW_IMAGE: { [key: string]: string } = { + opentrons_tough_pcr_auto_sealing_lid: tcLid, +} interface LabwareStackModalProps { labwareIdTop: string commands: RunTimeCommand[] | null @@ -87,6 +96,7 @@ export const LabwareStackModal = ( moduleModel, labwareName, labwareNickname, + labwareQuantity, } = getLocationInfoNames(labwareIdTop, commands) const topDefinition = getSlotLabwareDefinition(labwareIdTop, commands) @@ -106,7 +116,26 @@ export const LabwareStackModal = ( moduleModel != null ? getModuleDisplayName(moduleModel) : null ?? '' const isAdapterForTiprack = adapterDef?.parameters.loadName === 'opentrons_flex_96_tiprack_adapter' - const tiprackAdapterImg = + + const labwareImg = Object.keys(LABWARE_LOAD_NAMES_TO_SHOW_IMAGE).includes( + topDefinition.parameters.loadName + ) ? ( + + ) : null + + const adapterImg = + adapterDef != null && + Object.keys(ADAPTER_LOAD_NAMES_TO_SHOW_IMAGE).includes( + adapterDef.parameters.loadName + ) ? ( + + ) : null const moduleImg = moduleModel != null ? ( @@ -139,25 +168,33 @@ export const LabwareStackModal = ( 1 + ? t('labware_quantity', { quantity: labwareQuantity }) + : labwareNickname + } /> - - - + {labwareImg != null ? ( + {labwareImg} + ) : ( + + + + )} - {adapterDef != null ? ( <> + - {isAdapterForTiprack ? ( - {tiprackAdapterImg} + {adapterImg != null ? ( + {adapterImg} ) : ( )} - {moduleModel != null ? ( - - ) : null} ) : null} {moduleModel != null ? ( - - - {moduleImg} - + <> + + + + {moduleImg} + + ) : null} @@ -200,24 +237,35 @@ export const LabwareStackModal = ( <> - - - - + 1 + ? t('labware_quantity', { quantity: labwareQuantity }) + : labwareNickname + } + /> + {labwareImg != null ? ( + {labwareImg} + ) : ( + + + + )} - {adapterDef != null ? ( <> + - {isAdapterForTiprack ? ( - {tiprackAdapterImg} + {adapterImg != null ? ( + {adapterImg} ) : ( )} - {moduleModel != null ? ( - - ) : null} ) : null} {moduleModel != null ? ( - - - {moduleImg} - + <> + + + + {moduleImg} + + ) : null} @@ -253,31 +301,23 @@ interface LabwareStackLabelProps { } function LabwareStackLabel(props: LabwareStackLabelProps): JSX.Element { const { text, subText, isOnDevice = false } = props - return isOnDevice ? ( - - {text} - {subText != null ? ( - - {subText} - - ) : null} - - ) : ( + return ( - {text} + + {text} + {subText != null ? ( - + {subText} ) : null} diff --git a/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/LabwareListItem.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/LabwareListItem.tsx index 6269be78e83..5b0bbae6bbf 100644 --- a/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/LabwareListItem.tsx +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/LabwareListItem.tsx @@ -26,7 +26,7 @@ import { } from '@opentrons/components' import { useCreateLiveCommandMutation } from '@opentrons/react-api-client' import { - getLabwareDisplayName, + getTopLabwareInfo, getModuleDisplayName, getModuleType, HEATERSHAKER_MODULE_TYPE, @@ -37,6 +37,7 @@ import { THERMOCYCLER_MODULE_V2, } from '@opentrons/shared-data' +import { getLocationInfoNames } from '/app/transformations/commands' import { ToggleButton } from '/app/atoms/buttons' import { Divider } from '/app/atoms/structure' import { SecureLabwareModal } from './SecureLabwareModal' @@ -47,14 +48,10 @@ import type { RunTimeCommand, ModuleType, LabwareDefinition2, - LoadModuleRunTimeCommand, LoadLabwareRunTimeCommand, } from '@opentrons/shared-data' import type { ModuleRenderInfoForProtocol } from '/app/resources/runs' -import type { - LabwareSetupItem, - NestedLabwareInfo, -} from '/app/transformations/commands' +import type { LabwareSetupItem } from '/app/transformations/commands' import type { ModuleTypesThatRequireExtraAttention } from '../utils/getModuleTypesThatRequireExtraAttention' const LabwareRow = styled.div` @@ -73,7 +70,6 @@ interface LabwareListItemProps extends LabwareSetupItem { extraAttentionModules: ModuleTypesThatRequireExtraAttention[] isFlex: boolean commands: RunTimeCommand[] - nestedLabwareInfo: NestedLabwareInfo | null showLabwareSVG?: boolean } @@ -82,37 +78,48 @@ export function LabwareListItem( ): JSX.Element | null { const { attachedModuleInfo, - nickName, + nickName: bottomLabwareNickname, initialLocation, - definition, moduleModel, - moduleLocation, extraAttentionModules, isFlex, commands, - nestedLabwareInfo, showLabwareSVG, + labwareId: bottomLabwareId, } = props + const loadLabwareCommands = commands?.filter( + (command): command is LoadLabwareRunTimeCommand => + command.commandType === 'loadLabware' + ) + + const { topLabwareId, topLabwareDefinition } = getTopLabwareInfo( + bottomLabwareId ?? '', + loadLabwareCommands + ) + const { + slotName, + labwareName, + labwareNickname, + labwareQuantity, + adapterName: bottomLabwareName, + } = getLocationInfoNames(topLabwareId, commands) + + const isStacked = + labwareQuantity > 1 || + bottomLabwareId != topLabwareId || + moduleModel != null + const { i18n, t } = useTranslation('protocol_setup') const [ secureLabwareModalType, setSecureLabwareModalType, ] = useState(null) - const labwareDisplayName = getLabwareDisplayName(definition) const { createLiveCommand } = useCreateLiveCommandMutation() const [isLatchLoading, setIsLatchLoading] = useState(false) const [isLatchClosed, setIsLatchClosed] = useState(false) - let slotInfo: string | null = null - - if (initialLocation !== 'offDeck' && 'slotName' in initialLocation) { - slotInfo = initialLocation.slotName - } else if ( - initialLocation !== 'offDeck' && - 'addressableAreaName' in initialLocation - ) { - slotInfo = initialLocation.addressableAreaName - } else if (initialLocation === 'offDeck') { + let slotInfo: string | null = slotName + if (initialLocation === 'offDeck') { slotInfo = i18n.format(t('off_deck'), 'upperCase') } @@ -126,50 +133,20 @@ export function LabwareListItem( | HeaterShakerOpenLatchCreateCommand | HeaterShakerCloseLatchCreateCommand - if (initialLocation !== 'offDeck' && 'labwareId' in initialLocation) { - const loadedAdapter = commands.find( - (command): command is LoadLabwareRunTimeCommand => - command.commandType === 'loadLabware' && - command.result?.labwareId === initialLocation.labwareId - ) - const loadedAdapterLocation = loadedAdapter?.params.location - - if (loadedAdapterLocation != null && loadedAdapterLocation !== 'offDeck') { - if ('slotName' in loadedAdapterLocation) { - slotInfo = loadedAdapterLocation.slotName - } else if ('moduleId' in loadedAdapterLocation) { - const module = commands.find( - (command): command is LoadModuleRunTimeCommand => - command.commandType === 'loadModule' && - command.result?.moduleId === loadedAdapterLocation.moduleId - ) - if (module != null) { - slotInfo = module.params.location.slotName - moduleDisplayName = getModuleDisplayName(module.params.model) - } - } - } - } - if ( - initialLocation !== 'offDeck' && - 'moduleId' in initialLocation && - moduleLocation != null && - moduleModel != null - ) { - const moduleName = getModuleDisplayName(moduleModel) + if (moduleModel != null) { moduleType = getModuleType(moduleModel) + moduleDisplayName = getModuleDisplayName(moduleModel) + const moduleTypeNeedsAttention = extraAttentionModules.find( extraAttentionModType => extraAttentionModType === moduleType ) - let moduleSlotName = moduleLocation.slotName - if (moduleType === THERMOCYCLER_MODULE_TYPE) { - moduleSlotName = isFlex ? TC_MODULE_LOCATION_OT3 : TC_MODULE_LOCATION_OT2 - } - slotInfo = moduleSlotName - moduleDisplayName = moduleName + switch (moduleTypeNeedsAttention) { case MAGNETIC_MODULE_TYPE: case THERMOCYCLER_MODULE_TYPE: + if (moduleType === THERMOCYCLER_MODULE_TYPE) { + slotInfo = isFlex ? TC_MODULE_LOCATION_OT3 : TC_MODULE_LOCATION_OT2 + } if (moduleModel !== THERMOCYCLER_MODULE_V2) { secureLabwareInstructions = ( )} - {nestedLabwareInfo != null || moduleDisplayName != null ? ( - - ) : null} + {isStacked ? : null} - {nestedLabwareInfo != null && - nestedLabwareInfo?.sharedSlotId === slotInfo ? ( - <> - - + + {showLabwareSVG && topLabwareDefinition != null ? ( + + ) : null} + + + {labwareName} + + - - {nestedLabwareInfo.nestedLabwareDisplayName} - - - {nestedLabwareInfo.nestedLabwareNickName} - - + {labwareQuantity > 1 + ? t('labware_quantity', { quantity: labwareQuantity }) + : labwareNickname} + + + + {bottomLabwareName != null ? ( + <> + + + {bottomLabwareName} + + + {bottomLabwareNickname} + + ) : null} - - {showLabwareSVG ? ( - - ) : null} - - - {labwareDisplayName} - - - {nickName} - - - {moduleDisplayName != null ? ( <> @@ -371,9 +352,7 @@ export function LabwareListItem( marginTop="3px" > ))} diff --git a/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/SetupLabwareList.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/SetupLabwareList.tsx index 647f1543677..b71c84da0f8 100644 --- a/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/SetupLabwareList.tsx +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/SetupLabwareList.tsx @@ -6,10 +6,7 @@ import { StyledText, COLORS, } from '@opentrons/components' -import { - getLabwareSetupItemGroups, - getNestedLabwareInfo, -} from '/app/transformations/commands' +import { getLabwareSetupItemGroups } from '/app/transformations/commands' import { LabwareListItem } from './LabwareListItem' import type { RunTimeCommand } from '@opentrons/shared-data' @@ -56,6 +53,7 @@ export function SetupLabwareList( {allItems.map((labwareItem, index) => { + // filtering out all labware that aren't on a module or the deck const labwareOnAdapter = allItems.find( item => labwareItem.initialLocation !== 'offDeck' && @@ -70,7 +68,6 @@ export function SetupLabwareList( extraAttentionModules={extraAttentionModules} {...labwareItem} isFlex={isFlex} - nestedLabwareInfo={getNestedLabwareInfo(labwareItem, commands)} /> ) })} diff --git a/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/SetupLabwareMap.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/SetupLabwareMap.tsx index 0334496fd6b..c8bc460bbf4 100644 --- a/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/SetupLabwareMap.tsx +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/SetupLabwareMap.tsx @@ -12,7 +12,7 @@ import { FLEX_ROBOT_TYPE, getDeckDefFromRobotType, getSimplestDeckConfigForProtocol, - parseInitialLoadedLabwareByAdapter, + getTopLabwareInfo, THERMOCYCLER_MODULE_V1, } from '@opentrons/shared-data' @@ -22,14 +22,17 @@ import { getProtocolModulesInfo, getLabwareRenderInfo, } from '/app/transformations/analysis' +import { LabwareStackModal } from '/app/molecules/LabwareStackModal' import { getStandardDeckViewLayerBlockList } from '/app/local-resources/deck_configuration' import { OffDeckLabwareList } from './OffDeckLabwareList' +import type { LabwareOnDeck } from '@opentrons/components' import type { CompletedProtocolAnalysis, ProtocolAnalysisOutput, + LoadLabwareRunTimeCommand, + RunTimeCommand, } from '@opentrons/shared-data' -import { LabwareStackModal } from '/app/molecules/LabwareStackModal' interface SetupLabwareMapProps { runId: string @@ -49,31 +52,25 @@ export function SetupLabwareMap({ if (protocolAnalysis == null) return null - const commands = protocolAnalysis.commands + const commands: RunTimeCommand[] = protocolAnalysis.commands + const loadLabwareCommands = commands?.filter( + (command): command is LoadLabwareRunTimeCommand => + command.commandType === 'loadLabware' + ) const robotType = protocolAnalysis.robotType ?? FLEX_ROBOT_TYPE const deckDef = getDeckDefFromRobotType(robotType) const protocolModulesInfo = getProtocolModulesInfo(protocolAnalysis, deckDef) - const initialLoadedLabwareByAdapter = parseInitialLoadedLabwareByAdapter( - commands - ) - const modulesOnDeck = protocolModulesInfo.map(module => { - const labwareInAdapterInMod = - module.nestedLabwareId != null - ? initialLoadedLabwareByAdapter[module.nestedLabwareId] - : null - // only rendering the labware on top most layer so - // either the adapter or the labware are rendered but not both - const topLabwareDefinition = - labwareInAdapterInMod?.result?.definition ?? module.nestedLabwareDef - const topLabwareId = - labwareInAdapterInMod?.result?.labwareId ?? module.nestedLabwareId - const topLabwareDisplayName = - labwareInAdapterInMod?.params.displayName ?? - module.nestedLabwareDisplayName + const isLabwareStacked = + module.nestedLabwareId != null && module.nestedLabwareDef != null + const { + topLabwareId, + topLabwareDefinition, + topLabwareDisplayName, + } = getTopLabwareInfo(module.nestedLabwareId ?? '', loadLabwareCommands) return { moduleModel: module.moduleDef.model, @@ -84,15 +81,9 @@ export function SetupLabwareMap({ : {}, nestedLabwareDef: topLabwareDefinition, - highlightLabware: - topLabwareDefinition != null && - topLabwareId != null && - hoverLabwareId === topLabwareId, - highlightShadowLabware: - topLabwareDefinition != null && - topLabwareId != null && - hoverLabwareId === topLabwareId, - stacked: topLabwareDefinition != null && topLabwareId != null, + highlightLabware: hoverLabwareId === topLabwareId, + highlightShadowLabware: hoverLabwareId === topLabwareId, + stacked: isLabwareStacked, moduleChildren: ( // open modal ) : null} @@ -130,59 +121,59 @@ export function SetupLabwareMap({ const labwareRenderInfo = getLabwareRenderInfo(protocolAnalysis, deckDef) - const labwareOnDeck = map( + const labwareOnDeck: Array = map( labwareRenderInfo, - ({ labwareDef, displayName, slotName }, labwareId) => { - const labwareInAdapter = initialLoadedLabwareByAdapter[labwareId] - // only rendering the labware on top most layer so - // either the adapter or the labware are rendered but not both - const topLabwareDefinition = - labwareInAdapter?.result?.definition ?? labwareDef - const topLabwareId = labwareInAdapter?.result?.labwareId ?? labwareId - const topLabwareDisplayName = - labwareInAdapter?.params.displayName ?? displayName - const isLabwareInStack = - topLabwareDefinition != null && - topLabwareId != null && - labwareInAdapter != null - - return { - labwareLocation: { slotName }, - definition: topLabwareDefinition, + ({ slotName }, labwareId) => { + const { topLabwareId, + topLabwareDefinition, topLabwareDisplayName, - highlight: isLabwareInStack && hoverLabwareId === topLabwareId, - highlightShadow: isLabwareInStack && hoverLabwareId === topLabwareId, - labwareChildren: ( - { - if (isLabwareInStack) { - setLabwareStackDetailsLabwareId(topLabwareId) - } - }} - onMouseEnter={() => { - if (topLabwareDefinition != null && topLabwareId != null) { - setHoverLabwareId(() => topLabwareId) - } - }} - onMouseLeave={() => { - setHoverLabwareId(null) - }} - > - - - ), - stacked: isLabwareInStack, - } + } = getTopLabwareInfo(labwareId, loadLabwareCommands) + const isLabwareInStack = labwareId !== topLabwareId + return topLabwareDefinition != null + ? { + labwareLocation: { slotName }, + definition: topLabwareDefinition, + highlight: isLabwareInStack && hoverLabwareId === topLabwareId, + highlightShadow: + isLabwareInStack && hoverLabwareId === topLabwareId, + stacked: isLabwareInStack, + labwareChildren: ( + { + if (isLabwareInStack) { + setLabwareStackDetailsLabwareId(topLabwareId) + } + }} + onMouseEnter={() => { + if (topLabwareDefinition != null && topLabwareId != null) { + setHoverLabwareId(() => topLabwareId) + } + }} + onMouseLeave={() => { + setHoverLabwareId(null) + }} + > + {topLabwareDefinition != null ? ( + + ) : null} + + ), + } + : null } ) + const labwareOnDeckFiltered: LabwareOnDeck[] = labwareOnDeck.filter( + (labware): labware is LabwareOnDeck => labware != null + ) + return ( @@ -191,7 +182,7 @@ export function SetupLabwareMap({ deckConfig={deckConfig} deckLayerBlocklist={getStandardDeckViewLayerBlockList(robotType)} robotType={robotType} - labwareOnDeck={labwareOnDeck} + labwareOnDeck={labwareOnDeckFiltered} modulesOnDeck={modulesOnDeck} /> diff --git a/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/__tests__/LabwareListItem.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/__tests__/LabwareListItem.test.tsx index 904395f7c98..50afda3d92f 100644 --- a/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/__tests__/LabwareListItem.test.tsx +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/__tests__/LabwareListItem.test.tsx @@ -3,7 +3,10 @@ import { fireEvent, screen } from '@testing-library/react' import { describe, it, beforeEach, vi, expect } from 'vitest' import { MemoryRouter } from 'react-router-dom' -import { opentrons96PcrAdapterV1 } from '@opentrons/shared-data' +import { + opentrons96PcrAdapterV1, + getTopLabwareInfo, +} from '@opentrons/shared-data' import { useCreateLiveCommandMutation } from '@opentrons/react-api-client' import { renderWithProviders } from '/app/__testing-utils__' @@ -14,6 +17,7 @@ import { mockTemperatureModule, mockThermocycler, } from '/app/redux/modules/__fixtures__' +import { getLocationInfoNames } from '/app/transformations/commands' import { mockLabwareDef } from '/app/organisms/LabwarePositionCheck/__fixtures__/mockLabwareDef' import { SecureLabwareModal } from '../SecureLabwareModal' import { LabwareListItem } from '../LabwareListItem' @@ -28,7 +32,15 @@ import type { AttachedModule } from '/app/redux/modules/types' import type { ModuleRenderInfoForProtocol } from '/app/resources/runs' vi.mock('../SecureLabwareModal') +vi.mock('/app/transformations/commands') vi.mock('@opentrons/react-api-client') +vi.mock('@opentrons/shared-data', async importOriginal => { + const actualSharedData = await importOriginal() + return { + ...actualSharedData, + getTopLabwareInfo: vi.fn(), + } +}) const mockAdapterDef = opentrons96PcrAdapterV1 as LabwareDefinition2 const mockAdapterId = 'mockAdapterId' @@ -87,12 +99,23 @@ describe('LabwareListItem', () => { vi.mocked(useCreateLiveCommandMutation).mockReturnValue({ createLiveCommand: mockCreateLiveCommand, } as any) + vi.mocked(getLocationInfoNames).mockReturnValue({ + slotName: '7', + labwareName: 'Mock Labware Definition', + labwareNickname: 'nickName', + labwareQuantity: 1, + }) + vi.mocked(getTopLabwareInfo).mockReturnValue({ + topLabwareId: '1', + topLabwareDefinition: mockLabwareDef, + }) }) it('renders the correct info for a thermocycler (OT2), clicking on secure labware instructions opens the modal', () => { render({ commands: [], nickName: mockNickName, + labwareId: '7', definition: mockLabwareDef, initialLocation: { moduleId: mockModuleId }, moduleModel: 'thermocyclerModuleV1' as ModuleModel, @@ -107,7 +130,6 @@ describe('LabwareListItem', () => { } as any) as ModuleRenderInfoForProtocol, }, isFlex: false, - nestedLabwareInfo: null, }) screen.getByText('Mock Labware Definition') screen.getByText('nickName') @@ -137,7 +159,6 @@ describe('LabwareListItem', () => { } as any) as ModuleRenderInfoForProtocol, }, isFlex: true, - nestedLabwareInfo: null, }) screen.getByText('Mock Labware Definition') screen.getByText('A1+B1') @@ -168,7 +189,6 @@ describe('LabwareListItem', () => { } as any) as ModuleRenderInfoForProtocol, }, isFlex: false, - nestedLabwareInfo: null, }) screen.getByText('Mock Labware Definition') screen.getByTestId('slot_info_7') @@ -203,7 +223,6 @@ describe('LabwareListItem', () => { } as any) as ModuleRenderInfoForProtocol, }, isFlex: false, - nestedLabwareInfo: null, }) screen.getByText('Mock Labware Definition') screen.getByTestId('slot_info_7') @@ -245,7 +264,7 @@ describe('LabwareListItem', () => { nickName: mockNickName, definition: mockLabwareDef, initialLocation: { labwareId: mockAdapterId }, - moduleModel: 'temperatureModuleV1' as ModuleModel, + moduleModel: 'temperatureModuleV2' as ModuleModel, moduleLocation: mockModuleSlot, extraAttentionModules: [], attachedModuleInfo: { @@ -262,18 +281,11 @@ describe('LabwareListItem', () => { } as any) as ModuleRenderInfoForProtocol, }, isFlex: false, - nestedLabwareInfo: { - nestedLabwareDisplayName: 'mock nested display name', - sharedSlotId: '7', - nestedLabwareNickName: 'nestedLabwareNickName', - nestedLabwareDefinition: mockLabwareDef, - }, }) screen.getByText('Mock Labware Definition') screen.getAllByText('7') screen.getByText('Temperature Module GEN2') - screen.getByText('mock nested display name') - screen.getByText('nestedLabwareNickName') + screen.getByText('Mock Labware Definition') screen.getByText('nickName') }) @@ -293,10 +305,17 @@ describe('LabwareListItem', () => { z: 1.2, }, } as any + vi.mocked(getLocationInfoNames).mockReturnValue({ + slotName: 'A2', + labwareName: 'Mock Labware Name', + labwareNickname: 'labware nick name', + labwareQuantity: 1, + adapterName: 'mock adapter name', + }) render({ commands: [mockAdapterLoadCommand], - nickName: mockNickName, + nickName: 'mock adapter nick name', definition: mockLabwareDef, initialLocation: { labwareId: mockAdapterId }, moduleModel: null, @@ -304,18 +323,13 @@ describe('LabwareListItem', () => { extraAttentionModules: [], attachedModuleInfo: {}, isFlex: false, - nestedLabwareInfo: { - nestedLabwareDisplayName: 'mock nested display name', - sharedSlotId: 'A2', - nestedLabwareNickName: 'nestedLabwareNickName', - nestedLabwareDefinition: mockLabwareDef, - }, + labwareId: '5', }) - screen.getByText('Mock Labware Definition') + screen.getByText('Mock Labware Name') + screen.getByText('labware nick name') screen.getByText('A2') - screen.getByText('mock nested display name') - screen.getByText('nestedLabwareNickName') - screen.getByText('nickName') + screen.getByText('mock adapter name') + screen.getByText('mock adapter nick name') }) it('renders the correct info for a labware on top of a heater shaker', () => { @@ -341,7 +355,6 @@ describe('LabwareListItem', () => { } as any) as ModuleRenderInfoForProtocol, }, isFlex: false, - nestedLabwareInfo: null, }) screen.getByText('Mock Labware Definition') screen.getByTestId('slot_info_7') @@ -363,6 +376,7 @@ describe('LabwareListItem', () => { }) it('renders the correct info for an off deck labware', () => { + vi.mocked(getTopLabwareInfo) render({ nickName: null, definition: mockLabwareDef, @@ -373,7 +387,6 @@ describe('LabwareListItem', () => { extraAttentionModules: [], attachedModuleInfo: {}, isFlex: false, - nestedLabwareInfo: null, }) screen.getByText('Mock Labware Definition') screen.getByTestId('slot_info_OFF DECK') diff --git a/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLiquids/SetupLiquidsMap.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLiquids/SetupLiquidsMap.tsx index 5338a9ce055..1b556692f8d 100644 --- a/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLiquids/SetupLiquidsMap.tsx +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLiquids/SetupLiquidsMap.tsx @@ -14,7 +14,7 @@ import { FLEX_ROBOT_TYPE, getDeckDefFromRobotType, getSimplestDeckConfigForProtocol, - parseInitialLoadedLabwareByAdapter, + getTopLabwareInfo, parseLabwareInfoByLiquidId, parseLiquidsInLoadOrder, THERMOCYCLER_MODULE_V1, @@ -32,6 +32,8 @@ import { import type { CompletedProtocolAnalysis, ProtocolAnalysisOutput, + RunTimeCommand, + LoadLabwareRunTimeCommand, } from '@opentrons/shared-data' interface SetupLiquidsMapProps { @@ -50,13 +52,16 @@ export function SetupLiquidsMap( if (protocolAnalysis == null) return null + const commands: RunTimeCommand[] = protocolAnalysis.commands + const loadLabwareCommands = commands?.filter( + (command): command is LoadLabwareRunTimeCommand => + command.commandType === 'loadLabware' + ) + const liquids = parseLiquidsInLoadOrder( protocolAnalysis.liquids != null ? protocolAnalysis.liquids : [], protocolAnalysis.commands ?? [] ) - const initialLoadedLabwareByAdapter = parseInitialLoadedLabwareByAdapter( - protocolAnalysis.commands ?? [] - ) const robotType = protocolAnalysis.robotType ?? FLEX_ROBOT_TYPE const deckDef = getDeckDefFromRobotType(robotType) const labwareRenderInfo = getLabwareRenderInfo(protocolAnalysis, deckDef) @@ -69,19 +74,11 @@ export function SetupLiquidsMap( const protocolModulesInfo = getProtocolModulesInfo(protocolAnalysis, deckDef) const modulesOnDeck = protocolModulesInfo.map(module => { - const labwareInAdapterInMod = - module.nestedLabwareId != null - ? initialLoadedLabwareByAdapter[module.nestedLabwareId] - : null - // only rendering the labware on top most layer so - // either the adapter or the labware are rendered but not both - const topLabwareDefinition = - labwareInAdapterInMod?.result?.definition ?? module.nestedLabwareDef - const topLabwareId = - labwareInAdapterInMod?.result?.labwareId ?? module.nestedLabwareId - const topLabwareDisplayName = - labwareInAdapterInMod?.params.displayName ?? - module.nestedLabwareDisplayName + const { + topLabwareId, + topLabwareDefinition, + topLabwareDisplayName, + } = getTopLabwareInfo(module.nestedLabwareId ?? '', loadLabwareCommands) const nestedLabwareWellFill = getWellFillFromLabwareId( topLabwareId ?? '', liquids, @@ -120,7 +117,7 @@ export function SetupLiquidsMap( hover={topLabwareId === hoverLabwareId && labwareHasLiquid} labwareHasLiquid={labwareHasLiquid} labwareId={topLabwareId} - displayName={topLabwareDisplayName} + displayName={topLabwareDisplayName ?? null} runId={runId} /> @@ -140,59 +137,52 @@ export function SetupLiquidsMap( labwareOnDeck={[]} modulesOnDeck={modulesOnDeck} > - {map( - labwareRenderInfo, - ({ x, y, labwareDef, displayName }, labwareId) => { - const labwareInAdapter = initialLoadedLabwareByAdapter[labwareId] - // only rendering the labware on top most layer so - // either the adapter or the labware are rendered but not both - const topLabwareDefinition = - labwareInAdapter?.result?.definition ?? labwareDef - const topLabwareId = - labwareInAdapter?.result?.labwareId ?? labwareId - const topLabwareDisplayName = - labwareInAdapter?.params.displayName ?? displayName - const wellFill = getWellFillFromLabwareId( - topLabwareId ?? '', - liquids, - labwareByLiquidId - ) - const labwareHasLiquid = !isEmpty(wellFill) - return ( - - { - setHoverLabwareId(topLabwareId) - }} - onMouseLeave={() => { - setHoverLabwareId('') - }} - onClick={() => { - if (labwareHasLiquid) { - setLiquidDetailsLabwareId(topLabwareId) - } - }} - cursor={labwareHasLiquid ? 'pointer' : ''} - > - - - - - ) - } - )} + {map(labwareRenderInfo, ({ x, y }, labwareId) => { + const { + topLabwareId, + topLabwareDefinition, + topLabwareDisplayName, + } = getTopLabwareInfo(labwareId, loadLabwareCommands) + const wellFill = getWellFillFromLabwareId( + topLabwareId ?? '', + liquids, + labwareByLiquidId + ) + const labwareHasLiquid = !isEmpty(wellFill) + return topLabwareDefinition != null ? ( + + { + setHoverLabwareId(topLabwareId) + }} + onMouseLeave={() => { + setHoverLabwareId('') + }} + onClick={() => { + if (labwareHasLiquid) { + setLiquidDetailsLabwareId(topLabwareId) + } + }} + cursor={labwareHasLiquid ? 'pointer' : ''} + > + + + + + ) : null + })} {liquidDetailsLabwareId != null && ( { vi.mocked(getLocationInfoNames).mockReturnValue({ labwareName: 'mock labware name', slotName: '4', + labwareQuantity: 1, }) mockTrackEvent = vi.fn() vi.mocked(useTrackEvent).mockReturnValue(mockTrackEvent) diff --git a/app/src/organisms/LiquidsLabwareDetailsModal/__tests__/LiquidsLabwareDetailsModal.test.tsx b/app/src/organisms/LiquidsLabwareDetailsModal/__tests__/LiquidsLabwareDetailsModal.test.tsx index 54b8239da47..967a840ee75 100644 --- a/app/src/organisms/LiquidsLabwareDetailsModal/__tests__/LiquidsLabwareDetailsModal.test.tsx +++ b/app/src/organisms/LiquidsLabwareDetailsModal/__tests__/LiquidsLabwareDetailsModal.test.tsx @@ -65,6 +65,7 @@ describe('LiquidsLabwareDetailsModal', () => { vi.mocked(getLocationInfoNames).mockReturnValue({ labwareName: 'mock labware name', slotName: '5', + labwareQuantity: 1, }) vi.mocked(getSlotLabwareDefinition).mockReturnValue(mockDefinition) vi.mocked(getLiquidsByIdForLabware).mockReturnValue({ diff --git a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupLabware/LabwareMapView.tsx b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupLabware/LabwareMapView.tsx index 21b6fb20854..339ad981daa 100644 --- a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupLabware/LabwareMapView.tsx +++ b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupLabware/LabwareMapView.tsx @@ -3,18 +3,22 @@ import { BaseDeck, Flex } from '@opentrons/components' import { FLEX_ROBOT_TYPE, getSimplestDeckConfigForProtocol, + getTopLabwareInfo, THERMOCYCLER_MODULE_V1, } from '@opentrons/shared-data' import { getStandardDeckViewLayerBlockList } from '/app/local-resources/deck_configuration' import { getLabwareRenderInfo } from '/app/transformations/analysis' +import type { LabwareOnDeck } from '@opentrons/components' import type { CompletedProtocolAnalysis, DeckDefinition, LabwareDefinition2, - LoadedLabwareByAdapter, + RunTimeCommand, + LoadLabwareRunTimeCommand, } from '@opentrons/shared-data' + import type { AttachedProtocolModuleMatch } from '/app/transformations/analysis' interface LabwareMapViewProps { @@ -23,7 +27,6 @@ interface LabwareMapViewProps { labwareDef: LabwareDefinition2, labwareId: string ) => void - initialLoadedLabwareByAdapter: LoadedLabwareByAdapter deckDef: DeckDefinition mostRecentAnalysis: CompletedProtocolAnalysis | null } @@ -32,11 +35,16 @@ export function LabwareMapView(props: LabwareMapViewProps): JSX.Element { const { handleLabwareClick, attachedProtocolModuleMatches, - initialLoadedLabwareByAdapter, deckDef, mostRecentAnalysis, } = props const deckConfig = getSimplestDeckConfigForProtocol(mostRecentAnalysis) + const commands: RunTimeCommand[] = mostRecentAnalysis?.commands ?? [] + const loadLabwareCommands = commands?.filter( + (command): command is LoadLabwareRunTimeCommand => + command.commandType === 'loadLabware' + ) + const labwareRenderInfo = mostRecentAnalysis != null ? getLabwareRenderInfo(mostRecentAnalysis, deckDef) @@ -44,16 +52,11 @@ export function LabwareMapView(props: LabwareMapViewProps): JSX.Element { const modulesOnDeck = attachedProtocolModuleMatches.map(module => { const { moduleDef, nestedLabwareDef, nestedLabwareId, slotName } = module - const labwareInAdapterInMod = - nestedLabwareId != null - ? initialLoadedLabwareByAdapter[nestedLabwareId] - : null - // only rendering the labware on top most layer so - // either the adapter or the labware are rendered but not both - const topLabwareDefinition = - labwareInAdapterInMod?.result?.definition ?? nestedLabwareDef - const topLabwareId = - labwareInAdapterInMod?.result?.labwareId ?? nestedLabwareId + const isLabwareStacked = nestedLabwareId != null && nestedLabwareDef != null + const { topLabwareId, topLabwareDefinition } = getTopLabwareInfo( + module.nestedLabwareId ?? '', + loadLabwareCommands + ) return { moduleModel: moduleDef.model, @@ -70,49 +73,48 @@ export function LabwareMapView(props: LabwareMapViewProps): JSX.Element { } : undefined, highlightLabware: true, - highlightShadowLabware: - topLabwareDefinition != null && topLabwareId != null, + highlightShadowLabware: isLabwareStacked, moduleChildren: null, - stacked: topLabwareDefinition != null && topLabwareId != null, + stacked: isLabwareStacked, } }) - const labwareLocations = map( + const labwareLocations: Array = map( labwareRenderInfo, - ({ labwareDef, slotName }, labwareId) => { - const labwareInAdapter = initialLoadedLabwareByAdapter[labwareId] - // only rendering the labware on top most layer so - // either the adapter or the labware are rendered but not both - const topLabwareDefinition = - labwareInAdapter?.result?.definition ?? labwareDef - const topLabwareId = labwareInAdapter?.result?.labwareId ?? labwareId - const isLabwareInStack = - topLabwareDefinition != null && - topLabwareId != null && - labwareInAdapter != null + ({ slotName }, labwareId) => { + const { topLabwareId, topLabwareDefinition } = getTopLabwareInfo( + labwareId, + loadLabwareCommands + ) + const isLabwareInStack = labwareId !== topLabwareId - return { - labwareLocation: { slotName }, - definition: topLabwareDefinition, - topLabwareId, - onLabwareClick: () => { - handleLabwareClick(topLabwareDefinition, topLabwareId) - }, - labwareChildren: null, - highlight: true, - highlightShadow: isLabwareInStack, - stacked: isLabwareInStack, - } + return topLabwareDefinition != null + ? { + labwareLocation: { slotName }, + definition: topLabwareDefinition, + onLabwareClick: () => { + handleLabwareClick(topLabwareDefinition, topLabwareId) + }, + highlight: true, + highlightShadow: isLabwareInStack, + stacked: isLabwareInStack, + } + : null } ) + const labwareLocationsFiltered: LabwareOnDeck[] = labwareLocations.filter( + (labwareLocation): labwareLocation is LabwareOnDeck => + labwareLocation != null + ) + return ( diff --git a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupLabware/__tests__/LabwareMapView.test.tsx b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupLabware/__tests__/LabwareMapView.test.tsx index 8729ae0f811..860d927578e 100644 --- a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupLabware/__tests__/LabwareMapView.test.tsx +++ b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupLabware/__tests__/LabwareMapView.test.tsx @@ -114,7 +114,6 @@ describe('LabwareMapView', () => { handleLabwareClick: vi.fn(), deckDef: (deckDefFixture as unknown) as DeckDefinition, mostRecentAnalysis: ({} as unknown) as CompletedProtocolAnalysis, - initialLoadedLabwareByAdapter: {}, attachedProtocolModuleMatches: [ { ...mockProtocolModuleInfo[0], diff --git a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupLabware/index.tsx b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupLabware/index.tsx index 1a54e2fc00d..2d440fc9516 100644 --- a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupLabware/index.tsx +++ b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupLabware/index.tsx @@ -25,10 +25,11 @@ import { FLEX_ROBOT_TYPE, getDeckDefFromRobotType, getLabwareDefURI, - getLabwareDisplayName, + getTopLabwareInfo, getModuleDisplayName, HEATERSHAKER_MODULE_TYPE, - parseInitialLoadedLabwareByAdapter, + TC_MODULE_LOCATION_OT3, + THERMOCYCLER_MODULE_TYPE, } from '@opentrons/shared-data' import { useCreateLiveCommandMutation, @@ -38,8 +39,8 @@ import { import { FloatingActionButton, SmallButton } from '/app/atoms/buttons' import { ODDBackButton } from '/app/molecules/ODDBackButton' import { + getLocationInfoNames, getLabwareSetupItemGroups, - getNestedLabwareInfo, } from '/app/transformations/commands' import { getAttachedProtocolModuleMatches, @@ -56,15 +57,12 @@ import type { HeaterShakerCloseLatchCreateCommand, HeaterShakerOpenLatchCreateCommand, LabwareDefinition2, - LabwareLocation, LoadLabwareRunTimeCommand, + LabwareLocation, RunTimeCommand, } from '@opentrons/shared-data' import type { HeaterShakerModule, Modules } from '@opentrons/api-client' -import type { - LabwareSetupItem, - NestedLabwareInfo, -} from '/app/transformations/commands' +import type { LabwareSetupItem } from '/app/transformations/commands' import type { SetupScreens } from '../types' import type { AttachedProtocolModuleMatch } from '/app/transformations/analysis' @@ -121,9 +119,6 @@ export function ProtocolSetupLabware({ protocolModulesInfo, deckConfig ) - const initialLoadedLabwareByAdapter = parseInitialLoadedLabwareByAdapter( - mostRecentAnalysis?.commands ?? [] - ) const handleLabwareClick = ( labwareDef: LabwareDefinition2, @@ -152,7 +147,7 @@ export function ProtocolSetupLabware({ } } } - const selectedLabwareIsTopOfStack = mostRecentAnalysis?.commands.some( + const selectedLabwareIsStacked = mostRecentAnalysis?.commands.some( command => command.commandType === 'loadLabware' && command.result?.labwareId === selectedLabware?.id && @@ -164,7 +159,7 @@ export function ProtocolSetupLabware({ return ( <> {showLabwareDetailsModal && - !selectedLabwareIsTopOfStack && + !selectedLabwareIsStacked && selectedLabware != null ? ( ) : ( <> @@ -239,17 +233,14 @@ export function ProtocolSetupLabware({ 'labwareId' in labware.initialLocation && item.labwareId === labware.initialLocation.labwareId ) - return mostRecentAnalysis != null && labwareOnAdapter == null ? ( + return mostRecentAnalysis?.commands != null && + labwareOnAdapter == null ? ( ) : null })} @@ -257,7 +248,7 @@ export function ProtocolSetupLabware({ )} {showLabwareDetailsModal && selectedLabware != null && - selectedLabwareIsTopOfStack ? ( + selectedLabwareIsStacked ? ( ['refetch'] - nestedLabwareInfo: NestedLabwareInfo | null - commands?: RunTimeCommand[] + commands: RunTimeCommand[] } function RowLabware({ labware, attachedProtocolModules, refetchModules, - nestedLabwareInfo, commands, }: RowLabwareProps): JSX.Element | null { - const { definition, initialLocation, nickName } = labware + const { + initialLocation, + nickName: bottomLabwareNickname, + labwareId: bottomLabwareId, + } = labware + const loadLabwareCommands = commands?.filter( + (command): command is LoadLabwareRunTimeCommand => + command.commandType === 'loadLabware' + ) + + const { topLabwareId } = getTopLabwareInfo( + bottomLabwareId ?? '', + loadLabwareCommands + ) + const { + slotName: slot, + labwareName: topLabwareName, + labwareNickname: topLabwareNickname, + labwareQuantity: topLabwareQuantity, + adapterName, + } = getLocationInfoNames(topLabwareId, commands) + const { t, i18n } = useTranslation([ 'protocol_command_text', 'protocol_setup', @@ -451,47 +461,21 @@ function RowLabware({ matchedModule.attachedModuleMatch.moduleType === HEATERSHAKER_MODULE_TYPE ? matchedModule.attachedModuleMatch : null + const isStacked = + topLabwareQuantity > 1 || adapterName != null || matchedModule != null - let slotName: string = '' - let location: JSX.Element | string | null = null + let slotName: string = slot + let location: JSX.Element = if (initialLocation === 'offDeck') { location = ( ) - } else if ('slotName' in initialLocation) { - slotName = initialLocation.slotName - location = - } else if ('addressableAreaName' in initialLocation) { - slotName = initialLocation.addressableAreaName - location = - } else if (labware.moduleLocation != null) { - location = ( - <> - - - ) - } else if ('labwareId' in initialLocation) { - const adapterId = initialLocation.labwareId - const adapterLocation = commands?.find( - (command): command is LoadLabwareRunTimeCommand => - command.commandType === 'loadLabware' && - command.result?.labwareId === adapterId - )?.params.location - - if (adapterLocation != null && adapterLocation !== 'offDeck') { - if ('slotName' in adapterLocation) { - slotName = adapterLocation.slotName - location = - } else if ('moduleId' in adapterLocation) { - const moduleUnderAdapter = attachedProtocolModules.find( - module => module.moduleId === adapterLocation.moduleId - ) - if (moduleUnderAdapter != null) { - slotName = moduleUnderAdapter.slotName - location = - } - } - } + } else if ( + matchedModule != null && + matchedModule.attachedModuleMatch?.moduleType === THERMOCYCLER_MODULE_TYPE + ) { + slotName = TC_MODULE_LOCATION_OT3 + location = } return ( {location} - {nestedLabwareInfo != null || matchedModule != null ? ( - - ) : null} + {isStacked ? : null} - {getLabwareDisplayName(definition)} + {topLabwareName} - {nickName} + {topLabwareQuantity > 1 + ? t('protocol_setup:labware_quantity', { + quantity: topLabwareQuantity, + }) + : topLabwareNickname} - {nestedLabwareInfo != null && - nestedLabwareInfo?.sharedSlotId === slotName ? ( + {adapterName != null ? ( <> - {nestedLabwareInfo.nestedLabwareDisplayName} + {adapterName} - {nestedLabwareInfo.nestedLabwareNickName} + {bottomLabwareNickname} diff --git a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupLiquids/__tests__/LiquidDetails.test.tsx b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupLiquids/__tests__/LiquidDetails.test.tsx index feeb3e863a4..720b6db7545 100644 --- a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupLiquids/__tests__/LiquidDetails.test.tsx +++ b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupLiquids/__tests__/LiquidDetails.test.tsx @@ -43,6 +43,7 @@ describe('LiquidDetails', () => { vi.mocked(getLocationInfoNames).mockReturnValue({ slotName: '4', labwareName: 'mock labware name', + labwareQuantity: 1, }) vi.mocked(LiquidsLabwareDetailsModal).mockReturnValue(
mock modal
) }) diff --git a/app/src/organisms/QuickTransferFlow/__fixtures__/multiAspirateQuickTransfer.json b/app/src/organisms/QuickTransferFlow/__fixtures__/multiAspirateQuickTransfer.json new file mode 100644 index 00000000000..0cd0df941c9 --- /dev/null +++ b/app/src/organisms/QuickTransferFlow/__fixtures__/multiAspirateQuickTransfer.json @@ -0,0 +1,8496 @@ +{ + "$otSharedSchema": "#/protocol/schemas/8", + "schemaVersion": 8, + "metadata": { + "protocolName": "multiAspirateQuickTransfer", + "description": "This quick transfer moves liquids from a Opentrons 24 Tube Rack with Eppendorf 1.5 mL Safe-Lock Snapcap to a Axygen 1 Well Reservoir 90 mL", + "category": null, + "subcategory": null, + "tags": [] + }, + "designerApplication": { + "name": "opentrons/quick-transfer", + "version": "1.0.0", + "data": { + "pipette": { + "$otSharedSchema": "#/pipette/schemas/2/pipetteGeometrySchema.json", + "displayName": "Flex 1-Channel 1000 μL", + "model": "p1000", + "displayCategory": "FLEX", + "validNozzleMaps": { "maps": { "SingleA1": ["A1"] } }, + "pickUpTipConfigurations": { + "pressFit": { + "presses": 1, + "increment": 0, + "configurationsByNozzleMap": { + "SingleA1": { + "default": { + "speed": 10, + "distance": 13, + "current": 0.2, + "tipOverlaps": { + "v0": { + "default": 10.5, + "opentrons/opentrons_flex_96_tiprack_1000ul/1": 10.5, + "opentrons/opentrons_flex_96_tiprack_200ul/1": 10.5, + "opentrons/opentrons_flex_96_tiprack_50ul/1": 10.5, + "opentrons/opentrons_flex_96_filtertiprack_1000ul/1": 10.5, + "opentrons/opentrons_flex_96_filtertiprack_200ul/1": 10.5, + "opentrons/opentrons_flex_96_filtertiprack_50ul/1": 10.5 + }, + "v1": { + "default": 10.5, + "opentrons/opentrons_flex_96_tiprack_1000ul/1": 9.65, + "opentrons/opentrons_flex_96_tiprack_200ul/1": 9.76, + "opentrons/opentrons_flex_96_tiprack_50ul/1": 10.09, + "opentrons/opentrons_flex_96_filtertiprack_1000ul/1": 9.65, + "opentrons/opentrons_flex_96_filtertiprack_200ul/1": 9.76, + "opentrons/opentrons_flex_96_filtertiprack_50ul/1": 10.09 + } + } + } + } + } + } + }, + "dropTipConfigurations": { + "plungerEject": { "current": 1, "speed": 15 } + }, + "plungerMotorConfigurations": { "idle": 0.3, "run": 1 }, + "plungerPositionsConfigurations": { + "default": { "top": 0, "bottom": 71.5, "blowout": 76.5, "drop": 90.5 } + }, + "availableSensors": { + "sensors": ["pressure", "capacitive", "environment"], + "pressure": { "count": 1 }, + "capacitive": { "count": 1 }, + "environment": { "count": 1 } + }, + "partialTipConfigurations": { + "partialTipSupported": false, + "availableConfigurations": null + }, + "backCompatNames": [], + "channels": 1, + "shaftDiameter": 4.5, + "shaftULperMM": 15.904, + "backlashDistance": 0.1, + "quirks": [], + "plungerHomingConfigurations": { "current": 1, "speed": 30 }, + "pathTo3D": "pipette/definitions/2/geometry/single_channel/p1000/placeholder.gltf", + "nozzleOffset": [-8, -22, -259.15], + "pipetteBoundingBoxOffsets": { + "backLeftCorner": [-8, -22, -259.15], + "frontRightCorner": [-8, -22, -259.15] + }, + "orderedRows": [{ "key": "A", "orderedNozzles": ["A1"] }], + "orderedColumns": [{ "key": "1", "orderedNozzles": ["A1"] }], + "nozzleMap": { "A1": [-8, -22, -259.15] }, + "lldSettings": { + "t50": { "minHeight": 1, "minVolume": 0 }, + "t200": { "minHeight": 1, "minVolume": 0 }, + "t1000": { "minHeight": 1.5, "minVolume": 0 } + }, + "liquids": { + "default": { + "$otSharedSchema": "#/pipette/schemas/2/pipetteLiquidPropertiesSchema.json", + "supportedTips": { + "t50": { + "uiMaxFlowRate": 785.2, + "defaultAspirateFlowRate": { + "default": 478, + "valuesByApiLevel": { "2.14": 478 } + }, + "defaultDispenseFlowRate": { + "default": 478, + "valuesByApiLevel": { "2.14": 478 } + }, + "defaultBlowOutFlowRate": { + "default": 478, + "valuesByApiLevel": { "2.14": 478 } + }, + "defaultFlowAcceleration": 24000, + "defaultTipLength": 57.9, + "defaultReturnTipHeight": 0.71, + "aspirate": { + "default": { + "1": [ + [0.7033, 4.9393, 0.669], + [1.0911, 4.233, 1.1657], + [1.7256, 2.8983, 2.6221], + [2.1344, 1.9062, 4.334], + [2.57, 1.3331, 5.5573], + [2.9178, 0.2816, 8.2595], + [3.0222, -3.2737, 18.6333], + [3.2233, 0.8766, 6.09], + [3.5033, 1.324, 4.648], + [4.4567, 1.7683, 3.0913], + [5.3878, 0.8747, 7.0738], + [6.1956, 0.3393, 9.9586], + [8.7911, 0.2504, 10.5095], + [10.5322, 0.1577, 11.3246], + [13.8389, 0.1047, 11.8827], + [23.01, 0.0579, 12.5301], + [29.4811, 0.0285, 13.2057], + [48.0456, 0.0147, 13.612], + [54.06, 0.0016, 14.2446] + ] + } + }, + "dispense": { + "default": { + "1": [ + [0.7033, 4.9393, 0.669], + [1.0911, 4.233, 1.1657], + [1.7256, 2.8983, 2.6221], + [2.1344, 1.9062, 4.334], + [2.57, 1.3331, 5.5573], + [2.9178, 0.2816, 8.2595], + [3.0222, -3.2737, 18.6333], + [3.2233, 0.8766, 6.09], + [3.5033, 1.324, 4.648], + [4.4567, 1.7683, 3.0913], + [5.3878, 0.8747, 7.0738], + [6.1956, 0.3393, 9.9586], + [8.7911, 0.2504, 10.5095], + [10.5322, 0.1577, 11.3246], + [13.8389, 0.1047, 11.8827], + [23.01, 0.0579, 12.5301], + [29.4811, 0.0285, 13.2057], + [48.0456, 0.0147, 13.612], + [54.06, 0.0016, 14.2446] + ] + } + }, + "defaultPushOutVolume": 7 + }, + "t200": { + "uiMaxFlowRate": 802.5, + "defaultAspirateFlowRate": { + "default": 716, + "valuesByApiLevel": { "2.14": 716 } + }, + "defaultDispenseFlowRate": { + "default": 716, + "valuesByApiLevel": { "2.14": 716 } + }, + "defaultBlowOutFlowRate": { + "default": 716, + "valuesByApiLevel": { "2.14": 716 } + }, + "defaultFlowAcceleration": 24000, + "defaultTipLength": 58.35, + "defaultReturnTipHeight": 0.71, + "aspirate": { + "default": { + "1": [ + [1.5742, 3.2596, 1.8233], + [2.5158, 2.2718, 3.3782], + [4.47, 1.1953, 6.0865], + [5.4908, 0.5062, 9.1669], + [6.6658, 0.3243, 10.1658], + [9.6683, 0.2016, 10.9838], + [11.6442, 0.1543, 11.4405], + [19.8692, 0.0794, 12.3132], + [33.4958, 0.0375, 13.1444], + [51.9508, 0.0191, 13.7624], + [92.6067, 0.0074, 14.3699], + [152.3575, 0.0029, 14.7822], + [179.5925, 0.0013, 15.027], + [211.5867, 0.0009, 15.1088] + ] + } + }, + "dispense": { + "default": { + "1": [ + [1.5742, 3.2596, 1.8233], + [2.5158, 2.2718, 3.3782], + [4.47, 1.1953, 6.0865], + [5.4908, 0.5062, 9.1669], + [6.6658, 0.3243, 10.1658], + [9.6683, 0.2016, 10.9838], + [11.6442, 0.1543, 11.4405], + [19.8692, 0.0794, 12.3132], + [33.4958, 0.0375, 13.1444], + [51.9508, 0.0191, 13.7624], + [92.6067, 0.0074, 14.3699], + [152.3575, 0.0029, 14.7822], + [179.5925, 0.0013, 15.027], + [211.5867, 0.0009, 15.1088] + ] + } + }, + "defaultPushOutVolume": 5 + }, + "t1000": { + "uiMaxFlowRate": 727.3, + "defaultAspirateFlowRate": { + "default": 716, + "valuesByApiLevel": { "2.14": 716 } + }, + "defaultDispenseFlowRate": { + "default": 716, + "valuesByApiLevel": { "2.14": 716 } + }, + "defaultBlowOutFlowRate": { + "default": 716, + "valuesByApiLevel": { "2.14": 716 } + }, + "defaultFlowAcceleration": 24000, + "defaultTipLength": 95.6, + "defaultReturnTipHeight": 0.82, + "aspirate": { + "default": { + "1": [ + [2.33, 2.388148, 3.699878], + [2.75, -1.230691, 12.131772], + [4.82, 0.868196, 6.359833], + [9.77, 0.322207, 8.991498], + [12.08, 0.156051, 10.614846], + [15.08, 0.147745, 10.715186], + [51.21, 0.03759, 12.376313], + [92.59, 0.010829, 13.746781], + [112.39, 0.005015, 14.285091], + [243.33, 0.00274, 14.540746], + [356.08, 0.000877, 14.994001], + [430.6, 0.000594, 15.094722], + [628.32, 0.000279, 15.230539], + [1000.28, 0.000106, 15.339007], + [1105.26, 0.000122, 15.323864] + ] + } + }, + "dispense": { + "default": { + "1": [ + [2.33, 2.388148, 3.699878], + [2.75, -1.230691, 12.131772], + [4.82, 0.868196, 6.359833], + [9.77, 0.322207, 8.991498], + [12.08, 0.156051, 10.614846], + [15.08, 0.147745, 10.715186], + [51.21, 0.03759, 12.376313], + [92.59, 0.010829, 13.746781], + [112.39, 0.005015, 14.285091], + [243.33, 0.00274, 14.540746], + [356.08, 0.000877, 14.994001], + [430.6, 0.000594, 15.094722], + [628.32, 0.000279, 15.230539], + [1000.28, 0.000106, 15.339007], + [1105.26, 0.000122, 15.323864] + ] + } + }, + "defaultPushOutVolume": 20 + } + }, + "maxVolume": 1000, + "minVolume": 5, + "defaultTipracks": [ + "opentrons/opentrons_flex_96_tiprack_1000ul/1", + "opentrons/opentrons_flex_96_tiprack_200ul/1", + "opentrons/opentrons_flex_96_tiprack_50ul/1", + "opentrons/opentrons_flex_96_filtertiprack_1000ul/1", + "opentrons/opentrons_flex_96_filtertiprack_200ul/1", + "opentrons/opentrons_flex_96_filtertiprack_50ul/1" + ] + } + } + }, + "mount": "right", + "tipRack": { + "ordering": [ + ["A1", "B1", "C1", "D1", "E1", "F1", "G1", "H1"], + ["A2", "B2", "C2", "D2", "E2", "F2", "G2", "H2"], + ["A3", "B3", "C3", "D3", "E3", "F3", "G3", "H3"], + ["A4", "B4", "C4", "D4", "E4", "F4", "G4", "H4"], + ["A5", "B5", "C5", "D5", "E5", "F5", "G5", "H5"], + ["A6", "B6", "C6", "D6", "E6", "F6", "G6", "H6"], + ["A7", "B7", "C7", "D7", "E7", "F7", "G7", "H7"], + ["A8", "B8", "C8", "D8", "E8", "F8", "G8", "H8"], + ["A9", "B9", "C9", "D9", "E9", "F9", "G9", "H9"], + ["A10", "B10", "C10", "D10", "E10", "F10", "G10", "H10"], + ["A11", "B11", "C11", "D11", "E11", "F11", "G11", "H11"], + ["A12", "B12", "C12", "D12", "E12", "F12", "G12", "H12"] + ], + "brand": { "brand": "Opentrons", "brandId": [] }, + "metadata": { + "displayName": "Opentrons Flex 96 Tip Rack 200 µL", + "displayCategory": "tipRack", + "displayVolumeUnits": "µL", + "tags": [] + }, + "dimensions": { + "xDimension": 127.75, + "yDimension": 85.75, + "zDimension": 99 + }, + "gripForce": 16, + "gripHeightFromLabwareBottom": 23.9, + "wells": { + "A1": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 14.38, + "y": 74.38, + "z": 1.5 + }, + "B1": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 14.38, + "y": 65.38, + "z": 1.5 + }, + "C1": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 14.38, + "y": 56.38, + "z": 1.5 + }, + "D1": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 14.38, + "y": 47.38, + "z": 1.5 + }, + "E1": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 14.38, + "y": 38.38, + "z": 1.5 + }, + "F1": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 14.38, + "y": 29.38, + "z": 1.5 + }, + "G1": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 14.38, + "y": 20.38, + "z": 1.5 + }, + "H1": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 14.38, + "y": 11.38, + "z": 1.5 + }, + "A2": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 23.38, + "y": 74.38, + "z": 1.5 + }, + "B2": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 23.38, + "y": 65.38, + "z": 1.5 + }, + "C2": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 23.38, + "y": 56.38, + "z": 1.5 + }, + "D2": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 23.38, + "y": 47.38, + "z": 1.5 + }, + "E2": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 23.38, + "y": 38.38, + "z": 1.5 + }, + "F2": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 23.38, + "y": 29.38, + "z": 1.5 + }, + "G2": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 23.38, + "y": 20.38, + "z": 1.5 + }, + "H2": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 23.38, + "y": 11.38, + "z": 1.5 + }, + "A3": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 32.38, + "y": 74.38, + "z": 1.5 + }, + "B3": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 32.38, + "y": 65.38, + "z": 1.5 + }, + "C3": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 32.38, + "y": 56.38, + "z": 1.5 + }, + "D3": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 32.38, + "y": 47.38, + "z": 1.5 + }, + "E3": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 32.38, + "y": 38.38, + "z": 1.5 + }, + "F3": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 32.38, + "y": 29.38, + "z": 1.5 + }, + "G3": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 32.38, + "y": 20.38, + "z": 1.5 + }, + "H3": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 32.38, + "y": 11.38, + "z": 1.5 + }, + "A4": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 41.38, + "y": 74.38, + "z": 1.5 + }, + "B4": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 41.38, + "y": 65.38, + "z": 1.5 + }, + "C4": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 41.38, + "y": 56.38, + "z": 1.5 + }, + "D4": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 41.38, + "y": 47.38, + "z": 1.5 + }, + "E4": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 41.38, + "y": 38.38, + "z": 1.5 + }, + "F4": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 41.38, + "y": 29.38, + "z": 1.5 + }, + "G4": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 41.38, + "y": 20.38, + "z": 1.5 + }, + "H4": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 41.38, + "y": 11.38, + "z": 1.5 + }, + "A5": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 50.38, + "y": 74.38, + "z": 1.5 + }, + "B5": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 50.38, + "y": 65.38, + "z": 1.5 + }, + "C5": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 50.38, + "y": 56.38, + "z": 1.5 + }, + "D5": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 50.38, + "y": 47.38, + "z": 1.5 + }, + "E5": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 50.38, + "y": 38.38, + "z": 1.5 + }, + "F5": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 50.38, + "y": 29.38, + "z": 1.5 + }, + "G5": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 50.38, + "y": 20.38, + "z": 1.5 + }, + "H5": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 50.38, + "y": 11.38, + "z": 1.5 + }, + "A6": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 59.38, + "y": 74.38, + "z": 1.5 + }, + "B6": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 59.38, + "y": 65.38, + "z": 1.5 + }, + "C6": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 59.38, + "y": 56.38, + "z": 1.5 + }, + "D6": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 59.38, + "y": 47.38, + "z": 1.5 + }, + "E6": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 59.38, + "y": 38.38, + "z": 1.5 + }, + "F6": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 59.38, + "y": 29.38, + "z": 1.5 + }, + "G6": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 59.38, + "y": 20.38, + "z": 1.5 + }, + "H6": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 59.38, + "y": 11.38, + "z": 1.5 + }, + "A7": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 68.38, + "y": 74.38, + "z": 1.5 + }, + "B7": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 68.38, + "y": 65.38, + "z": 1.5 + }, + "C7": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 68.38, + "y": 56.38, + "z": 1.5 + }, + "D7": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 68.38, + "y": 47.38, + "z": 1.5 + }, + "E7": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 68.38, + "y": 38.38, + "z": 1.5 + }, + "F7": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 68.38, + "y": 29.38, + "z": 1.5 + }, + "G7": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 68.38, + "y": 20.38, + "z": 1.5 + }, + "H7": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 68.38, + "y": 11.38, + "z": 1.5 + }, + "A8": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 77.38, + "y": 74.38, + "z": 1.5 + }, + "B8": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 77.38, + "y": 65.38, + "z": 1.5 + }, + "C8": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 77.38, + "y": 56.38, + "z": 1.5 + }, + "D8": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 77.38, + "y": 47.38, + "z": 1.5 + }, + "E8": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 77.38, + "y": 38.38, + "z": 1.5 + }, + "F8": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 77.38, + "y": 29.38, + "z": 1.5 + }, + "G8": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 77.38, + "y": 20.38, + "z": 1.5 + }, + "H8": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 77.38, + "y": 11.38, + "z": 1.5 + }, + "A9": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 86.38, + "y": 74.38, + "z": 1.5 + }, + "B9": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 86.38, + "y": 65.38, + "z": 1.5 + }, + "C9": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 86.38, + "y": 56.38, + "z": 1.5 + }, + "D9": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 86.38, + "y": 47.38, + "z": 1.5 + }, + "E9": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 86.38, + "y": 38.38, + "z": 1.5 + }, + "F9": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 86.38, + "y": 29.38, + "z": 1.5 + }, + "G9": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 86.38, + "y": 20.38, + "z": 1.5 + }, + "H9": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 86.38, + "y": 11.38, + "z": 1.5 + }, + "A10": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 95.38, + "y": 74.38, + "z": 1.5 + }, + "B10": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 95.38, + "y": 65.38, + "z": 1.5 + }, + "C10": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 95.38, + "y": 56.38, + "z": 1.5 + }, + "D10": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 95.38, + "y": 47.38, + "z": 1.5 + }, + "E10": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 95.38, + "y": 38.38, + "z": 1.5 + }, + "F10": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 95.38, + "y": 29.38, + "z": 1.5 + }, + "G10": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 95.38, + "y": 20.38, + "z": 1.5 + }, + "H10": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 95.38, + "y": 11.38, + "z": 1.5 + }, + "A11": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 104.38, + "y": 74.38, + "z": 1.5 + }, + "B11": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 104.38, + "y": 65.38, + "z": 1.5 + }, + "C11": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 104.38, + "y": 56.38, + "z": 1.5 + }, + "D11": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 104.38, + "y": 47.38, + "z": 1.5 + }, + "E11": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 104.38, + "y": 38.38, + "z": 1.5 + }, + "F11": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 104.38, + "y": 29.38, + "z": 1.5 + }, + "G11": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 104.38, + "y": 20.38, + "z": 1.5 + }, + "H11": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 104.38, + "y": 11.38, + "z": 1.5 + }, + "A12": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 113.38, + "y": 74.38, + "z": 1.5 + }, + "B12": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 113.38, + "y": 65.38, + "z": 1.5 + }, + "C12": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 113.38, + "y": 56.38, + "z": 1.5 + }, + "D12": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 113.38, + "y": 47.38, + "z": 1.5 + }, + "E12": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 113.38, + "y": 38.38, + "z": 1.5 + }, + "F12": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 113.38, + "y": 29.38, + "z": 1.5 + }, + "G12": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 113.38, + "y": 20.38, + "z": 1.5 + }, + "H12": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 113.38, + "y": 11.38, + "z": 1.5 + } + }, + "groups": [ + { + "metadata": {}, + "wells": [ + "A1", + "B1", + "C1", + "D1", + "E1", + "F1", + "G1", + "H1", + "A2", + "B2", + "C2", + "D2", + "E2", + "F2", + "G2", + "H2", + "A3", + "B3", + "C3", + "D3", + "E3", + "F3", + "G3", + "H3", + "A4", + "B4", + "C4", + "D4", + "E4", + "F4", + "G4", + "H4", + "A5", + "B5", + "C5", + "D5", + "E5", + "F5", + "G5", + "H5", + "A6", + "B6", + "C6", + "D6", + "E6", + "F6", + "G6", + "H6", + "A7", + "B7", + "C7", + "D7", + "E7", + "F7", + "G7", + "H7", + "A8", + "B8", + "C8", + "D8", + "E8", + "F8", + "G8", + "H8", + "A9", + "B9", + "C9", + "D9", + "E9", + "F9", + "G9", + "H9", + "A10", + "B10", + "C10", + "D10", + "E10", + "F10", + "G10", + "H10", + "A11", + "B11", + "C11", + "D11", + "E11", + "F11", + "G11", + "H11", + "A12", + "B12", + "C12", + "D12", + "E12", + "F12", + "G12", + "H12" + ] + } + ], + "parameters": { + "format": "96Standard", + "quirks": [], + "isTiprack": true, + "tipLength": 58.35, + "tipOverlap": 10.5, + "isMagneticModuleCompatible": false, + "loadName": "opentrons_flex_96_tiprack_200ul" + }, + "namespace": "opentrons", + "version": 1, + "schemaVersion": 2, + "cornerOffsetFromSlot": { "x": 0, "y": 0, "z": 0 }, + "stackingOffsetWithLabware": { + "opentrons_flex_96_tiprack_adapter": { "x": 0, "y": 0, "z": 121 } + } + }, + "source": { + "ordering": [ + ["A1", "B1", "C1", "D1"], + ["A2", "B2", "C2", "D2"], + ["A3", "B3", "C3", "D3"], + ["A4", "B4", "C4", "D4"], + ["A5", "B5", "C5", "D5"], + ["A6", "B6", "C6", "D6"] + ], + "schemaVersion": 2, + "version": 1, + "namespace": "opentrons", + "metadata": { + "tags": [], + "displayName": "Opentrons 24 Tube Rack with Eppendorf 1.5 mL Safe-Lock Snapcap", + "displayVolumeUnits": "mL", + "displayCategory": "tubeRack" + }, + "dimensions": { + "xDimension": 127.75, + "yDimension": 85.5, + "zDimension": 79.85 + }, + "parameters": { + "format": "irregular", + "isTiprack": false, + "isMagneticModuleCompatible": false, + "loadName": "opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap" + }, + "wells": { + "D1": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 18.21, + "y": 17.59, + "z": 42.05 + }, + "C1": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 18.21, + "y": 36.87, + "z": 42.05 + }, + "B1": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 18.21, + "y": 56.15, + "z": 42.05 + }, + "A1": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 18.21, + "y": 75.43, + "z": 42.05 + }, + "D2": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 38.1, + "y": 17.59, + "z": 42.05 + }, + "C2": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 38.1, + "y": 36.87, + "z": 42.05 + }, + "B2": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 38.1, + "y": 56.15, + "z": 42.05 + }, + "A2": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 38.1, + "y": 75.43, + "z": 42.05 + }, + "D3": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 57.99, + "y": 17.59, + "z": 42.05 + }, + "C3": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 57.99, + "y": 36.87, + "z": 42.05 + }, + "B3": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 57.99, + "y": 56.15, + "z": 42.05 + }, + "A3": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 57.99, + "y": 75.43, + "z": 42.05 + }, + "D4": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 77.88, + "y": 17.59, + "z": 42.05 + }, + "C4": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 77.88, + "y": 36.87, + "z": 42.05 + }, + "B4": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 77.88, + "y": 56.15, + "z": 42.05 + }, + "A4": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 77.88, + "y": 75.43, + "z": 42.05 + }, + "D5": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 97.77, + "y": 17.59, + "z": 42.05 + }, + "C5": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 97.77, + "y": 36.87, + "z": 42.05 + }, + "B5": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 97.77, + "y": 56.15, + "z": 42.05 + }, + "A5": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 97.77, + "y": 75.43, + "z": 42.05 + }, + "D6": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 117.66, + "y": 17.59, + "z": 42.05 + }, + "C6": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 117.66, + "y": 36.87, + "z": 42.05 + }, + "B6": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 117.66, + "y": 56.15, + "z": 42.05 + }, + "A6": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 117.66, + "y": 75.43, + "z": 42.05 + } + }, + "brand": { + "brand": "Opentrons", + "brandId": [], + "links": [ + "https://shop.opentrons.com/collections/opentrons-tips/products/tube-rack-set-1" + ] + }, + "groups": [ + { + "wells": [ + "A1", + "B1", + "C1", + "D1", + "A2", + "B2", + "C2", + "D2", + "A3", + "B3", + "C3", + "D3", + "A4", + "B4", + "C4", + "D4", + "A5", + "B5", + "C5", + "D5", + "A6", + "B6", + "C6", + "D6" + ], + "metadata": { + "displayName": "Eppendorf 24x1.5 mL Safelock Snapcap", + "displayCategory": "tubeRack", + "wellBottomShape": "v" + }, + "brand": { + "brand": "Eppendorf", + "brandId": [ + "022363204", + "022363212", + "022363221", + "022363247", + "022363263", + "022363280", + "022363280", + "022363301", + "022363328" + ], + "links": [ + "https://online-shop.eppendorf.us/US-en/Laboratory-Consumables-44512/Tubes-44515/Eppendorf-Safe-Lock-Tubes-PF-8863.html" + ] + } + } + ], + "cornerOffsetFromSlot": { "x": 0, "y": 0, "z": 0 } + }, + "sourceWells": [ + "D1", + "C1", + "B1", + "A1", + "D2", + "C2", + "B2", + "A2", + "D3", + "C3", + "B3", + "A3", + "D4", + "C4", + "B4", + "A4", + "D5", + "C5", + "B5", + "A5", + "D6", + "C6", + "B6", + "A6" + ], + "destination": { + "ordering": [["A1"]], + "brand": { + "brand": "Axygen", + "brandId": ["RES-SW1-LP"], + "links": [ + "https://ecatalog.corning.com/life-sciences/b2c/US/en/Genomics-%26-Molecular-Biology/Automation-Consumables/Automation-Reservoirs/Axygen%C2%AE-Reagent-Reservoirs/p/RES-SW1-LP?clear=true" + ] + }, + "metadata": { + "displayName": "Axygen 1 Well Reservoir 90 mL", + "displayCategory": "reservoir", + "displayVolumeUnits": "mL", + "tags": [] + }, + "dimensions": { + "xDimension": 127.76, + "yDimension": 85.47, + "zDimension": 19.05 + }, + "wells": { + "A1": { + "depth": 12.42, + "shape": "rectangular", + "xDimension": 106.76, + "yDimension": 70.52, + "totalLiquidVolume": 90000, + "x": 63.88, + "y": 42.735, + "z": 6.63 + } + }, + "groups": [ + { "wells": ["A1"], "metadata": { "wellBottomShape": "flat" } } + ], + "parameters": { + "format": "trough", + "isTiprack": false, + "isMagneticModuleCompatible": false, + "loadName": "axygen_1_reservoir_90ml", + "quirks": ["centerMultichannelOnWells", "touchTipDisabled"] + }, + "namespace": "opentrons", + "version": 1, + "schemaVersion": 2, + "cornerOffsetFromSlot": { "x": 0, "y": 0, "z": 0 } + }, + "destinationWells": ["A1"], + "transferType": "consolidate", + "volume": 85, + "aspirateFlowRate": 716, + "dispenseFlowRate": 716, + "path": "multiAspirate", + "blowOut": "dest_well", + "tipPositionAspirate": 1, + "preWetTip": true, + "tipPositionDispense": 1, + "changeTip": "always", + "dropTipLocation": { + "cutoutFixtureId": "trashBinAdapter", + "cutoutId": "cutoutA3" + }, + "delayAspirate": { "delayDuration": 2, "positionFromBottom": 8 }, + "touchTipAspirate": 30, + "airGapAspirate": 4, + "mixOnDispense": { "mixVolume": 80, "repititions": 6 }, + "airGapDispense": 100 + } + }, + "robot": { "model": "OT-3 Standard", "deckId": "ot3_standard" }, + "labwareDefinitionSchemaId": "opentronsLabwareSchemaV2", + "labwareDefinitions": { + "opentrons/opentrons_flex_96_tiprack_200ul/1": { + "ordering": [ + ["A1", "B1", "C1", "D1", "E1", "F1", "G1", "H1"], + ["A2", "B2", "C2", "D2", "E2", "F2", "G2", "H2"], + ["A3", "B3", "C3", "D3", "E3", "F3", "G3", "H3"], + ["A4", "B4", "C4", "D4", "E4", "F4", "G4", "H4"], + ["A5", "B5", "C5", "D5", "E5", "F5", "G5", "H5"], + ["A6", "B6", "C6", "D6", "E6", "F6", "G6", "H6"], + ["A7", "B7", "C7", "D7", "E7", "F7", "G7", "H7"], + ["A8", "B8", "C8", "D8", "E8", "F8", "G8", "H8"], + ["A9", "B9", "C9", "D9", "E9", "F9", "G9", "H9"], + ["A10", "B10", "C10", "D10", "E10", "F10", "G10", "H10"], + ["A11", "B11", "C11", "D11", "E11", "F11", "G11", "H11"], + ["A12", "B12", "C12", "D12", "E12", "F12", "G12", "H12"] + ], + "brand": { "brand": "Opentrons", "brandId": [] }, + "metadata": { + "displayName": "Opentrons Flex 96 Tip Rack 200 µL", + "displayCategory": "tipRack", + "displayVolumeUnits": "µL", + "tags": [] + }, + "dimensions": { + "xDimension": 127.75, + "yDimension": 85.75, + "zDimension": 99 + }, + "gripForce": 16, + "gripHeightFromLabwareBottom": 23.9, + "wells": { + "A1": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 14.38, + "y": 74.38, + "z": 1.5 + }, + "B1": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 14.38, + "y": 65.38, + "z": 1.5 + }, + "C1": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 14.38, + "y": 56.38, + "z": 1.5 + }, + "D1": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 14.38, + "y": 47.38, + "z": 1.5 + }, + "E1": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 14.38, + "y": 38.38, + "z": 1.5 + }, + "F1": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 14.38, + "y": 29.38, + "z": 1.5 + }, + "G1": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 14.38, + "y": 20.38, + "z": 1.5 + }, + "H1": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 14.38, + "y": 11.38, + "z": 1.5 + }, + "A2": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 23.38, + "y": 74.38, + "z": 1.5 + }, + "B2": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 23.38, + "y": 65.38, + "z": 1.5 + }, + "C2": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 23.38, + "y": 56.38, + "z": 1.5 + }, + "D2": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 23.38, + "y": 47.38, + "z": 1.5 + }, + "E2": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 23.38, + "y": 38.38, + "z": 1.5 + }, + "F2": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 23.38, + "y": 29.38, + "z": 1.5 + }, + "G2": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 23.38, + "y": 20.38, + "z": 1.5 + }, + "H2": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 23.38, + "y": 11.38, + "z": 1.5 + }, + "A3": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 32.38, + "y": 74.38, + "z": 1.5 + }, + "B3": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 32.38, + "y": 65.38, + "z": 1.5 + }, + "C3": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 32.38, + "y": 56.38, + "z": 1.5 + }, + "D3": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 32.38, + "y": 47.38, + "z": 1.5 + }, + "E3": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 32.38, + "y": 38.38, + "z": 1.5 + }, + "F3": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 32.38, + "y": 29.38, + "z": 1.5 + }, + "G3": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 32.38, + "y": 20.38, + "z": 1.5 + }, + "H3": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 32.38, + "y": 11.38, + "z": 1.5 + }, + "A4": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 41.38, + "y": 74.38, + "z": 1.5 + }, + "B4": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 41.38, + "y": 65.38, + "z": 1.5 + }, + "C4": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 41.38, + "y": 56.38, + "z": 1.5 + }, + "D4": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 41.38, + "y": 47.38, + "z": 1.5 + }, + "E4": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 41.38, + "y": 38.38, + "z": 1.5 + }, + "F4": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 41.38, + "y": 29.38, + "z": 1.5 + }, + "G4": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 41.38, + "y": 20.38, + "z": 1.5 + }, + "H4": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 41.38, + "y": 11.38, + "z": 1.5 + }, + "A5": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 50.38, + "y": 74.38, + "z": 1.5 + }, + "B5": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 50.38, + "y": 65.38, + "z": 1.5 + }, + "C5": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 50.38, + "y": 56.38, + "z": 1.5 + }, + "D5": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 50.38, + "y": 47.38, + "z": 1.5 + }, + "E5": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 50.38, + "y": 38.38, + "z": 1.5 + }, + "F5": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 50.38, + "y": 29.38, + "z": 1.5 + }, + "G5": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 50.38, + "y": 20.38, + "z": 1.5 + }, + "H5": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 50.38, + "y": 11.38, + "z": 1.5 + }, + "A6": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 59.38, + "y": 74.38, + "z": 1.5 + }, + "B6": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 59.38, + "y": 65.38, + "z": 1.5 + }, + "C6": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 59.38, + "y": 56.38, + "z": 1.5 + }, + "D6": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 59.38, + "y": 47.38, + "z": 1.5 + }, + "E6": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 59.38, + "y": 38.38, + "z": 1.5 + }, + "F6": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 59.38, + "y": 29.38, + "z": 1.5 + }, + "G6": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 59.38, + "y": 20.38, + "z": 1.5 + }, + "H6": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 59.38, + "y": 11.38, + "z": 1.5 + }, + "A7": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 68.38, + "y": 74.38, + "z": 1.5 + }, + "B7": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 68.38, + "y": 65.38, + "z": 1.5 + }, + "C7": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 68.38, + "y": 56.38, + "z": 1.5 + }, + "D7": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 68.38, + "y": 47.38, + "z": 1.5 + }, + "E7": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 68.38, + "y": 38.38, + "z": 1.5 + }, + "F7": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 68.38, + "y": 29.38, + "z": 1.5 + }, + "G7": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 68.38, + "y": 20.38, + "z": 1.5 + }, + "H7": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 68.38, + "y": 11.38, + "z": 1.5 + }, + "A8": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 77.38, + "y": 74.38, + "z": 1.5 + }, + "B8": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 77.38, + "y": 65.38, + "z": 1.5 + }, + "C8": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 77.38, + "y": 56.38, + "z": 1.5 + }, + "D8": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 77.38, + "y": 47.38, + "z": 1.5 + }, + "E8": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 77.38, + "y": 38.38, + "z": 1.5 + }, + "F8": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 77.38, + "y": 29.38, + "z": 1.5 + }, + "G8": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 77.38, + "y": 20.38, + "z": 1.5 + }, + "H8": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 77.38, + "y": 11.38, + "z": 1.5 + }, + "A9": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 86.38, + "y": 74.38, + "z": 1.5 + }, + "B9": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 86.38, + "y": 65.38, + "z": 1.5 + }, + "C9": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 86.38, + "y": 56.38, + "z": 1.5 + }, + "D9": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 86.38, + "y": 47.38, + "z": 1.5 + }, + "E9": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 86.38, + "y": 38.38, + "z": 1.5 + }, + "F9": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 86.38, + "y": 29.38, + "z": 1.5 + }, + "G9": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 86.38, + "y": 20.38, + "z": 1.5 + }, + "H9": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 86.38, + "y": 11.38, + "z": 1.5 + }, + "A10": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 95.38, + "y": 74.38, + "z": 1.5 + }, + "B10": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 95.38, + "y": 65.38, + "z": 1.5 + }, + "C10": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 95.38, + "y": 56.38, + "z": 1.5 + }, + "D10": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 95.38, + "y": 47.38, + "z": 1.5 + }, + "E10": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 95.38, + "y": 38.38, + "z": 1.5 + }, + "F10": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 95.38, + "y": 29.38, + "z": 1.5 + }, + "G10": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 95.38, + "y": 20.38, + "z": 1.5 + }, + "H10": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 95.38, + "y": 11.38, + "z": 1.5 + }, + "A11": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 104.38, + "y": 74.38, + "z": 1.5 + }, + "B11": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 104.38, + "y": 65.38, + "z": 1.5 + }, + "C11": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 104.38, + "y": 56.38, + "z": 1.5 + }, + "D11": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 104.38, + "y": 47.38, + "z": 1.5 + }, + "E11": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 104.38, + "y": 38.38, + "z": 1.5 + }, + "F11": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 104.38, + "y": 29.38, + "z": 1.5 + }, + "G11": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 104.38, + "y": 20.38, + "z": 1.5 + }, + "H11": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 104.38, + "y": 11.38, + "z": 1.5 + }, + "A12": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 113.38, + "y": 74.38, + "z": 1.5 + }, + "B12": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 113.38, + "y": 65.38, + "z": 1.5 + }, + "C12": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 113.38, + "y": 56.38, + "z": 1.5 + }, + "D12": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 113.38, + "y": 47.38, + "z": 1.5 + }, + "E12": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 113.38, + "y": 38.38, + "z": 1.5 + }, + "F12": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 113.38, + "y": 29.38, + "z": 1.5 + }, + "G12": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 113.38, + "y": 20.38, + "z": 1.5 + }, + "H12": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.59, + "totalLiquidVolume": 200, + "x": 113.38, + "y": 11.38, + "z": 1.5 + } + }, + "groups": [ + { + "metadata": {}, + "wells": [ + "A1", + "B1", + "C1", + "D1", + "E1", + "F1", + "G1", + "H1", + "A2", + "B2", + "C2", + "D2", + "E2", + "F2", + "G2", + "H2", + "A3", + "B3", + "C3", + "D3", + "E3", + "F3", + "G3", + "H3", + "A4", + "B4", + "C4", + "D4", + "E4", + "F4", + "G4", + "H4", + "A5", + "B5", + "C5", + "D5", + "E5", + "F5", + "G5", + "H5", + "A6", + "B6", + "C6", + "D6", + "E6", + "F6", + "G6", + "H6", + "A7", + "B7", + "C7", + "D7", + "E7", + "F7", + "G7", + "H7", + "A8", + "B8", + "C8", + "D8", + "E8", + "F8", + "G8", + "H8", + "A9", + "B9", + "C9", + "D9", + "E9", + "F9", + "G9", + "H9", + "A10", + "B10", + "C10", + "D10", + "E10", + "F10", + "G10", + "H10", + "A11", + "B11", + "C11", + "D11", + "E11", + "F11", + "G11", + "H11", + "A12", + "B12", + "C12", + "D12", + "E12", + "F12", + "G12", + "H12" + ] + } + ], + "parameters": { + "format": "96Standard", + "quirks": [], + "isTiprack": true, + "tipLength": 58.35, + "tipOverlap": 10.5, + "isMagneticModuleCompatible": false, + "loadName": "opentrons_flex_96_tiprack_200ul" + }, + "namespace": "opentrons", + "version": 1, + "schemaVersion": 2, + "cornerOffsetFromSlot": { "x": 0, "y": 0, "z": 0 }, + "stackingOffsetWithLabware": { + "opentrons_flex_96_tiprack_adapter": { "x": 0, "y": 0, "z": 121 } + } + }, + "opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1": { + "ordering": [ + ["A1", "B1", "C1", "D1"], + ["A2", "B2", "C2", "D2"], + ["A3", "B3", "C3", "D3"], + ["A4", "B4", "C4", "D4"], + ["A5", "B5", "C5", "D5"], + ["A6", "B6", "C6", "D6"] + ], + "schemaVersion": 2, + "version": 1, + "namespace": "opentrons", + "metadata": { + "tags": [], + "displayName": "Opentrons 24 Tube Rack with Eppendorf 1.5 mL Safe-Lock Snapcap", + "displayVolumeUnits": "mL", + "displayCategory": "tubeRack" + }, + "dimensions": { + "xDimension": 127.75, + "yDimension": 85.5, + "zDimension": 79.85 + }, + "parameters": { + "format": "irregular", + "isTiprack": false, + "isMagneticModuleCompatible": false, + "loadName": "opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap" + }, + "wells": { + "D1": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 18.21, + "y": 17.59, + "z": 42.05 + }, + "C1": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 18.21, + "y": 36.87, + "z": 42.05 + }, + "B1": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 18.21, + "y": 56.15, + "z": 42.05 + }, + "A1": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 18.21, + "y": 75.43, + "z": 42.05 + }, + "D2": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 38.1, + "y": 17.59, + "z": 42.05 + }, + "C2": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 38.1, + "y": 36.87, + "z": 42.05 + }, + "B2": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 38.1, + "y": 56.15, + "z": 42.05 + }, + "A2": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 38.1, + "y": 75.43, + "z": 42.05 + }, + "D3": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 57.99, + "y": 17.59, + "z": 42.05 + }, + "C3": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 57.99, + "y": 36.87, + "z": 42.05 + }, + "B3": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 57.99, + "y": 56.15, + "z": 42.05 + }, + "A3": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 57.99, + "y": 75.43, + "z": 42.05 + }, + "D4": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 77.88, + "y": 17.59, + "z": 42.05 + }, + "C4": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 77.88, + "y": 36.87, + "z": 42.05 + }, + "B4": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 77.88, + "y": 56.15, + "z": 42.05 + }, + "A4": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 77.88, + "y": 75.43, + "z": 42.05 + }, + "D5": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 97.77, + "y": 17.59, + "z": 42.05 + }, + "C5": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 97.77, + "y": 36.87, + "z": 42.05 + }, + "B5": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 97.77, + "y": 56.15, + "z": 42.05 + }, + "A5": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 97.77, + "y": 75.43, + "z": 42.05 + }, + "D6": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 117.66, + "y": 17.59, + "z": 42.05 + }, + "C6": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 117.66, + "y": 36.87, + "z": 42.05 + }, + "B6": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 117.66, + "y": 56.15, + "z": 42.05 + }, + "A6": { + "depth": 37.8, + "diameter": 8.7, + "shape": "circular", + "totalLiquidVolume": 1500, + "x": 117.66, + "y": 75.43, + "z": 42.05 + } + }, + "brand": { + "brand": "Opentrons", + "brandId": [], + "links": [ + "https://shop.opentrons.com/collections/opentrons-tips/products/tube-rack-set-1" + ] + }, + "groups": [ + { + "wells": [ + "A1", + "B1", + "C1", + "D1", + "A2", + "B2", + "C2", + "D2", + "A3", + "B3", + "C3", + "D3", + "A4", + "B4", + "C4", + "D4", + "A5", + "B5", + "C5", + "D5", + "A6", + "B6", + "C6", + "D6" + ], + "metadata": { + "displayName": "Eppendorf 24x1.5 mL Safelock Snapcap", + "displayCategory": "tubeRack", + "wellBottomShape": "v" + }, + "brand": { + "brand": "Eppendorf", + "brandId": [ + "022363204", + "022363212", + "022363221", + "022363247", + "022363263", + "022363280", + "022363280", + "022363301", + "022363328" + ], + "links": [ + "https://online-shop.eppendorf.us/US-en/Laboratory-Consumables-44512/Tubes-44515/Eppendorf-Safe-Lock-Tubes-PF-8863.html" + ] + } + } + ], + "cornerOffsetFromSlot": { "x": 0, "y": 0, "z": 0 } + }, + "opentrons/axygen_1_reservoir_90ml/1": { + "ordering": [["A1"]], + "brand": { + "brand": "Axygen", + "brandId": ["RES-SW1-LP"], + "links": [ + "https://ecatalog.corning.com/life-sciences/b2c/US/en/Genomics-%26-Molecular-Biology/Automation-Consumables/Automation-Reservoirs/Axygen%C2%AE-Reagent-Reservoirs/p/RES-SW1-LP?clear=true" + ] + }, + "metadata": { + "displayName": "Axygen 1 Well Reservoir 90 mL", + "displayCategory": "reservoir", + "displayVolumeUnits": "mL", + "tags": [] + }, + "dimensions": { + "xDimension": 127.76, + "yDimension": 85.47, + "zDimension": 19.05 + }, + "wells": { + "A1": { + "depth": 12.42, + "shape": "rectangular", + "xDimension": 106.76, + "yDimension": 70.52, + "totalLiquidVolume": 90000, + "x": 63.88, + "y": 42.735, + "z": 6.63 + } + }, + "groups": [ + { "wells": ["A1"], "metadata": { "wellBottomShape": "flat" } } + ], + "parameters": { + "format": "trough", + "isTiprack": false, + "isMagneticModuleCompatible": false, + "loadName": "axygen_1_reservoir_90ml", + "quirks": ["centerMultichannelOnWells", "touchTipDisabled"] + }, + "namespace": "opentrons", + "version": 1, + "schemaVersion": 2, + "cornerOffsetFromSlot": { "x": 0, "y": 0, "z": 0 } + } + }, + "liquidSchemaId": "opentronsLiquidSchemaV1", + "liquids": {}, + "commandSchemaId": "opentronsCommandSchemaV8", + "commands": [ + { + "key": "f4f7bc7d-6360-4d02-8ea4-67ca84bd7767", + "commandType": "loadPipette", + "params": { + "pipetteName": "p1000_single_flex", + "mount": "right", + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex" + } + }, + { + "key": "c11bb036-868a-4de7-b14c-bf939c04c1a7", + "commandType": "loadLabware", + "params": { + "displayName": "Opentrons Flex 96 Tip Rack 200 µL", + "labwareId": "5d2608f9-ebcb-42f2-807f-ad53b81150b0_opentrons/opentrons_flex_96_tiprack_200ul/1", + "loadName": "opentrons_flex_96_tiprack_200ul", + "namespace": "opentrons", + "version": 1, + "location": { "slotName": "B2" } + } + }, + { + "key": "ee9a58e7-27cb-4f12-b784-57e0b36dec81", + "commandType": "loadLabware", + "params": { + "displayName": "Opentrons 24 Tube Rack with Eppendorf 1.5 mL Safe-Lock Snapcap", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "loadName": "opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap", + "namespace": "opentrons", + "version": 1, + "location": { "slotName": "C2" } + } + }, + { + "key": "fac803ee-3a34-4ff0-a647-bd2fd80e1790", + "commandType": "loadLabware", + "params": { + "displayName": "Axygen 1 Well Reservoir 90 mL", + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "loadName": "axygen_1_reservoir_90ml", + "namespace": "opentrons", + "version": 1, + "location": { "slotName": "D2" } + } + }, + { + "commandType": "pickUpTip", + "key": "209b6fbe-fd5d-4b0e-8962-0f01fac3452b", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5d2608f9-ebcb-42f2-807f-ad53b81150b0_opentrons/opentrons_flex_96_tiprack_200ul/1", + "wellName": "A1" + } + }, + { + "commandType": "aspirate", + "key": "47e037e0-645d-4b62-87f2-89571f5d7fd6", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "f991d201-f247-4008-b168-a29db0c7c772", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "8a280aa4-1e0d-4042-b70d-51089bba6a3b", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "75b7299a-ad41-49b4-8fde-91c349f14e39", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "moveToWell", + "key": "85745f9a-968f-47eb-bbd4-df50aa043ca1", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "x": 0, "y": 0, "z": 8 } + } + } + }, + { + "commandType": "waitForDuration", + "key": "5d88057d-d628-4e98-9309-e3cb61ac265a", + "params": { "seconds": 2 } + }, + { + "commandType": "touchTip", + "key": "a93d60e2-7384-4424-8321-390a4b7773f0", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "A1", + "wellLocation": { "origin": "bottom", "offset": { "z": 30 } } + } + }, + { + "commandType": "aspirate", + "key": "24a9efa7-734e-416d-9414-2b8e3c76d40c", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 4, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 38.8, "x": 0, "y": 0 } + }, + "flowRate": 716 + }, + "meta": { "isAirGap": true } + }, + { + "commandType": "waitForDuration", + "key": "d5ae5c7b-be7e-432c-9446-e19d7639895f", + "params": { "seconds": 2 } + }, + { + "commandType": "aspirate", + "key": "16022d46-0d25-47e5-bbcd-9a013d6f9d3d", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "B1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "moveToWell", + "key": "7dd756f4-ca23-4aa6-92b5-2dbf526d03aa", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "B1", + "wellLocation": { + "origin": "bottom", + "offset": { "x": 0, "y": 0, "z": 8 } + } + } + }, + { + "commandType": "waitForDuration", + "key": "9bef74aa-162a-49e2-9359-463d0b60ee35", + "params": { "seconds": 2 } + }, + { + "commandType": "touchTip", + "key": "a6eb62e7-55d9-43c7-affa-035599657b7f", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "B1", + "wellLocation": { "origin": "bottom", "offset": { "z": 30 } } + } + }, + { + "commandType": "aspirate", + "key": "bea28cf2-53f3-46d6-8b6d-c47f5bb4c883", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 4, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "B1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 38.8, "x": 0, "y": 0 } + }, + "flowRate": 716 + }, + "meta": { "isAirGap": true } + }, + { + "commandType": "waitForDuration", + "key": "41bc6573-d9d2-4f1e-98c7-1edb36c0dcb0", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "3c027cdb-b5f1-4935-a002-9084d922364f", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 178, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "95c60f2c-98c9-4a12-9b00-1bc60755db02", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "c0ddcb2b-1ec5-43b3-b0a2-9321dc945fdc", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "f6173e16-8b09-4d17-9a27-8f8c4ff92a93", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "19a9a5f6-1431-4f29-bcc9-1ce211e4dd61", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "770e7b4d-9e31-43d0-8568-4e0067c47306", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "db2e5163-75a1-4e6a-a853-a9c28e39bbca", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "24080b5f-ed2a-494e-9ef4-a1a8c2b8d428", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "51c7246d-c3d9-4587-a7ad-7f5832e77eeb", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "8fdcf3b1-c393-498b-9a2c-6d3171b2717c", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "4b218532-536c-4e28-bd88-077f205b2d31", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "db52a99a-97bc-4247-8c7c-652fca97737c", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "17de7724-f39c-4e64-b6f1-eda040beb574", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "fb2c9049-ccb2-44a5-91af-b03e6ed0af0c", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "7ba7a88a-7d66-47c5-80f6-12dd3bded8b9", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "cd0a9b35-9212-41d0-9e8d-efe9c2f9bfe5", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "327fe8d6-ed1f-4b4a-b148-50e5c4c8059d", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "9332c077-509d-44ba-acff-548d3b4be9f7", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "aa5f8d79-3328-4758-9c7a-74e22d9bcfd6", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "blowout", + "key": "e5156ba2-c8d6-4adb-aaee-1d2d45487de1", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "flowRate": 716, + "wellLocation": { "origin": "top", "offset": { "z": 0 } } + } + }, + { + "commandType": "aspirate", + "key": "f3a071a2-26b3-4c2a-af48-09aa9390e222", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 100, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 13.42, "x": 0, "y": 0 } + }, + "flowRate": 716 + }, + "meta": { "isAirGap": true } + }, + { + "commandType": "waitForDuration", + "key": "28182a58-c4df-4370-a36a-423c8b906548", + "params": { "seconds": 2 } + }, + { + "commandType": "moveToAddressableAreaForDropTip", + "key": "ba7ef859-2253-4be4-9f2e-469e320f22a7", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "addressableAreaName": "movableTrashA3", + "offset": { "x": 0, "y": 0, "z": 0 }, + "alternateDropLocation": true + } + }, + { + "commandType": "dropTipInPlace", + "key": "a8396a5d-38ee-4bcb-bdbc-8c8e81795635", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex" + } + }, + { + "commandType": "pickUpTip", + "key": "995de4ca-d974-43ec-a2dc-fb43ef2e2586", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5d2608f9-ebcb-42f2-807f-ad53b81150b0_opentrons/opentrons_flex_96_tiprack_200ul/1", + "wellName": "B1" + } + }, + { + "commandType": "aspirate", + "key": "361561d8-07b1-4ee7-b8de-903dd9aba0c0", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "C1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "afa25f55-7574-4196-b9fd-f3841796abf2", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "a81971ad-3a29-4af5-8925-9f9f8229c036", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "C1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "1acd41f2-813d-4686-9f51-0777ea5b6e4c", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "C1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "moveToWell", + "key": "59e58eb7-3c49-4e56-802b-1aaf4b94a284", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "C1", + "wellLocation": { + "origin": "bottom", + "offset": { "x": 0, "y": 0, "z": 8 } + } + } + }, + { + "commandType": "waitForDuration", + "key": "8ed9cf90-6b54-439c-91ed-2f12b349d403", + "params": { "seconds": 2 } + }, + { + "commandType": "touchTip", + "key": "ab603bec-0263-47c2-bb85-9e8c71e004b0", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "C1", + "wellLocation": { "origin": "bottom", "offset": { "z": 30 } } + } + }, + { + "commandType": "aspirate", + "key": "a8ebfa2e-21f1-476a-bfb3-0b8b4be2b20f", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 4, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "C1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 38.8, "x": 0, "y": 0 } + }, + "flowRate": 716 + }, + "meta": { "isAirGap": true } + }, + { + "commandType": "waitForDuration", + "key": "d5ffe2cd-df3c-4eaa-a5d6-4cd59dcfe799", + "params": { "seconds": 2 } + }, + { + "commandType": "aspirate", + "key": "02bf218f-9d89-4c5f-8921-dc413a2bc8f5", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "D1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "moveToWell", + "key": "eac9c15b-ddaf-4009-8ef0-4f6113ee9eff", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "D1", + "wellLocation": { + "origin": "bottom", + "offset": { "x": 0, "y": 0, "z": 8 } + } + } + }, + { + "commandType": "waitForDuration", + "key": "8e954355-f051-4b98-8189-01c1c0026d23", + "params": { "seconds": 2 } + }, + { + "commandType": "touchTip", + "key": "9df8a1b3-277b-4805-89d9-557e9b2e1069", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "D1", + "wellLocation": { "origin": "bottom", "offset": { "z": 30 } } + } + }, + { + "commandType": "aspirate", + "key": "c56bf24a-431d-439b-904d-5b5b2041630f", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 4, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "D1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 38.8, "x": 0, "y": 0 } + }, + "flowRate": 716 + }, + "meta": { "isAirGap": true } + }, + { + "commandType": "waitForDuration", + "key": "39ff7db4-720e-442c-aeff-65f19f1ee6fe", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "fe80f531-6451-47d3-8937-0613da19f3a2", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 178, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "28f060dc-953c-4e21-90a6-b92871886d25", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "8e91de58-6d00-429d-9665-d1e3a405c73e", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "b78fe58a-f1f7-4af4-a416-2145edc4439b", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "560205d7-e291-423c-a7a7-29e35bd93c34", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "a5e890ea-738f-446a-b3c8-7a2f8bcd5f2a", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "4ca28879-5c79-4043-a33c-9cc6ec7860ba", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "e1ec6f7b-5e30-4767-867a-1b98af8c59fb", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "5fcc99f7-b7a7-49c6-a429-1e958f650190", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "7f27eada-2424-41f5-9208-c0a689e8448a", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "e16ba1d8-75ca-4965-aa20-bd8c8f75f11e", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "87abd0dd-2d00-4b9d-aa13-5311dfd0f2ee", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "5ae72f0f-5481-4bba-8ba2-e75feba31901", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "369f8644-05ab-4df5-a056-979118fe7447", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "9dc43e2c-89ef-4461-a3d5-b7553f1c0b10", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "b6699ced-2d77-46ad-89b9-8ac852b1f91a", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "a5b933aa-6423-4d0a-84e4-84f920589951", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "71c8c394-d72f-4d10-8261-ee01118182f4", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "cdc543e3-33f1-4f2e-92b9-0619f124e952", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "blowout", + "key": "3aec6f63-b8d5-472c-974e-f95565b54287", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "flowRate": 716, + "wellLocation": { "origin": "top", "offset": { "z": 0 } } + } + }, + { + "commandType": "aspirate", + "key": "e63ae587-7993-4529-aaa7-455468473d40", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 100, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 13.42, "x": 0, "y": 0 } + }, + "flowRate": 716 + }, + "meta": { "isAirGap": true } + }, + { + "commandType": "waitForDuration", + "key": "9b47a61e-159d-4d2c-ad80-f7cafd52b5bf", + "params": { "seconds": 2 } + }, + { + "commandType": "moveToAddressableAreaForDropTip", + "key": "f78f2a01-a2ac-4216-baa9-891ec0f78d1a", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "addressableAreaName": "movableTrashA3", + "offset": { "x": 0, "y": 0, "z": 0 }, + "alternateDropLocation": true + } + }, + { + "commandType": "dropTipInPlace", + "key": "e596a1a8-a26d-43d4-8012-b3e344ca9abf", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex" + } + }, + { + "commandType": "pickUpTip", + "key": "773918c9-b8ea-4b12-9c13-d46ddda136c4", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5d2608f9-ebcb-42f2-807f-ad53b81150b0_opentrons/opentrons_flex_96_tiprack_200ul/1", + "wellName": "C1" + } + }, + { + "commandType": "aspirate", + "key": "5e3e72e7-9474-422b-9ff3-53d84cb8f6aa", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "A2", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "aa5685d2-5b65-4c77-90a7-c9171cb82dfa", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "e6f95a64-5b0d-4b63-8bd1-ed4a21f40708", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "A2", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "9afe1b83-5de0-4d0e-ba28-15fe2e03354a", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "A2", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "moveToWell", + "key": "d1a35e48-0b8a-4d10-853d-186518711aa1", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "A2", + "wellLocation": { + "origin": "bottom", + "offset": { "x": 0, "y": 0, "z": 8 } + } + } + }, + { + "commandType": "waitForDuration", + "key": "58489011-03f2-4c32-a1fe-f4e0be4e8ed6", + "params": { "seconds": 2 } + }, + { + "commandType": "touchTip", + "key": "7234e88d-9c35-4ab4-aa82-75c440cb8941", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "A2", + "wellLocation": { "origin": "bottom", "offset": { "z": 30 } } + } + }, + { + "commandType": "aspirate", + "key": "a5ff3fe0-48d0-42ab-b093-267b189bb7f4", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 4, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "A2", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 38.8, "x": 0, "y": 0 } + }, + "flowRate": 716 + }, + "meta": { "isAirGap": true } + }, + { + "commandType": "waitForDuration", + "key": "873f6fdf-72b5-44d0-8b6f-d6cbdfd1c308", + "params": { "seconds": 2 } + }, + { + "commandType": "aspirate", + "key": "70eb8210-bd4c-469c-af29-87cd5414f984", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "B2", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "moveToWell", + "key": "25ed72f8-37f1-4414-ad3e-794d6af3e975", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "B2", + "wellLocation": { + "origin": "bottom", + "offset": { "x": 0, "y": 0, "z": 8 } + } + } + }, + { + "commandType": "waitForDuration", + "key": "dbe9802a-0bcd-467e-b1df-4e8dc6b15485", + "params": { "seconds": 2 } + }, + { + "commandType": "touchTip", + "key": "3063959d-a6f2-4047-9f0e-d0ea8e4f36e7", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "B2", + "wellLocation": { "origin": "bottom", "offset": { "z": 30 } } + } + }, + { + "commandType": "aspirate", + "key": "961b1d54-adb1-41e3-af93-9088024c8651", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 4, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "B2", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 38.8, "x": 0, "y": 0 } + }, + "flowRate": 716 + }, + "meta": { "isAirGap": true } + }, + { + "commandType": "waitForDuration", + "key": "75253977-c94b-4073-8799-36fc6a586407", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "0997cd84-49f3-4ca7-9d16-46b4e31af537", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 178, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "e2ab4066-d1ca-4bce-9c16-fff685db5292", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "e6b5e475-03f4-4f3e-9202-b951f473df5e", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "49b3724e-6e19-48cc-a9c6-29e4a0fd29df", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "aaf33445-57c1-4986-9256-0896109ef9f2", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "9a3f98be-bec6-478c-91ab-d751f90d6a10", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "f4dfa490-9148-4d4b-b060-d6b7a6e4ff36", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "bb53fe28-7404-449d-94e4-4584a68b169e", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "6a1d3f25-3d2b-4950-9002-6cd1a2e67d22", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "b367759e-a098-43bc-ab64-ebb478705121", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "948b5be0-d13c-4583-bf9a-700b5d263685", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "7390c909-0044-4735-b39e-08ac449eddb2", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "5bb4f0db-b4bd-427b-a68e-5202340f41b8", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "47fcda11-8c29-4de8-979a-cbf2c14729e1", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "6c5b13e6-c5e5-4122-8780-8b2f9ea31bb9", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "947be914-4181-40cb-b2d8-eacb7624fceb", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "0a9c7835-7e82-40b9-b994-ddb4389ab866", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "015d6584-777e-402a-b9f3-f56c34b84a3b", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "0d2cd2a0-a74f-4f1f-a926-0f8ae15f07e3", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "blowout", + "key": "d38fbccf-cac9-457c-a2d5-b04a9acfdc8d", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "flowRate": 716, + "wellLocation": { "origin": "top", "offset": { "z": 0 } } + } + }, + { + "commandType": "aspirate", + "key": "644a17dc-6618-4a9f-967b-daf272380bf7", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 100, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 13.42, "x": 0, "y": 0 } + }, + "flowRate": 716 + }, + "meta": { "isAirGap": true } + }, + { + "commandType": "waitForDuration", + "key": "9a015cab-df68-4abe-9d8c-bac8db3c81f1", + "params": { "seconds": 2 } + }, + { + "commandType": "moveToAddressableAreaForDropTip", + "key": "ab7e1126-4bee-4bd2-94ee-1b602a1491cf", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "addressableAreaName": "movableTrashA3", + "offset": { "x": 0, "y": 0, "z": 0 }, + "alternateDropLocation": true + } + }, + { + "commandType": "dropTipInPlace", + "key": "1855957d-a8a6-4f52-bff3-c99cdaeae76f", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex" + } + }, + { + "commandType": "pickUpTip", + "key": "aa9dbc6d-8c35-4009-9115-a7334a685b21", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5d2608f9-ebcb-42f2-807f-ad53b81150b0_opentrons/opentrons_flex_96_tiprack_200ul/1", + "wellName": "D1" + } + }, + { + "commandType": "aspirate", + "key": "1379b64e-5e49-4f1e-8685-1844b67bf57a", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "C2", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "c9581277-734d-423a-9e45-7be1f2c5d19c", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "3d3c88ef-2e0c-4f6b-979e-aee296bb7a83", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "C2", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "b3e9d61c-bef1-4f9a-ac64-fd07c7d8d876", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "C2", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "moveToWell", + "key": "27a153b1-b57d-4adc-8448-45f69372313e", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "C2", + "wellLocation": { + "origin": "bottom", + "offset": { "x": 0, "y": 0, "z": 8 } + } + } + }, + { + "commandType": "waitForDuration", + "key": "d8b77571-d95e-4d7e-a54c-0f1686222755", + "params": { "seconds": 2 } + }, + { + "commandType": "touchTip", + "key": "c708af6a-6c58-48d8-9b8a-1c9a84f8c21e", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "C2", + "wellLocation": { "origin": "bottom", "offset": { "z": 30 } } + } + }, + { + "commandType": "aspirate", + "key": "e7c8ded4-aa43-4f6d-acb6-7038f55e42ee", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 4, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "C2", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 38.8, "x": 0, "y": 0 } + }, + "flowRate": 716 + }, + "meta": { "isAirGap": true } + }, + { + "commandType": "waitForDuration", + "key": "f6770a77-f031-461e-a4aa-671f22362f66", + "params": { "seconds": 2 } + }, + { + "commandType": "aspirate", + "key": "cd6c4f4a-7445-4fd4-9323-a2f185d8e769", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "D2", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "moveToWell", + "key": "7a9faa71-6c10-4e2d-988c-eb9ba6f0eedc", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "D2", + "wellLocation": { + "origin": "bottom", + "offset": { "x": 0, "y": 0, "z": 8 } + } + } + }, + { + "commandType": "waitForDuration", + "key": "246e7cc7-01f4-40d9-8b77-9e5f6ab9752f", + "params": { "seconds": 2 } + }, + { + "commandType": "touchTip", + "key": "f89492b2-cdaf-4e90-bd34-762a7d76d745", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "D2", + "wellLocation": { "origin": "bottom", "offset": { "z": 30 } } + } + }, + { + "commandType": "aspirate", + "key": "d18408a7-8865-4a0c-be2e-ec3fc2a68aa0", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 4, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "D2", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 38.8, "x": 0, "y": 0 } + }, + "flowRate": 716 + }, + "meta": { "isAirGap": true } + }, + { + "commandType": "waitForDuration", + "key": "826e2065-6ba2-4155-a479-f68905df3c2e", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "e601d28c-c507-49cc-8b32-321416c8762d", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 178, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "1d87ac17-52b7-40df-99e4-5e48920e799b", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "0a619a2e-3fea-4fa2-bad1-e40cde9b3ff6", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "191bc26d-ac2a-4da0-abc9-fe0663af9504", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "345627c3-effc-4d5e-a788-7a116c9e4670", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "4d055c79-01d8-47df-850a-6c1ff23e7711", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "942e02b7-3dac-4f2b-ae7d-fcc612e4ef73", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "b21d7cd0-4ff6-4786-b30a-d81098ab4f70", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "d0b4a5ff-155b-4d8b-9aa6-85b585470e1a", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "95cb1d3b-d5a0-427a-8c85-cfcedbd12c7c", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "38ad7575-be63-417e-b976-dd88568b3c27", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "96af9ab9-58d0-4e75-b77a-e2dff63eab0f", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "72f1d584-e167-4143-a708-d442235ca515", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "a5c6338e-3e4c-4332-b29d-9ee04d3cd050", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "f6b231fa-f138-4296-9790-1ead2675c7db", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "87a883ec-8ea8-441c-88fe-31c86b0ea1f1", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "9fcddaec-bcb5-42fa-a551-e05d2f95feec", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "20c10be3-ee88-4f4b-b169-0289ec975c22", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "e4522a4d-f64f-4496-b24e-6ab91f3b2602", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "blowout", + "key": "f1718269-ea9d-4f00-a744-8f91562266f9", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "flowRate": 716, + "wellLocation": { "origin": "top", "offset": { "z": 0 } } + } + }, + { + "commandType": "aspirate", + "key": "b7691851-d1ca-45d2-ab64-4ac9d5700984", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 100, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 13.42, "x": 0, "y": 0 } + }, + "flowRate": 716 + }, + "meta": { "isAirGap": true } + }, + { + "commandType": "waitForDuration", + "key": "be5eb383-58f7-47f3-be93-3c01fd0dd04e", + "params": { "seconds": 2 } + }, + { + "commandType": "moveToAddressableAreaForDropTip", + "key": "b4090cb4-a4f7-4a4b-94bc-ee49efead6e4", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "addressableAreaName": "movableTrashA3", + "offset": { "x": 0, "y": 0, "z": 0 }, + "alternateDropLocation": true + } + }, + { + "commandType": "dropTipInPlace", + "key": "4ebcd158-d57d-41ef-a336-80c0d721fff7", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex" + } + }, + { + "commandType": "pickUpTip", + "key": "bb0b1332-a647-4dca-950c-3ac08684f0d9", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5d2608f9-ebcb-42f2-807f-ad53b81150b0_opentrons/opentrons_flex_96_tiprack_200ul/1", + "wellName": "E1" + } + }, + { + "commandType": "aspirate", + "key": "67c219ac-f6e8-43f7-b381-ea99c889654f", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "A3", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "975d32f4-5e04-49ba-b226-48ae4d01ccab", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "eec5b7f8-7fa3-45e5-903c-7ac21daefe10", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "A3", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "a8892d52-44c3-4499-98c3-ee70637b7d0d", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "A3", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "moveToWell", + "key": "857bea26-1cdf-427b-a30e-e97c4a966978", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "A3", + "wellLocation": { + "origin": "bottom", + "offset": { "x": 0, "y": 0, "z": 8 } + } + } + }, + { + "commandType": "waitForDuration", + "key": "682a4ae6-834c-49b6-b538-7bd58a244273", + "params": { "seconds": 2 } + }, + { + "commandType": "touchTip", + "key": "b297987a-0e0e-494c-86e9-4e4d4ff62202", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "A3", + "wellLocation": { "origin": "bottom", "offset": { "z": 30 } } + } + }, + { + "commandType": "aspirate", + "key": "52a9f8bb-cddb-4062-8695-9e1dd4666a5c", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 4, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "A3", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 38.8, "x": 0, "y": 0 } + }, + "flowRate": 716 + }, + "meta": { "isAirGap": true } + }, + { + "commandType": "waitForDuration", + "key": "be82c212-7a3b-4417-9d9c-17c25536e7b6", + "params": { "seconds": 2 } + }, + { + "commandType": "aspirate", + "key": "9425de9d-5b63-46ac-b515-abcd9a023c36", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "B3", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "moveToWell", + "key": "fbb4ebf4-a860-4f1e-bce6-fb33d7b3071d", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "B3", + "wellLocation": { + "origin": "bottom", + "offset": { "x": 0, "y": 0, "z": 8 } + } + } + }, + { + "commandType": "waitForDuration", + "key": "df6c11d0-ebf5-4aa1-9c79-153a7f0837ae", + "params": { "seconds": 2 } + }, + { + "commandType": "touchTip", + "key": "efdb1d1c-e2ea-464c-a145-fc9cf70a4723", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "B3", + "wellLocation": { "origin": "bottom", "offset": { "z": 30 } } + } + }, + { + "commandType": "aspirate", + "key": "806c008a-21d7-4be3-8364-8063dec52cd1", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 4, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "B3", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 38.8, "x": 0, "y": 0 } + }, + "flowRate": 716 + }, + "meta": { "isAirGap": true } + }, + { + "commandType": "waitForDuration", + "key": "5ca16307-b8c2-43f6-999d-6e2b6d89459e", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "c7aeafab-2543-451d-b93d-0d3e909bd20c", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 178, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "05fdf95a-a0f8-4bb7-9661-8adbcd435a32", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "237d8a7e-1706-4136-9e08-4dda257e9e7b", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "5a3f0f6e-342e-43be-91a8-7e1d48686efa", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "b5aaf5c2-50b9-410a-a042-52987cd52f5b", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "61d4de2e-7694-4fbe-9a38-f00ea06f8ed1", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "65301020-86f1-47db-972a-20cd674c5711", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "38ca6ef3-a405-4b2e-b98b-25799e94f7f5", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "ab2cbaba-ea71-4669-b05b-d851992aca7c", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "19c87d17-3a15-4796-b65c-8dc94fbef8c0", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "9727f6bf-e175-40af-943d-5cd17f011b17", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "b27a880d-5637-4a60-8426-b9fe7afc7171", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "bff427a6-55fc-4803-989f-6492b3c3d7c9", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "3429a8cc-34de-45b5-bd88-bada1af34689", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "d2d75efb-fa41-4671-bdb2-81c3cedfc996", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "2aeddbf0-7f22-40c3-b5bb-f6e954eeb62a", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "0a87e8f6-d505-47e4-86ba-2c5dc55c8e4f", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "e210d148-de3b-4b30-93d7-1a3fe61f9188", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "e984d07a-8de5-4ab1-8ad1-799a83c50af7", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "blowout", + "key": "d01bd5b4-0077-40f2-ae1c-674986d63ced", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "flowRate": 716, + "wellLocation": { "origin": "top", "offset": { "z": 0 } } + } + }, + { + "commandType": "aspirate", + "key": "6a734c02-a381-4b8d-ba1d-d7cbd21e65ab", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 100, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 13.42, "x": 0, "y": 0 } + }, + "flowRate": 716 + }, + "meta": { "isAirGap": true } + }, + { + "commandType": "waitForDuration", + "key": "585e0594-978a-487a-90f5-3ddf93519be0", + "params": { "seconds": 2 } + }, + { + "commandType": "moveToAddressableAreaForDropTip", + "key": "1c8063f0-0419-46ab-895d-4698283e1178", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "addressableAreaName": "movableTrashA3", + "offset": { "x": 0, "y": 0, "z": 0 }, + "alternateDropLocation": true + } + }, + { + "commandType": "dropTipInPlace", + "key": "c735932d-f573-4a81-8f05-604733f5f751", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex" + } + }, + { + "commandType": "pickUpTip", + "key": "7b50fddd-f559-49fd-a124-e2838082fbcb", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5d2608f9-ebcb-42f2-807f-ad53b81150b0_opentrons/opentrons_flex_96_tiprack_200ul/1", + "wellName": "F1" + } + }, + { + "commandType": "aspirate", + "key": "7ab5f30e-6a05-4113-8782-4666be6d54ce", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "C3", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "9439eb2d-2209-4d40-91e8-47213719b081", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "3763dde3-236f-4776-b2e6-7d3d2cba76ad", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "C3", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "96c8906c-07ba-4c1a-af18-1f4c3d00c16e", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "C3", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "moveToWell", + "key": "7acd7c2a-4f98-4d92-a327-b1739d67752b", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "C3", + "wellLocation": { + "origin": "bottom", + "offset": { "x": 0, "y": 0, "z": 8 } + } + } + }, + { + "commandType": "waitForDuration", + "key": "1c29ccf2-605d-40c6-96e9-f7097eef84b8", + "params": { "seconds": 2 } + }, + { + "commandType": "touchTip", + "key": "69439ba6-2862-4e23-9391-5ed99896ebc0", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "C3", + "wellLocation": { "origin": "bottom", "offset": { "z": 30 } } + } + }, + { + "commandType": "aspirate", + "key": "c8e9ac30-d142-4a21-b22b-49b85879bc02", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 4, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "C3", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 38.8, "x": 0, "y": 0 } + }, + "flowRate": 716 + }, + "meta": { "isAirGap": true } + }, + { + "commandType": "waitForDuration", + "key": "daf37ba9-4c58-474a-9068-fb8fd30d6a7e", + "params": { "seconds": 2 } + }, + { + "commandType": "aspirate", + "key": "59c4bfa4-8504-437b-8701-62da3e5aa96f", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "D3", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "moveToWell", + "key": "e7e33367-5a50-4ef5-b3da-0c3b77950d22", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "D3", + "wellLocation": { + "origin": "bottom", + "offset": { "x": 0, "y": 0, "z": 8 } + } + } + }, + { + "commandType": "waitForDuration", + "key": "163f0957-5af2-482f-aeb2-22e34f1c526c", + "params": { "seconds": 2 } + }, + { + "commandType": "touchTip", + "key": "b2a08345-b509-4e18-8a7f-533d3082e4cf", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "D3", + "wellLocation": { "origin": "bottom", "offset": { "z": 30 } } + } + }, + { + "commandType": "aspirate", + "key": "7205a00a-2b5b-48be-984f-137137801355", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 4, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "D3", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 38.8, "x": 0, "y": 0 } + }, + "flowRate": 716 + }, + "meta": { "isAirGap": true } + }, + { + "commandType": "waitForDuration", + "key": "72c72e3c-436a-4e6b-b2f9-f5dda78fc1ef", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "7a961d44-f33f-4bdd-bd7e-7563892aae00", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 178, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "48da0ca6-d437-47e0-9019-4399eb05b8ad", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "4d6b07e3-d156-424e-ba82-a55004712581", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "40013b68-1b74-4697-a744-be4aeac941a6", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "498dc2d8-c180-4554-a030-2e7fff11ebd6", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "e4b55ee7-bf18-4aac-aec5-ad5cf888e3e4", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "fecde7ea-812a-4345-9795-432a42924a09", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "fb785825-efe8-4bc6-9dcc-4b84d056defe", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "1dd0b3e4-5cdf-4ec5-9d74-1025809a7be0", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "ac03e07f-ef7e-4a1f-b098-76bbcda69910", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "c7cbd4f2-32d5-4324-880d-5e82bd865ebd", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "5721152d-7d17-4552-abbd-9a2f991d7872", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "5a79788d-e955-4747-b872-5eb91801ae81", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "f25d709b-0011-47f9-bdf1-bc3fc75f2b6a", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "c82b83d7-0d2a-4e0c-8e11-54e2a20662cb", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "2c885df3-3eef-4e9c-b897-7e2e3fddfb28", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "60372d89-cb94-4c4c-8de6-c473a6d061eb", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "b241cf09-1117-4c98-b718-0f0f7e6eaaa9", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "39a4aa25-9df6-45db-b6a2-66e5774727c7", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "blowout", + "key": "ccd899f9-fda7-4226-864d-d291b727248f", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "flowRate": 716, + "wellLocation": { "origin": "top", "offset": { "z": 0 } } + } + }, + { + "commandType": "aspirate", + "key": "064191f2-fa33-4ddf-913a-055a40134bb9", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 100, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 13.42, "x": 0, "y": 0 } + }, + "flowRate": 716 + }, + "meta": { "isAirGap": true } + }, + { + "commandType": "waitForDuration", + "key": "6a23a411-b1a1-4923-a8c4-0c13a66facb7", + "params": { "seconds": 2 } + }, + { + "commandType": "moveToAddressableAreaForDropTip", + "key": "e9b14b65-b1c9-4d88-8e27-5b19c098bc0a", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "addressableAreaName": "movableTrashA3", + "offset": { "x": 0, "y": 0, "z": 0 }, + "alternateDropLocation": true + } + }, + { + "commandType": "dropTipInPlace", + "key": "30943dd9-b4a6-4d90-9d55-0d70c9691837", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex" + } + }, + { + "commandType": "pickUpTip", + "key": "8433307f-8f16-4f52-aec3-c40d052c794a", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5d2608f9-ebcb-42f2-807f-ad53b81150b0_opentrons/opentrons_flex_96_tiprack_200ul/1", + "wellName": "G1" + } + }, + { + "commandType": "aspirate", + "key": "0df6589e-fe7d-42ef-a4a8-5fa3b472f192", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "A4", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "55e52dae-fc19-455a-9089-a4f8fc7c17ea", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "15221770-60b5-447c-92c5-26656debe206", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "A4", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "81ae96d9-648b-492b-b0bd-8b49fd1c4939", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "A4", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "moveToWell", + "key": "2c94ad4b-85d4-4b3c-9539-354e509580c6", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "A4", + "wellLocation": { + "origin": "bottom", + "offset": { "x": 0, "y": 0, "z": 8 } + } + } + }, + { + "commandType": "waitForDuration", + "key": "114556be-108d-406a-8dec-7b77b92750aa", + "params": { "seconds": 2 } + }, + { + "commandType": "touchTip", + "key": "251b2ff5-9a65-47e1-b227-f565cf80fa1d", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "A4", + "wellLocation": { "origin": "bottom", "offset": { "z": 30 } } + } + }, + { + "commandType": "aspirate", + "key": "88f44785-ef1d-4f44-8f9d-f82374da83cf", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 4, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "A4", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 38.8, "x": 0, "y": 0 } + }, + "flowRate": 716 + }, + "meta": { "isAirGap": true } + }, + { + "commandType": "waitForDuration", + "key": "503e94bf-4ef8-48ed-981e-7216db8288f4", + "params": { "seconds": 2 } + }, + { + "commandType": "aspirate", + "key": "08a41523-696a-44ff-8014-c25c06fdaffd", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "B4", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "moveToWell", + "key": "98cafca1-d16f-4710-9ebe-eba8694e6d9f", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "B4", + "wellLocation": { + "origin": "bottom", + "offset": { "x": 0, "y": 0, "z": 8 } + } + } + }, + { + "commandType": "waitForDuration", + "key": "80f7688c-1eb0-457a-b624-79eb2336a23e", + "params": { "seconds": 2 } + }, + { + "commandType": "touchTip", + "key": "4bc89b11-76bc-4d64-bb19-dfb5a6dd1362", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "B4", + "wellLocation": { "origin": "bottom", "offset": { "z": 30 } } + } + }, + { + "commandType": "aspirate", + "key": "2834b5bf-b816-49b8-b544-da738702f8a0", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 4, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "B4", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 38.8, "x": 0, "y": 0 } + }, + "flowRate": 716 + }, + "meta": { "isAirGap": true } + }, + { + "commandType": "waitForDuration", + "key": "1d477ce2-94ae-429b-8558-68d02b2bb0ea", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "c70ce448-ef40-4401-a978-236896fbd33e", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 178, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "46c24b87-1aac-4c20-8a4f-ddd5d98f3a41", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "b3b6f10b-ded1-4a11-be9b-ec99eaf47770", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "2b982115-a51b-4429-a50e-9ee96b2d26aa", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "87d6e212-bc2f-4e27-8b8a-6bfdd38d1e0e", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "9fc0ec33-8546-42a0-84bb-0896fd64ca40", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "0c63daf5-884a-4605-b299-4d9aca256682", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "ad18a99f-b083-45e5-8214-29c72de758c6", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "4a09b7e7-2b29-41f2-b11c-39ee53c2a77c", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "9c774cf8-ec08-4ae9-926c-26e94450fb84", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "4d70e75d-6627-4833-9f2c-a9525a47d6b2", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "5d3b4d43-7e5d-4032-9031-cb2abd85e24d", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "14ad6082-caec-4cba-a100-8d9df62fa103", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "52a9a803-9fe5-4425-84fc-58f110de45ff", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "fca3b196-37a6-4e29-8853-abba83551cb0", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "1bb91aef-2889-44a2-813c-113a37f3ed68", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "79e24a83-b498-4924-8f8d-674c6bba1216", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "bbb2cf7a-369c-4491-96e4-7622a1585971", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "d6fdc611-8532-4d6e-90fc-901fc4fb762d", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "blowout", + "key": "9c6d0cb4-b87a-48ce-a335-1a8345cd43fa", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "flowRate": 716, + "wellLocation": { "origin": "top", "offset": { "z": 0 } } + } + }, + { + "commandType": "aspirate", + "key": "a76b870d-0630-4beb-8f7a-7963204f0542", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 100, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 13.42, "x": 0, "y": 0 } + }, + "flowRate": 716 + }, + "meta": { "isAirGap": true } + }, + { + "commandType": "waitForDuration", + "key": "01c37c24-19ad-4a44-8424-00e9a731e195", + "params": { "seconds": 2 } + }, + { + "commandType": "moveToAddressableAreaForDropTip", + "key": "203ac8cf-3265-4fe7-950d-5280c8d45724", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "addressableAreaName": "movableTrashA3", + "offset": { "x": 0, "y": 0, "z": 0 }, + "alternateDropLocation": true + } + }, + { + "commandType": "dropTipInPlace", + "key": "3285c9a1-ef82-4162-afce-e3b551c26092", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex" + } + }, + { + "commandType": "pickUpTip", + "key": "be26e9f2-8436-4cb9-afcc-712366a7d63a", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5d2608f9-ebcb-42f2-807f-ad53b81150b0_opentrons/opentrons_flex_96_tiprack_200ul/1", + "wellName": "H1" + } + }, + { + "commandType": "aspirate", + "key": "fe4e440d-a435-48ae-868d-eb939a55f1bb", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "C4", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "3fadf77a-560c-42cb-866a-2d57d3db9e9f", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "e1a14854-69a2-46d5-8f8d-36e30c596d90", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "C4", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "73105791-2386-4814-8e2b-b029ca480dfe", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "C4", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "moveToWell", + "key": "26e7530c-4e7e-476f-b429-5fe799d63045", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "C4", + "wellLocation": { + "origin": "bottom", + "offset": { "x": 0, "y": 0, "z": 8 } + } + } + }, + { + "commandType": "waitForDuration", + "key": "189ce76c-2256-46a2-9b38-8df2c580f55c", + "params": { "seconds": 2 } + }, + { + "commandType": "touchTip", + "key": "03295b9b-3a81-4039-a3c5-01363d9a3b96", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "C4", + "wellLocation": { "origin": "bottom", "offset": { "z": 30 } } + } + }, + { + "commandType": "aspirate", + "key": "4875a1b3-01dd-4172-b7af-fb842e9055d8", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 4, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "C4", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 38.8, "x": 0, "y": 0 } + }, + "flowRate": 716 + }, + "meta": { "isAirGap": true } + }, + { + "commandType": "waitForDuration", + "key": "d1f765e4-2f76-4350-9049-080d87426e7c", + "params": { "seconds": 2 } + }, + { + "commandType": "aspirate", + "key": "37756ce4-a9f9-46fd-98cb-28b9f1ec06b5", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "D4", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "moveToWell", + "key": "2aacedac-225e-47d1-a59b-760c08cc7333", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "D4", + "wellLocation": { + "origin": "bottom", + "offset": { "x": 0, "y": 0, "z": 8 } + } + } + }, + { + "commandType": "waitForDuration", + "key": "78871d6b-ddbd-491c-98f7-afb207179b68", + "params": { "seconds": 2 } + }, + { + "commandType": "touchTip", + "key": "86507f9d-78d0-4fa0-b34f-23a698e740ec", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "D4", + "wellLocation": { "origin": "bottom", "offset": { "z": 30 } } + } + }, + { + "commandType": "aspirate", + "key": "2e6f809f-c7bf-4f51-8774-9e99aaa96b09", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 4, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "D4", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 38.8, "x": 0, "y": 0 } + }, + "flowRate": 716 + }, + "meta": { "isAirGap": true } + }, + { + "commandType": "waitForDuration", + "key": "28d7350e-5ad4-4e6a-bccc-f1e8c9c3c0b8", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "fdbb89f0-82ac-48e3-b40c-ee88cc269883", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 178, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "57ce5d7b-3742-42a4-9a49-f120eed86b2a", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "6d0647c5-2fc4-44f8-b176-b712899b11a7", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "b6eeff89-380b-4d35-b33f-35bb614ef566", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "09108611-b308-4af3-926e-63c56752b68c", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "9abfd079-af27-4a59-9418-2111b6bd089d", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "710d376a-ddea-4285-aebc-72124845116a", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "8241ff1b-cda0-44c2-bbd9-af5d009a6de4", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "cc9c7b1b-b405-4544-b1ed-662c050b4fb8", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "e600dd33-de07-4fe0-ab7f-9a8b00cd6319", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "817dfafd-92ed-41d8-b7cb-e1f5dd5f7c6f", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "2a6e8f4f-bcd0-497c-9556-06299b13e526", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "1f440219-5b2f-42a2-bb16-cbedc61b69b8", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "715c1990-cc20-47e1-8e36-2ec53c1aff9e", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "28cf26a4-8edb-4295-a1a5-d231b5c66181", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "ec9156f7-f492-4ef1-a0c6-86ad3c5e1dd1", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "0a075bfc-65bd-48f8-9e4f-b7db38dc4287", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "41c3f3cc-4eac-405f-8f13-3745278453fa", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "bdf2d6fc-1660-4a33-8e48-9089d4ea6d2b", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "blowout", + "key": "d26e30c7-174d-422d-8adc-be326945d1ed", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "flowRate": 716, + "wellLocation": { "origin": "top", "offset": { "z": 0 } } + } + }, + { + "commandType": "aspirate", + "key": "cdd93f87-5cf3-446c-87c5-94b1c9e4adad", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 100, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 13.42, "x": 0, "y": 0 } + }, + "flowRate": 716 + }, + "meta": { "isAirGap": true } + }, + { + "commandType": "waitForDuration", + "key": "0bd36a9d-dee4-4cdb-92ec-9fe36cf6e348", + "params": { "seconds": 2 } + }, + { + "commandType": "moveToAddressableAreaForDropTip", + "key": "ae9647c6-d85b-44d7-a1e8-d78ed4e917a3", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "addressableAreaName": "movableTrashA3", + "offset": { "x": 0, "y": 0, "z": 0 }, + "alternateDropLocation": true + } + }, + { + "commandType": "dropTipInPlace", + "key": "efbad48b-1a4d-48a3-95f0-f4a57dc519d5", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex" + } + }, + { + "commandType": "pickUpTip", + "key": "d21fdf05-4ae1-44d2-945d-e7da776fbf08", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5d2608f9-ebcb-42f2-807f-ad53b81150b0_opentrons/opentrons_flex_96_tiprack_200ul/1", + "wellName": "A2" + } + }, + { + "commandType": "aspirate", + "key": "19716a43-37d6-49c5-9cd3-ae3b5d05f9ce", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "A5", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "cc6b1677-658c-44ad-8574-dfb83868a565", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "fa329850-e58d-4257-8e10-b37f379f2813", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "A5", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "988d712a-5a60-467c-a653-8baa49e19c2a", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "A5", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "moveToWell", + "key": "bf5b0ff6-22b9-4cf5-bb6f-4748d107f102", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "A5", + "wellLocation": { + "origin": "bottom", + "offset": { "x": 0, "y": 0, "z": 8 } + } + } + }, + { + "commandType": "waitForDuration", + "key": "6e893c32-0992-4376-ab03-208da000626b", + "params": { "seconds": 2 } + }, + { + "commandType": "touchTip", + "key": "f8bc614b-250d-48a8-bb9e-8288add0c760", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "A5", + "wellLocation": { "origin": "bottom", "offset": { "z": 30 } } + } + }, + { + "commandType": "aspirate", + "key": "54fc819d-b3bd-4e80-8929-fdb89efbeb82", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 4, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "A5", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 38.8, "x": 0, "y": 0 } + }, + "flowRate": 716 + }, + "meta": { "isAirGap": true } + }, + { + "commandType": "waitForDuration", + "key": "76c6ea93-2f53-4260-80e6-69d800739765", + "params": { "seconds": 2 } + }, + { + "commandType": "aspirate", + "key": "048f83fd-9ab2-4e93-88eb-4721232ed5df", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "B5", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "moveToWell", + "key": "d5659889-e5d3-4f92-a6dd-7d0f9107376a", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "B5", + "wellLocation": { + "origin": "bottom", + "offset": { "x": 0, "y": 0, "z": 8 } + } + } + }, + { + "commandType": "waitForDuration", + "key": "43c90a30-98b1-41f0-a6ce-e7cbcb939ab3", + "params": { "seconds": 2 } + }, + { + "commandType": "touchTip", + "key": "49d31f0c-d1c7-4a84-ade0-017354c42092", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "B5", + "wellLocation": { "origin": "bottom", "offset": { "z": 30 } } + } + }, + { + "commandType": "aspirate", + "key": "01d59e53-0973-4063-acfd-a1197e8b97da", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 4, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "B5", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 38.8, "x": 0, "y": 0 } + }, + "flowRate": 716 + }, + "meta": { "isAirGap": true } + }, + { + "commandType": "waitForDuration", + "key": "23d00e24-8678-49af-88a9-d7fb07afbec2", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "867187a7-c619-4741-8919-d1ede6216f92", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 178, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "c795e047-6c43-4b65-9bdf-00fab29c23f5", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "f075fa6f-0e30-42ac-ba39-bdcf2821a531", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "1bcb81a0-8242-411d-8b14-3a1627796327", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "74bcecc1-1873-4fa0-b3ff-a02e91ee9adf", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "3dd89f91-463c-48df-bfc7-7290ecffc203", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "84609bd4-c855-41c2-9efe-334fe4836d0f", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "83e6be3d-ca51-40f2-be85-2420d85aae3a", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "ed334010-e7bd-47b3-ac7d-78efc90c9ef1", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "a4b8c916-f639-44bd-bef3-3f4bd82b2e58", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "01a2ebbf-89b0-4989-9034-3f33854a6d5f", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "36ed3bc2-dd30-455d-b9ff-2fcea172b0fb", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "9a969761-322d-4a78-b68b-5031a885ff03", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "4cdb6d58-bd6e-4886-a26d-316cdfef14e6", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "3c84b840-edc8-4115-bbb0-aeeacb1ebb5f", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "5a4ff136-4acc-4fb7-b203-74294e80878e", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "30c7f2c3-b8e5-49e6-b892-8da189560163", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "41d71845-4cb3-4ccb-9231-efa5691687c1", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "19cf2502-f4dd-4561-9b56-fe67dcebe641", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "blowout", + "key": "7ddec1f4-2960-48bc-a644-d802c4def489", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "flowRate": 716, + "wellLocation": { "origin": "top", "offset": { "z": 0 } } + } + }, + { + "commandType": "aspirate", + "key": "96978d8a-cb3c-4baa-ae99-16fcf5589107", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 100, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 13.42, "x": 0, "y": 0 } + }, + "flowRate": 716 + }, + "meta": { "isAirGap": true } + }, + { + "commandType": "waitForDuration", + "key": "35960954-3b37-451c-b25f-51218a6507dc", + "params": { "seconds": 2 } + }, + { + "commandType": "moveToAddressableAreaForDropTip", + "key": "ab1fc749-9763-4009-b488-84b2f37fd4e9", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "addressableAreaName": "movableTrashA3", + "offset": { "x": 0, "y": 0, "z": 0 }, + "alternateDropLocation": true + } + }, + { + "commandType": "dropTipInPlace", + "key": "981c7f11-fc55-478e-8688-9e2d50f519e0", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex" + } + }, + { + "commandType": "pickUpTip", + "key": "71267b15-1a35-494f-aa62-d88a7ee79d13", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5d2608f9-ebcb-42f2-807f-ad53b81150b0_opentrons/opentrons_flex_96_tiprack_200ul/1", + "wellName": "B2" + } + }, + { + "commandType": "aspirate", + "key": "926cf4c4-4745-4c00-be09-c7b1874552b5", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "C5", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "5e87ce79-79a8-4936-aefb-47ee6df67210", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "54a81f84-7ccd-43c5-b3bd-db1544e4a88c", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "C5", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "d351646b-89b6-469a-a510-d53e7e57f14e", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "C5", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "moveToWell", + "key": "a35d4742-d154-40ae-a605-3e91d737458b", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "C5", + "wellLocation": { + "origin": "bottom", + "offset": { "x": 0, "y": 0, "z": 8 } + } + } + }, + { + "commandType": "waitForDuration", + "key": "44498b79-6b81-4f33-98ea-bf05c5dd5b83", + "params": { "seconds": 2 } + }, + { + "commandType": "touchTip", + "key": "054f20dc-39ff-43e4-bb63-478c2cf377da", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "C5", + "wellLocation": { "origin": "bottom", "offset": { "z": 30 } } + } + }, + { + "commandType": "aspirate", + "key": "9da4f483-95a2-4d5b-9f9e-248f2ace935a", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 4, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "C5", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 38.8, "x": 0, "y": 0 } + }, + "flowRate": 716 + }, + "meta": { "isAirGap": true } + }, + { + "commandType": "waitForDuration", + "key": "85cb5d27-411e-4738-8557-4e412aa80e8a", + "params": { "seconds": 2 } + }, + { + "commandType": "aspirate", + "key": "22977fd3-52e6-4913-8af6-59dc99de36b1", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "D5", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "moveToWell", + "key": "965ad8bd-e785-4045-8ae4-a3058990907c", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "D5", + "wellLocation": { + "origin": "bottom", + "offset": { "x": 0, "y": 0, "z": 8 } + } + } + }, + { + "commandType": "waitForDuration", + "key": "dc90b8dd-cba5-4a69-8875-443556bdfc28", + "params": { "seconds": 2 } + }, + { + "commandType": "touchTip", + "key": "c61f1228-e56a-469c-81a1-bf12dbcab33a", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "D5", + "wellLocation": { "origin": "bottom", "offset": { "z": 30 } } + } + }, + { + "commandType": "aspirate", + "key": "eb8fae7d-3654-4c74-b8d3-d0668e67ade7", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 4, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "D5", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 38.8, "x": 0, "y": 0 } + }, + "flowRate": 716 + }, + "meta": { "isAirGap": true } + }, + { + "commandType": "waitForDuration", + "key": "a7f4de76-b9d9-4ce8-8ead-923972844755", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "5d8a823a-536c-4fba-9c51-30ac37262f75", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 178, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "23fbb4db-8508-43c9-b363-7f6115ed28f3", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "5967c7e3-63c1-4a89-96f9-4001806c9126", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "0b7b357d-ba27-473e-a2dd-f5a7835c51b5", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "91e56b80-cfe8-4d5f-9c44-d092a9fd53d9", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "44440787-56e1-4432-af81-736ad978b8bf", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "d07028d4-a8b3-47c2-84a6-1ee8484999ea", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "7a771def-65a3-4d9b-863b-fa2f3a0456d4", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "c676d576-e0b8-4d29-b027-cdb0d2b501fa", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "68318b43-f5bd-41e8-93dd-afb39c045632", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "c372d26b-cefb-4243-b717-a7746812cc74", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "2a83d9ca-07c0-4a1d-96a3-cc938d52d3a0", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "7f4accb8-15d2-4b02-9d81-647483882fc4", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "e3cf52b8-50bb-46b2-bb13-3eae1fcab375", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "25e53030-61d6-49f1-a092-52f7de827e43", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "f0e3f2d3-9b17-4bda-b31a-79e0f62e079d", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "548f9e7c-ce5a-4ff1-8cbb-0fb70665e3f5", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "9ecad576-ce5f-4708-b79e-f3f9f4c1bbea", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "6b9ad3c9-fe97-493d-9b83-9e61ccb91d4f", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "blowout", + "key": "67c03f23-9b16-4928-8ab8-530bd6aa6b22", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "flowRate": 716, + "wellLocation": { "origin": "top", "offset": { "z": 0 } } + } + }, + { + "commandType": "aspirate", + "key": "4ae73deb-8326-4e2f-8f6f-ce2728d912ea", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 100, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 13.42, "x": 0, "y": 0 } + }, + "flowRate": 716 + }, + "meta": { "isAirGap": true } + }, + { + "commandType": "waitForDuration", + "key": "64463be2-cd46-46fc-bbd6-5a4ad311f71a", + "params": { "seconds": 2 } + }, + { + "commandType": "moveToAddressableAreaForDropTip", + "key": "8effbd79-ff6f-45a5-a0a0-142ae5daae47", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "addressableAreaName": "movableTrashA3", + "offset": { "x": 0, "y": 0, "z": 0 }, + "alternateDropLocation": true + } + }, + { + "commandType": "dropTipInPlace", + "key": "08b949b6-a228-4d11-ab97-334d99516b26", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex" + } + }, + { + "commandType": "pickUpTip", + "key": "8e33b635-3ee9-468c-806f-6281b9496bf9", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5d2608f9-ebcb-42f2-807f-ad53b81150b0_opentrons/opentrons_flex_96_tiprack_200ul/1", + "wellName": "C2" + } + }, + { + "commandType": "aspirate", + "key": "fbb4a80a-dbc6-46c4-8a99-8b4b95cf1b04", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "A6", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "349ce0a6-860c-4efd-b738-4b8a7f9154e7", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "863357f8-5861-4b20-9edc-96aed0509ae9", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "A6", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "eda82206-281d-4d64-985e-ad1eb53d6c0a", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "A6", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "moveToWell", + "key": "da1ce7d8-db5b-48c7-80b4-6972dcf193a8", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "A6", + "wellLocation": { + "origin": "bottom", + "offset": { "x": 0, "y": 0, "z": 8 } + } + } + }, + { + "commandType": "waitForDuration", + "key": "ab280e20-c4e1-4a87-a3e6-5d8952bb8e05", + "params": { "seconds": 2 } + }, + { + "commandType": "touchTip", + "key": "dc0ff945-2fdf-4075-a6c4-1312b34a6d12", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "A6", + "wellLocation": { "origin": "bottom", "offset": { "z": 30 } } + } + }, + { + "commandType": "aspirate", + "key": "8c1542ce-af01-410e-a287-324ff7151818", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 4, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "A6", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 38.8, "x": 0, "y": 0 } + }, + "flowRate": 716 + }, + "meta": { "isAirGap": true } + }, + { + "commandType": "waitForDuration", + "key": "41dc9a4c-cef5-4098-9d24-fda51a08d920", + "params": { "seconds": 2 } + }, + { + "commandType": "aspirate", + "key": "2e1440eb-4be7-4407-874e-c4a1bd1a000d", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "B6", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "moveToWell", + "key": "762420eb-49ec-4825-bb10-79bc468bcbcb", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "B6", + "wellLocation": { + "origin": "bottom", + "offset": { "x": 0, "y": 0, "z": 8 } + } + } + }, + { + "commandType": "waitForDuration", + "key": "803d7a8a-eed3-4088-843a-b99b481aa84b", + "params": { "seconds": 2 } + }, + { + "commandType": "touchTip", + "key": "f2513730-8872-43a9-b309-4e50c3cf54b5", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "B6", + "wellLocation": { "origin": "bottom", "offset": { "z": 30 } } + } + }, + { + "commandType": "aspirate", + "key": "0f5f3d90-748a-47a0-a15f-a25d00eb300b", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 4, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "B6", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 38.8, "x": 0, "y": 0 } + }, + "flowRate": 716 + }, + "meta": { "isAirGap": true } + }, + { + "commandType": "waitForDuration", + "key": "8d588964-354a-4369-9e7e-0d9ed7e57410", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "f8645133-fd78-425c-91f2-0333414a262d", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 178, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "bfb03df1-6c3e-4edf-baa4-feb49167002f", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "0dd5c94a-e50d-416e-9f06-038baed5a08e", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "75823908-6e9a-4046-afb1-4638914bd5d4", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "4518bf79-9259-49e7-bd1e-57e1cb870f94", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "2d1ea61b-1d4c-4bda-9d8e-755b8d1eed73", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "ff408fe4-1b03-46bb-9d96-2f58c166d504", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "3565f961-e927-44f3-9473-c52762499d70", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "54b98240-ea85-4d09-90ba-8d4b1eddac84", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "2e511f4b-18e7-4269-bf56-3a203ce7038d", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "3d68efd9-c02a-4b1c-ad03-4d360b84c6bc", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "e9e3e312-7da7-401d-a7cd-bc20ceeda270", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "279ba215-f776-47aa-a726-caea818fd1b2", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "50750e0f-d358-44d5-965d-3461d0c2ccef", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "38b0aabd-80cc-439a-896f-acc250f69df5", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "97908bc4-9a43-4e94-b2e3-cd1d7e14901c", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "99056f10-7477-45d6-8e4a-a7136c7bca53", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "d37c682c-4d6c-4e7f-96be-fbddb0fa6465", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "dabd70c0-b7a5-43a8-ad2e-02374ea7aa27", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "blowout", + "key": "3a004087-5d3e-4882-a1f7-73ec22a92b81", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "flowRate": 716, + "wellLocation": { "origin": "top", "offset": { "z": 0 } } + } + }, + { + "commandType": "aspirate", + "key": "75d73de1-7e37-4023-b2dc-6c920492c0cc", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 100, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 13.42, "x": 0, "y": 0 } + }, + "flowRate": 716 + }, + "meta": { "isAirGap": true } + }, + { + "commandType": "waitForDuration", + "key": "1c9ad922-e272-4a29-b677-57082b7d29c7", + "params": { "seconds": 2 } + }, + { + "commandType": "moveToAddressableAreaForDropTip", + "key": "18c5fb59-654c-4cec-9d2b-31a953bbefec", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "addressableAreaName": "movableTrashA3", + "offset": { "x": 0, "y": 0, "z": 0 }, + "alternateDropLocation": true + } + }, + { + "commandType": "dropTipInPlace", + "key": "195c048d-69bd-4d7a-abcf-d8289b33d6bb", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex" + } + }, + { + "commandType": "pickUpTip", + "key": "e30b0959-6644-42df-9517-318a88289f1c", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5d2608f9-ebcb-42f2-807f-ad53b81150b0_opentrons/opentrons_flex_96_tiprack_200ul/1", + "wellName": "D2" + } + }, + { + "commandType": "aspirate", + "key": "8bbfcfc9-a8c2-40a1-b83d-810f8bb90c48", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "C6", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "8d5999a4-60b3-430b-b41c-5f782f4fe1ae", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "e6958abb-818c-4158-b632-299e679dfd74", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "C6", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "f2cd7a0e-7c30-41eb-9d00-f0d6fd17d8e8", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "C6", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "moveToWell", + "key": "5a05834a-329a-49ab-b610-44c93efd4672", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "C6", + "wellLocation": { + "origin": "bottom", + "offset": { "x": 0, "y": 0, "z": 8 } + } + } + }, + { + "commandType": "waitForDuration", + "key": "b8d664f5-652c-4a80-b0f1-246821f49078", + "params": { "seconds": 2 } + }, + { + "commandType": "touchTip", + "key": "b0866589-b102-42b3-bfe7-e8fa5b1dfc1b", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "C6", + "wellLocation": { "origin": "bottom", "offset": { "z": 30 } } + } + }, + { + "commandType": "aspirate", + "key": "80544fcd-dedb-47ff-91ca-59fd988d920d", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 4, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "C6", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 38.8, "x": 0, "y": 0 } + }, + "flowRate": 716 + }, + "meta": { "isAirGap": true } + }, + { + "commandType": "waitForDuration", + "key": "44a970eb-5dfe-43b7-b7fb-97f8a76492ed", + "params": { "seconds": 2 } + }, + { + "commandType": "aspirate", + "key": "61a30547-224e-4a2a-9377-1405eafa324e", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 85, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "D6", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "moveToWell", + "key": "26258ed5-7bdc-4531-a496-8af4a183d7fd", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "D6", + "wellLocation": { + "origin": "bottom", + "offset": { "x": 0, "y": 0, "z": 8 } + } + } + }, + { + "commandType": "waitForDuration", + "key": "0e6a9995-b008-4a9a-8892-a0c7c4c1849c", + "params": { "seconds": 2 } + }, + { + "commandType": "touchTip", + "key": "6a25e3e6-635a-4f08-9b7d-648523d28875", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "D6", + "wellLocation": { "origin": "bottom", "offset": { "z": 30 } } + } + }, + { + "commandType": "aspirate", + "key": "d4a2e677-be16-4075-8f0d-794366cf274d", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 4, + "labwareId": "5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1", + "wellName": "D6", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 38.8, "x": 0, "y": 0 } + }, + "flowRate": 716 + }, + "meta": { "isAirGap": true } + }, + { + "commandType": "waitForDuration", + "key": "ecad5830-dc9b-47d2-8016-8aaf9b848219", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "e7c8e55e-57cf-4105-b53c-c1c08a3ea289", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 178, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "49e5c4f1-e780-4eac-8cd0-6cbf44f353f2", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "ddf5f01f-f8a2-4238-b6fc-5904f87f9143", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "c0725315-276d-4e0b-8d52-c6640e55a9dc", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "24989000-1733-44dd-9f03-1e90f6b85e6d", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "c13c4efa-4b6c-45a6-83f3-f9c8b2a65244", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "aff053d3-e9df-4d42-9ab3-227f37707083", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "e406c821-6654-493b-94a7-482f1704be6d", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "47439287-62d6-49ba-8e1b-9e1c16856e52", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "75e6cef0-b991-4572-bc4a-61077fab3964", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "6ce01b8d-f819-4686-a5dd-8745596cf40f", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "86c39865-eca6-4740-9dc5-1f47db79af37", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "604155f8-6e9a-4fd3-b23f-28e8c963a671", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "b38d27c8-12db-441d-96c2-6d19aaf5cee3", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "54097182-2bc6-49ec-bb74-61623f1748af", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "6fc1c7f7-a779-4ffa-bba5-98b8f706582d", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "aspirate", + "key": "4590ee5d-d9d9-4ba4-af6e-b977a7ef299e", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "waitForDuration", + "key": "da7185a0-f1dd-4156-94a8-2ec56ee006af", + "params": { "seconds": 2 } + }, + { + "commandType": "dispense", + "key": "e180e4a6-84d1-4088-82ac-27da30391eb1", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 80, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 716 + } + }, + { + "commandType": "blowout", + "key": "bdf252af-9ae8-4ac7-9b29-390a1e337a05", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "flowRate": 716, + "wellLocation": { "origin": "top", "offset": { "z": 0 } } + } + }, + { + "commandType": "aspirate", + "key": "ffbcdbb3-6b6f-4ccc-9027-5e141dfc3de5", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "volume": 100, + "labwareId": "7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 13.42, "x": 0, "y": 0 } + }, + "flowRate": 716 + }, + "meta": { "isAirGap": true } + }, + { + "commandType": "waitForDuration", + "key": "720f86cb-5ee1-4dc0-ad56-453318799d04", + "params": { "seconds": 2 } + }, + { + "key": "a1f4ee6e-a64d-4cd0-95fe-49aa71e2e416", + "commandType": "moveToAddressableAreaForDropTip", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex", + "addressableAreaName": "movableTrashA3" + } + }, + { + "key": "177dd291-955f-4029-8069-3b1d0bd4b2b7", + "commandType": "dropTipInPlace", + "params": { + "pipetteId": "b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex" + } + } + ], + "commandAnnotationSchemaId": "opentronsCommandAnnotationSchemaV1", + "commandAnnotations": [] +} diff --git a/app/src/organisms/QuickTransferFlow/__fixtures__/quickTransferArgFixtures.ts b/app/src/organisms/QuickTransferFlow/__fixtures__/quickTransferArgFixtures.ts new file mode 100644 index 00000000000..91fdc1a8cd8 --- /dev/null +++ b/app/src/organisms/QuickTransferFlow/__fixtures__/quickTransferArgFixtures.ts @@ -0,0 +1,3035 @@ +import type { QuickTransferSummaryState } from '../types' + +// a 1:1 transfer with a 96 channel +export const singleTransferStepArgs = {} +export const singleTransferInvariantContext = {} +export const singleTransferRobotState = {} + +// a 1:many transfer with an 8 channel +export const multiDispenseStepArgs = {} +export const multiDispenseInvariantContext = {} +export const multiDispenseRobotState = {} + +// a many:1 transfer with a single channel +export const multiAspirateStepArgs = { + pipette: 'b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex', + volume: 85, + sourceLabware: + '5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1', + destLabware: + '7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1', + tipRack: 'opentrons/opentrons_flex_96_tiprack_200ul/1', + aspirateFlowRateUlSec: 716, + dispenseFlowRateUlSec: 716, + aspirateOffsetFromBottomMm: 1, + dispenseOffsetFromBottomMm: 1, + blowoutLocation: 'dest_well', + blowoutFlowRateUlSec: 716, + blowoutOffsetFromTopMm: 0, + changeTip: 'always', + preWetTip: true, + aspirateDelay: { seconds: 2, mmFromBottom: 8 }, + dispenseDelay: null, + aspirateAirGapVolume: 4, + dispenseAirGapVolume: 100, + touchTipAfterAspirate: true, + touchTipAfterAspirateOffsetMmFromBottom: 30, + touchTipAfterDispense: false, + touchTipAfterDispenseOffsetMmFromBottom: 11.42, + dropTipLocation: '4ed9e4f7-36ec-44e7-9366-87cd11c687ca_trashBin', + aspirateXOffset: 0, + aspirateYOffset: 0, + dispenseXOffset: 0, + dispenseYOffset: 0, + name: null, + description: null, + nozzles: null, + commandCreatorFnName: 'consolidate', + mixFirstAspirate: null, + mixInDestination: { volume: 80, times: 6 }, + sourceWells: [ + 'A1', + 'B1', + 'C1', + 'D1', + 'A2', + 'B2', + 'C2', + 'D2', + 'A3', + 'B3', + 'C3', + 'D3', + 'A4', + 'B4', + 'C4', + 'D4', + 'A5', + 'B5', + 'C5', + 'D5', + 'A6', + 'B6', + 'C6', + 'D6', + ], + destWell: 'A1', +} +export const multiAspirateInvariantContext = { + labwareEntities: { + '5d2608f9-ebcb-42f2-807f-ad53b81150b0_opentrons/opentrons_flex_96_tiprack_200ul/1': { + id: + '5d2608f9-ebcb-42f2-807f-ad53b81150b0_opentrons/opentrons_flex_96_tiprack_200ul/1', + labwareDefURI: 'opentrons/opentrons_flex_96_tiprack_200ul/1', + def: { + ordering: [ + ['A1', 'B1', 'C1', 'D1', 'E1', 'F1', 'G1', 'H1'], + ['A2', 'B2', 'C2', 'D2', 'E2', 'F2', 'G2', 'H2'], + ['A3', 'B3', 'C3', 'D3', 'E3', 'F3', 'G3', 'H3'], + ['A4', 'B4', 'C4', 'D4', 'E4', 'F4', 'G4', 'H4'], + ['A5', 'B5', 'C5', 'D5', 'E5', 'F5', 'G5', 'H5'], + ['A6', 'B6', 'C6', 'D6', 'E6', 'F6', 'G6', 'H6'], + ['A7', 'B7', 'C7', 'D7', 'E7', 'F7', 'G7', 'H7'], + ['A8', 'B8', 'C8', 'D8', 'E8', 'F8', 'G8', 'H8'], + ['A9', 'B9', 'C9', 'D9', 'E9', 'F9', 'G9', 'H9'], + ['A10', 'B10', 'C10', 'D10', 'E10', 'F10', 'G10', 'H10'], + ['A11', 'B11', 'C11', 'D11', 'E11', 'F11', 'G11', 'H11'], + ['A12', 'B12', 'C12', 'D12', 'E12', 'F12', 'G12', 'H12'], + ], + brand: { brand: 'Opentrons', brandId: [] }, + metadata: { + displayName: 'Opentrons Flex 96 Tip Rack 200 µL', + displayCategory: 'tipRack', + displayVolumeUnits: 'µL', + tags: [], + }, + dimensions: { xDimension: 127.75, yDimension: 85.75, zDimension: 99 }, + gripForce: 16, + gripHeightFromLabwareBottom: 23.9, + wells: { + A1: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 14.38, + y: 74.38, + z: 1.5, + }, + B1: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 14.38, + y: 65.38, + z: 1.5, + }, + C1: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 14.38, + y: 56.38, + z: 1.5, + }, + D1: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 14.38, + y: 47.38, + z: 1.5, + }, + E1: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 14.38, + y: 38.38, + z: 1.5, + }, + F1: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 14.38, + y: 29.38, + z: 1.5, + }, + G1: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 14.38, + y: 20.38, + z: 1.5, + }, + H1: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 14.38, + y: 11.38, + z: 1.5, + }, + A2: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 23.38, + y: 74.38, + z: 1.5, + }, + B2: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 23.38, + y: 65.38, + z: 1.5, + }, + C2: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 23.38, + y: 56.38, + z: 1.5, + }, + D2: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 23.38, + y: 47.38, + z: 1.5, + }, + E2: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 23.38, + y: 38.38, + z: 1.5, + }, + F2: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 23.38, + y: 29.38, + z: 1.5, + }, + G2: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 23.38, + y: 20.38, + z: 1.5, + }, + H2: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 23.38, + y: 11.38, + z: 1.5, + }, + A3: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 32.38, + y: 74.38, + z: 1.5, + }, + B3: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 32.38, + y: 65.38, + z: 1.5, + }, + C3: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 32.38, + y: 56.38, + z: 1.5, + }, + D3: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 32.38, + y: 47.38, + z: 1.5, + }, + E3: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 32.38, + y: 38.38, + z: 1.5, + }, + F3: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 32.38, + y: 29.38, + z: 1.5, + }, + G3: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 32.38, + y: 20.38, + z: 1.5, + }, + H3: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 32.38, + y: 11.38, + z: 1.5, + }, + A4: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 41.38, + y: 74.38, + z: 1.5, + }, + B4: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 41.38, + y: 65.38, + z: 1.5, + }, + C4: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 41.38, + y: 56.38, + z: 1.5, + }, + D4: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 41.38, + y: 47.38, + z: 1.5, + }, + E4: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 41.38, + y: 38.38, + z: 1.5, + }, + F4: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 41.38, + y: 29.38, + z: 1.5, + }, + G4: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 41.38, + y: 20.38, + z: 1.5, + }, + H4: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 41.38, + y: 11.38, + z: 1.5, + }, + A5: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 50.38, + y: 74.38, + z: 1.5, + }, + B5: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 50.38, + y: 65.38, + z: 1.5, + }, + C5: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 50.38, + y: 56.38, + z: 1.5, + }, + D5: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 50.38, + y: 47.38, + z: 1.5, + }, + E5: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 50.38, + y: 38.38, + z: 1.5, + }, + F5: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 50.38, + y: 29.38, + z: 1.5, + }, + G5: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 50.38, + y: 20.38, + z: 1.5, + }, + H5: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 50.38, + y: 11.38, + z: 1.5, + }, + A6: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 59.38, + y: 74.38, + z: 1.5, + }, + B6: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 59.38, + y: 65.38, + z: 1.5, + }, + C6: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 59.38, + y: 56.38, + z: 1.5, + }, + D6: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 59.38, + y: 47.38, + z: 1.5, + }, + E6: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 59.38, + y: 38.38, + z: 1.5, + }, + F6: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 59.38, + y: 29.38, + z: 1.5, + }, + G6: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 59.38, + y: 20.38, + z: 1.5, + }, + H6: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 59.38, + y: 11.38, + z: 1.5, + }, + A7: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 68.38, + y: 74.38, + z: 1.5, + }, + B7: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 68.38, + y: 65.38, + z: 1.5, + }, + C7: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 68.38, + y: 56.38, + z: 1.5, + }, + D7: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 68.38, + y: 47.38, + z: 1.5, + }, + E7: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 68.38, + y: 38.38, + z: 1.5, + }, + F7: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 68.38, + y: 29.38, + z: 1.5, + }, + G7: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 68.38, + y: 20.38, + z: 1.5, + }, + H7: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 68.38, + y: 11.38, + z: 1.5, + }, + A8: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 77.38, + y: 74.38, + z: 1.5, + }, + B8: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 77.38, + y: 65.38, + z: 1.5, + }, + C8: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 77.38, + y: 56.38, + z: 1.5, + }, + D8: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 77.38, + y: 47.38, + z: 1.5, + }, + E8: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 77.38, + y: 38.38, + z: 1.5, + }, + F8: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 77.38, + y: 29.38, + z: 1.5, + }, + G8: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 77.38, + y: 20.38, + z: 1.5, + }, + H8: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 77.38, + y: 11.38, + z: 1.5, + }, + A9: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 86.38, + y: 74.38, + z: 1.5, + }, + B9: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 86.38, + y: 65.38, + z: 1.5, + }, + C9: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 86.38, + y: 56.38, + z: 1.5, + }, + D9: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 86.38, + y: 47.38, + z: 1.5, + }, + E9: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 86.38, + y: 38.38, + z: 1.5, + }, + F9: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 86.38, + y: 29.38, + z: 1.5, + }, + G9: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 86.38, + y: 20.38, + z: 1.5, + }, + H9: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 86.38, + y: 11.38, + z: 1.5, + }, + A10: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 95.38, + y: 74.38, + z: 1.5, + }, + B10: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 95.38, + y: 65.38, + z: 1.5, + }, + C10: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 95.38, + y: 56.38, + z: 1.5, + }, + D10: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 95.38, + y: 47.38, + z: 1.5, + }, + E10: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 95.38, + y: 38.38, + z: 1.5, + }, + F10: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 95.38, + y: 29.38, + z: 1.5, + }, + G10: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 95.38, + y: 20.38, + z: 1.5, + }, + H10: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 95.38, + y: 11.38, + z: 1.5, + }, + A11: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 104.38, + y: 74.38, + z: 1.5, + }, + B11: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 104.38, + y: 65.38, + z: 1.5, + }, + C11: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 104.38, + y: 56.38, + z: 1.5, + }, + D11: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 104.38, + y: 47.38, + z: 1.5, + }, + E11: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 104.38, + y: 38.38, + z: 1.5, + }, + F11: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 104.38, + y: 29.38, + z: 1.5, + }, + G11: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 104.38, + y: 20.38, + z: 1.5, + }, + H11: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 104.38, + y: 11.38, + z: 1.5, + }, + A12: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 113.38, + y: 74.38, + z: 1.5, + }, + B12: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 113.38, + y: 65.38, + z: 1.5, + }, + C12: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 113.38, + y: 56.38, + z: 1.5, + }, + D12: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 113.38, + y: 47.38, + z: 1.5, + }, + E12: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 113.38, + y: 38.38, + z: 1.5, + }, + F12: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 113.38, + y: 29.38, + z: 1.5, + }, + G12: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 113.38, + y: 20.38, + z: 1.5, + }, + H12: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 113.38, + y: 11.38, + z: 1.5, + }, + }, + groups: [ + { + metadata: {}, + wells: [ + 'A1', + 'B1', + 'C1', + 'D1', + 'E1', + 'F1', + 'G1', + 'H1', + 'A2', + 'B2', + 'C2', + 'D2', + 'E2', + 'F2', + 'G2', + 'H2', + 'A3', + 'B3', + 'C3', + 'D3', + 'E3', + 'F3', + 'G3', + 'H3', + 'A4', + 'B4', + 'C4', + 'D4', + 'E4', + 'F4', + 'G4', + 'H4', + 'A5', + 'B5', + 'C5', + 'D5', + 'E5', + 'F5', + 'G5', + 'H5', + 'A6', + 'B6', + 'C6', + 'D6', + 'E6', + 'F6', + 'G6', + 'H6', + 'A7', + 'B7', + 'C7', + 'D7', + 'E7', + 'F7', + 'G7', + 'H7', + 'A8', + 'B8', + 'C8', + 'D8', + 'E8', + 'F8', + 'G8', + 'H8', + 'A9', + 'B9', + 'C9', + 'D9', + 'E9', + 'F9', + 'G9', + 'H9', + 'A10', + 'B10', + 'C10', + 'D10', + 'E10', + 'F10', + 'G10', + 'H10', + 'A11', + 'B11', + 'C11', + 'D11', + 'E11', + 'F11', + 'G11', + 'H11', + 'A12', + 'B12', + 'C12', + 'D12', + 'E12', + 'F12', + 'G12', + 'H12', + ], + }, + ], + parameters: { + format: '96Standard', + quirks: [], + isTiprack: true, + tipLength: 58.35, + tipOverlap: 10.5, + isMagneticModuleCompatible: false, + loadName: 'opentrons_flex_96_tiprack_200ul', + }, + namespace: 'opentrons', + version: 1, + schemaVersion: 2, + cornerOffsetFromSlot: { x: 0, y: 0, z: 0 }, + stackingOffsetWithLabware: { + opentrons_flex_96_tiprack_adapter: { x: 0, y: 0, z: 121 }, + }, + }, + }, + '5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1': { + id: + '5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1', + labwareDefURI: + 'opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1', + def: { + ordering: [ + ['A1', 'B1', 'C1', 'D1'], + ['A2', 'B2', 'C2', 'D2'], + ['A3', 'B3', 'C3', 'D3'], + ['A4', 'B4', 'C4', 'D4'], + ['A5', 'B5', 'C5', 'D5'], + ['A6', 'B6', 'C6', 'D6'], + ], + schemaVersion: 2, + version: 1, + namespace: 'opentrons', + metadata: { + tags: [], + displayName: + 'Opentrons 24 Tube Rack with Eppendorf 1.5 mL Safe-Lock Snapcap', + displayVolumeUnits: 'mL', + displayCategory: 'tubeRack', + }, + dimensions: { xDimension: 127.75, yDimension: 85.5, zDimension: 79.85 }, + parameters: { + format: 'irregular', + isTiprack: false, + isMagneticModuleCompatible: false, + loadName: 'opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap', + }, + wells: { + D1: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 18.21, + y: 17.59, + z: 42.05, + }, + C1: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 18.21, + y: 36.87, + z: 42.05, + }, + B1: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 18.21, + y: 56.15, + z: 42.05, + }, + A1: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 18.21, + y: 75.43, + z: 42.05, + }, + D2: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 38.1, + y: 17.59, + z: 42.05, + }, + C2: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 38.1, + y: 36.87, + z: 42.05, + }, + B2: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 38.1, + y: 56.15, + z: 42.05, + }, + A2: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 38.1, + y: 75.43, + z: 42.05, + }, + D3: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 57.99, + y: 17.59, + z: 42.05, + }, + C3: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 57.99, + y: 36.87, + z: 42.05, + }, + B3: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 57.99, + y: 56.15, + z: 42.05, + }, + A3: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 57.99, + y: 75.43, + z: 42.05, + }, + D4: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 77.88, + y: 17.59, + z: 42.05, + }, + C4: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 77.88, + y: 36.87, + z: 42.05, + }, + B4: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 77.88, + y: 56.15, + z: 42.05, + }, + A4: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 77.88, + y: 75.43, + z: 42.05, + }, + D5: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 97.77, + y: 17.59, + z: 42.05, + }, + C5: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 97.77, + y: 36.87, + z: 42.05, + }, + B5: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 97.77, + y: 56.15, + z: 42.05, + }, + A5: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 97.77, + y: 75.43, + z: 42.05, + }, + D6: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 117.66, + y: 17.59, + z: 42.05, + }, + C6: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 117.66, + y: 36.87, + z: 42.05, + }, + B6: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 117.66, + y: 56.15, + z: 42.05, + }, + A6: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 117.66, + y: 75.43, + z: 42.05, + }, + }, + brand: { + brand: 'Opentrons', + brandId: [], + links: [ + 'https://shop.opentrons.com/collections/opentrons-tips/products/tube-rack-set-1', + ], + }, + groups: [ + { + wells: [ + 'A1', + 'B1', + 'C1', + 'D1', + 'A2', + 'B2', + 'C2', + 'D2', + 'A3', + 'B3', + 'C3', + 'D3', + 'A4', + 'B4', + 'C4', + 'D4', + 'A5', + 'B5', + 'C5', + 'D5', + 'A6', + 'B6', + 'C6', + 'D6', + ], + metadata: { + displayName: 'Eppendorf 24x1.5 mL Safelock Snapcap', + displayCategory: 'tubeRack', + wellBottomShape: 'v', + }, + brand: { + brand: 'Eppendorf', + brandId: [ + '022363204', + '022363212', + '022363221', + '022363247', + '022363263', + '022363280', + '022363280', + '022363301', + '022363328', + ], + links: [ + 'https://online-shop.eppendorf.us/US-en/Laboratory-Consumables-44512/Tubes-44515/Eppendorf-Safe-Lock-Tubes-PF-8863.html', + ], + }, + }, + ], + cornerOffsetFromSlot: { x: 0, y: 0, z: 0 }, + }, + }, + '7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1': { + id: + '7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1', + labwareDefURI: 'opentrons/axygen_1_reservoir_90ml/1', + def: { + ordering: [['A1']], + brand: { + brand: 'Axygen', + brandId: ['RES-SW1-LP'], + links: [ + 'https://ecatalog.corning.com/life-sciences/b2c/US/en/Genomics-%26-Molecular-Biology/Automation-Consumables/Automation-Reservoirs/Axygen%C2%AE-Reagent-Reservoirs/p/RES-SW1-LP?clear=true', + ], + }, + metadata: { + displayName: 'Axygen 1 Well Reservoir 90 mL', + displayCategory: 'reservoir', + displayVolumeUnits: 'mL', + tags: [], + }, + dimensions: { + xDimension: 127.76, + yDimension: 85.47, + zDimension: 19.05, + }, + wells: { + A1: { + depth: 12.42, + shape: 'rectangular', + xDimension: 106.76, + yDimension: 70.52, + totalLiquidVolume: 90000, + x: 63.88, + y: 42.735, + z: 6.63, + }, + }, + groups: [{ wells: ['A1'], metadata: { wellBottomShape: 'flat' } }], + parameters: { + format: 'trough', + isTiprack: false, + isMagneticModuleCompatible: false, + loadName: 'axygen_1_reservoir_90ml', + quirks: ['centerMultichannelOnWells', 'touchTipDisabled'], + }, + namespace: 'opentrons', + version: 1, + schemaVersion: 2, + cornerOffsetFromSlot: { x: 0, y: 0, z: 0 }, + }, + }, + }, + moduleEntities: {}, + pipetteEntities: { + 'b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex': { + name: 'p1000_single_flex', + id: 'b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex', + tiprackDefURI: ['opentrons/opentrons_flex_96_tiprack_200ul/1'], + tiprackLabwareDef: [ + { + ordering: [ + ['A1', 'B1', 'C1', 'D1', 'E1', 'F1', 'G1', 'H1'], + ['A2', 'B2', 'C2', 'D2', 'E2', 'F2', 'G2', 'H2'], + ['A3', 'B3', 'C3', 'D3', 'E3', 'F3', 'G3', 'H3'], + ['A4', 'B4', 'C4', 'D4', 'E4', 'F4', 'G4', 'H4'], + ['A5', 'B5', 'C5', 'D5', 'E5', 'F5', 'G5', 'H5'], + ['A6', 'B6', 'C6', 'D6', 'E6', 'F6', 'G6', 'H6'], + ['A7', 'B7', 'C7', 'D7', 'E7', 'F7', 'G7', 'H7'], + ['A8', 'B8', 'C8', 'D8', 'E8', 'F8', 'G8', 'H8'], + ['A9', 'B9', 'C9', 'D9', 'E9', 'F9', 'G9', 'H9'], + ['A10', 'B10', 'C10', 'D10', 'E10', 'F10', 'G10', 'H10'], + ['A11', 'B11', 'C11', 'D11', 'E11', 'F11', 'G11', 'H11'], + ['A12', 'B12', 'C12', 'D12', 'E12', 'F12', 'G12', 'H12'], + ], + brand: { brand: 'Opentrons', brandId: [] }, + metadata: { + displayName: 'Opentrons Flex 96 Tip Rack 200 µL', + displayCategory: 'tipRack', + displayVolumeUnits: 'µL', + tags: [], + }, + dimensions: { xDimension: 127.75, yDimension: 85.75, zDimension: 99 }, + gripForce: 16, + gripHeightFromLabwareBottom: 23.9, + wells: { + A1: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 14.38, + y: 74.38, + z: 1.5, + }, + B1: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 14.38, + y: 65.38, + z: 1.5, + }, + C1: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 14.38, + y: 56.38, + z: 1.5, + }, + D1: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 14.38, + y: 47.38, + z: 1.5, + }, + E1: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 14.38, + y: 38.38, + z: 1.5, + }, + F1: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 14.38, + y: 29.38, + z: 1.5, + }, + G1: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 14.38, + y: 20.38, + z: 1.5, + }, + H1: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 14.38, + y: 11.38, + z: 1.5, + }, + A2: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 23.38, + y: 74.38, + z: 1.5, + }, + B2: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 23.38, + y: 65.38, + z: 1.5, + }, + C2: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 23.38, + y: 56.38, + z: 1.5, + }, + D2: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 23.38, + y: 47.38, + z: 1.5, + }, + E2: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 23.38, + y: 38.38, + z: 1.5, + }, + F2: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 23.38, + y: 29.38, + z: 1.5, + }, + G2: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 23.38, + y: 20.38, + z: 1.5, + }, + H2: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 23.38, + y: 11.38, + z: 1.5, + }, + A3: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 32.38, + y: 74.38, + z: 1.5, + }, + B3: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 32.38, + y: 65.38, + z: 1.5, + }, + C3: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 32.38, + y: 56.38, + z: 1.5, + }, + D3: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 32.38, + y: 47.38, + z: 1.5, + }, + E3: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 32.38, + y: 38.38, + z: 1.5, + }, + F3: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 32.38, + y: 29.38, + z: 1.5, + }, + G3: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 32.38, + y: 20.38, + z: 1.5, + }, + H3: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 32.38, + y: 11.38, + z: 1.5, + }, + A4: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 41.38, + y: 74.38, + z: 1.5, + }, + B4: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 41.38, + y: 65.38, + z: 1.5, + }, + C4: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 41.38, + y: 56.38, + z: 1.5, + }, + D4: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 41.38, + y: 47.38, + z: 1.5, + }, + E4: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 41.38, + y: 38.38, + z: 1.5, + }, + F4: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 41.38, + y: 29.38, + z: 1.5, + }, + G4: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 41.38, + y: 20.38, + z: 1.5, + }, + H4: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 41.38, + y: 11.38, + z: 1.5, + }, + A5: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 50.38, + y: 74.38, + z: 1.5, + }, + B5: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 50.38, + y: 65.38, + z: 1.5, + }, + C5: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 50.38, + y: 56.38, + z: 1.5, + }, + D5: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 50.38, + y: 47.38, + z: 1.5, + }, + E5: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 50.38, + y: 38.38, + z: 1.5, + }, + F5: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 50.38, + y: 29.38, + z: 1.5, + }, + G5: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 50.38, + y: 20.38, + z: 1.5, + }, + H5: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 50.38, + y: 11.38, + z: 1.5, + }, + A6: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 59.38, + y: 74.38, + z: 1.5, + }, + B6: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 59.38, + y: 65.38, + z: 1.5, + }, + C6: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 59.38, + y: 56.38, + z: 1.5, + }, + D6: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 59.38, + y: 47.38, + z: 1.5, + }, + E6: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 59.38, + y: 38.38, + z: 1.5, + }, + F6: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 59.38, + y: 29.38, + z: 1.5, + }, + G6: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 59.38, + y: 20.38, + z: 1.5, + }, + H6: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 59.38, + y: 11.38, + z: 1.5, + }, + A7: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 68.38, + y: 74.38, + z: 1.5, + }, + B7: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 68.38, + y: 65.38, + z: 1.5, + }, + C7: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 68.38, + y: 56.38, + z: 1.5, + }, + D7: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 68.38, + y: 47.38, + z: 1.5, + }, + E7: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 68.38, + y: 38.38, + z: 1.5, + }, + F7: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 68.38, + y: 29.38, + z: 1.5, + }, + G7: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 68.38, + y: 20.38, + z: 1.5, + }, + H7: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 68.38, + y: 11.38, + z: 1.5, + }, + A8: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 77.38, + y: 74.38, + z: 1.5, + }, + B8: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 77.38, + y: 65.38, + z: 1.5, + }, + C8: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 77.38, + y: 56.38, + z: 1.5, + }, + D8: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 77.38, + y: 47.38, + z: 1.5, + }, + E8: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 77.38, + y: 38.38, + z: 1.5, + }, + F8: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 77.38, + y: 29.38, + z: 1.5, + }, + G8: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 77.38, + y: 20.38, + z: 1.5, + }, + H8: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 77.38, + y: 11.38, + z: 1.5, + }, + A9: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 86.38, + y: 74.38, + z: 1.5, + }, + B9: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 86.38, + y: 65.38, + z: 1.5, + }, + C9: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 86.38, + y: 56.38, + z: 1.5, + }, + D9: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 86.38, + y: 47.38, + z: 1.5, + }, + E9: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 86.38, + y: 38.38, + z: 1.5, + }, + F9: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 86.38, + y: 29.38, + z: 1.5, + }, + G9: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 86.38, + y: 20.38, + z: 1.5, + }, + H9: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 86.38, + y: 11.38, + z: 1.5, + }, + A10: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 95.38, + y: 74.38, + z: 1.5, + }, + B10: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 95.38, + y: 65.38, + z: 1.5, + }, + C10: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 95.38, + y: 56.38, + z: 1.5, + }, + D10: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 95.38, + y: 47.38, + z: 1.5, + }, + E10: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 95.38, + y: 38.38, + z: 1.5, + }, + F10: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 95.38, + y: 29.38, + z: 1.5, + }, + G10: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 95.38, + y: 20.38, + z: 1.5, + }, + H10: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 95.38, + y: 11.38, + z: 1.5, + }, + A11: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 104.38, + y: 74.38, + z: 1.5, + }, + B11: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 104.38, + y: 65.38, + z: 1.5, + }, + C11: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 104.38, + y: 56.38, + z: 1.5, + }, + D11: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 104.38, + y: 47.38, + z: 1.5, + }, + E11: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 104.38, + y: 38.38, + z: 1.5, + }, + F11: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 104.38, + y: 29.38, + z: 1.5, + }, + G11: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 104.38, + y: 20.38, + z: 1.5, + }, + H11: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 104.38, + y: 11.38, + z: 1.5, + }, + A12: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 113.38, + y: 74.38, + z: 1.5, + }, + B12: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 113.38, + y: 65.38, + z: 1.5, + }, + C12: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 113.38, + y: 56.38, + z: 1.5, + }, + D12: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 113.38, + y: 47.38, + z: 1.5, + }, + E12: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 113.38, + y: 38.38, + z: 1.5, + }, + F12: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 113.38, + y: 29.38, + z: 1.5, + }, + G12: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 113.38, + y: 20.38, + z: 1.5, + }, + H12: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 113.38, + y: 11.38, + z: 1.5, + }, + }, + groups: [ + { + metadata: {}, + wells: [ + 'A1', + 'B1', + 'C1', + 'D1', + 'E1', + 'F1', + 'G1', + 'H1', + 'A2', + 'B2', + 'C2', + 'D2', + 'E2', + 'F2', + 'G2', + 'H2', + 'A3', + 'B3', + 'C3', + 'D3', + 'E3', + 'F3', + 'G3', + 'H3', + 'A4', + 'B4', + 'C4', + 'D4', + 'E4', + 'F4', + 'G4', + 'H4', + 'A5', + 'B5', + 'C5', + 'D5', + 'E5', + 'F5', + 'G5', + 'H5', + 'A6', + 'B6', + 'C6', + 'D6', + 'E6', + 'F6', + 'G6', + 'H6', + 'A7', + 'B7', + 'C7', + 'D7', + 'E7', + 'F7', + 'G7', + 'H7', + 'A8', + 'B8', + 'C8', + 'D8', + 'E8', + 'F8', + 'G8', + 'H8', + 'A9', + 'B9', + 'C9', + 'D9', + 'E9', + 'F9', + 'G9', + 'H9', + 'A10', + 'B10', + 'C10', + 'D10', + 'E10', + 'F10', + 'G10', + 'H10', + 'A11', + 'B11', + 'C11', + 'D11', + 'E11', + 'F11', + 'G11', + 'H11', + 'A12', + 'B12', + 'C12', + 'D12', + 'E12', + 'F12', + 'G12', + 'H12', + ], + }, + ], + parameters: { + format: '96Standard', + quirks: [], + isTiprack: true, + tipLength: 58.35, + tipOverlap: 10.5, + isMagneticModuleCompatible: false, + loadName: 'opentrons_flex_96_tiprack_200ul', + }, + namespace: 'opentrons', + version: 1, + schemaVersion: 2, + cornerOffsetFromSlot: { x: 0, y: 0, z: 0 }, + stackingOffsetWithLabware: { + opentrons_flex_96_tiprack_adapter: { x: 0, y: 0, z: 121 }, + }, + }, + ], + spec: { + $otSharedSchema: '#/pipette/schemas/2/pipetteGeometrySchema.json', + displayName: 'Flex 1-Channel 1000 μL', + model: 'p1000', + displayCategory: 'FLEX', + validNozzleMaps: { maps: { SingleA1: ['A1'] } }, + pickUpTipConfigurations: { + pressFit: { + presses: 1, + increment: 0, + configurationsByNozzleMap: { + SingleA1: { + default: { + speed: 10, + distance: 13, + current: 0.2, + tipOverlaps: { + v0: { + default: 10.5, + 'opentrons/opentrons_flex_96_tiprack_1000ul/1': 10.5, + 'opentrons/opentrons_flex_96_tiprack_200ul/1': 10.5, + 'opentrons/opentrons_flex_96_tiprack_50ul/1': 10.5, + 'opentrons/opentrons_flex_96_filtertiprack_1000ul/1': 10.5, + 'opentrons/opentrons_flex_96_filtertiprack_200ul/1': 10.5, + 'opentrons/opentrons_flex_96_filtertiprack_50ul/1': 10.5, + }, + v1: { + default: 10.5, + 'opentrons/opentrons_flex_96_tiprack_1000ul/1': 9.65, + 'opentrons/opentrons_flex_96_tiprack_200ul/1': 9.76, + 'opentrons/opentrons_flex_96_tiprack_50ul/1': 10.09, + 'opentrons/opentrons_flex_96_filtertiprack_1000ul/1': 9.65, + 'opentrons/opentrons_flex_96_filtertiprack_200ul/1': 9.76, + 'opentrons/opentrons_flex_96_filtertiprack_50ul/1': 10.09, + }, + }, + }, + }, + }, + }, + }, + dropTipConfigurations: { plungerEject: { current: 1, speed: 15 } }, + plungerMotorConfigurations: { idle: 0.3, run: 1 }, + plungerPositionsConfigurations: { + default: { top: 0, bottom: 71.5, blowout: 76.5, drop: 90.5 }, + }, + availableSensors: { + sensors: ['pressure', 'capacitive', 'environment'], + pressure: { count: 1 }, + capacitive: { count: 1 }, + environment: { count: 1 }, + }, + partialTipConfigurations: { + partialTipSupported: false, + availableConfigurations: null, + }, + backCompatNames: [], + channels: 1, + shaftDiameter: 4.5, + shaftULperMM: 15.904, + backlashDistance: 0.1, + quirks: [], + plungerHomingConfigurations: { current: 1, speed: 30 }, + pathTo3D: + 'pipette/definitions/2/geometry/single_channel/p1000/placeholder.gltf', + nozzleOffset: [-8, -22, -259.15], + pipetteBoundingBoxOffsets: { + backLeftCorner: [-8, -22, -259.15], + frontRightCorner: [-8, -22, -259.15], + }, + orderedRows: [{ key: 'A', orderedNozzles: ['A1'] }], + orderedColumns: [{ key: '1', orderedNozzles: ['A1'] }], + nozzleMap: { A1: [-8, -22, -259.15] }, + lldSettings: { + t50: { minHeight: 1, minVolume: 0 }, + t200: { minHeight: 1, minVolume: 0 }, + t1000: { minHeight: 1.5, minVolume: 0 }, + }, + liquids: { + default: { + $otSharedSchema: + '#/pipette/schemas/2/pipetteLiquidPropertiesSchema.json', + supportedTips: { + t50: { + uiMaxFlowRate: 785.2, + defaultAspirateFlowRate: { + default: 478, + valuesByApiLevel: { '2.14': 478 }, + }, + defaultDispenseFlowRate: { + default: 478, + valuesByApiLevel: { '2.14': 478 }, + }, + defaultBlowOutFlowRate: { + default: 478, + valuesByApiLevel: { '2.14': 478 }, + }, + defaultFlowAcceleration: 24000, + defaultTipLength: 57.9, + defaultReturnTipHeight: 0.71, + aspirate: { + default: { + '1': [ + [0.7033, 4.9393, 0.669], + [1.0911, 4.233, 1.1657], + [1.7256, 2.8983, 2.6221], + [2.1344, 1.9062, 4.334], + [2.57, 1.3331, 5.5573], + [2.9178, 0.2816, 8.2595], + [3.0222, -3.2737, 18.6333], + [3.2233, 0.8766, 6.09], + [3.5033, 1.324, 4.648], + [4.4567, 1.7683, 3.0913], + [5.3878, 0.8747, 7.0738], + [6.1956, 0.3393, 9.9586], + [8.7911, 0.2504, 10.5095], + [10.5322, 0.1577, 11.3246], + [13.8389, 0.1047, 11.8827], + [23.01, 0.0579, 12.5301], + [29.4811, 0.0285, 13.2057], + [48.0456, 0.0147, 13.612], + [54.06, 0.0016, 14.2446], + ], + }, + }, + dispense: { + default: { + '1': [ + [0.7033, 4.9393, 0.669], + [1.0911, 4.233, 1.1657], + [1.7256, 2.8983, 2.6221], + [2.1344, 1.9062, 4.334], + [2.57, 1.3331, 5.5573], + [2.9178, 0.2816, 8.2595], + [3.0222, -3.2737, 18.6333], + [3.2233, 0.8766, 6.09], + [3.5033, 1.324, 4.648], + [4.4567, 1.7683, 3.0913], + [5.3878, 0.8747, 7.0738], + [6.1956, 0.3393, 9.9586], + [8.7911, 0.2504, 10.5095], + [10.5322, 0.1577, 11.3246], + [13.8389, 0.1047, 11.8827], + [23.01, 0.0579, 12.5301], + [29.4811, 0.0285, 13.2057], + [48.0456, 0.0147, 13.612], + [54.06, 0.0016, 14.2446], + ], + }, + }, + defaultPushOutVolume: 7, + }, + t200: { + uiMaxFlowRate: 802.5, + defaultAspirateFlowRate: { + default: 716, + valuesByApiLevel: { '2.14': 716 }, + }, + defaultDispenseFlowRate: { + default: 716, + valuesByApiLevel: { '2.14': 716 }, + }, + defaultBlowOutFlowRate: { + default: 716, + valuesByApiLevel: { '2.14': 716 }, + }, + defaultFlowAcceleration: 24000, + defaultTipLength: 58.35, + defaultReturnTipHeight: 0.71, + aspirate: { + default: { + '1': [ + [1.5742, 3.2596, 1.8233], + [2.5158, 2.2718, 3.3782], + [4.47, 1.1953, 6.0865], + [5.4908, 0.5062, 9.1669], + [6.6658, 0.3243, 10.1658], + [9.6683, 0.2016, 10.9838], + [11.6442, 0.1543, 11.4405], + [19.8692, 0.0794, 12.3132], + [33.4958, 0.0375, 13.1444], + [51.9508, 0.0191, 13.7624], + [92.6067, 0.0074, 14.3699], + [152.3575, 0.0029, 14.7822], + [179.5925, 0.0013, 15.027], + [211.5867, 0.0009, 15.1088], + ], + }, + }, + dispense: { + default: { + '1': [ + [1.5742, 3.2596, 1.8233], + [2.5158, 2.2718, 3.3782], + [4.47, 1.1953, 6.0865], + [5.4908, 0.5062, 9.1669], + [6.6658, 0.3243, 10.1658], + [9.6683, 0.2016, 10.9838], + [11.6442, 0.1543, 11.4405], + [19.8692, 0.0794, 12.3132], + [33.4958, 0.0375, 13.1444], + [51.9508, 0.0191, 13.7624], + [92.6067, 0.0074, 14.3699], + [152.3575, 0.0029, 14.7822], + [179.5925, 0.0013, 15.027], + [211.5867, 0.0009, 15.1088], + ], + }, + }, + defaultPushOutVolume: 5, + }, + t1000: { + uiMaxFlowRate: 727.3, + defaultAspirateFlowRate: { + default: 716, + valuesByApiLevel: { '2.14': 716 }, + }, + defaultDispenseFlowRate: { + default: 716, + valuesByApiLevel: { '2.14': 716 }, + }, + defaultBlowOutFlowRate: { + default: 716, + valuesByApiLevel: { '2.14': 716 }, + }, + defaultFlowAcceleration: 24000, + defaultTipLength: 95.6, + defaultReturnTipHeight: 0.82, + aspirate: { + default: { + '1': [ + [2.33, 2.388148, 3.699878], + [2.75, -1.230691, 12.131772], + [4.82, 0.868196, 6.359833], + [9.77, 0.322207, 8.991498], + [12.08, 0.156051, 10.614846], + [15.08, 0.147745, 10.715186], + [51.21, 0.03759, 12.376313], + [92.59, 0.010829, 13.746781], + [112.39, 0.005015, 14.285091], + [243.33, 0.00274, 14.540746], + [356.08, 0.000877, 14.994001], + [430.6, 0.000594, 15.094722], + [628.32, 0.000279, 15.230539], + [1000.28, 0.000106, 15.339007], + [1105.26, 0.000122, 15.323864], + ], + }, + }, + dispense: { + default: { + '1': [ + [2.33, 2.388148, 3.699878], + [2.75, -1.230691, 12.131772], + [4.82, 0.868196, 6.359833], + [9.77, 0.322207, 8.991498], + [12.08, 0.156051, 10.614846], + [15.08, 0.147745, 10.715186], + [51.21, 0.03759, 12.376313], + [92.59, 0.010829, 13.746781], + [112.39, 0.005015, 14.285091], + [243.33, 0.00274, 14.540746], + [356.08, 0.000877, 14.994001], + [430.6, 0.000594, 15.094722], + [628.32, 0.000279, 15.230539], + [1000.28, 0.000106, 15.339007], + [1105.26, 0.000122, 15.323864], + ], + }, + }, + defaultPushOutVolume: 20, + }, + }, + maxVolume: 1000, + minVolume: 5, + defaultTipracks: [ + 'opentrons/opentrons_flex_96_tiprack_1000ul/1', + 'opentrons/opentrons_flex_96_tiprack_200ul/1', + 'opentrons/opentrons_flex_96_tiprack_50ul/1', + 'opentrons/opentrons_flex_96_filtertiprack_1000ul/1', + 'opentrons/opentrons_flex_96_filtertiprack_200ul/1', + 'opentrons/opentrons_flex_96_filtertiprack_50ul/1', + ], + }, + }, + }, + }, + }, + additionalEquipmentEntities: { + '4ed9e4f7-36ec-44e7-9366-87cd11c687ca_trashBin': { + name: 'trashBin', + id: '4ed9e4f7-36ec-44e7-9366-87cd11c687ca_trashBin', + location: 'cutoutA3', + }, + }, + config: { OT_PD_DISABLE_MODULE_RESTRICTIONS: false }, +} + +export const multiAspirateRobotState = { + labware: { + '5d2608f9-ebcb-42f2-807f-ad53b81150b0_opentrons/opentrons_flex_96_tiprack_200ul/1': { + slot: 'B2', + }, + '5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1': { + slot: 'C2', + }, + '7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1': { + slot: 'D2', + }, + }, + modules: {}, + pipettes: { + 'b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex': { + mount: 'right', + }, + }, + liquidState: { + pipettes: { + 'b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex': { '0': {} }, + }, + labware: { + '5d2608f9-ebcb-42f2-807f-ad53b81150b0_opentrons/opentrons_flex_96_tiprack_200ul/1': { + A1: {}, + B1: {}, + C1: {}, + D1: {}, + E1: {}, + F1: {}, + G1: {}, + H1: {}, + A2: {}, + B2: {}, + C2: {}, + D2: {}, + E2: {}, + F2: {}, + G2: {}, + H2: {}, + A3: {}, + B3: {}, + C3: {}, + D3: {}, + E3: {}, + F3: {}, + G3: {}, + H3: {}, + A4: {}, + B4: {}, + C4: {}, + D4: {}, + E4: {}, + F4: {}, + G4: {}, + H4: {}, + A5: {}, + B5: {}, + C5: {}, + D5: {}, + E5: {}, + F5: {}, + G5: {}, + H5: {}, + A6: {}, + B6: {}, + C6: {}, + D6: {}, + E6: {}, + F6: {}, + G6: {}, + H6: {}, + A7: {}, + B7: {}, + C7: {}, + D7: {}, + E7: {}, + F7: {}, + G7: {}, + H7: {}, + A8: {}, + B8: {}, + C8: {}, + D8: {}, + E8: {}, + F8: {}, + G8: {}, + H8: {}, + A9: {}, + B9: {}, + C9: {}, + D9: {}, + E9: {}, + F9: {}, + G9: {}, + H9: {}, + A10: {}, + B10: {}, + C10: {}, + D10: {}, + E10: {}, + F10: {}, + G10: {}, + H10: {}, + A11: {}, + B11: {}, + C11: {}, + D11: {}, + E11: {}, + F11: {}, + G11: {}, + H11: {}, + A12: {}, + B12: {}, + C12: {}, + D12: {}, + E12: {}, + F12: {}, + G12: {}, + H12: {}, + }, + '5b7d64da-5c1e-49ad-87a5-3875884446ab_opentrons/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1': { + D1: {}, + C1: {}, + B1: {}, + A1: {}, + D2: {}, + C2: {}, + B2: {}, + A2: {}, + D3: {}, + C3: {}, + B3: {}, + A3: {}, + D4: {}, + C4: {}, + B4: {}, + A4: {}, + D5: {}, + C5: {}, + B5: {}, + A5: {}, + D6: {}, + C6: {}, + B6: {}, + A6: {}, + }, + '7be3d44e-aa9b-4767-88ed-b88531ba4493_opentrons/axygen_1_reservoir_90ml/1': { + A1: {}, + }, + }, + additionalEquipment: { + '4ed9e4f7-36ec-44e7-9366-87cd11c687ca_trashBin': {}, + }, + }, + tipState: { + pipettes: { + 'b0bd09fa-8fea-4506-b438-0f7553dd67ae_p1000_single_flex': false, + }, + tipracks: { + '5d2608f9-ebcb-42f2-807f-ad53b81150b0_opentrons/opentrons_flex_96_tiprack_200ul/1': { + A1: true, + B1: true, + C1: true, + D1: true, + E1: true, + F1: true, + G1: true, + H1: true, + A2: true, + B2: true, + C2: true, + D2: true, + E2: true, + F2: true, + G2: true, + H2: true, + A3: true, + B3: true, + C3: true, + D3: true, + E3: true, + F3: true, + G3: true, + H3: true, + A4: true, + B4: true, + C4: true, + D4: true, + E4: true, + F4: true, + G4: true, + H4: true, + A5: true, + B5: true, + C5: true, + D5: true, + E5: true, + F5: true, + G5: true, + H5: true, + A6: true, + B6: true, + C6: true, + D6: true, + E6: true, + F6: true, + G6: true, + H6: true, + A7: true, + B7: true, + C7: true, + D7: true, + E7: true, + F7: true, + G7: true, + H7: true, + A8: true, + B8: true, + C8: true, + D8: true, + E8: true, + F8: true, + G8: true, + H8: true, + A9: true, + B9: true, + C9: true, + D9: true, + E9: true, + F9: true, + G9: true, + H9: true, + A10: true, + B10: true, + C10: true, + D10: true, + E10: true, + F10: true, + G10: true, + H10: true, + A11: true, + B11: true, + C11: true, + D11: true, + E11: true, + F11: true, + G11: true, + H11: true, + A12: true, + B12: true, + C12: true, + D12: true, + E12: true, + F12: true, + G12: true, + H12: true, + }, + }, + }, +} diff --git a/app/src/organisms/QuickTransferFlow/__fixtures__/quickTransferSummaryStateFixtures.ts b/app/src/organisms/QuickTransferFlow/__fixtures__/quickTransferSummaryStateFixtures.ts new file mode 100644 index 00000000000..c22898b3cd2 --- /dev/null +++ b/app/src/organisms/QuickTransferFlow/__fixtures__/quickTransferSummaryStateFixtures.ts @@ -0,0 +1,1713 @@ +import type { QuickTransferSummaryState } from '../types' + +// // a 1:1 transfer with a 96 channel +// export const singleTransferSummaryState: QuickTransferSummaryState = {} + +// // a 1:many transfer with an 8 channel +// export const multiDispenseSummaryState: QuickTransferSummaryState = {} + +// a many:1 transfer with a single channel +export const multiAspirateSummaryState: QuickTransferSummaryState = { + pipette: { + $otSharedSchema: '#/pipette/schemas/2/pipetteGeometrySchema.json', + displayName: 'Flex 1-Channel 1000 μL', + model: 'p1000', + displayCategory: 'FLEX', + validNozzleMaps: { maps: { SingleA1: ['A1'] } }, + pickUpTipConfigurations: { + pressFit: { + presses: 1, + increment: 0, + configurationsByNozzleMap: { + SingleA1: { + default: { + speed: 10, + distance: 13, + current: 0.2, + tipOverlaps: { + v0: { + default: 10.5, + 'opentrons/opentrons_flex_96_tiprack_1000ul/1': 10.5, + 'opentrons/opentrons_flex_96_tiprack_200ul/1': 10.5, + 'opentrons/opentrons_flex_96_tiprack_50ul/1': 10.5, + 'opentrons/opentrons_flex_96_filtertiprack_1000ul/1': 10.5, + 'opentrons/opentrons_flex_96_filtertiprack_200ul/1': 10.5, + 'opentrons/opentrons_flex_96_filtertiprack_50ul/1': 10.5, + }, + v1: { + default: 10.5, + 'opentrons/opentrons_flex_96_tiprack_1000ul/1': 9.65, + 'opentrons/opentrons_flex_96_tiprack_200ul/1': 9.76, + 'opentrons/opentrons_flex_96_tiprack_50ul/1': 10.09, + 'opentrons/opentrons_flex_96_filtertiprack_1000ul/1': 9.65, + 'opentrons/opentrons_flex_96_filtertiprack_200ul/1': 9.76, + 'opentrons/opentrons_flex_96_filtertiprack_50ul/1': 10.09, + }, + }, + }, + }, + }, + }, + }, + dropTipConfigurations: { plungerEject: { current: 1, speed: 15 } }, + plungerMotorConfigurations: { idle: 0.3, run: 1 }, + plungerPositionsConfigurations: { + default: { top: 0, bottom: 71.5, blowout: 76.5, drop: 90.5 }, + }, + availableSensors: { + sensors: ['pressure', 'capacitive', 'environment'], + pressure: { count: 1 }, + capacitive: { count: 1 }, + environment: { count: 1 }, + }, + partialTipConfigurations: { + partialTipSupported: false, + availableConfigurations: null, + }, + backCompatNames: [], + channels: 1, + shaftDiameter: 4.5, + shaftULperMM: 15.904, + backlashDistance: 0.1, + quirks: [], + plungerHomingConfigurations: { current: 1, speed: 30 }, + pathTo3D: + 'pipette/definitions/2/geometry/single_channel/p1000/placeholder.gltf', + nozzleOffset: [-8, -22, -259.15], + pipetteBoundingBoxOffsets: { + backLeftCorner: [-8, -22, -259.15], + frontRightCorner: [-8, -22, -259.15], + }, + orderedRows: [{ key: 'A', orderedNozzles: ['A1'] }], + orderedColumns: [{ key: '1', orderedNozzles: ['A1'] }], + nozzleMap: { A1: [-8, -22, -259.15] }, + lldSettings: { + t50: { minHeight: 1, minVolume: 0 }, + t200: { minHeight: 1, minVolume: 0 }, + t1000: { minHeight: 1.5, minVolume: 0 }, + }, + liquids: { + default: { + $otSharedSchema: + '#/pipette/schemas/2/pipetteLiquidPropertiesSchema.json', + supportedTips: { + t50: { + uiMaxFlowRate: 785.2, + defaultAspirateFlowRate: { + default: 478, + valuesByApiLevel: { '2.14': 478 }, + }, + defaultDispenseFlowRate: { + default: 478, + valuesByApiLevel: { '2.14': 478 }, + }, + defaultBlowOutFlowRate: { + default: 478, + valuesByApiLevel: { '2.14': 478 }, + }, + defaultFlowAcceleration: 24000, + defaultTipLength: 57.9, + defaultReturnTipHeight: 0.71, + aspirate: { + default: { + '1': [ + [0.7033, 4.9393, 0.669], + [1.0911, 4.233, 1.1657], + [1.7256, 2.8983, 2.6221], + [2.1344, 1.9062, 4.334], + [2.57, 1.3331, 5.5573], + [2.9178, 0.2816, 8.2595], + [3.0222, -3.2737, 18.6333], + [3.2233, 0.8766, 6.09], + [3.5033, 1.324, 4.648], + [4.4567, 1.7683, 3.0913], + [5.3878, 0.8747, 7.0738], + [6.1956, 0.3393, 9.9586], + [8.7911, 0.2504, 10.5095], + [10.5322, 0.1577, 11.3246], + [13.8389, 0.1047, 11.8827], + [23.01, 0.0579, 12.5301], + [29.4811, 0.0285, 13.2057], + [48.0456, 0.0147, 13.612], + [54.06, 0.0016, 14.2446], + ], + }, + }, + dispense: { + default: { + '1': [ + [0.7033, 4.9393, 0.669], + [1.0911, 4.233, 1.1657], + [1.7256, 2.8983, 2.6221], + [2.1344, 1.9062, 4.334], + [2.57, 1.3331, 5.5573], + [2.9178, 0.2816, 8.2595], + [3.0222, -3.2737, 18.6333], + [3.2233, 0.8766, 6.09], + [3.5033, 1.324, 4.648], + [4.4567, 1.7683, 3.0913], + [5.3878, 0.8747, 7.0738], + [6.1956, 0.3393, 9.9586], + [8.7911, 0.2504, 10.5095], + [10.5322, 0.1577, 11.3246], + [13.8389, 0.1047, 11.8827], + [23.01, 0.0579, 12.5301], + [29.4811, 0.0285, 13.2057], + [48.0456, 0.0147, 13.612], + [54.06, 0.0016, 14.2446], + ], + }, + }, + defaultPushOutVolume: 7, + }, + t200: { + uiMaxFlowRate: 802.5, + defaultAspirateFlowRate: { + default: 716, + valuesByApiLevel: { '2.14': 716 }, + }, + defaultDispenseFlowRate: { + default: 716, + valuesByApiLevel: { '2.14': 716 }, + }, + defaultBlowOutFlowRate: { + default: 716, + valuesByApiLevel: { '2.14': 716 }, + }, + defaultFlowAcceleration: 24000, + defaultTipLength: 58.35, + defaultReturnTipHeight: 0.71, + aspirate: { + default: { + '1': [ + [1.5742, 3.2596, 1.8233], + [2.5158, 2.2718, 3.3782], + [4.47, 1.1953, 6.0865], + [5.4908, 0.5062, 9.1669], + [6.6658, 0.3243, 10.1658], + [9.6683, 0.2016, 10.9838], + [11.6442, 0.1543, 11.4405], + [19.8692, 0.0794, 12.3132], + [33.4958, 0.0375, 13.1444], + [51.9508, 0.0191, 13.7624], + [92.6067, 0.0074, 14.3699], + [152.3575, 0.0029, 14.7822], + [179.5925, 0.0013, 15.027], + [211.5867, 0.0009, 15.1088], + ], + }, + }, + dispense: { + default: { + '1': [ + [1.5742, 3.2596, 1.8233], + [2.5158, 2.2718, 3.3782], + [4.47, 1.1953, 6.0865], + [5.4908, 0.5062, 9.1669], + [6.6658, 0.3243, 10.1658], + [9.6683, 0.2016, 10.9838], + [11.6442, 0.1543, 11.4405], + [19.8692, 0.0794, 12.3132], + [33.4958, 0.0375, 13.1444], + [51.9508, 0.0191, 13.7624], + [92.6067, 0.0074, 14.3699], + [152.3575, 0.0029, 14.7822], + [179.5925, 0.0013, 15.027], + [211.5867, 0.0009, 15.1088], + ], + }, + }, + defaultPushOutVolume: 5, + }, + t1000: { + uiMaxFlowRate: 727.3, + defaultAspirateFlowRate: { + default: 716, + valuesByApiLevel: { '2.14': 716 }, + }, + defaultDispenseFlowRate: { + default: 716, + valuesByApiLevel: { '2.14': 716 }, + }, + defaultBlowOutFlowRate: { + default: 716, + valuesByApiLevel: { '2.14': 716 }, + }, + defaultFlowAcceleration: 24000, + defaultTipLength: 95.6, + defaultReturnTipHeight: 0.82, + aspirate: { + default: { + '1': [ + [2.33, 2.388148, 3.699878], + [2.75, -1.230691, 12.131772], + [4.82, 0.868196, 6.359833], + [9.77, 0.322207, 8.991498], + [12.08, 0.156051, 10.614846], + [15.08, 0.147745, 10.715186], + [51.21, 0.03759, 12.376313], + [92.59, 0.010829, 13.746781], + [112.39, 0.005015, 14.285091], + [243.33, 0.00274, 14.540746], + [356.08, 0.000877, 14.994001], + [430.6, 0.000594, 15.094722], + [628.32, 0.000279, 15.230539], + [1000.28, 0.000106, 15.339007], + [1105.26, 0.000122, 15.323864], + ], + }, + }, + dispense: { + default: { + '1': [ + [2.33, 2.388148, 3.699878], + [2.75, -1.230691, 12.131772], + [4.82, 0.868196, 6.359833], + [9.77, 0.322207, 8.991498], + [12.08, 0.156051, 10.614846], + [15.08, 0.147745, 10.715186], + [51.21, 0.03759, 12.376313], + [92.59, 0.010829, 13.746781], + [112.39, 0.005015, 14.285091], + [243.33, 0.00274, 14.540746], + [356.08, 0.000877, 14.994001], + [430.6, 0.000594, 15.094722], + [628.32, 0.000279, 15.230539], + [1000.28, 0.000106, 15.339007], + [1105.26, 0.000122, 15.323864], + ], + }, + }, + defaultPushOutVolume: 20, + }, + }, + maxVolume: 1000, + minVolume: 5, + defaultTipracks: [ + 'opentrons/opentrons_flex_96_tiprack_1000ul/1', + 'opentrons/opentrons_flex_96_tiprack_200ul/1', + 'opentrons/opentrons_flex_96_tiprack_50ul/1', + 'opentrons/opentrons_flex_96_filtertiprack_1000ul/1', + 'opentrons/opentrons_flex_96_filtertiprack_200ul/1', + 'opentrons/opentrons_flex_96_filtertiprack_50ul/1', + ], + }, + }, + }, + mount: 'right', + tipRack: { + ordering: [ + ['A1', 'B1', 'C1', 'D1', 'E1', 'F1', 'G1', 'H1'], + ['A2', 'B2', 'C2', 'D2', 'E2', 'F2', 'G2', 'H2'], + ['A3', 'B3', 'C3', 'D3', 'E3', 'F3', 'G3', 'H3'], + ['A4', 'B4', 'C4', 'D4', 'E4', 'F4', 'G4', 'H4'], + ['A5', 'B5', 'C5', 'D5', 'E5', 'F5', 'G5', 'H5'], + ['A6', 'B6', 'C6', 'D6', 'E6', 'F6', 'G6', 'H6'], + ['A7', 'B7', 'C7', 'D7', 'E7', 'F7', 'G7', 'H7'], + ['A8', 'B8', 'C8', 'D8', 'E8', 'F8', 'G8', 'H8'], + ['A9', 'B9', 'C9', 'D9', 'E9', 'F9', 'G9', 'H9'], + ['A10', 'B10', 'C10', 'D10', 'E10', 'F10', 'G10', 'H10'], + ['A11', 'B11', 'C11', 'D11', 'E11', 'F11', 'G11', 'H11'], + ['A12', 'B12', 'C12', 'D12', 'E12', 'F12', 'G12', 'H12'], + ], + brand: { brand: 'Opentrons', brandId: [] }, + metadata: { + displayName: 'Opentrons Flex 96 Tip Rack 200 µL', + displayCategory: 'tipRack', + displayVolumeUnits: 'µL', + tags: [], + }, + dimensions: { + xDimension: 127.75, + yDimension: 85.75, + zDimension: 99, + }, + gripForce: 16, + gripHeightFromLabwareBottom: 23.9, + wells: { + A1: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 14.38, + y: 74.38, + z: 1.5, + }, + B1: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 14.38, + y: 65.38, + z: 1.5, + }, + C1: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 14.38, + y: 56.38, + z: 1.5, + }, + D1: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 14.38, + y: 47.38, + z: 1.5, + }, + E1: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 14.38, + y: 38.38, + z: 1.5, + }, + F1: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 14.38, + y: 29.38, + z: 1.5, + }, + G1: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 14.38, + y: 20.38, + z: 1.5, + }, + H1: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 14.38, + y: 11.38, + z: 1.5, + }, + A2: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 23.38, + y: 74.38, + z: 1.5, + }, + B2: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 23.38, + y: 65.38, + z: 1.5, + }, + C2: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 23.38, + y: 56.38, + z: 1.5, + }, + D2: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 23.38, + y: 47.38, + z: 1.5, + }, + E2: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 23.38, + y: 38.38, + z: 1.5, + }, + F2: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 23.38, + y: 29.38, + z: 1.5, + }, + G2: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 23.38, + y: 20.38, + z: 1.5, + }, + H2: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 23.38, + y: 11.38, + z: 1.5, + }, + A3: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 32.38, + y: 74.38, + z: 1.5, + }, + B3: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 32.38, + y: 65.38, + z: 1.5, + }, + C3: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 32.38, + y: 56.38, + z: 1.5, + }, + D3: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 32.38, + y: 47.38, + z: 1.5, + }, + E3: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 32.38, + y: 38.38, + z: 1.5, + }, + F3: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 32.38, + y: 29.38, + z: 1.5, + }, + G3: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 32.38, + y: 20.38, + z: 1.5, + }, + H3: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 32.38, + y: 11.38, + z: 1.5, + }, + A4: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 41.38, + y: 74.38, + z: 1.5, + }, + B4: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 41.38, + y: 65.38, + z: 1.5, + }, + C4: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 41.38, + y: 56.38, + z: 1.5, + }, + D4: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 41.38, + y: 47.38, + z: 1.5, + }, + E4: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 41.38, + y: 38.38, + z: 1.5, + }, + F4: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 41.38, + y: 29.38, + z: 1.5, + }, + G4: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 41.38, + y: 20.38, + z: 1.5, + }, + H4: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 41.38, + y: 11.38, + z: 1.5, + }, + A5: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 50.38, + y: 74.38, + z: 1.5, + }, + B5: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 50.38, + y: 65.38, + z: 1.5, + }, + C5: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 50.38, + y: 56.38, + z: 1.5, + }, + D5: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 50.38, + y: 47.38, + z: 1.5, + }, + E5: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 50.38, + y: 38.38, + z: 1.5, + }, + F5: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 50.38, + y: 29.38, + z: 1.5, + }, + G5: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 50.38, + y: 20.38, + z: 1.5, + }, + H5: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 50.38, + y: 11.38, + z: 1.5, + }, + A6: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 59.38, + y: 74.38, + z: 1.5, + }, + B6: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 59.38, + y: 65.38, + z: 1.5, + }, + C6: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 59.38, + y: 56.38, + z: 1.5, + }, + D6: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 59.38, + y: 47.38, + z: 1.5, + }, + E6: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 59.38, + y: 38.38, + z: 1.5, + }, + F6: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 59.38, + y: 29.38, + z: 1.5, + }, + G6: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 59.38, + y: 20.38, + z: 1.5, + }, + H6: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 59.38, + y: 11.38, + z: 1.5, + }, + A7: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 68.38, + y: 74.38, + z: 1.5, + }, + B7: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 68.38, + y: 65.38, + z: 1.5, + }, + C7: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 68.38, + y: 56.38, + z: 1.5, + }, + D7: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 68.38, + y: 47.38, + z: 1.5, + }, + E7: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 68.38, + y: 38.38, + z: 1.5, + }, + F7: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 68.38, + y: 29.38, + z: 1.5, + }, + G7: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 68.38, + y: 20.38, + z: 1.5, + }, + H7: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 68.38, + y: 11.38, + z: 1.5, + }, + A8: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 77.38, + y: 74.38, + z: 1.5, + }, + B8: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 77.38, + y: 65.38, + z: 1.5, + }, + C8: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 77.38, + y: 56.38, + z: 1.5, + }, + D8: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 77.38, + y: 47.38, + z: 1.5, + }, + E8: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 77.38, + y: 38.38, + z: 1.5, + }, + F8: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 77.38, + y: 29.38, + z: 1.5, + }, + G8: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 77.38, + y: 20.38, + z: 1.5, + }, + H8: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 77.38, + y: 11.38, + z: 1.5, + }, + A9: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 86.38, + y: 74.38, + z: 1.5, + }, + B9: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 86.38, + y: 65.38, + z: 1.5, + }, + C9: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 86.38, + y: 56.38, + z: 1.5, + }, + D9: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 86.38, + y: 47.38, + z: 1.5, + }, + E9: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 86.38, + y: 38.38, + z: 1.5, + }, + F9: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 86.38, + y: 29.38, + z: 1.5, + }, + G9: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 86.38, + y: 20.38, + z: 1.5, + }, + H9: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 86.38, + y: 11.38, + z: 1.5, + }, + A10: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 95.38, + y: 74.38, + z: 1.5, + }, + B10: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 95.38, + y: 65.38, + z: 1.5, + }, + C10: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 95.38, + y: 56.38, + z: 1.5, + }, + D10: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 95.38, + y: 47.38, + z: 1.5, + }, + E10: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 95.38, + y: 38.38, + z: 1.5, + }, + F10: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 95.38, + y: 29.38, + z: 1.5, + }, + G10: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 95.38, + y: 20.38, + z: 1.5, + }, + H10: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 95.38, + y: 11.38, + z: 1.5, + }, + A11: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 104.38, + y: 74.38, + z: 1.5, + }, + B11: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 104.38, + y: 65.38, + z: 1.5, + }, + C11: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 104.38, + y: 56.38, + z: 1.5, + }, + D11: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 104.38, + y: 47.38, + z: 1.5, + }, + E11: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 104.38, + y: 38.38, + z: 1.5, + }, + F11: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 104.38, + y: 29.38, + z: 1.5, + }, + G11: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 104.38, + y: 20.38, + z: 1.5, + }, + H11: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 104.38, + y: 11.38, + z: 1.5, + }, + A12: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 113.38, + y: 74.38, + z: 1.5, + }, + B12: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 113.38, + y: 65.38, + z: 1.5, + }, + C12: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 113.38, + y: 56.38, + z: 1.5, + }, + D12: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 113.38, + y: 47.38, + z: 1.5, + }, + E12: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 113.38, + y: 38.38, + z: 1.5, + }, + F12: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 113.38, + y: 29.38, + z: 1.5, + }, + G12: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 113.38, + y: 20.38, + z: 1.5, + }, + H12: { + depth: 97.5, + shape: 'circular', + diameter: 5.59, + totalLiquidVolume: 200, + x: 113.38, + y: 11.38, + z: 1.5, + }, + }, + groups: [ + { + metadata: {}, + wells: [ + 'A1', + 'B1', + 'C1', + 'D1', + 'E1', + 'F1', + 'G1', + 'H1', + 'A2', + 'B2', + 'C2', + 'D2', + 'E2', + 'F2', + 'G2', + 'H2', + 'A3', + 'B3', + 'C3', + 'D3', + 'E3', + 'F3', + 'G3', + 'H3', + 'A4', + 'B4', + 'C4', + 'D4', + 'E4', + 'F4', + 'G4', + 'H4', + 'A5', + 'B5', + 'C5', + 'D5', + 'E5', + 'F5', + 'G5', + 'H5', + 'A6', + 'B6', + 'C6', + 'D6', + 'E6', + 'F6', + 'G6', + 'H6', + 'A7', + 'B7', + 'C7', + 'D7', + 'E7', + 'F7', + 'G7', + 'H7', + 'A8', + 'B8', + 'C8', + 'D8', + 'E8', + 'F8', + 'G8', + 'H8', + 'A9', + 'B9', + 'C9', + 'D9', + 'E9', + 'F9', + 'G9', + 'H9', + 'A10', + 'B10', + 'C10', + 'D10', + 'E10', + 'F10', + 'G10', + 'H10', + 'A11', + 'B11', + 'C11', + 'D11', + 'E11', + 'F11', + 'G11', + 'H11', + 'A12', + 'B12', + 'C12', + 'D12', + 'E12', + 'F12', + 'G12', + 'H12', + ], + }, + ], + parameters: { + format: '96Standard', + quirks: [], + isTiprack: true, + tipLength: 58.35, + tipOverlap: 10.5, + isMagneticModuleCompatible: false, + loadName: 'opentrons_flex_96_tiprack_200ul', + }, + namespace: 'opentrons', + version: 1, + schemaVersion: 2, + cornerOffsetFromSlot: { x: 0, y: 0, z: 0 }, + stackingOffsetWithLabware: { + opentrons_flex_96_tiprack_adapter: { x: 0, y: 0, z: 121 }, + }, + }, + source: { + ordering: [ + ['A1', 'B1', 'C1', 'D1'], + ['A2', 'B2', 'C2', 'D2'], + ['A3', 'B3', 'C3', 'D3'], + ['A4', 'B4', 'C4', 'D4'], + ['A5', 'B5', 'C5', 'D5'], + ['A6', 'B6', 'C6', 'D6'], + ], + schemaVersion: 2, + version: 1, + namespace: 'opentrons', + metadata: { + tags: [], + displayName: + 'Opentrons 24 Tube Rack with Eppendorf 1.5 mL Safe-Lock Snapcap', + displayVolumeUnits: 'mL', + displayCategory: 'tubeRack', + }, + dimensions: { + xDimension: 127.75, + yDimension: 85.5, + zDimension: 79.85, + }, + parameters: { + format: 'irregular', + isTiprack: false, + isMagneticModuleCompatible: false, + loadName: 'opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap', + }, + wells: { + D1: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 18.21, + y: 17.59, + z: 42.05, + }, + C1: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 18.21, + y: 36.87, + z: 42.05, + }, + B1: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 18.21, + y: 56.15, + z: 42.05, + }, + A1: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 18.21, + y: 75.43, + z: 42.05, + }, + D2: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 38.1, + y: 17.59, + z: 42.05, + }, + C2: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 38.1, + y: 36.87, + z: 42.05, + }, + B2: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 38.1, + y: 56.15, + z: 42.05, + }, + A2: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 38.1, + y: 75.43, + z: 42.05, + }, + D3: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 57.99, + y: 17.59, + z: 42.05, + }, + C3: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 57.99, + y: 36.87, + z: 42.05, + }, + B3: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 57.99, + y: 56.15, + z: 42.05, + }, + A3: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 57.99, + y: 75.43, + z: 42.05, + }, + D4: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 77.88, + y: 17.59, + z: 42.05, + }, + C4: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 77.88, + y: 36.87, + z: 42.05, + }, + B4: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 77.88, + y: 56.15, + z: 42.05, + }, + A4: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 77.88, + y: 75.43, + z: 42.05, + }, + D5: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 97.77, + y: 17.59, + z: 42.05, + }, + C5: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 97.77, + y: 36.87, + z: 42.05, + }, + B5: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 97.77, + y: 56.15, + z: 42.05, + }, + A5: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 97.77, + y: 75.43, + z: 42.05, + }, + D6: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 117.66, + y: 17.59, + z: 42.05, + }, + C6: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 117.66, + y: 36.87, + z: 42.05, + }, + B6: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 117.66, + y: 56.15, + z: 42.05, + }, + A6: { + depth: 37.8, + diameter: 8.7, + shape: 'circular', + totalLiquidVolume: 1500, + x: 117.66, + y: 75.43, + z: 42.05, + }, + }, + brand: { + brand: 'Opentrons', + brandId: [], + links: [ + 'https://shop.opentrons.com/collections/opentrons-tips/products/tube-rack-set-1', + ], + }, + groups: [ + { + wells: [ + 'A1', + 'B1', + 'C1', + 'D1', + 'A2', + 'B2', + 'C2', + 'D2', + 'A3', + 'B3', + 'C3', + 'D3', + 'A4', + 'B4', + 'C4', + 'D4', + 'A5', + 'B5', + 'C5', + 'D5', + 'A6', + 'B6', + 'C6', + 'D6', + ], + metadata: { + displayName: 'Eppendorf 24x1.5 mL Safelock Snapcap', + displayCategory: 'tubeRack', + wellBottomShape: 'v', + }, + brand: { + brand: 'Eppendorf', + brandId: [ + '022363204', + '022363212', + '022363221', + '022363247', + '022363263', + '022363280', + '022363280', + '022363301', + '022363328', + ], + links: [ + 'https://online-shop.eppendorf.us/US-en/Laboratory-Consumables-44512/Tubes-44515/Eppendorf-Safe-Lock-Tubes-PF-8863.html', + ], + }, + }, + ], + cornerOffsetFromSlot: { x: 0, y: 0, z: 0 }, + }, + sourceWells: [ + 'D1', + 'C1', + 'B1', + 'A1', + 'D2', + 'C2', + 'B2', + 'A2', + 'D3', + 'C3', + 'B3', + 'A3', + 'D4', + 'C4', + 'B4', + 'A4', + 'D5', + 'C5', + 'B5', + 'A5', + 'D6', + 'C6', + 'B6', + 'A6', + ], + destination: { + ordering: [['A1']], + brand: { + brand: 'Axygen', + brandId: ['RES-SW1-LP'], + links: [ + 'https://ecatalog.corning.com/life-sciences/b2c/US/en/Genomics-%26-Molecular-Biology/Automation-Consumables/Automation-Reservoirs/Axygen%C2%AE-Reagent-Reservoirs/p/RES-SW1-LP?clear=true', + ], + }, + metadata: { + displayName: 'Axygen 1 Well Reservoir 90 mL', + displayCategory: 'reservoir', + displayVolumeUnits: 'mL', + tags: [], + }, + dimensions: { + xDimension: 127.76, + yDimension: 85.47, + zDimension: 19.05, + }, + wells: { + A1: { + depth: 12.42, + shape: 'rectangular', + xDimension: 106.76, + yDimension: 70.52, + totalLiquidVolume: 90000, + x: 63.88, + y: 42.735, + z: 6.63, + }, + }, + groups: [{ wells: ['A1'], metadata: { wellBottomShape: 'flat' } }], + parameters: { + format: 'trough', + isTiprack: false, + isMagneticModuleCompatible: false, + loadName: 'axygen_1_reservoir_90ml', + quirks: ['centerMultichannelOnWells', 'touchTipDisabled'], + }, + namespace: 'opentrons', + version: 1, + schemaVersion: 2, + cornerOffsetFromSlot: { x: 0, y: 0, z: 0 }, + }, + destinationWells: ['A1'], + transferType: 'consolidate', + volume: 85, + aspirateFlowRate: 716, + dispenseFlowRate: 716, + path: 'multiAspirate', + blowOut: 'dest_well', + tipPositionAspirate: 1, + preWetTip: true, + tipPositionDispense: 1, + changeTip: 'always', + dropTipLocation: { + cutoutFixtureId: 'trashBinAdapter', + cutoutId: 'cutoutA3', + }, + delayAspirate: { delayDuration: 2, positionFromBottom: 8 }, + touchTipAspirate: 30, + airGapAspirate: 4, + mixOnDispense: { mixVolume: 80, repititions: 6 }, + airGapDispense: 100, +} diff --git a/app/src/organisms/QuickTransferFlow/__tests__/utils/createQuickTransferFile.test.ts b/app/src/organisms/QuickTransferFlow/__tests__/utils/createQuickTransferFile.test.ts new file mode 100644 index 00000000000..fc547b51343 --- /dev/null +++ b/app/src/organisms/QuickTransferFlow/__tests__/utils/createQuickTransferFile.test.ts @@ -0,0 +1,31 @@ +import { describe, it, expect } from 'vitest' +import { createQuickTransferFile } from '../../utils' +import { multiAspirateSummaryState } from '../../__fixtures__/quickTransferSummaryStateFixtures' +import multiAspirateQuickTransfer from '../../__fixtures__/multiAspirateQuickTransfer.json' +import { DeckConfiguration } from '@opentrons/shared-data' + +const deckConfig: DeckConfiguration = [ + { cutoutFixtureId: 'singleLeftSlot', cutoutId: 'cutoutA1' }, + { cutoutFixtureId: 'singleLeftSlot', cutoutId: 'cutoutB1' }, + { cutoutFixtureId: 'singleLeftSlot', cutoutId: 'cutoutC1' }, + { cutoutFixtureId: 'singleLeftSlot', cutoutId: 'cutoutD1' }, + { cutoutFixtureId: 'singleCenterSlot', cutoutId: 'cutoutA2' }, + { cutoutFixtureId: 'singleCenterSlot', cutoutId: 'cutoutB2' }, + { cutoutFixtureId: 'singleCenterSlot', cutoutId: 'cutoutC2' }, + { cutoutFixtureId: 'singleCenterSlot', cutoutId: 'cutoutD2' }, + { cutoutFixtureId: 'trashBinAdapter', cutoutId: 'cutoutA3' }, + { cutoutFixtureId: 'singleRightSlot', cutoutId: 'cutoutB3' }, + { cutoutFixtureId: 'singleRightSlot', cutoutId: 'cutoutC3' }, + { cutoutFixtureId: 'singleRightSlot', cutoutId: 'cutoutD3' }, +] + +describe('createQuickTransferFile', () => { + it('correctly creates a quick transfer file for a multi aspirate transfer with a single channel pipette', () => { + const protocolFile = createQuickTransferFile( + multiAspirateSummaryState, + deckConfig, + 'multiAspirateQuickTransfer' + ) + expect(protocolFile).toEqual(multiAspirateQuickTransfer) + }) +}) diff --git a/app/src/organisms/QuickTransferFlow/__tests__/utils/generateQuickTransferArgs.test.ts b/app/src/organisms/QuickTransferFlow/__tests__/utils/generateQuickTransferArgs.test.ts new file mode 100644 index 00000000000..10838ec6a7b --- /dev/null +++ b/app/src/organisms/QuickTransferFlow/__tests__/utils/generateQuickTransferArgs.test.ts @@ -0,0 +1,37 @@ +import { describe, it, expect } from 'vitest' +import { generateQuickTransferArgs } from '../../utils' +import { multiAspirateSummaryState } from '../../__fixtures__/quickTransferSummaryStateFixtures' +import { + multiAspirateInvariantContext, + multiAspirateRobotState, + multiAspirateStepArgs, +} from '../../__fixtures__/quickTransferArgFixtures' +import { DeckConfiguration } from '@opentrons/shared-data' + +const deckConfig: DeckConfiguration = [ + { cutoutFixtureId: 'singleLeftSlot', cutoutId: 'cutoutA1' }, + { cutoutFixtureId: 'singleLeftSlot', cutoutId: 'cutoutB1' }, + { cutoutFixtureId: 'singleLeftSlot', cutoutId: 'cutoutC1' }, + { cutoutFixtureId: 'singleLeftSlot', cutoutId: 'cutoutD1' }, + { cutoutFixtureId: 'singleCenterSlot', cutoutId: 'cutoutA2' }, + { cutoutFixtureId: 'singleCenterSlot', cutoutId: 'cutoutB2' }, + { cutoutFixtureId: 'singleCenterSlot', cutoutId: 'cutoutC2' }, + { cutoutFixtureId: 'singleCenterSlot', cutoutId: 'cutoutD2' }, + { cutoutFixtureId: 'trashBinAdapter', cutoutId: 'cutoutA3' }, + { cutoutFixtureId: 'singleRightSlot', cutoutId: 'cutoutB3' }, + { cutoutFixtureId: 'singleRightSlot', cutoutId: 'cutoutC3' }, + { cutoutFixtureId: 'singleRightSlot', cutoutId: 'cutoutD3' }, +] + +describe('generateQuickTransferArgs', () => { + it('correctly creates quick transfer args for a multi aspirate transfer with a single channel pipette', () => { + const { + initialRobotState, + invariantContext, + stepArgs, + } = generateQuickTransferArgs(multiAspirateSummaryState, deckConfig) + expect(initialRobotState).toEqual(multiAspirateRobotState) + // expect(invariantContext).toEqual(multiAspirateInvariantContext) + // expect(stepArgs).toEqual(multiAspirateStepArgs) + }) +}) diff --git a/app/src/transformations/commands/transformations/getLocationInfoNames.ts b/app/src/transformations/commands/transformations/getLocationInfoNames.ts index 26d618859f9..e87f5d68ba8 100644 --- a/app/src/transformations/commands/transformations/getLocationInfoNames.ts +++ b/app/src/transformations/commands/transformations/getLocationInfoNames.ts @@ -1,4 +1,8 @@ -import { getLabwareDisplayName } from '@opentrons/shared-data' +import { + getLabwareDisplayName, + getLabwareStackCountAndLocation, +} from '@opentrons/shared-data' + import type { LoadLabwareRunTimeCommand, RunTimeCommand, @@ -10,6 +14,7 @@ export interface LocationInfoNames { slotName: string labwareName: string labwareNickname?: string + labwareQuantity: number adapterName?: string moduleModel?: ModuleModel adapterId?: string @@ -30,11 +35,11 @@ export function getLocationInfoNames( (command): command is LoadModuleRunTimeCommand => command.commandType === 'loadModule' ) - if (loadLabwareCommand == null) { + if (loadLabwareCommands == null || loadLabwareCommand == null) { console.warn( `could not find the load labware command assosciated with thie labwareId: ${labwareId}` ) - return { slotName: '', labwareName: '' } + return { slotName: '', labwareName: '', labwareQuantity: 0 } } const labwareName = @@ -43,14 +48,21 @@ export function getLocationInfoNames( : '' const labwareNickname = loadLabwareCommand.params.displayName - const labwareLocation = loadLabwareCommand.params.location + const { labwareLocation, labwareQuantity } = getLabwareStackCountAndLocation( + labwareId, + loadLabwareCommands + ) if (labwareLocation === 'offDeck') { - return { slotName: 'Off deck', labwareName } + return { slotName: 'Off deck', labwareName, labwareQuantity } } else if ('slotName' in labwareLocation) { - return { slotName: labwareLocation.slotName, labwareName } + return { slotName: labwareLocation.slotName, labwareName, labwareQuantity } } else if ('addressableAreaName' in labwareLocation) { - return { slotName: labwareLocation.addressableAreaName, labwareName } + return { + slotName: labwareLocation.addressableAreaName, + labwareName, + labwareQuantity, + } } else if ('moduleId' in labwareLocation) { const loadModuleCommandUnderLabware = loadModuleCommands?.find( command => command.result?.moduleId === labwareLocation.moduleId @@ -62,9 +74,11 @@ export function getLocationInfoNames( loadModuleCommandUnderLabware?.params.location.slotName ?? '', labwareName, moduleModel: loadModuleCommandUnderLabware?.params.model, + labwareQuantity, } - : { slotName: '', labwareName: '' } + : { slotName: '', labwareName: '', labwareQuantity } } else { + // adapt this to return the adapter only if the role of this labware is adapter -- otherwise, keep parsing through until you find out how many identical labware there are const loadedAdapterCommand = loadLabwareCommands?.find(command => command.result != null ? command.result?.labwareId === labwareLocation.labwareId @@ -74,7 +88,7 @@ export function getLocationInfoNames( console.warn( `expected to find an adapter under the labware but could not with labwareId ${labwareLocation.labwareId}` ) - return { slotName: '', labwareName: labwareName } + return { slotName: '', labwareName: labwareName, labwareQuantity } } else if ( loadedAdapterCommand?.params.location !== 'offDeck' && 'slotName' in loadedAdapterCommand?.params.location @@ -86,6 +100,7 @@ export function getLocationInfoNames( adapterName: loadedAdapterCommand?.result?.definition.metadata.displayName, adapterId: loadedAdapterCommand?.result?.labwareId, + labwareQuantity, } } else if ( loadedAdapterCommand?.params.location !== 'offDeck' && @@ -98,6 +113,7 @@ export function getLocationInfoNames( adapterName: loadedAdapterCommand?.result?.definition.metadata.displayName, adapterId: loadedAdapterCommand?.result?.labwareId, + labwareQuantity, } } else if ( loadedAdapterCommand?.params.location !== 'offDeck' && @@ -118,11 +134,12 @@ export function getLocationInfoNames( loadedAdapterCommand.result?.definition.metadata.displayName, adapterId: loadedAdapterCommand?.result?.labwareId, moduleModel: loadModuleCommandUnderAdapter.params.model, + labwareQuantity, } - : { slotName: '', labwareName } + : { slotName: '', labwareName, labwareQuantity } } else { // shouldn't hit this - return { slotName: '', labwareName } + return { slotName: '', labwareName, labwareQuantity } } } } diff --git a/components/src/hardware-sim/Labware/LabwareAdapter/OpentronsAutoclavableDeckRiser.tsx b/components/src/hardware-sim/Labware/LabwareAdapter/OpentronsAutoclavableDeckRiser.tsx new file mode 100644 index 00000000000..d6685e0793c --- /dev/null +++ b/components/src/hardware-sim/Labware/LabwareAdapter/OpentronsAutoclavableDeckRiser.tsx @@ -0,0 +1,100 @@ +// x .32, y .31 +export function OpentronsAutoclavableDeckRiser(): JSX.Element { + return ( + + + + + + + + + + + + + + + + ) +} diff --git a/components/src/hardware-sim/Labware/LabwareAdapter/OpentronsToughPCRAutoSealingLid.tsx b/components/src/hardware-sim/Labware/LabwareAdapter/OpentronsToughPCRAutoSealingLid.tsx new file mode 100644 index 00000000000..b3f50f94dd0 --- /dev/null +++ b/components/src/hardware-sim/Labware/LabwareAdapter/OpentronsToughPCRAutoSealingLid.tsx @@ -0,0 +1,83 @@ +export function OpentronsToughPCRAutoSealingLid(): JSX.Element { + return ( + + + + + + + + + + + + + + + + ) +} diff --git a/components/src/hardware-sim/Labware/LabwareAdapter/index.tsx b/components/src/hardware-sim/Labware/LabwareAdapter/index.tsx index f3941d980af..417b83ce89c 100644 --- a/components/src/hardware-sim/Labware/LabwareAdapter/index.tsx +++ b/components/src/hardware-sim/Labware/LabwareAdapter/index.tsx @@ -3,6 +3,8 @@ import { Opentrons96FlatBottomAdapter } from './Opentrons96FlatBottomAdapter' import { OpentronsUniversalFlatAdapter } from './OpentronsUniversalFlatAdapter' import { OpentronsAluminumFlatBottomPlate } from './OpentronsAluminumFlatBottomPlate' import { OpentronsFlex96TiprackAdapter } from './OpentronsFlex96TiprackAdapter' +import { OpentronsToughPCRAutoSealingLid } from './OpentronsToughPCRAutoSealingLid' +import { OpentronsAutoclavableDeckRiser } from './OpentronsAutoclavableDeckRiser' import { COLORS } from '../../../helix-design-system' import { LabwareOutline } from '../labwareInternals' import type { LabwareDefinition2 } from '@opentrons/shared-data' @@ -13,6 +15,8 @@ const LABWARE_ADAPTER_LOADNAME_PATHS = { opentrons_aluminum_flat_bottom_plate: OpentronsAluminumFlatBottomPlate, opentrons_flex_96_tiprack_adapter: OpentronsFlex96TiprackAdapter, opentrons_universal_flat_adapter: OpentronsUniversalFlatAdapter, + opentrons_tough_pcr_auto_sealing_lid: OpentronsToughPCRAutoSealingLid, + opentrons_flex_deck_riser: OpentronsAutoclavableDeckRiser, } export type LabwareAdapterLoadName = keyof typeof LABWARE_ADAPTER_LOADNAME_PATHS diff --git a/components/src/hardware-sim/ProtocolDeck/index.tsx b/components/src/hardware-sim/ProtocolDeck/index.tsx index fb1ac06349b..20c3a0c990b 100644 --- a/components/src/hardware-sim/ProtocolDeck/index.tsx +++ b/components/src/hardware-sim/ProtocolDeck/index.tsx @@ -4,7 +4,7 @@ import { FLEX_ROBOT_TYPE, getLabwareDisplayName, getSimplestDeckConfigForProtocol, - parseInitialLoadedLabwareByAdapter, + getTopLabwareInfo, } from '@opentrons/shared-data' import { BaseDeck } from '../BaseDeck' @@ -19,6 +19,8 @@ import type { CompletedProtocolAnalysis, LabwareDefinition2, ProtocolAnalysisOutput, + RunTimeCommand, + LoadLabwareRunTimeCommand, } from '@opentrons/shared-data' export * from './utils/getStandardDeckViewLayerBlockList' @@ -46,13 +48,15 @@ export function ProtocolDeck(props: ProtocolDeckProps): JSX.Element | null { if (protocolAnalysis == null || (protocolAnalysis?.errors ?? []).length > 0) return null + const commands: RunTimeCommand[] = protocolAnalysis.commands + const loadLabwareCommands = commands?.filter( + (command): command is LoadLabwareRunTimeCommand => + command.commandType === 'loadLabware' + ) const robotType = protocolAnalysis.robotType ?? FLEX_ROBOT_TYPE const deckConfig = getSimplestDeckConfigForProtocol(protocolAnalysis) const labwareByLiquidId = getLabwareInfoByLiquidId(protocolAnalysis.commands) - const initialLoadedLabwareByAdapter = parseInitialLoadedLabwareByAdapter( - protocolAnalysis.commands - ) const modulesInSlots = getModulesInSlots(protocolAnalysis) const modulesOnDeck = modulesInSlots.map( @@ -63,16 +67,10 @@ export function ProtocolDeck(props: ProtocolDeckProps): JSX.Element | null { nestedLabwareDef, nestedLabwareNickName, }) => { - const labwareInAdapterInMod = - nestedLabwareId != null - ? initialLoadedLabwareByAdapter[nestedLabwareId] - : null - // only rendering the labware on top most layer so - // either the adapter or the labware are rendered but not both - const topLabwareDefinition = - labwareInAdapterInMod?.result?.definition ?? nestedLabwareDef - const topLabwareId = - labwareInAdapterInMod?.result?.labwareId ?? nestedLabwareId + const { topLabwareId, topLabwareDefinition } = getTopLabwareInfo( + nestedLabwareId ?? '', + loadLabwareCommands + ) return { moduleModel, @@ -112,15 +110,16 @@ export function ProtocolDeck(props: ProtocolDeckProps): JSX.Element | null { } ) + // this function gets the top labware assuming a stack of max 2 labware const topMostLabwareInSlots = getTopMostLabwareInSlots(protocolAnalysis) const labwareOnDeck = topMostLabwareInSlots.map( ({ labwareId, labwareDef, labwareNickName, location }) => { - const labwareInAdapter = initialLoadedLabwareByAdapter[labwareId] - // only rendering the labware on top most layer so - // either the adapter or the labware are rendered but not both - const topLabwareDefinition = - labwareInAdapter?.result?.definition ?? labwareDef - const topLabwareId = labwareInAdapter?.result?.labwareId ?? labwareId + // this gets the very top of the stack in case there is a stack + // of many like items, such as TC lids + const { topLabwareId, topLabwareDefinition } = getTopLabwareInfo( + labwareId, + loadLabwareCommands + ) const isLabwareInStack = protocolAnalysis?.commands.some( command => command.commandType === 'loadLabware' && @@ -146,7 +145,7 @@ export function ProtocolDeck(props: ProtocolDeckProps): JSX.Element | null { highlight: handleLabwareClick != null, highlightShadow: handleLabwareClick != null && isLabwareInStack, onLabwareClick: - handleLabwareClick != null + handleLabwareClick != null && topLabwareDefinition != null ? () => { handleLabwareClick(topLabwareDefinition, topLabwareId) } diff --git a/shared-data/js/helpers/QUICK_TRANSFER.json b/shared-data/js/helpers/QUICK_TRANSFER.json new file mode 100644 index 00000000000..9495fa73d63 --- /dev/null +++ b/shared-data/js/helpers/QUICK_TRANSFER.json @@ -0,0 +1,2575 @@ +{ + "$otSharedSchema": "#/protocol/schemas/8", + "schemaVersion": 8, + "metadata": { + "protocolName": "ih", + "description": "This quick transfer moves liquids from a Agilent 1 Well Reservoir 290 mL to a Agilent 1 Well Reservoir 290 mL", + "category": null, + "subcategory": null, + "tags": [] + }, + "designerApplication": { + "name": "Quick Transfer", + "version": "0.0", + "data": { + "pipette": { + "$otSharedSchema": "#/pipette/schemas/2/pipetteGeometrySchema.json", + "displayName": "Flex 1-Channel 50 μL", + "model": "p50", + "displayCategory": "FLEX", + "validNozzleMaps": { "maps": { "SingleA1": ["A1"] } }, + "pickUpTipConfigurations": { + "pressFit": { + "presses": 1, + "increment": 0, + "configurationsByNozzleMap": { + "SingleA1": { + "default": { + "speed": 10, + "distance": 13, + "current": 0.2, + "tipOverlaps": { + "v0": { + "default": 10.5, + "opentrons/opentrons_flex_96_tiprack_50ul/1": 10.5, + "opentrons/opentrons_flex_96_filtertiprack_50ul/1": 10.5 + }, + "v1": { + "default": 10.5, + "opentrons/opentrons_flex_96_tiprack_50ul/1": 10.09, + "opentrons/opentrons_flex_96_filtertiprack_50ul/1": 10.09 + } + } + } + } + } + } + }, + "dropTipConfigurations": { + "plungerEject": { "current": 1, "speed": 15 } + }, + "plungerMotorConfigurations": { "idle": 0.3, "run": 1 }, + "plungerPositionsConfigurations": { + "default": { + "top": 0, + "bottom": 71.5, + "blowout": 76.5, + "drop": 90.5 + }, + "lowVolumeDefault": { + "top": 0, + "bottom": 61.5, + "blowout": 76.5, + "drop": 90.5 + } + }, + "availableSensors": { + "sensors": ["pressure", "capacitive", "environment"], + "pressure": { "count": 1 }, + "capacitive": { "count": 1 }, + "environment": { "count": 1 } + }, + "partialTipConfigurations": { + "partialTipSupported": false, + "availableConfigurations": null + }, + "backCompatNames": [], + "channels": 1, + "shaftDiameter": 1, + "shaftULperMM": 0.785, + "backlashDistance": 0.1, + "quirks": [], + "plungerHomingConfigurations": { "current": 1, "speed": 30 }, + "pathTo3D": "pipette/definitions/2/geometry/single_channel/p50/placeholder.gltf", + "nozzleOffset": [-8, -22, -259.15], + "pipetteBoundingBoxOffsets": { + "backLeftCorner": [-8, -22, -259.15], + "frontRightCorner": [-8, -22, -259.15] + }, + "orderedRows": [{ "key": "A", "orderedNozzles": ["A1"] }], + "orderedColumns": [{ "key": "1", "orderedNozzles": ["A1"] }], + "nozzleMap": { "A1": [-8, -22, -259.15] }, + "lldSettings": { "t50": { "minHeight": 1, "minVolume": 0 } }, + "liquids": { + "default": { + "$otSharedSchema": "#/pipette/schemas/2/pipetteLiquidPropertiesSchema.json", + "supportedTips": { + "t50": { + "uiMaxFlowRate": 57, + "defaultAspirateFlowRate": { + "default": 35, + "valuesByApiLevel": { "2.14": 35 } + }, + "defaultDispenseFlowRate": { + "default": 57, + "valuesByApiLevel": { "2.14": 57 } + }, + "defaultBlowOutFlowRate": { + "default": 57, + "valuesByApiLevel": { "2.14": 57 } + }, + "defaultFlowAcceleration": 1200, + "defaultTipLength": 57.9, + "defaultReturnTipHeight": 0.71, + "aspirate": { + "default": { + "1": [ + [0.45, 0.4702, 0.0464], + [0.6717, 0.3617, 0.0952], + [0.9133, 0.259, 0.1642], + [1.1783, 0.1997, 0.2184], + [1.46, 0.1366, 0.2927], + [1.8183, 0.1249, 0.3098], + [2.1783, 0.0719, 0.4061], + [2.615, 0.0666, 0.4176], + [3.015, 0.0152, 0.552], + [3.4433, 0.0008, 0.5956], + [4.3033, 0.0659, 0.3713], + [5.0933, 0.0306, 0.5234], + [5.915, 0.0135, 0.6102], + [6.8233, 0.0083, 0.6414], + [7.85, 0.0051, 0.6631], + [9.005, 0.0025, 0.6838], + [10.3517, 0.0036, 0.6735], + [11.9, 0.0032, 0.6775], + [13.6617, 0.0023, 0.6886], + [15.6383, 0.001, 0.7058], + [17.95, 0.0015, 0.6976], + [20.58, 0.0012, 0.7033], + [23.5483, 0.0005, 0.7183], + [26.9983, 0.0008, 0.7105], + [30.88, 0.0003, 0.7233], + [35.3167, 0.0003, 0.725], + [40.4283, 0.0004, 0.7224], + [46.255, 0.0003, 0.7271], + [52.8383, 0, 0.7369] + ] + } + }, + "dispense": { + "default": { + "1": [ + [0.45, 0.4702, 0.0464], + [0.6717, 0.3617, 0.0952], + [0.9133, 0.259, 0.1642], + [1.1783, 0.1997, 0.2184], + [1.46, 0.1366, 0.2927], + [1.8183, 0.1249, 0.3098], + [2.1783, 0.0719, 0.4061], + [2.615, 0.0666, 0.4176], + [3.015, 0.0152, 0.552], + [3.4433, 0.0008, 0.5956], + [4.3033, 0.0659, 0.3713], + [5.0933, 0.0306, 0.5234], + [5.915, 0.0135, 0.6102], + [6.8233, 0.0083, 0.6414], + [7.85, 0.0051, 0.6631], + [9.005, 0.0025, 0.6838], + [10.3517, 0.0036, 0.6735], + [11.9, 0.0032, 0.6775], + [13.6617, 0.0023, 0.6886], + [15.6383, 0.001, 0.7058], + [17.95, 0.0015, 0.6976], + [20.58, 0.0012, 0.7033], + [23.5483, 0.0005, 0.7183], + [26.9983, 0.0008, 0.7105], + [30.88, 0.0003, 0.7233], + [35.3167, 0.0003, 0.725], + [40.4283, 0.0004, 0.7224], + [46.255, 0.0003, 0.7271], + [52.8383, 0, 0.7369] + ] + } + }, + "defaultPushOutVolume": 2 + } + }, + "maxVolume": 50, + "minVolume": 5, + "defaultTipracks": [ + "opentrons/opentrons_flex_96_tiprack_50ul/1", + "opentrons/opentrons_flex_96_filtertiprack_50ul/1" + ] + }, + "lowVolumeDefault": { + "$otSharedSchema": "#/pipette/schemas/2/pipetteLiquidPropertiesSchema.json", + "supportedTips": { + "t50": { + "uiMaxFlowRate": 31.8, + "defaultAspirateFlowRate": { + "default": 31.8, + "valuesByApiLevel": { "2.14": 31.8 } + }, + "defaultDispenseFlowRate": { + "default": 31.8, + "valuesByApiLevel": { "2.14": 31.8 } + }, + "defaultBlowOutFlowRate": { + "default": 31.8, + "valuesByApiLevel": { "2.14": 31.8 } + }, + "defaultFlowAcceleration": 1200, + "defaultTipLength": 57.9, + "defaultReturnTipHeight": 0.71, + "aspirate": { + "default": { + "1": [ + [0.36, 0.560999, 0.03366], + [0.546667, 0.416654, 0.085624], + [1.02, 0.333473, 0.131096], + [1.3, 0.1045, 0.364649], + [1.956667, 0.117611, 0.347604], + [2.68, 0.039898, 0.499663], + [3.013333, -0.026841, 0.678523], + [3.36, 0.025988, 0.519331], + [3.78, 0.028211, 0.511863], + [4.396667, 0.082234, 0.307657], + [5.073333, 0.010771, 0.621856], + [5.88, 0.012027, 0.615482], + [7.3, 0.00915, 0.632397], + [9.086667, 0.007301, 0.645898], + [10.143333, 0.005174, 0.665228], + [13.76, 0.001967, 0.697758], + [27.223333, 0.001039, 0.710524], + [45.73, 0.000284, 0.731072] + ] + } + }, + "dispense": { + "default": { + "1": [ + [0.36, 0.560999, 0.03366], + [0.546667, 0.416654, 0.085624], + [1.02, 0.333473, 0.131096], + [1.3, 0.1045, 0.364649], + [1.956667, 0.117611, 0.347604], + [2.68, 0.039898, 0.499663], + [3.013333, -0.026841, 0.678523], + [3.36, 0.025988, 0.519331], + [3.78, 0.028211, 0.511863], + [4.396667, 0.082234, 0.307657], + [5.073333, 0.010771, 0.621856], + [5.88, 0.012027, 0.615482], + [7.3, 0.00915, 0.632397], + [9.086667, 0.007301, 0.645898], + [10.143333, 0.005174, 0.665228], + [13.76, 0.001967, 0.697758], + [27.223333, 0.001039, 0.710524], + [45.73, 0.000284, 0.731072] + ] + } + }, + "defaultPushOutVolume": 7 + } + }, + "maxVolume": 30, + "minVolume": 1, + "defaultTipracks": [ + "opentrons/opentrons_flex_96_tiprack_50ul/1", + "opentrons/opentrons_flex_96_filtertiprack_50ul/1" + ] + } + } + }, + "mount": "left", + "tipRack": { + "ordering": [ + ["A1", "B1", "C1", "D1", "E1", "F1", "G1", "H1"], + ["A2", "B2", "C2", "D2", "E2", "F2", "G2", "H2"], + ["A3", "B3", "C3", "D3", "E3", "F3", "G3", "H3"], + ["A4", "B4", "C4", "D4", "E4", "F4", "G4", "H4"], + ["A5", "B5", "C5", "D5", "E5", "F5", "G5", "H5"], + ["A6", "B6", "C6", "D6", "E6", "F6", "G6", "H6"], + ["A7", "B7", "C7", "D7", "E7", "F7", "G7", "H7"], + ["A8", "B8", "C8", "D8", "E8", "F8", "G8", "H8"], + ["A9", "B9", "C9", "D9", "E9", "F9", "G9", "H9"], + ["A10", "B10", "C10", "D10", "E10", "F10", "G10", "H10"], + ["A11", "B11", "C11", "D11", "E11", "F11", "G11", "H11"], + ["A12", "B12", "C12", "D12", "E12", "F12", "G12", "H12"] + ], + "brand": { "brand": "Opentrons", "brandId": [] }, + "metadata": { + "displayName": "Opentrons Flex 96 Filter Tip Rack 50 µL", + "displayCategory": "tipRack", + "displayVolumeUnits": "µL", + "tags": [] + }, + "dimensions": { + "xDimension": 127.75, + "yDimension": 85.75, + "zDimension": 99 + }, + "gripForce": 16, + "gripHeightFromLabwareBottom": 23.9, + "wells": { + "A1": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 14.38, + "y": 74.38, + "z": 1.5 + }, + "B1": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 14.38, + "y": 65.38, + "z": 1.5 + }, + "C1": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 14.38, + "y": 56.38, + "z": 1.5 + }, + "D1": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 14.38, + "y": 47.38, + "z": 1.5 + }, + "E1": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 14.38, + "y": 38.38, + "z": 1.5 + }, + "F1": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 14.38, + "y": 29.38, + "z": 1.5 + }, + "G1": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 14.38, + "y": 20.38, + "z": 1.5 + }, + "H1": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 14.38, + "y": 11.38, + "z": 1.5 + }, + "A2": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 23.38, + "y": 74.38, + "z": 1.5 + }, + "B2": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 23.38, + "y": 65.38, + "z": 1.5 + }, + "C2": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 23.38, + "y": 56.38, + "z": 1.5 + }, + "D2": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 23.38, + "y": 47.38, + "z": 1.5 + }, + "E2": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 23.38, + "y": 38.38, + "z": 1.5 + }, + "F2": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 23.38, + "y": 29.38, + "z": 1.5 + }, + "G2": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 23.38, + "y": 20.38, + "z": 1.5 + }, + "H2": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 23.38, + "y": 11.38, + "z": 1.5 + }, + "A3": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 32.38, + "y": 74.38, + "z": 1.5 + }, + "B3": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 32.38, + "y": 65.38, + "z": 1.5 + }, + "C3": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 32.38, + "y": 56.38, + "z": 1.5 + }, + "D3": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 32.38, + "y": 47.38, + "z": 1.5 + }, + "E3": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 32.38, + "y": 38.38, + "z": 1.5 + }, + "F3": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 32.38, + "y": 29.38, + "z": 1.5 + }, + "G3": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 32.38, + "y": 20.38, + "z": 1.5 + }, + "H3": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 32.38, + "y": 11.38, + "z": 1.5 + }, + "A4": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 41.38, + "y": 74.38, + "z": 1.5 + }, + "B4": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 41.38, + "y": 65.38, + "z": 1.5 + }, + "C4": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 41.38, + "y": 56.38, + "z": 1.5 + }, + "D4": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 41.38, + "y": 47.38, + "z": 1.5 + }, + "E4": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 41.38, + "y": 38.38, + "z": 1.5 + }, + "F4": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 41.38, + "y": 29.38, + "z": 1.5 + }, + "G4": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 41.38, + "y": 20.38, + "z": 1.5 + }, + "H4": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 41.38, + "y": 11.38, + "z": 1.5 + }, + "A5": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 50.38, + "y": 74.38, + "z": 1.5 + }, + "B5": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 50.38, + "y": 65.38, + "z": 1.5 + }, + "C5": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 50.38, + "y": 56.38, + "z": 1.5 + }, + "D5": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 50.38, + "y": 47.38, + "z": 1.5 + }, + "E5": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 50.38, + "y": 38.38, + "z": 1.5 + }, + "F5": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 50.38, + "y": 29.38, + "z": 1.5 + }, + "G5": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 50.38, + "y": 20.38, + "z": 1.5 + }, + "H5": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 50.38, + "y": 11.38, + "z": 1.5 + }, + "A6": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 59.38, + "y": 74.38, + "z": 1.5 + }, + "B6": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 59.38, + "y": 65.38, + "z": 1.5 + }, + "C6": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 59.38, + "y": 56.38, + "z": 1.5 + }, + "D6": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 59.38, + "y": 47.38, + "z": 1.5 + }, + "E6": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 59.38, + "y": 38.38, + "z": 1.5 + }, + "F6": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 59.38, + "y": 29.38, + "z": 1.5 + }, + "G6": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 59.38, + "y": 20.38, + "z": 1.5 + }, + "H6": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 59.38, + "y": 11.38, + "z": 1.5 + }, + "A7": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 68.38, + "y": 74.38, + "z": 1.5 + }, + "B7": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 68.38, + "y": 65.38, + "z": 1.5 + }, + "C7": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 68.38, + "y": 56.38, + "z": 1.5 + }, + "D7": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 68.38, + "y": 47.38, + "z": 1.5 + }, + "E7": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 68.38, + "y": 38.38, + "z": 1.5 + }, + "F7": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 68.38, + "y": 29.38, + "z": 1.5 + }, + "G7": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 68.38, + "y": 20.38, + "z": 1.5 + }, + "H7": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 68.38, + "y": 11.38, + "z": 1.5 + }, + "A8": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 77.38, + "y": 74.38, + "z": 1.5 + }, + "B8": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 77.38, + "y": 65.38, + "z": 1.5 + }, + "C8": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 77.38, + "y": 56.38, + "z": 1.5 + }, + "D8": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 77.38, + "y": 47.38, + "z": 1.5 + }, + "E8": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 77.38, + "y": 38.38, + "z": 1.5 + }, + "F8": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 77.38, + "y": 29.38, + "z": 1.5 + }, + "G8": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 77.38, + "y": 20.38, + "z": 1.5 + }, + "H8": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 77.38, + "y": 11.38, + "z": 1.5 + }, + "A9": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 86.38, + "y": 74.38, + "z": 1.5 + }, + "B9": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 86.38, + "y": 65.38, + "z": 1.5 + }, + "C9": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 86.38, + "y": 56.38, + "z": 1.5 + }, + "D9": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 86.38, + "y": 47.38, + "z": 1.5 + }, + "E9": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 86.38, + "y": 38.38, + "z": 1.5 + }, + "F9": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 86.38, + "y": 29.38, + "z": 1.5 + }, + "G9": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 86.38, + "y": 20.38, + "z": 1.5 + }, + "H9": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 86.38, + "y": 11.38, + "z": 1.5 + }, + "A10": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 95.38, + "y": 74.38, + "z": 1.5 + }, + "B10": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 95.38, + "y": 65.38, + "z": 1.5 + }, + "C10": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 95.38, + "y": 56.38, + "z": 1.5 + }, + "D10": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 95.38, + "y": 47.38, + "z": 1.5 + }, + "E10": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 95.38, + "y": 38.38, + "z": 1.5 + }, + "F10": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 95.38, + "y": 29.38, + "z": 1.5 + }, + "G10": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 95.38, + "y": 20.38, + "z": 1.5 + }, + "H10": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 95.38, + "y": 11.38, + "z": 1.5 + }, + "A11": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 104.38, + "y": 74.38, + "z": 1.5 + }, + "B11": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 104.38, + "y": 65.38, + "z": 1.5 + }, + "C11": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 104.38, + "y": 56.38, + "z": 1.5 + }, + "D11": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 104.38, + "y": 47.38, + "z": 1.5 + }, + "E11": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 104.38, + "y": 38.38, + "z": 1.5 + }, + "F11": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 104.38, + "y": 29.38, + "z": 1.5 + }, + "G11": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 104.38, + "y": 20.38, + "z": 1.5 + }, + "H11": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 104.38, + "y": 11.38, + "z": 1.5 + }, + "A12": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 113.38, + "y": 74.38, + "z": 1.5 + }, + "B12": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 113.38, + "y": 65.38, + "z": 1.5 + }, + "C12": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 113.38, + "y": 56.38, + "z": 1.5 + }, + "D12": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 113.38, + "y": 47.38, + "z": 1.5 + }, + "E12": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 113.38, + "y": 38.38, + "z": 1.5 + }, + "F12": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 113.38, + "y": 29.38, + "z": 1.5 + }, + "G12": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 113.38, + "y": 20.38, + "z": 1.5 + }, + "H12": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 113.38, + "y": 11.38, + "z": 1.5 + } + }, + "groups": [ + { + "metadata": {}, + "wells": [ + "A1", + "B1", + "C1", + "D1", + "E1", + "F1", + "G1", + "H1", + "A2", + "B2", + "C2", + "D2", + "E2", + "F2", + "G2", + "H2", + "A3", + "B3", + "C3", + "D3", + "E3", + "F3", + "G3", + "H3", + "A4", + "B4", + "C4", + "D4", + "E4", + "F4", + "G4", + "H4", + "A5", + "B5", + "C5", + "D5", + "E5", + "F5", + "G5", + "H5", + "A6", + "B6", + "C6", + "D6", + "E6", + "F6", + "G6", + "H6", + "A7", + "B7", + "C7", + "D7", + "E7", + "F7", + "G7", + "H7", + "A8", + "B8", + "C8", + "D8", + "E8", + "F8", + "G8", + "H8", + "A9", + "B9", + "C9", + "D9", + "E9", + "F9", + "G9", + "H9", + "A10", + "B10", + "C10", + "D10", + "E10", + "F10", + "G10", + "H10", + "A11", + "B11", + "C11", + "D11", + "E11", + "F11", + "G11", + "H11", + "A12", + "B12", + "C12", + "D12", + "E12", + "F12", + "G12", + "H12" + ] + } + ], + "parameters": { + "format": "96Standard", + "quirks": [], + "isTiprack": true, + "tipLength": 57.9, + "tipOverlap": 10.5, + "isMagneticModuleCompatible": false, + "loadName": "opentrons_flex_96_filtertiprack_50ul" + }, + "namespace": "opentrons", + "version": 1, + "schemaVersion": 2, + "cornerOffsetFromSlot": { "x": 0, "y": 0, "z": 0 }, + "stackingOffsetWithLabware": { + "opentrons_flex_96_tiprack_adapter": { "x": 0, "y": 0, "z": 121 } + } + }, + "source": { + "ordering": [["A1"]], + "brand": { + "brand": "Agilent", + "brandId": ["201252-100"], + "links": [ + "https://www.agilent.com/store/en_US/Prod-201252-100/201252-100" + ] + }, + "metadata": { + "displayName": "Agilent 1 Well Reservoir 290 mL", + "displayCategory": "reservoir", + "displayVolumeUnits": "mL", + "tags": [] + }, + "dimensions": { + "xDimension": 127.76, + "yDimension": 85.57, + "zDimension": 44.04 + }, + "wells": { + "A1": { + "depth": 39.22, + "shape": "rectangular", + "xDimension": 108, + "yDimension": 72, + "totalLiquidVolume": 290000, + "x": 63.88, + "y": 42.785, + "z": 4.82 + } + }, + "groups": [{ "wells": ["A1"], "metadata": { "wellBottomShape": "v" } }], + "parameters": { + "format": "trough", + "isTiprack": false, + "isMagneticModuleCompatible": false, + "loadName": "agilent_1_reservoir_290ml", + "quirks": ["centerMultichannelOnWells", "touchTipDisabled"] + }, + "namespace": "opentrons", + "version": 1, + "schemaVersion": 2, + "cornerOffsetFromSlot": { "x": 0, "y": 0, "z": 0 } + }, + "sourceWells": ["A1"], + "destination": { + "ordering": [["A1"]], + "brand": { + "brand": "Agilent", + "brandId": ["201252-100"], + "links": [ + "https://www.agilent.com/store/en_US/Prod-201252-100/201252-100" + ] + }, + "metadata": { + "displayName": "Agilent 1 Well Reservoir 290 mL", + "displayCategory": "reservoir", + "displayVolumeUnits": "mL", + "tags": [] + }, + "dimensions": { + "xDimension": 127.76, + "yDimension": 85.57, + "zDimension": 44.04 + }, + "wells": { + "A1": { + "depth": 39.22, + "shape": "rectangular", + "xDimension": 108, + "yDimension": 72, + "totalLiquidVolume": 290000, + "x": 63.88, + "y": 42.785, + "z": 4.82 + } + }, + "groups": [{ "wells": ["A1"], "metadata": { "wellBottomShape": "v" } }], + "parameters": { + "format": "trough", + "isTiprack": false, + "isMagneticModuleCompatible": false, + "loadName": "agilent_1_reservoir_290ml", + "quirks": ["centerMultichannelOnWells", "touchTipDisabled"] + }, + "namespace": "opentrons", + "version": 1, + "schemaVersion": 2, + "cornerOffsetFromSlot": { "x": 0, "y": 0, "z": 0 } + }, + "destinationWells": ["A1"], + "transferType": "transfer", + "volume": 25, + "aspirateFlowRate": 35, + "dispenseFlowRate": 57, + "path": "single", + "tipPositionAspirate": 1, + "preWetTip": false, + "tipPositionDispense": 1, + "changeTip": "always", + "dropTipLocation": { + "cutoutFixtureId": "trashBinAdapter", + "cutoutId": "cutoutA3" + } + } + }, + "robot": { "model": "OT-3 Standard", "deckId": "ot3_standard" }, + "labwareDefinitionSchemaId": "opentronsLabwareSchemaV2", + "labwareDefinitions": { + "opentrons/opentrons_flex_96_filtertiprack_50ul/1": { + "ordering": [ + ["A1", "B1", "C1", "D1", "E1", "F1", "G1", "H1"], + ["A2", "B2", "C2", "D2", "E2", "F2", "G2", "H2"], + ["A3", "B3", "C3", "D3", "E3", "F3", "G3", "H3"], + ["A4", "B4", "C4", "D4", "E4", "F4", "G4", "H4"], + ["A5", "B5", "C5", "D5", "E5", "F5", "G5", "H5"], + ["A6", "B6", "C6", "D6", "E6", "F6", "G6", "H6"], + ["A7", "B7", "C7", "D7", "E7", "F7", "G7", "H7"], + ["A8", "B8", "C8", "D8", "E8", "F8", "G8", "H8"], + ["A9", "B9", "C9", "D9", "E9", "F9", "G9", "H9"], + ["A10", "B10", "C10", "D10", "E10", "F10", "G10", "H10"], + ["A11", "B11", "C11", "D11", "E11", "F11", "G11", "H11"], + ["A12", "B12", "C12", "D12", "E12", "F12", "G12", "H12"] + ], + "brand": { "brand": "Opentrons", "brandId": [] }, + "metadata": { + "displayName": "Opentrons Flex 96 Filter Tip Rack 50 µL", + "displayCategory": "tipRack", + "displayVolumeUnits": "µL", + "tags": [] + }, + "dimensions": { + "xDimension": 127.75, + "yDimension": 85.75, + "zDimension": 99 + }, + "gripForce": 16, + "gripHeightFromLabwareBottom": 23.9, + "wells": { + "A1": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 14.38, + "y": 74.38, + "z": 1.5 + }, + "B1": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 14.38, + "y": 65.38, + "z": 1.5 + }, + "C1": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 14.38, + "y": 56.38, + "z": 1.5 + }, + "D1": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 14.38, + "y": 47.38, + "z": 1.5 + }, + "E1": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 14.38, + "y": 38.38, + "z": 1.5 + }, + "F1": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 14.38, + "y": 29.38, + "z": 1.5 + }, + "G1": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 14.38, + "y": 20.38, + "z": 1.5 + }, + "H1": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 14.38, + "y": 11.38, + "z": 1.5 + }, + "A2": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 23.38, + "y": 74.38, + "z": 1.5 + }, + "B2": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 23.38, + "y": 65.38, + "z": 1.5 + }, + "C2": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 23.38, + "y": 56.38, + "z": 1.5 + }, + "D2": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 23.38, + "y": 47.38, + "z": 1.5 + }, + "E2": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 23.38, + "y": 38.38, + "z": 1.5 + }, + "F2": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 23.38, + "y": 29.38, + "z": 1.5 + }, + "G2": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 23.38, + "y": 20.38, + "z": 1.5 + }, + "H2": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 23.38, + "y": 11.38, + "z": 1.5 + }, + "A3": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 32.38, + "y": 74.38, + "z": 1.5 + }, + "B3": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 32.38, + "y": 65.38, + "z": 1.5 + }, + "C3": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 32.38, + "y": 56.38, + "z": 1.5 + }, + "D3": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 32.38, + "y": 47.38, + "z": 1.5 + }, + "E3": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 32.38, + "y": 38.38, + "z": 1.5 + }, + "F3": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 32.38, + "y": 29.38, + "z": 1.5 + }, + "G3": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 32.38, + "y": 20.38, + "z": 1.5 + }, + "H3": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 32.38, + "y": 11.38, + "z": 1.5 + }, + "A4": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 41.38, + "y": 74.38, + "z": 1.5 + }, + "B4": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 41.38, + "y": 65.38, + "z": 1.5 + }, + "C4": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 41.38, + "y": 56.38, + "z": 1.5 + }, + "D4": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 41.38, + "y": 47.38, + "z": 1.5 + }, + "E4": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 41.38, + "y": 38.38, + "z": 1.5 + }, + "F4": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 41.38, + "y": 29.38, + "z": 1.5 + }, + "G4": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 41.38, + "y": 20.38, + "z": 1.5 + }, + "H4": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 41.38, + "y": 11.38, + "z": 1.5 + }, + "A5": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 50.38, + "y": 74.38, + "z": 1.5 + }, + "B5": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 50.38, + "y": 65.38, + "z": 1.5 + }, + "C5": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 50.38, + "y": 56.38, + "z": 1.5 + }, + "D5": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 50.38, + "y": 47.38, + "z": 1.5 + }, + "E5": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 50.38, + "y": 38.38, + "z": 1.5 + }, + "F5": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 50.38, + "y": 29.38, + "z": 1.5 + }, + "G5": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 50.38, + "y": 20.38, + "z": 1.5 + }, + "H5": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 50.38, + "y": 11.38, + "z": 1.5 + }, + "A6": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 59.38, + "y": 74.38, + "z": 1.5 + }, + "B6": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 59.38, + "y": 65.38, + "z": 1.5 + }, + "C6": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 59.38, + "y": 56.38, + "z": 1.5 + }, + "D6": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 59.38, + "y": 47.38, + "z": 1.5 + }, + "E6": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 59.38, + "y": 38.38, + "z": 1.5 + }, + "F6": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 59.38, + "y": 29.38, + "z": 1.5 + }, + "G6": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 59.38, + "y": 20.38, + "z": 1.5 + }, + "H6": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 59.38, + "y": 11.38, + "z": 1.5 + }, + "A7": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 68.38, + "y": 74.38, + "z": 1.5 + }, + "B7": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 68.38, + "y": 65.38, + "z": 1.5 + }, + "C7": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 68.38, + "y": 56.38, + "z": 1.5 + }, + "D7": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 68.38, + "y": 47.38, + "z": 1.5 + }, + "E7": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 68.38, + "y": 38.38, + "z": 1.5 + }, + "F7": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 68.38, + "y": 29.38, + "z": 1.5 + }, + "G7": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 68.38, + "y": 20.38, + "z": 1.5 + }, + "H7": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 68.38, + "y": 11.38, + "z": 1.5 + }, + "A8": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 77.38, + "y": 74.38, + "z": 1.5 + }, + "B8": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 77.38, + "y": 65.38, + "z": 1.5 + }, + "C8": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 77.38, + "y": 56.38, + "z": 1.5 + }, + "D8": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 77.38, + "y": 47.38, + "z": 1.5 + }, + "E8": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 77.38, + "y": 38.38, + "z": 1.5 + }, + "F8": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 77.38, + "y": 29.38, + "z": 1.5 + }, + "G8": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 77.38, + "y": 20.38, + "z": 1.5 + }, + "H8": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 77.38, + "y": 11.38, + "z": 1.5 + }, + "A9": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 86.38, + "y": 74.38, + "z": 1.5 + }, + "B9": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 86.38, + "y": 65.38, + "z": 1.5 + }, + "C9": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 86.38, + "y": 56.38, + "z": 1.5 + }, + "D9": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 86.38, + "y": 47.38, + "z": 1.5 + }, + "E9": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 86.38, + "y": 38.38, + "z": 1.5 + }, + "F9": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 86.38, + "y": 29.38, + "z": 1.5 + }, + "G9": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 86.38, + "y": 20.38, + "z": 1.5 + }, + "H9": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 86.38, + "y": 11.38, + "z": 1.5 + }, + "A10": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 95.38, + "y": 74.38, + "z": 1.5 + }, + "B10": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 95.38, + "y": 65.38, + "z": 1.5 + }, + "C10": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 95.38, + "y": 56.38, + "z": 1.5 + }, + "D10": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 95.38, + "y": 47.38, + "z": 1.5 + }, + "E10": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 95.38, + "y": 38.38, + "z": 1.5 + }, + "F10": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 95.38, + "y": 29.38, + "z": 1.5 + }, + "G10": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 95.38, + "y": 20.38, + "z": 1.5 + }, + "H10": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 95.38, + "y": 11.38, + "z": 1.5 + }, + "A11": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 104.38, + "y": 74.38, + "z": 1.5 + }, + "B11": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 104.38, + "y": 65.38, + "z": 1.5 + }, + "C11": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 104.38, + "y": 56.38, + "z": 1.5 + }, + "D11": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 104.38, + "y": 47.38, + "z": 1.5 + }, + "E11": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 104.38, + "y": 38.38, + "z": 1.5 + }, + "F11": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 104.38, + "y": 29.38, + "z": 1.5 + }, + "G11": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 104.38, + "y": 20.38, + "z": 1.5 + }, + "H11": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 104.38, + "y": 11.38, + "z": 1.5 + }, + "A12": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 113.38, + "y": 74.38, + "z": 1.5 + }, + "B12": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 113.38, + "y": 65.38, + "z": 1.5 + }, + "C12": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 113.38, + "y": 56.38, + "z": 1.5 + }, + "D12": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 113.38, + "y": 47.38, + "z": 1.5 + }, + "E12": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 113.38, + "y": 38.38, + "z": 1.5 + }, + "F12": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 113.38, + "y": 29.38, + "z": 1.5 + }, + "G12": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 113.38, + "y": 20.38, + "z": 1.5 + }, + "H12": { + "depth": 97.5, + "shape": "circular", + "diameter": 5.58, + "totalLiquidVolume": 50, + "x": 113.38, + "y": 11.38, + "z": 1.5 + } + }, + "groups": [ + { + "metadata": {}, + "wells": [ + "A1", + "B1", + "C1", + "D1", + "E1", + "F1", + "G1", + "H1", + "A2", + "B2", + "C2", + "D2", + "E2", + "F2", + "G2", + "H2", + "A3", + "B3", + "C3", + "D3", + "E3", + "F3", + "G3", + "H3", + "A4", + "B4", + "C4", + "D4", + "E4", + "F4", + "G4", + "H4", + "A5", + "B5", + "C5", + "D5", + "E5", + "F5", + "G5", + "H5", + "A6", + "B6", + "C6", + "D6", + "E6", + "F6", + "G6", + "H6", + "A7", + "B7", + "C7", + "D7", + "E7", + "F7", + "G7", + "H7", + "A8", + "B8", + "C8", + "D8", + "E8", + "F8", + "G8", + "H8", + "A9", + "B9", + "C9", + "D9", + "E9", + "F9", + "G9", + "H9", + "A10", + "B10", + "C10", + "D10", + "E10", + "F10", + "G10", + "H10", + "A11", + "B11", + "C11", + "D11", + "E11", + "F11", + "G11", + "H11", + "A12", + "B12", + "C12", + "D12", + "E12", + "F12", + "G12", + "H12" + ] + } + ], + "parameters": { + "format": "96Standard", + "quirks": [], + "isTiprack": true, + "tipLength": 57.9, + "tipOverlap": 10.5, + "isMagneticModuleCompatible": false, + "loadName": "opentrons_flex_96_filtertiprack_50ul" + }, + "namespace": "opentrons", + "version": 1, + "schemaVersion": 2, + "cornerOffsetFromSlot": { "x": 0, "y": 0, "z": 0 }, + "stackingOffsetWithLabware": { + "opentrons_flex_96_tiprack_adapter": { "x": 0, "y": 0, "z": 121 } + } + }, + "opentrons/agilent_1_reservoir_290ml/1": { + "ordering": [["A1"]], + "brand": { + "brand": "Agilent", + "brandId": ["201252-100"], + "links": [ + "https://www.agilent.com/store/en_US/Prod-201252-100/201252-100" + ] + }, + "metadata": { + "displayName": "Agilent 1 Well Reservoir 290 mL", + "displayCategory": "reservoir", + "displayVolumeUnits": "mL", + "tags": [] + }, + "dimensions": { + "xDimension": 127.76, + "yDimension": 85.57, + "zDimension": 44.04 + }, + "wells": { + "A1": { + "depth": 39.22, + "shape": "rectangular", + "xDimension": 108, + "yDimension": 72, + "totalLiquidVolume": 290000, + "x": 63.88, + "y": 42.785, + "z": 4.82 + } + }, + "groups": [{ "wells": ["A1"], "metadata": { "wellBottomShape": "v" } }], + "parameters": { + "format": "trough", + "isTiprack": false, + "isMagneticModuleCompatible": false, + "loadName": "agilent_1_reservoir_290ml", + "quirks": ["centerMultichannelOnWells", "touchTipDisabled"] + }, + "namespace": "opentrons", + "version": 1, + "schemaVersion": 2, + "cornerOffsetFromSlot": { "x": 0, "y": 0, "z": 0 } + } + }, + "liquidSchemaId": "opentronsLiquidSchemaV1", + "liquids": {}, + "commandSchemaId": "opentronsCommandSchemaV8", + "commands": [ + { + "key": "f8281b2e-07b5-4175-a760-c5b1abd3b74d", + "commandType": "loadPipette", + "params": { + "pipetteName": "p50_single_flex", + "mount": "left", + "pipetteId": "44e6881d-eaf6-498e-b958-80e0e9eb9a4d_p50_single_flex" + } + }, + { + "key": "2b1b44e2-9a16-4bf0-916f-9681159f6d1d", + "commandType": "loadLabware", + "params": { + "displayName": "Opentrons Flex 96 Filter Tip Rack 50 µL", + "labwareId": "1905ab1e-3589-4e46-82a7-289109f4dcc5_opentrons/opentrons_flex_96_filtertiprack_50ul/1", + "loadName": "opentrons_flex_96_filtertiprack_50ul", + "namespace": "opentrons", + "version": 1, + "location": { "slotName": "B2" } + } + }, + { + "key": "48e10770-61de-413a-8c89-4e0968466d3b", + "commandType": "loadLabware", + "params": { + "displayName": "Agilent 1 Well Reservoir 290 mL", + "labwareId": "a3713ba9-ddb5-43bf-901b-f6bbe8ca15ef_opentrons/agilent_1_reservoir_290ml/1", + "loadName": "agilent_1_reservoir_290ml", + "namespace": "opentrons", + "version": 1, + "location": { "slotName": "C2" } + } + }, + { + "key": "c6109417-6c06-4567-8c75-1c998093900a", + "commandType": "loadLabware", + "params": { + "displayName": "Agilent 1 Well Reservoir 290 mL", + "labwareId": "dc0d4462-88da-4c14-b713-178cd9ad1e07_opentrons/agilent_1_reservoir_290ml/1", + "loadName": "agilent_1_reservoir_290ml", + "namespace": "opentrons", + "version": 1, + "location": { "slotName": "D2" } + } + }, + { + "commandType": "pickUpTip", + "key": "936f0fac-d596-4954-81ae-1450135d1d61", + "params": { + "pipetteId": "44e6881d-eaf6-498e-b958-80e0e9eb9a4d_p50_single_flex", + "labwareId": "1905ab1e-3589-4e46-82a7-289109f4dcc5_opentrons/opentrons_flex_96_filtertiprack_50ul/1", + "wellName": "A1" + } + }, + { + "commandType": "configureForVolume", + "key": "7ca455f5-855a-489f-8353-86b543d8735d", + "params": { + "pipetteId": "44e6881d-eaf6-498e-b958-80e0e9eb9a4d_p50_single_flex", + "volume": 25 + } + }, + { + "commandType": "aspirate", + "key": "9a76fe12-9ec0-42ba-b74b-895ffcbb1e5d", + "params": { + "pipetteId": "44e6881d-eaf6-498e-b958-80e0e9eb9a4d_p50_single_flex", + "volume": 25, + "labwareId": "a3713ba9-ddb5-43bf-901b-f6bbe8ca15ef_opentrons/agilent_1_reservoir_290ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 35 + } + }, + { + "commandType": "dispense", + "key": "1bd54308-dcfe-4583-b267-1e2444f597ea", + "params": { + "pipetteId": "44e6881d-eaf6-498e-b958-80e0e9eb9a4d_p50_single_flex", + "volume": 25, + "labwareId": "dc0d4462-88da-4c14-b713-178cd9ad1e07_opentrons/agilent_1_reservoir_290ml/1", + "wellName": "A1", + "wellLocation": { + "origin": "bottom", + "offset": { "z": 1, "x": 0, "y": 0 } + }, + "flowRate": 57 + } + }, + { + "key": "95db0b23-144f-4d25-a5d6-d1e32617a9ca", + "commandType": "moveToAddressableAreaForDropTip", + "params": { + "pipetteId": "44e6881d-eaf6-498e-b958-80e0e9eb9a4d_p50_single_flex", + "addressableAreaName": "movableTrashA3" + } + }, + { + "key": "0e8bf0ac-a968-429e-bab2-0659e78dd8c3", + "commandType": "dropTipInPlace", + "params": { + "pipetteId": "44e6881d-eaf6-498e-b958-80e0e9eb9a4d_p50_single_flex" + } + } + ], + "commandAnnotationSchemaId": "opentronsCommandAnnotationSchemaV1", + "commandAnnotations": [] +} diff --git a/shared-data/js/helpers/parseProtocolCommands.ts b/shared-data/js/helpers/parseProtocolCommands.ts index a5a05a65636..b351713449d 100644 --- a/shared-data/js/helpers/parseProtocolCommands.ts +++ b/shared-data/js/helpers/parseProtocolCommands.ts @@ -10,6 +10,7 @@ import type { LoadModuleRunTimeCommand, LoadPipetteRunTimeCommand, RunTimeCommand, + LabwareLocation, } from '../../command/types' import type { PipetteName } from '../pipettes' import type { @@ -18,6 +19,7 @@ import type { LoadedModule, LoadedPipette, ModuleModel, + LabwareDefinition2, } from '../types' interface PipetteNamesByMount { @@ -135,6 +137,105 @@ export function parseInitialLoadedLabwareBySlot( ) } +// given a labware id and load labware commands, this function +// finds the top most labware in the stack and returns relevant +// information +export function getTopLabwareInfo( + labwareId: string, + loadLabwareCommands: LoadLabwareRunTimeCommand[] +): { + topLabwareId: string + topLabwareDefinition?: LabwareDefinition2 + topLabwareDisplayName?: string +} { + const nestedCommand = loadLabwareCommands.find( + command => + command.commandType === 'loadLabware' && + command.params.location !== 'offDeck' && + 'labwareId' in command.params.location && + command.params.location.labwareId === labwareId + ) + if (nestedCommand == null) { + const loadCommand = loadLabwareCommands.find( + command => + command.commandType === 'loadLabware' && + command.result?.labwareId === labwareId + ) + if (loadCommand == null) { + console.warn( + `could not find the load labware command assosciated with thie labwareId: ${labwareId}` + ) + } + return { + topLabwareId: labwareId, + topLabwareDefinition: loadCommand?.result?.definition, + topLabwareDisplayName: loadCommand?.params.displayName, + } + } else { + return getTopLabwareInfo( + nestedCommand?.result?.labwareId as string, + loadLabwareCommands + ) + } +} + +// this recursive function will parse through load labware commands +// and give the quantity of LIKE labware stacked below the given labware +// id and the labware location of the bottom-most stacked item +export function getLabwareStackCountAndLocation( + topLabwareId: string, + commands: RunTimeCommand[], + initialQuantity: number = 1 +): { labwareQuantity: number; labwareLocation: LabwareLocation } { + const loadLabwareCommands = commands?.filter( + (command): command is LoadLabwareRunTimeCommand => + command.commandType === 'loadLabware' + ) + const loadLabwareCommand = loadLabwareCommands?.find( + command => command.result?.labwareId === topLabwareId + ) + + if (loadLabwareCommands == null || loadLabwareCommand == null) { + console.warn( + `could not find the load labware command assosciated with thie labwareId: ${topLabwareId}` + ) + return { labwareLocation: 'offDeck', labwareQuantity: 0 } + } + + const labwareLocation = loadLabwareCommand.params.location + + if (labwareLocation !== 'offDeck' && 'labwareId' in labwareLocation) { + const lowerLabwareCommand = loadLabwareCommands?.find(command => + command.result != null + ? command.result?.labwareId === labwareLocation.labwareId + : '' + ) + if (lowerLabwareCommand?.result?.labwareId == null) { + console.warn( + `could not find the load labware command assosciated with thie labwareId: ${labwareLocation.labwareId}` + ) + return { labwareLocation: 'offDeck', labwareQuantity: 0 } + } + + const isSameLabware = + loadLabwareCommand.params.loadName === + lowerLabwareCommand?.params.loadName + + if (isSameLabware) { + const newQuantity = initialQuantity + 1 + return getLabwareStackCountAndLocation( + lowerLabwareCommand.result.labwareId, + commands, + newQuantity + ) + } + } + return { + labwareQuantity: initialQuantity, + labwareLocation, + } +} + export interface LoadedLabwareByAdapter { [labwareId: string]: LoadLabwareRunTimeCommand }