Skip to content

Commit 7234de0

Browse files
committed
LH.move_tips
1 parent 4c15c6f commit 7234de0

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

pylabrobot/liquid_handling/liquid_handler.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -769,6 +769,36 @@ async def discard_tips(
769769
**backend_kwargs,
770770
)
771771

772+
async def move_tips(
773+
self,
774+
source_tip_spots: List[TipSpot],
775+
dest_tip_spots: List[TipSpot],
776+
):
777+
"""Move tips from one tip rack to another.
778+
779+
This is a convenience method that picks up tips from `source_tip_spots` and drops them to
780+
`dest_tip_spots`.
781+
782+
Examples:
783+
Move tips from one tip rack to another:
784+
785+
>>> await lh.move_tips(source_tip_rack["A1":"A8"], dest_tip_rack["B1":"B8"])
786+
"""
787+
788+
if len(source_tip_spots) != len(dest_tip_spots):
789+
raise ValueError("Number of source and destination tip spots must match.")
790+
791+
use_channels = list(range(len(source_tip_spots)))
792+
793+
await self.pick_up_tips(
794+
tip_spots=source_tip_spots,
795+
use_channels=use_channels,
796+
)
797+
await self.drop_tips(
798+
tip_spots=dest_tip_spots,
799+
use_channels=use_channels,
800+
)
801+
772802
def _check_containers(self, resources: Sequence[Resource]):
773803
"""Checks that all resources are containers."""
774804
not_containers = [r for r in resources if not isinstance(r, Container)]

0 commit comments

Comments
 (0)