Skip to content

feat(api): add new tip option of 'always' to consolidate and distribute #18695

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Conversation

sanni-t
Copy link
Member

@sanni-t sanni-t commented Jun 20, 2025

Closes AUTH-1995

Overview

Allows new_tip="always" as a valid tip option for LC-based consolidate and distribute. This will make the new consolidate and distribute functions behave same as PD:

  • 'always' for consolidate will pick up a new tip before the next chunk of aspirates. Or in other words, will pick up a new tip when going back to aspirate after a dispense
  • 'always' for distribute will pick up a new tip before every aspirate

Note that this behavior is different from what 'always' does in the old, non-LC-based consolidate and distribute. The old functions would pick up a tip only once in the beginning of the function even if the tip option was 'always'.

Test Plan and Hands on Testing

  • Added integration tests
  • The following protocol passes analysis and issues the correct tip pick ups and liquid probes. Can be used to test on a robot-
requirements = {
"robotType": "Flex",
"apiLevel": "2.24"
}

def run(simulated_protocol_context):
	trash = simulated_protocol_context.load_trash_bin("A3")
	tiprack = simulated_protocol_context.load_labware(
		"opentrons_flex_96_tiprack_200ul", "D1"
		)
	pipette_1k = simulated_protocol_context.load_instrument(
		"flex_1channel_1000", mount="left", tip_racks=[tiprack], liquid_presence_detection=True
		)
	nest_plate = simulated_protocol_context.load_labware(
		"nest_96_wellplate_200ul_flat", "C3"
		)
	arma_plate = simulated_protocol_context.load_labware(
		"armadillo_96_wellplate_200ul_pcr_full_skirt", "C2"
		)

	water = simulated_protocol_context.get_liquid_class("water")
	# Should pick up tip 24 times and do liquid probing only once on the source well
	pipette_1k.distribute_with_liquid_class(
		liquid_class=water,
		volume=201,
		source=nest_plate.rows()[0][0],
		dest=arma_plate.rows()[0],
		new_tip="always",
		trash_location=trash,
		)
	# Should pick up tip 24 times and do liquid probing 12 times- before going back to aspirate each time 
	pipette_1k.consolidate_with_liquid_class(
		liquid_class=water,
		volume=201,
		dest=nest_plate.rows()[0][0],
		source=arma_plate.rows()[0],
		new_tip="always",
		trash_location=trash,
		)

Changelog

  • Allowed 'always' as a tip option for all transfers
  • Updated LPD for consolidate so that probing will be done after every new tip pick up, except for when accessing the same source well as before

Review requests

  • Previously we didn't allow probing consolidate at all, mainly because it didn't make sense. But now that 'always' option is allowed, there are cases- for example, when consolidation volume is larger than tip volume- when the 'always' option will allow consolidation to change tip frequently and potentially be able to probe all source wells with a new tip. Are we all ok with this?

Risk assessment

Medium. Touches a part of existing code that determines tip pickups.

@sanni-t sanni-t requested a review from a team as a code owner June 20, 2025 19:26
@sanni-t sanni-t requested review from ddcc4, ecormany and ncdiehl11 and removed request for a team June 20, 2025 19:27
Copy link
Contributor

@ecormany ecormany left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Docstrings look good, ty.

@emilyburghardt you'll want to rebase #18619 to incorporate these changes.

@sanni-t sanni-t changed the base branch from edge to chore_release-8.5.0 June 20, 2025 19:39
Copy link
Contributor

@jbleon95 jbleon95 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes look good and make sense to me. I think I agree with enabling LPD for consolidate now that we have a tip strategy that allows multiple tips to be used, fits with our existing model.

@sanni-t sanni-t merged commit 977a805 into chore_release-8.5.0 Jun 20, 2025
24 checks passed
@sanni-t sanni-t deleted the AUTH-1995-add_new_tip_option_of_always_to_consolidate_and_distribute branch June 23, 2025 18:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants