ecl-logo Documentation
ECL`

ExperimentAliquot

ExperimentAliquot[Sample, AliquotAmount]Protocol

transfers 'Amount' of Sample.

ExperimentAliquot[Sample, AliquotTargetConcentration]Protocol

dilutes the Sample to match the .

ExperimentAliquot[Sample]Protocol

generates a Protocol to perform basic sample transfer, aliquoting, or concentration adjustment for the provided Sample.

ExperimentAliquot[SamplePools, Amounts]Protocol

consolidates Amounts of each sample together into SamplePools.

ExperimentAliquot[SamplePools, TargetConcentrations]Protocol

dilutes SamplePools to match the .

ExperimentAliquot[SamplePools]Protocol

generates a Protocol to perform basic sample transfer, aliquoting, or concentration adjustment for the provided SamplePools.

    
ExperimentAliquot is a simplified version of ExperimentTransfer. It transfers and dilutes (optionally) a specific amount of sample (liquid, solid or tablets) into a new container or containers.
    

Experimental Principles

    Figure 1.1: Procedural overview of an experiment Aliquot. Step1: If multiple samples specified as an input they will be pooled together. The pooled mixtures will then be mixed either by pipetting or swirling. Step2: If AssayVolume or TargetConcentration is specified samples will be diluted. The diluted mixtures will then be mixed either by pipetting or swirling. Step3: If ConsolidateAliquots is True specified aliquot will be consolidated into the same container, otherwise samples will be transferred to the specified destination.

Instrumentation

    Super STAR

    Figure 2.1.1: An overview of the robotic workcell. It is capable of processing plate operations including incubation, shaking, and magnetic bead separation on-deck and centrifugation, filtration, and absorbance/fluorescence/luminescence measurement off-deck, with a robot arm facilitating the plate movements.
    Figure 2.1.2: Overhead view of the liquid handling instrument deck.

    Hamilton STARlet

    Figure 2.2.1: An overview of the robotic workcell. It is capable of processing plate operations including incubation, shaking, and magnetic bead separation on-deck and filtration and absorbance/fluorescence/luminescence measurement off-deck, with a robot arm facilitating the plate movements.
    Figure 2.2.2: Overhead view of the liquid handling instrument deck.

    Eppendorf Research Plus P200

    Figure 2.3.1: The diagram above lists the available pipette sizes and corresponding tip types that are available in the ECL.

    pipetus

    Figure 2.4.1: The above diagram lists the compatible serological tip sizes that are available at the ECL.

    Eppendorf Research Plus, 8-channel 1200uL

    Figure 2.5.1: 1 to 8 samples can be transferred at the same time using the 8 channel pipette.

Experiment Options

    General

    Amount

    The amount of a sample that should be transferred from the input samples into aliquots.
    Default Value: Automatic
    Default Calculation: Automatically set as the smaller between the current sample volume and the maximum volume of the destination container if a liquid, or the current Mass or Count if a solid or counted item, respectively.
    Pattern Description: All or Count or Count or Mass or Volume or Null.
    Programmatic Pattern: ((RangeP[0.1*Microliter, 20*Liter] | RangeP[1*Milligram, 20*Kilogram] | GreaterP[0*Unit, 1*Unit] | GreaterP[0., 1.] | All) | Automatic) | Null
    Index Matches to: experiment samples
    Nested Index Matches to: experiment samples

    TargetConcentration

    The desired final concentration of analyte in the aliquot samples after dilution of aliquots of the input samples with the ConcentratedBuffer and BufferDiluent (or AssayBuffer).
    Default Value: Automatic
    Default Calculation: Automatically calculated based on aliquot and buffer volumes.
    Pattern Description: Greater than 0 molar or greater than 0 grams per liter or Null.
    Programmatic Pattern: ((GreaterP[0*Molar] | GreaterP[0*(Gram/Liter)]) | Automatic) | Null
    Index Matches to: experiment samples
    Nested Index Matches to: experiment samples

    TargetConcentrationAnalyte

    The substance whose final concentration is attained with the TargetConcentration option.
    Default Value: Automatic
    Default Calculation: Automatically set to the first value in the Analytes field of the input sample, or, if not populated, to the first analyte in the Composition field of the input sample, or if none exist, the first identity model of any kind in the Composition field.
    Pattern Description: An object of type or subtype Model[Molecule], Model[Molecule, cDNA], Model[Molecule, Oligomer], Model[Molecule, Transcript], Model[Molecule, Protein], Model[Molecule, Protein, Antibody], Model[Molecule, Carbohydrate], Model[Molecule, Polymer], Model[Resin], Model[Resin, SolidPhaseSupport], Model[Lysate], Model[ProprietaryFormulation], Model[Virus], Model[Cell], Model[Cell, Mammalian], Model[Cell, Bacteria], Model[Cell, Yeast], Model[Tissue], Model[Material], or Model[Species] or Null.
    Programmatic Pattern: (ObjectP[IdentityModelTypes] | Automatic) | Null
    Index Matches to: experiment samples
    Nested Index Matches to: experiment samples

    AssayVolume

    The desired total volume of the aliquoted sample plus dilution buffer.
    Default Value: Automatic
    Default Calculation: Automatically determined based on Volume, Mass, and TargetConcentration option values.
    Pattern Description: Greater than or equal to 1 microliter and less than or equal to 20 liters or Null.
    Programmatic Pattern: (RangeP[1*Microliter, 20*Liter] | Automatic) | Null
    Index Matches to: experiment samples

    ContainerOut

    The desired type of container that should be used to prepare and house the aliquot samples, with indices indicating grouping of samples in the same plates, if desired.
    Default Value: Automatic
    Default Calculation: Automatically set as the PreferredContainer for the AssayVolume of the sample. For plates, attempts to fill all wells of a single plate with the same model before aliquoting into the next.
    Pattern Description: An object of type or subtype Model[Container] or Object[Container] or a prepared sample or {Index, Container}
    Programmatic Pattern: ((ObjectP[{Model[Container], Object[Container]}] | _String) | {GreaterEqualP[1, 1] | Automatic, (ObjectP[{Model[Container], Object[Container]}] | _String) | Automatic}) | Automatic
    Index Matches to: experiment samples

    DestinationWell

    The desired position in the corresponding ContainerOut in which the aliquot samples will be placed.
    Default Value: Automatic
    Default Calculation: Automatically set to A1 in containers with only one position. For plates, fills wells in the order provided by the function AllWells.
    Pattern Description: Any well from A1 to H12 for a 96-well plate or from A1 to P24 for a 384-well plate.
    Programmatic Pattern: WellPositionP | Automatic
    Index Matches to: experiment samples

    ConcentratedBuffer

    The concentrated buffer which should be diluted by the BufferDilutionFactor in the final solution (i.e., the combination of the sample, ConcentratedBuffer, and BufferDiluent). The ConcentratedBuffer and BufferDiluent will be combined and then mixed with the sample, where the combined volume of these buffers is the difference between the Amount and the total AssayVolume.
    Default Value: Null
    Pattern Description: An object of type or subtype Object[Sample] or Model[Sample] or a prepared sample or Null.
    Programmatic Pattern: (ObjectP[{Object[Sample], Model[Sample]}] | _String) | Null
    Index Matches to: experiment samples

    BufferDilutionFactor

    The dilution factor by which the concentrated buffer should be diluted in the final solution (i.e., the combination of the sample, ConcentratedBuffer, and BufferDiluent). The ConcentratedBuffer and BufferDiluent will be combined and then mixed with the sample, where the combined volume of these buffers is the difference between the Amount and the total AssayVolume.
    Default Value: Automatic
    Default Calculation: If ConcentratedBuffer is specified, automatically set to the ConcentratedBufferDilutionFactor of that sample; otherwise, set to Null.
    Pattern Description: Greater than or equal to 1 or Null.
    Programmatic Pattern: (GreaterEqualP[1] | Automatic) | Null
    Index Matches to: experiment samples

    BufferDiluent

    The buffer used to dilute the aliquot sample such that ConcentratedBuffer is diluted by BufferDilutionFactor in the final solution. The ConcentratedBuffer and BufferDiluent will be combined and then mixed with the sample, where the combined volume of these buffers is the difference between the Amount and the total AssayVolume.
    Default Value: Automatic
    Default Calculation: Automatically set to Model[Sample, "Milli-Q water"] if ConcentratedBuffer is specified; otherwise, set to Null.
    Pattern Description: An object of type or subtype Object[Sample] or Model[Sample] or a prepared sample or Null.
    Programmatic Pattern: ((ObjectP[{Object[Sample], Model[Sample]}] | _String) | Automatic) | Null
    Index Matches to: experiment samples

    AssayBuffer

    The buffer that should be added to any aliquots requiring dilution, where the volume of this buffer added is the difference between the AliquotVolume and the total AssayVolume.
    Default Value: Automatic
    Default Calculation: Automatically set to Model[Sample, "Milli-Q water"] if ConcentratedBuffer is not specified and AssayVolume dictates we require a buffer; otherwise, set to Null.
    Pattern Description: An object of type or subtype Object[Sample] or Model[Sample] or a prepared sample or Null.
    Programmatic Pattern: ((ObjectP[{Object[Sample], Model[Sample]}] | _String) | Automatic) | Null
    Index Matches to: experiment samples

    ConsolidateAliquots

    Indicates if aliquots from the same sample with the same target concentration should be prepared in the same ContainerOut. Aliquots from the same source sample not requiring dilution will also be consolidated.
    Default Value: False
    Pattern Description: True or False.
    Programmatic Pattern: BooleanP

    Preparation

    Indicates if this unit operation is carried out primarily robotically or manually. Manual unit operations are executed by a laboratory operator and robotic unit operations are executed by a liquid handling work cell.
    Default Value: Automatic
    Pattern Description: Manual or Robotic.
    Programmatic Pattern: PreparationMethodP | Automatic

    WorkCell

    Indicates the work cell that this primitive will be run on if Preparation->Robotic.
    Default Value: Automatic
    Default Calculation: Automatically set to STAR if Preparation->Robotic.
    Pattern Description: STAR, bioSTAR, or microbioSTAR or Null.
    Programmatic Pattern: ((STAR | bioSTAR | microbioSTAR) | Automatic) | Null

    Post Experiment

    SamplesInStorageCondition

    The non-default conditions under which the SamplesIn of this experiment should be stored after the protocol is completed. If left unset, SamplesIn will be stored according to their current StorageCondition.
    Default Value: Null
    Pattern Description: {AmbientStorage, EnclosedAmbientStorage, Refrigerator, Freezer, DeepFreezer, CryogenicStorage, YeastIncubation, YeastShakingIncubation, BacterialIncubation, BacterialShakingIncubation, MammalianIncubation, ViralIncubation, CrystalIncubation, AcceleratedTesting, IntermediateTesting, LongTermTesting, UVVisLightTesting} or Disposal or Null.
    Programmatic Pattern: (Alternatives[SampleStorageTypeP | Disposal]) | Null

    SamplesOutStorageCondition

    The non-default conditions under which any new samples generated by this experiment should be stored after the protocol is completed. If left unset, the new samples will be stored according to their Models' DefaultStorageCondition.
    Default Value: Null
    Pattern Description: {AmbientStorage, EnclosedAmbientStorage, Refrigerator, Freezer, DeepFreezer, CryogenicStorage, YeastIncubation, YeastShakingIncubation, BacterialIncubation, BacterialShakingIncubation, MammalianIncubation, ViralIncubation, CrystalIncubation, AcceleratedTesting, IntermediateTesting, LongTermTesting, UVVisLightTesting} or Disposal or Null.
    Programmatic Pattern: (Alternatives[SampleStorageTypeP | Disposal]) | Null
    Index Matches to: experiment samples

    Model Input

    PreparedModelAmount

    Indicates the amount of a Model[Sample] specified as input to the experiment function that will be prepared in the PreparedModelContainer. When set to All and the input model sample is not preparable, the entire amount of the input model sample that comes from one of the Products is prepared. The selected product must have both Amount and DefaultContainerModel populated, and it must not be a KitProduct. When set to All and the input model is preparable such as water, 1 Milliliter of the input model sample is prepared.
    Default Value: Automatic
    Default Calculation: Automatically set to 1 Milliliter.
    Pattern Description: All or Count or Count or Mass or Volume or Null.
    Programmatic Pattern: ((Null | (RangeP[1*Microliter, 20*Liter] | RangeP[1*Milligram, 20*Kilogram] | GreaterP[0*Unit, 1*Unit] | GreaterP[0., 1.] | All)) | Automatic) | Null
    Index Matches to: experiment samples
    Nested Index Matches to: experiment samples

    PreparedModelContainer

    Indicates the container in which a Model[Sample] specified as input to the experiment function will be prepared.
    Default Value: Automatic
    Default Calculation: If PreparedModelAmount is set to All and when the input model has a product associated with both Amount and DefaultContainerModel populated, automatically set to the DefaultContainerModel value in the product. Otherwise set to Model[Container, Vessel, "2mL Tube"].
    Pattern Description: An object of type or subtype Model[Container] or Null.
    Programmatic Pattern: ((Null | ObjectP[Model[Container]]) | Automatic) | Null
    Index Matches to: experiment samples
    Nested Index Matches to: experiment samples

Protocol Options

    Post Experiment

    MeasureWeight

    Indicates if any solid samples that are modified in the course of the experiment should have their weights measured and updated after running the experiment. Please note that public samples are weighed regardless of the value of this option.
    Default Value: False
    Pattern Description: True or False or Null.
    Programmatic Pattern: (Null | BooleanP) | Null

    MeasureVolume

    Indicates if any liquid samples that are modified in the course of the experiment should have their volumes measured and updated after running the experiment. Please note that public samples are volume measured regardless of the value of this option.
    Default Value: False
    Pattern Description: True or False or Null.
    Programmatic Pattern: (Null | BooleanP) | Null

    ImageSample

    Indicates if any samples that are modified in the course of the experiment should be freshly imaged after running the experiment. Please note that public samples are imaged regardless of the value of this option.
    Default Value: False
    Pattern Description: True or False or Null.
    Programmatic Pattern: (Null | BooleanP) | Null

    Organizational Information

    Template

    A template protocol whose methodology should be reproduced in running this experiment. Option values will be inherited from the template protocol, but can be individually overridden by directly specifying values for those options to this Experiment function.
    Default Value: Null
    Pattern Description: An object of type or subtype Object[Protocol] or an object of type or subtype of Object[Protocol] with UnresolvedOptions, ResolvedOptions specified or Null.
    Programmatic Pattern: (ObjectP[Object[Protocol]] | FieldReferenceP[Object[Protocol], {UnresolvedOptions, ResolvedOptions}]) | Null

    Name

    A object name which should be used to refer to the output object in lieu of an automatically generated ID number.
    Default Value: Null
    Pattern Description: A string or Null.
    Programmatic Pattern: _String | Null

Example Calls

    Single sample

    To aliquot a specific volume of a sample into a new container:
    To dilute a sample to a new target concentration:
    To dilute a sample to the volume:
    To make multiple, identically sized aliquots of a single source sample, the source needs to be explicitly specified for each intended aliquot. For example, to make five 50 Microliter aliquots from a sample into 0.5 Milliliter tubes:
    The above input can be simplified by using the Mathematica function ConstantArray:
    Aliquots of different sizes from a single source sample needs to be set explicitly:
    Aliquots of different sizes from a single source sample into different types of containers:

    Multiple samples

    To pool multiple samples:
    To aliquot a specific volume of multiple samples into a new container:
    To pool, dilute and consolidate aliquot:

Preferred Input Containers

    96-well 2mL Deep Well Plate
    2mL Tube

Warnings and Errors

    Messages  (50)

    AliquotVolumeTooLarge  (1)

    The Amount of sample being aliquoted cannot exceed the total assay volume in the aliquot destination:

    AssayVolumeAboveMaximum  (1)

    If AssayVolume is calcualted to be above $MaxTransferVolume, throw an error:

    BufferDilutionMismatched  (1)

    If BufferDilutionFactor and/or BufferDiluent are specified, ConcentratedBuffer must also be specified:

    BufferWillNotBeUsed  (1)

    Throw a warning if AssayBuffer and/or ConcentratedBuffer are specified and Amount and AssayVolume are the same:

    CannotResolveAmount  (3)

    If all of a sample is to be aliquoted, but its current volume is not populated, throw an error:

    If Amount is set directly to Null but the sample is a liquid, throw CannotResolveAmount error:

    If AssayVolume is set directly to Null but the sample is a liquid, throw CannotResolveAmount error:

    CannotResolveAssayVolume  (1)

    If TargetConcentration/Amount values for two different samples pooled together resolve to different AssayVolume values, throw the CannotResolveAssayVolume error:

    ConcentrationRatioMismatch  (1)

    If TargetConcentration, AssayVolume, and Amount are specified, the ratios of target concentration and current concentration must match the ratio of volume to assay volume:

    ContainerOutMismatchedIndex  (1)

    If specifying ContainerOut with indices, containers of different models cannot have the same index:

    ContainerOverOccupied  (2)

    If more positions in the destination container are requested than are available, throw an error:

    If more positions in the partially-filled destination container are requested than are available, throw an error:

    DeprecatedModels  (1)

    Deprecated models are not supported for any option value:

    DestinationWellDoesntExist  (1)

    The position specified for DestinationWell must exist in the corresponding ContainerOut:

    DiscardedSamples  (1)

    Discarded objects are not supported as inputs or options:

    InputContainsTemporalLinks  (1)

    Throw a message if given a temporal link:

    MissingMolecularWeight  (1)

    If TargetConcentration is set for a solid but MolecularWeight is not populated, throw MissingMolecularWeight error:

    NestedIndexMatchingConsolidateAliquotsNotSupported  (1)

    If pooling multiple samples together, ConsolidateAliquots must be False; if it is set to True, this option will be ignored and identical aliquots will not be consolidated:

    NestedIndexMatchingVolumeAboveAssayVolume  (1)

    If the sum of the Amounts for all samples being pooled together is greater than the specified AssayVolume, throw the NestedIndexMatchingVolumeAboveAssayVolume error:

    NoConcentration  (1)

    TargetConcentration cannot be used if current sample concentration is unknown:

    NonEmptyContainers  (2)

    Specifically provided containers are allowed to be partially occupied for plates:

    Specifically provided non-plate containers must be empty to serve as aliquoting destinations:

    ObjectDoesNotExist  (18)

    Do NOT throw a message if we have a simulated container but a simulation is specified that indicates that it is simulated:

    Do NOT throw a message if we have a simulated container for the Amount overload but a simulation is specified that indicates that it is simulated:

    Do NOT throw a message if we have a simulated container for the Concentration overload but a simulation is specified that indicates that it is simulated:

    Do NOT throw a message if we have a simulated sample but a simulation is specified that indicates that it is simulated:

    Do NOT throw a message if we have a simulated sample for the Amount overload but a simulation is specified that indicates that it is simulated:

    Do NOT throw a message if we have a simulated sample for the Concentration overload but a simulation is specified that indicates that it is simulated:

    Throw a message if we have a container that does not exist for the Amount overload (ID form):

    Throw a message if we have a container that does not exist for the Amount overload (name form):

    Throw a message if we have a container that does not exist for the Concentration overload (ID form):

    Throw a message if we have a container that does not exist for the Concentration overload (name form):

    Throw a message if we have a container that does not exist (ID form):

    Throw a message if we have a container that does not exist (name form):

    Throw a message if we have a sample that does not exist for the Amount overload (ID form):

    Throw a message if we have a sample that does not exist for the Amount overload (name form):

    Throw a message if we have a sample that does not exist for the Concentration overload (ID form):

    Throw a message if we have a sample that does not exist for the Concentration overload (name form):

    Throw a message if we have a sample that does not exist (ID form):

    Throw a message if we have a sample that does not exist (name form):

    OverspecifiedBuffer  (2)

    Both AssayBuffer and ConcentratedBuffer can be Null as long as Amount and AssayVolume are equal:

    Both AssayBuffer and ConcentratedBuffer cannot be simultaneously requested:

    PreparationInvalid  (2)

    If Preparation is set to Robotic, throw an error if a container cannot work with the liquid handlers and must be macro:

    If Preparation is set to Robotic, throw an error if the sample is marked as liquid handling incompatible:

    StateAmountMismatch  (1)

    If the specified input is a solid but Amount is given in volume or count forms, throw StateAmountMismatch error:

    TargetConcentrationNotUsed  (1)

    If given a tablet and the TargetConcentration option is specified, explicitly state that it is not going to be used with a warning:

    TargetConcentrationTooLarge  (1)

    A message is thrown if the target concentration exceeds the sample's current concentration; only dilutions are currently supported:

    TotalAliquotVolumeTooLarge  (1)

    The Amount of sample being aliquoted cannot exceed the volume of that sample:

    UnknownAmount  (1)

    If a sample is to be aliquoted, a volume has been specified, but its current volume is not populated, throw a warning and an error:

    VolumeOverContainerMax  (1)

    An error is thrown if the total assay volume will not fit in the desired ContainerOut:

Last modified on Thu 14 Aug 2025 18:15:18