Skip to content

Commit 8e796af

Browse files
docs(api): remove creating a new liquid class in 8.5 (#18916)
<!-- Thanks for taking the time to open a Pull Request (PR)! Please make sure you've read the "Opening Pull Requests" section of our Contributing Guide: https://github.com/Opentrons/opentrons/blob/edge/CONTRIBUTING.md#opening-pull-requests GitHub provides robust markdown to format your PR. Links, diagrams, pictures, and videos along with text formatting make it possible to create a rich and informative PR. For more information on GitHub markdown, see: https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax To ensure your code is reviewed quickly and thoroughly, please fill out the sections below to the best of your ability! --> # Overview <!-- Describe your PR at a high level. State acceptance criteria and how this PR fits into other work. Link issues, PRs, and other relevant resources. --> based on conversations around an 8.5 bug, this PR removes mention of customizing a liquid class in 8.5 in the liquid classes, liquid class definitions, and complex commands articles. For now, it leaves `define_liquid_class` visible in the API reference. ## Test Plan and Hands on Testing <!-- Describe your testing of the PR. Emphasize testing not reflected in the code. Attach protocols, logs, screenshots and any other assets that support your testing. --> sandbox: http://sandbox.docs.opentrons.com/docs-hotfix-new-liquid-class/v2/ ## Changelog <!-- List changes introduced by this PR considering future developers and the end user. Give careful thought and clear documentation to breaking changes. --> ## Review requests If I align the dictionary example on the left with the other code examples in the doc, the last bracket to properly close the dictionary throws an error (ends the code block early and prevents the docs from building). This is one of Sanniti's dictionary examples, checked with a black formatter and passed simulation. I did space it further _in_ to get the docs to build. <!-- - What do you need from reviewers to feel confident this PR is ready to merge? - Ask questions. --> ## Risk assessment <!-- - Indicate the level of attention this PR needs. - Provide context to guide reviewers. - Discuss trade-offs, coupling, and side effects. - Look for the possibility, even if you think it's small, that your change may affect some other part of the system. - For instance, changing return tip behavior may also change the behavior of labware calibration. - How do your unit tests and on hands on testing mitigate this PR's risks and the risk of future regressions? - Especially in high risk PRs, explain how you know your testing is enough. --> low. I should have gotten every mention of it.
1 parent 77c6ad4 commit 8e796af

File tree

4 files changed

+2
-84
lines changed

4 files changed

+2
-84
lines changed

api/docs/v2/complex_commands/parameters.rst

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,6 @@ If this poses a contamination risk, you can work around it in a few ways:
9494

9595
* Use ``transfer()`` or ``transfer_with_liquid_class()`` with ``new_tip="always"`` instead.
9696
* Set :py:obj:`.well_bottom_clearance` high enough that the tip doesn't contact liquid in the destination well.
97-
* :ref:`Customize your liquid class <customizing-liquid-classes>` to change dispense heights or add touch tip behavior.
9897
* Use :ref:`building block commands <v2-atomic-commands>` instead of complex commands.
9998

10099

api/docs/v2/liquid_class_definitions.rst

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,7 @@ Liquid Class Definitions
88

99
A *liquid class definition* specifies nearly all transfer behavior a Flex pipette will perform during a :py:meth:`.InstrumentContext.transfer_with_liquid_class`, :py:meth:`.InstrumentContext.distribute_with_liquid_class`, or :py:meth:`.InstrumentContext.consolidate_with_liquid_class`. Properties, like aspirate flow rate, submerge speed, or dispense position, are required in every liquid class definition.
1010

11-
This section details specific changes to transfer behavior for each Opentrons-verified liquid class. The transfer steps are listed in the order the robot performs them. Advanced settings like mix, pre-wet tip, touch tip, and blowout are automatically disabled in Opentrons-verified liquid class definitions.
12-
13-
.. note::
14-
You can customize a liquid class definition for your workflow, either by customizing individual properties of an Opentrons-verified liquid class definition or creating your own definition from scratch.
15-
16-
For more information, see :ref:`customizing-liquid-classes`.
17-
11+
This section details specific changes to transfer behavior for each Opentrons-verified liquid class. The transfer steps are listed in the order the robot performs them. Advanced settings like mix, pre-wet tip, touch tip, and blowout are automatically disabled in Opentrons-verified liquid class definitions.
1812

1913
To use the tables below, select your liquid class: :ref:`aqueous`, :ref:`viscous`, or :ref:`volatile`. Then, click different tabs to view your pipette and tip combination.
2014

api/docs/v2/liquid_classes.rst

Lines changed: 1 addition & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Liquid Classes
88

99
Accounting for properties of liquids in your protocol can increase pipetting accuracy on the Flex. For example, a slower flow rate can improve pipetting for a viscous liquid, and an air gap can prevent a volatile liquid from dripping onto the deck.
1010

11-
This page covers the properties of Opentrons-verified liquid classes, how to use a verified liquid class in your protocol, and how to customize a liquid class.
11+
This page covers the properties of Opentrons-verified liquid classes and how to use them in your protocols.
1212

1313

1414
.. _opentrons-verified-liquid-classes:
@@ -212,78 +212,4 @@ In many cases, the liquid class definition represents fine-tuned changes optimiz
212212

213213
Not all transfer behavior is easily visible. See :ref:`liquid-class-definitions` for a full list of changes based on liquid class, pipette, and tip combination. For more detail on individual transfer settings, see :ref:`liquid-control`.
214214

215-
.. _customizing-liquid-classes:
216215

217-
Customizing Liquid Classes
218-
===========================
219-
220-
You can create your own liquid class to customize transfer behavior for any liquid in a Flex protocol. To make changes, you can edit individual properties of an existing liquid class, or add properties to a new liquid class.
221-
222-
To customize an Opentrons-verified liquid class, first add your pipettes, tips, trash, and labware. Then, use :py:meth:`~.ProtocolContext.get_liquid_class` to specify the liquid class you'll make changes to::
223-
224-
# get base liquid class and custom properties for the Flex pipette and tips
225-
226-
custom_water = protocol.get_liquid_class(name="water")
227-
custom_water_properties=custom_water.get_for(pipette, tiprack)
228-
229-
.. versionadded:: 2.24
230-
231-
Next, edit indivual liquid class properties based on your Flex pipette and tip combination.
232-
233-
.. code-block:: python
234-
235-
# edit aspirate submerge speed to 80 μL/sec
236-
custom_water_properties.aspirate.submerge.speed = 80
237-
238-
# edit aspirate flow rate by volume for 10 μL and 20 μL volumes
239-
custom_water_properties.aspirate.flow_rate_by_volume.set_for_volume = [(10.0, 40.0)
240-
custom_water_properties.aspirate.flow_rate_by_volume.set_for_volume = [(20.0, 30.0)]
241-
242-
# edit to delay for 1 sec before retracting after an aspirate
243-
custom_water_properties.aspirate.retract.delay.enabled = True
244-
custom_water_properties.aspirate.retract.delay.duration = 1.0
245-
246-
.. versionadded:: 2.24
247-
248-
Then, complete your transfers with the modified ``custom_water`` liquid class.
249-
250-
All Opentrons-verified liquid classes position the pipette relative to the well. To customize your liquid class to use :ref:`meniscus-relative <well-meniscus>` locations, set the ``positionReference`` to ``"liquid-meniscus"`` for actions like an aspirate or dispense.
251-
252-
253-
.. _new-liquid-classes:
254-
255-
Defining New Liquid Classes
256-
============================
257-
258-
You can also create a new liquid class for your Flex protocols. Instead of using an Opentrons-verified liquid class, you'll start from scratch, providing a value for `every required property <https://github.com/Opentrons/opentrons/blob/edge/shared-data/liquid-class/schemas/1.json>`__ in your liquid class.
259-
260-
.. code-block:: python
261-
262-
# examples of required properties in a dictionary for the pipette and tip racks
263-
custom_liquid_class_properties = {
264-
"flex_1channel_50": {
265-
"opentrons/opentrons_flex_96_tiprack_50ul/1": {
266-
"aspirate": {
267-
"aspirate_position": {
268-
"offset": {"x": 1, "y": 2, "z": 3},
269-
"position_reference": "well-bottom",
270-
},
271-
},
272-
},
273-
},
274-
}
275-
276-
# create a new liquid class
277-
custom_viscous = protocol.define_liquid_class(
278-
name="custom_viscous",
279-
properties=custom_liquid_class_properties,
280-
display_name="Custom Viscous"
281-
)
282-
283-
.. versionadded:: 2.24
284-
285-
The example above is shortened and only includes aspirate position properties. To create your liquid class, you'll need to define values for all `required properties <https://github.com/Opentrons/opentrons/blob/edge/shared-data/liquid-class/schemas/1.json>` in your new liquid class, like submerging before aspirating or after dispensing, speeds and flow rates, and position offsets.
286-
287-
.. note::
288-
289-
The :py:meth:`.ProtocolContext.get_liquid_class` method only accepts Opentrons-verified liquid classes, like ``glycerol_50``. You'll need to use :py:meth:`.ProtocolContext.define_liquid_class` in each Flex protocol that uses a custom liquid class.

api/docs/v2/versioning.rst

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,6 @@ Version 2.24
147147
- Adds the ability to perform liquid handling actions using :ref:`liquid classes <liquid-classes>`.
148148

149149
- :py:meth:`.ProtocolContext.get_liquid_class` accesses :ref:`Opentrons-verified liquid class definitions <liquid-class-definitions>` for aqueous, volatile, and viscous liquids.
150-
- :py:meth:`.ProtocolContext.define_liquid_class` lets you create your own liquid classes from verified classes or from scratch.
151150
- New :py:class:`.InstrumentContext` methods — :py:meth:`.transfer_with_liquid_class`, :py:meth:`.distribute_with_liquid_class`, and :py:meth:`.consolidate_with_liquid_class` — move liquids according to their properties.
152151
- :py:meth:`.air_gap`, :py:meth:`.blow_out`, :py:meth:`.dispense`, :py:meth:`.mix`, and :py:meth:`.touch_tip` have new parameters for advanced settings that are also available in Protocol Designer.
153152

0 commit comments

Comments
 (0)