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): refactor Pipettes page to include partial tip pickup #14189

Merged
merged 14 commits into from
Dec 21, 2023

Conversation

ecormany
Copy link
Contributor

@ecormany ecormany commented Dec 13, 2023

Overview

Complete refactor of the single Pipettes page into multiple pages. It was already approaching 4000 words, and explaining partial tip pickup will take another ~1500.

Test Plan

  • Check out the four affected pages (landing page and three new subpages) in the sandbox.
  • Test all code snippets with opentrons_simulate running from v7.1.0 tag. protocol file

Changelog

  • Turned new_pipette.rst into a landing page.
  • New Loading Pipettes page. Reorganizes information and adds a couple new notes.
  • New Pipette Characteristics page. Adds some info on multi-channel pipette movement.
  • New Partial Tip Pickup page. All new content. The big one.
  • New Volume Modes page, same as previously existing section.

Review requests

Prose: @jwwojak

  • Does Partial Tip Pickup section make sense?
  • Should Partial Tip Pickup be its own page?

Code: @sanni-t

  • I wrote a lot of snippets. Do they analyze? Does the code style look right?
  • Read through the Partial Tip Pickup section and let me know if anything is wrong or missing based on final feature decisions for 7.1.0.
  • Does it make sense to use pop() for ad hoc tip tracking?

Risk assessment

No code risk. Big refactor for docs.

Copy link

codecov bot commented Dec 13, 2023

Codecov Report

All modified and coverable lines are covered by tests ✅

Comparison is base (2bc8378) 70.41% compared to head (aa8ed34) 70.40%.
Report is 40 commits behind head on edge.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             edge   #14189      +/-   ##
==========================================
- Coverage   70.41%   70.40%   -0.02%     
==========================================
  Files        2513     2513              
  Lines       71323    71306      -17     
  Branches     9033     9033              
==========================================
- Hits        50223    50201      -22     
- Misses      18894    18899       +5     
  Partials     2206     2206              
Flag Coverage Δ
g-code-testing 96.44% <ø> (ø)
notify-server 89.13% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

see 10 files with indirect coverage changes

@ecormany ecormany force-pushed the docs-refactor-pipettes-partial-pickup branch from 4b13c75 to 07a3c93 Compare December 18, 2023 22:31
@ecormany ecormany requested review from sanni-t and jwwojak December 19, 2023 23:27
@ecormany ecormany changed the base branch from chore_release-7.1.0 to edge December 19, 2023 23:28
Copy link
Member

@sanni-t sanni-t left a comment

Choose a reason for hiding this comment

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

Minor changes. Rest all looks good. Very detailed documentation!

api/docs/v2/pipettes/configuring.rst Outdated Show resolved Hide resolved
api/docs/v2/pipettes/configuring.rst Outdated Show resolved Hide resolved
api/docs/v2/pipettes/configuring.rst Outdated Show resolved Hide resolved
Comment on lines 175 to 181
tip_rack = protocol.load_labware("opentrons_flex_96_tiprack_1000ul", "C1")
pipette.configure_nozzle_layout(style=COLUMN, start="A1")
row_a = tiprack.rows()[0]
pipette.pick_up_tip(row_a.pop()) # pick up A12-H12
pipette.drop_tip()
pipette.pick_up_tip(row_a.pop()) # pick up A11-H11
pipette.drop_tip()
Copy link
Member

Choose a reason for hiding this comment

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

smart!

Co-authored-by: Sanniti Pimpley <[email protected]>
Pipettes
########
********

Copy link
Contributor

Choose a reason for hiding this comment

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

Super nice. Breaking up a very long doc into individual sections. Partial tip is significant enough to warrant it's own standalone subsection under the Pipettes heading.


.. _new-pipette-models:

API Load Names
Copy link
Contributor

Choose a reason for hiding this comment

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

Nice move. This puts the load names up front. 👏


.. _pipette-tip-racks:

Adding Tip Racks
Copy link
Contributor

Choose a reason for hiding this comment

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

This is a change too, moving under Loading Pipettes. 👏

Copy link
Contributor

@jwwojak jwwojak left a comment

Choose a reason for hiding this comment

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

Added my review comments. Please take a look. Partial tip pickup is an impressive feature, difficult to document.

@ecormany ecormany marked this pull request as ready for review December 20, 2023 22:04
@ecormany ecormany requested a review from a team as a code owner December 20, 2023 22:04
@ecormany ecormany requested a review from jwwojak December 20, 2023 22:05
Nozzle Layout
=============

Use the :py:meth:`.configure_nozzle_layout` method to choose how many tips the 96-channel pipette will pick up. The method's ``style`` parameter accepts special layout constants. You must import these constants at the top of your protocol, or you won't be able to configure the pipette for partial tip pickup.
Copy link
Contributor

Choose a reason for hiding this comment

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

One comment here and it refers to the COLUMN argument definition for configure_nozzle_layout, not the text on this page. I meant to include it yesterday, but it was buried in my notes and overlooked. This part of the method definition, on first read, is confusing:

sets the pipette to use 8 nozzles, aligned from front to back with respect to the deck. This corresponds to a column of wells on labware.

My first reaction to "aligned from front to back with respect to the deck" was a big ❓ Pipette barrels or channels don't have their own coordinates so it might help with clarity to use well coordinates in that last sentence to clarify. For example:

This corresponds to a column of wells on labware (e.g. A1-H1, A2-H2, A3-H3, etc.).

Maybe I'm just dumb, but I had to read the argument definition a few times before coming to what I hoped is an understanding of what it means.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yeah, that was a tough definition to write. "It's a column, you know, like a column!"

Going to leave it for now, because that text will be revised as soon as additional layouts are added.

Comment on lines +56 to +60
Finally, we configure the nozzle layout, with three arguments.

- The ``style`` parameter directly accepts the ``COLUMN`` constant, since we imported it at the top of the protocol.
- The ``start`` parameter accepts a nozzle name, representing the back-left nozzle in the layout, as a string. ``"A12"`` tells the pipette to use its rightmost column of nozzles for pipetting.
- The ``tip_racks`` parameter tells the pipette which racks to use for tip tracking, just like :ref:`adding tip racks <pipette-tip-racks>` when loading a pipette.
Copy link
Contributor

Choose a reason for hiding this comment

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

Great use of bullets here. 🥇

Copy link
Contributor

@jwwojak jwwojak left a comment

Choose a reason for hiding this comment

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

This looks good. Only one comment and it relates to the description for a method's argument and not the text in this PR.

:shipit:

@ecormany ecormany changed the title Docs refactor pipettes partial pickup docs(api): refactor Pipettes page to include partial tip pickup Dec 21, 2023
@ecormany ecormany merged commit aa260af into edge Dec 21, 2023
25 checks passed
@ecormany ecormany deleted the docs-refactor-pipettes-partial-pickup branch December 21, 2023 14:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
docs papi-v2 Python API V2
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants