Skip to content
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

docs(api): update descriptions of partial tip pickup behavior for 7.3 #15003

Merged
merged 2 commits into from
Apr 29, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 14 additions & 7 deletions api/docs/v2/pipettes/partial_tip_pickup.rst
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ For greater convenience, also import the individual layout constants that you pl

from opentrons.protocol_api import COLUMN, ALL

Then when you call ``configure_nozzle_layout`` later in your protocol, you can set ``style=COLUMN``.
Then when you call ``configure_nozzle_layout`` later in your protocol, you can set ``style=COLUMN``.

Here is the start of a protocol that performs both imports, loads a 96-channel pipette, and sets it to pick up a single column of tips.

Expand Down Expand Up @@ -106,6 +106,10 @@ When switching between full and partial pickup, you may want to organize your ti
partial_tip_racks = [tips_1, tips_2]
full_tip_racks = [tips_3, tips_4]

.. Tip::

It's also good practice to keep separate lists of tip racks when using multiple partial tip pickup configurations (i.e., using both column 1 and column 12 in the same protocol). This improves positional accuracy when picking up tips. Additionally, use Labware Position Check in the Opentrons App to ensure that the partial configuration is well-aligned to the rack.
Copy link
Contributor

Choose a reason for hiding this comment

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

This looks good and communicates what we want. Regarding the last sentence, I think we need to confirm what exactly LPC looks like for partial configuration (I personally have never encountered it) and communicate that if possible.

Copy link
Contributor

Choose a reason for hiding this comment

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

Just spoke with Sanniti, looks like LPC for partial tips is just standard LPC. You'd account for the tip overlap offset during said LPC, then presumably only use the partial configuration you LPC'd for on that piece of labware. So I think this documentation is acceptable on that front, we don't want to over-explain and end up causing confusion once this problem is addressed in full.


Now, when you configure the nozzle layout, you can reference the appropriate list as the value of ``tip_racks``::

pipette.configure_nozzle_layout(
Expand All @@ -120,7 +124,7 @@ Now, when you configure the nozzle layout, you can reference the appropriate lis
tip_racks=full_tip_racks
)
pipette.pick_up_tip() # picks up full rack in C1

This keeps tip tracking consistent across each type of pickup. And it reduces the risk of errors due to the incorrect presence or absence of a tip rack adapter.


Expand Down Expand Up @@ -159,10 +163,13 @@ You would get a similar error trying to aspirate from or dispense into a well pl

When using column 12 for partial tip pickup and pipetting, generally organize your deck with the shortest labware on the left side of the deck, and the tallest labware on the right side.

If your application can't accommodate a deck layout that works well with column 12, you can configure the 96-channel pipette to pick up tips with column 1, but this is not recommended. Column 1 pickup has several drawbacks:
If your application can't accommodate a deck layout that works well with column 12, you can configure the 96-channel pipette to pick up tips with column 1::

pipette.configure_nozzle_layout(
style=COLUMN,
start="A1",
)

- Tip pickup force may be incorrect, leading to poor tip fit and loss of positional accuracy.
- Automatic tip tracking is not available
- The rightmost columns in labware in column 3 may be inaccessible, if they are beyond the movement limit of the pipette (within 29 mm of the right edge of the slot).
.. note::

For these reasons, use column 12 whenever possible.
When using a column 1 layout, the pipette can't reach the rightmost portion of labware in slots A3–D3. Any well that is within 29 mm of the right edge of the slot may be inaccessible. Use a column 12 layout if you need to pipette in that area.
4 changes: 0 additions & 4 deletions api/docs/v2/versioning.rst
Original file line number Diff line number Diff line change
Expand Up @@ -155,10 +155,6 @@ This version introduces new features for Flex and adds and improves methods for
- :py:obj:`.ProtocolContext.fixed_trash` and :py:obj:`.InstrumentContext.trash_container` now return :py:class:`.TrashBin` objects instead of :py:class:`.Labware` objects.
- Flex will no longer automatically drop tips in the trash at the end of a protocol. You can add a :py:meth:`.drop_tip()` command to your protocol or use the Opentrons App to drop the tips.

- Known limitations

- Using ``configure_nozzle_layout()`` with ``COLUMN`` layout and ``start="A1"`` is not fully supported and may lead to unreliable pipetting behavior.

Version 2.15
------------

Expand Down
12 changes: 3 additions & 9 deletions api/src/opentrons/protocol_api/instrument_context.py
Original file line number Diff line number Diff line change
Expand Up @@ -1947,15 +1947,9 @@ def configure_nozzle_layout(
should be of the same format used when identifying wells by name.
Required unless setting ``style=ALL``.

.. warning::
Specifying ``COLUMN`` layout and ``start="A1"`` is not fully supported.
Tip pickup force may be incorrect, leading to poor tip fit and loss of
positional accuracy.

Additionally, ``start="A1"`` disables automatic tip tracking,
so you must specify the ``location`` every time you call
:py:meth:`.pick_up_tip`, ensuring that the pipette picks up columns of
tips *from right to left* on the tip rack.
.. note::
If possible, don't use both ``start="A1"`` and ``start="A12"`` to pick up
tips *from the same rack*. Doing so can affect positional accuracy.

:type start: str or ``None``
:param tip_racks: Behaves the same as setting the ``tip_racks`` parameter of
Expand Down
Loading