riverine.abbreviated#
Attributes#
Classes#
Class denoting a Mix, a collection of source components mixed to |
Functions#
|
Convenient constructor for units, eg, |
Module Contents#
- class riverine.abbreviated.Mix(*args, **kwargs)[source]#
Bases:
riverine.components.AbstractComponentClass denoting a Mix, a collection of source components mixed to some volume or concentration.
- __hash__#
- actions: riverine.units.Sequence[riverine.actions.AbstractAction]#
- name: str = ''#
Name of the component.
- test_tube_name: str | None#
A short name, eg, for labelling a test tube.
- fixed_concentration: str | riverine.units.DecimalQuantity | None#
- reference: riverine.references.Reference | None = None#
- min_volume: riverine.units.DecimalQuantity#
- plate: str | None#
- well: riverine.locations.WellPos | None#
- _apply_deprecated_volume_kwargs(ftv: riverine.units.DecimalQuantity | None, ftv_given: bool, buffer_name: str, buffer_name_given: bool) None[source]#
Apply the deprecated
fixed_total_volume=/buffer_name=kwargs.Composes with an existing fill action where possible (an action naming a buffer with no target gets its target from
fixed_total_volume=), and raises a clear error when the total volume would be set in two places.
- property is_mix: bool#
- _determining_action() riverine.actions.AbstractAction | None[source]#
The single action that determines the mix’s total volume, if any.
Internal, non-warning accessor.
- _get_fixed_total_volume() riverine.units.DecimalQuantity[source]#
The mix’s fixed total volume, or NaN if none. Non-warning accessor.
- _set_fixed_total_volume(value: riverine.units.DecimalQuantity) None[source]#
Set the total volume on the determining fill, or add one. Non-warning.
- _get_buffer_name() str[source]#
The name of the buffer/fill component, or “Buffer”. Non-warning accessor.
- _set_buffer_name(value: str) None[source]#
Rename the buffer of the determining fill, or add a fill. Non-warning.
- property fixed_total_volume: riverine.units.DecimalQuantity#
- property buffer_name: str#
- _check_single_determiner() None[source]#
Ensure at most one action determines the mix’s total volume.
More than one determining action (e.g. two fills) is ambiguous and, left unchecked, makes fill volumes mutually recursive.
- property concentration: riverine.units.DecimalQuantity#
Effective concentration of the mix. Calculated in order:
If the mix has a fixed concentration, then that concentration.
If fixed_concentration is a string, then the final concentration of the component with that name.
If fixed_concentration is none, then the final concentration of the first mix component.
- _get_concentration(_cache_key=None) riverine.units.DecimalQuantity[source]#
- property total_volume: riverine.units.DecimalQuantity#
Total volume of the mix. If the mix has a fixed total volume, then that, otherwise, the sum of the transfer volumes of each component.
- _get_total_volume(_cache_key=None) riverine.units.DecimalQuantity[source]#
- property buffer_volume: riverine.units.Quantity#
The volume of buffer to be added to the mix, in addition to the components.
- table(tablefmt: tabulate.TableFormat | str = 'pipe', raise_failed_validation: bool = False, stralign='default', missingval='', showindex='default', disable_numparse=False, colalign=None, _cache_key=None) str[source]#
Generate a table describing the mix.
- Parameters:
tablefmt – The output format for the table.
validate – Ensure volumes make sense.
- mixlines(tablefmt: str | tabulate.TableFormat = 'pipe', _cache_key=None) list[riverine.printing.MixLine][source]#
- validate(tablefmt: str | tabulate.TableFormat | None = None, mixlines: riverine.units.Sequence[riverine.printing.MixLine] | None = None, raise_errors: bool = False, _cache_key=None) list[riverine.units.VolumeError][source]#
- all_components() pandas.DataFrame[source]#
Return a Series of all component names, and their concentrations (as pint nM).
- with_experiment(experiment: riverine.experiments.Experiment, *, inplace: bool = True) Mix[source]#
- with_reference(reference: riverine.references.Reference, *, inplace: bool = True) Mix[source]#
- property location: tuple[str, riverine.locations.WellPos | None]#
- vol_to_tube_names(tablefmt: str | tabulate.TableFormat = 'pipe', validate: bool = True) dict[riverine.units.DecimalQuantity, list[str]][source]#
- Returns:
dict mapping a volume vol to a list of names of strands in this mix that should be pipetted with volume vol
- _tube_map_from_mixline(mixline: riverine.printing.MixLine) str[source]#
- tubes_markdown(tablefmt: str | tabulate.TableFormat = 'pipe') str[source]#
- Parameters:
tablefmt – table format (see
PlateMap.to_table()for description)- Returns:
a Markdown (or other format according to tablefmt)
string indicating which strands in test tubes to pipette, grouped by the volume
of each
- display_instructions(plate_type: riverine.locations.PlateType = PlateType.wells96, raise_failed_validation: bool = False, combine_plate_actions: bool = True, well_marker: None | str | Callable[[str], str] = None, title_level: Literal[1, 2, 3, 4, 5, 6] = 3, warn_unsupported_title_format: bool = True, tablefmt: str | tabulate.TableFormat = 'unsafehtml', include_plate_maps: bool = True) None[source]#
Displays in a Jupyter notebook the result of calling
Mix.instructions().- Parameters:
plate_type – 96-well or 384-well plate; default is 96-well.
raise_failed_validation – If validation fails (volumes don’t make sense), raise an exception.
combine_plate_actions – If True, then if multiple actions in the Mix take the same volume from the same plate, they will be combined into a single
PlateMap.well_marker – By default the strand’s name is put in the relevant plate entry. If well_marker is specified and is a string, then that string is put into every well with a strand in the plate map instead. This is useful for printing plate maps that just put, for instance, an ‘X’ in the well to pipette (e.g., specify
well_marker='X'), e.g., for experimental mixes that use only some strands in the plate. To enable the string to depend on the well position (instead of being the same string in every well), well_marker can also be a function that takes as input a string representing the well (such as"B3"or"E11"), and outputs a string. For example, giving the identity functionmix.to_table(well_marker=lambda x: x)puts the well address itself in the well.title_level – The “title” is the first line of the returned string, which contains the plate’s name and volume to pipette. The title_level controls the size, with 1 being the largest size, (header level 1, e.g., # title in Markdown or <h1>title</h1> in HTML).
warn_unsupported_title_format – If True, prints a warning if tablefmt is a currently unsupported option for the title. The currently supported formats for the title are ‘github’, ‘html’, ‘unsafehtml’, ‘rst’, ‘latex’, ‘latex_raw’, ‘latex_booktabs’, “latex_longtable”. If tablefmt is another valid option, then the title will be the Markdown format, i.e., same as for tablefmt = ‘github’.
tablefmt – By default set to ‘github’ to create a Markdown table. For other options see astanin/python-tabulate
include_plate_maps – If True, include plate maps as part of displayed instructions, otherwise only include the more compact mixing table (which is always displayed regardless of this parameter).
- Returns:
pipetting instructions in the form of strings combining results of
Mix.table()and
- generate_picklist(experiment: riverine.experiments.Experiment | None, _cache_key=None) Mix.generate_picklist.PickList | None[source]#
- Parameters:
experiment – experiment to use for generating picklist
- Return type:
picklist for the mix
- instructions(*, plate_type: riverine.locations.PlateType = PlateType.wells96, raise_failed_validation: bool = False, combine_plate_actions: bool = True, well_marker: None | str | Callable[[str], str] = None, title_level: Literal[1, 2, 3, 4, 5, 6] = 3, warn_unsupported_title_format: bool = True, tablefmt: str | tabulate.TableFormat = 'pipe', include_plate_maps: bool = True) str[source]#
Returns string combiniing the string results of calling
Mix.table()andMix.plate_maps()(then callingPlateMap.to_table()on eachPlateMap).- Parameters:
plate_type – 96-well or 384-well plate; default is 96-well.
- raise_failed_validation:
If validation fails (volumes don’t make sense), raise an exception.
- combine_plate_actions:
If True, then if multiple actions in the Mix take the same volume from the same plate, they will be combined into a single
PlateMap.- well_marker:
By default the strand’s name is put in the relevant plate entry. If well_marker is specified and is a string, then that string is put into every well with a strand in the plate map instead. This is useful for printing plate maps that just put, for instance, an ‘X’ in the well to pipette (e.g., specify
well_marker='X'), e.g., for experimental mixes that use only some strands in the plate. To enable the string to depend on the well position (instead of being the same string in every well), well_marker can also be a function that takes as input a string representing the well (such as"B3"or"E11"), and outputs a string. For example, giving the identity functionmix.to_table(well_marker=lambda x: x)puts the well address itself in the well.- title_level:
The “title” is the first line of the returned string, which contains the plate’s name and volume to pipette. The title_level controls the size, with 1 being the largest size, (header level 1, e.g., # title in Markdown or <h1>title</h1> in HTML).
- warn_unsupported_title_format:
If True, prints a warning if tablefmt is a currently unsupported option for the title. The currently supported formats for the title are ‘github’, ‘html’, ‘unsafehtml’, ‘rst’, ‘latex’, ‘latex_raw’, ‘latex_booktabs’, “latex_longtable”. If tablefmt is another valid option, then the title will be the Markdown format, i.e., same as for tablefmt = ‘github’.
- tablefmt:
By default set to ‘github’ to create a Markdown table. For other options see astanin/python-tabulate
- include_plate_maps:
If True, include plate maps as part of displayed instructions, otherwise only include the more compact mixing table (which is always displayed regardless of this parameter).
- Returns:
pipetting instructions in the form of strings combining results of
Mix.table()and
- plate_maps(plate_type: riverine.locations.PlateType = PlateType.wells96, validate: bool = True, combine_plate_actions: bool = True) list[PlateMap][source]#
Similar to
table(), but indicates only the strands to mix from each plate, in the form of aPlateMap.NOTE: this ignores any strands in the
Mixthat are in test tubes. To get a list of strand names in test tubes, callMix.vol_to_tube_names()orMix.tubes_markdown().By calling
PlateMap.to_markdown()on each plate map, one can create a Markdown representation of each plate map, for example,plate 1, 5 uL each | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | |-----|------|--------|--------|------|----------|-----|-----|-----|-----|------|------|------| | A | mon0 | mon0_F | | adp0 | | | | | | | | | | B | mon1 | mon1_Q | mon1_F | adp1 | adp_sst1 | | | | | | | | | C | mon2 | mon2_F | mon2_Q | adp2 | adp_sst2 | | | | | | | | | D | mon3 | mon3_Q | mon3_F | adp3 | adp_sst3 | | | | | | | | | E | mon4 | | mon4_Q | adp4 | adp_sst4 | | | | | | | | | F | | | | adp5 | | | | | | | | | | G | | | | | | | | | | | | | | H | | | | | | | | | | | | |
or, with the well_marker parameter of
PlateMap.to_markdown()set to'X', for instance (in case you don’t need to see the strand names and just want to see which wells are marked):plate 1, 5 uL each | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|------|------|------| | A | * | * | | * | | | | | | | | | | B | * | * | * | * | * | | | | | | | | | C | * | * | * | * | * | | | | | | | | | D | * | * | * | * | * | | | | | | | | | E | * | | * | * | * | | | | | | | | | F | | | | * | | | | | | | | | | G | | | | | | | | | | | | | | H | | | | | | | | | | | | |
- Parameters:
plate_type – 96-well or 384-well plate; default is 96-well.
validate – Ensure volumes make sense.
combine_plate_actions – If True, then if multiple actions in the Mix take the same volume from the same plate, they will be combined into a single
PlateMap.
- Return type:
A list of all plate maps.
- _plate_map_from_mixline(mixline: riverine.printing.MixLine, plate_type: riverine.locations.PlateType, existing_plate_map: PlateMap | None) PlateMap[source]#
- _update_volumes(consumed_volumes: dict[str, riverine.units.Quantity] | None = None, made_volumes: dict[str, riverine.units.Quantity] | None = None, _cache_key=None) Tuple[dict[str, riverine.units.Quantity], dict[str, riverine.units.Quantity]][source]#
Given a
- _unstructure(experiment: riverine.experiments.Experiment | None = None) dict[str, Any][source]#
- classmethod _structure(d: dict[str, Any], experiment: riverine.experiments.Experiment | None = None) Mix[source]#
- riverine.abbreviated.Q_(qty: int | str | decimal.Decimal | float, unit: str | pint.Unit | pint.facets.plain.PlainUnit | pint.Quantity | None = None) DecimalQuantity[source]#
Convenient constructor for units, eg,
Q_(5.0, 'nM'). Ensures that the quantity is a Decimal.