ecl-logo Documentation
ECL`

ExperimentSerialDilute

ExperimentSerialDilute[Samples]Protocol

generates a Protocol to perform a series of dilutions iteratively by mixing samples with diluent, and transferring to another container of diluent.

    
A serial dilution involves taking a liquid sample and diluting it multiple times by dilution factors into separate containers or wells. It starts with the concentrated sample and multiple containers or wells with the same amount of diluent. A certain amount of concentrated sample is transferred to one of these containers or wells, and from here, another amount is transferred to another container or well. This process is repeated until the desired number of dilutions has been made. An example is performing a series of ten-fold dilutions; 1mL of concentrated sample can be transferred to a tube containing 9mL of diluent, then 1mL from this dilution would be transferred into another tube with 9mL of diluent, and the process repeats until a desired number of dilutions is achieved.
    

Experimental Principles

    Figure 1.1: A specified or calculated amount is transferred from the input sample to a container with specified or calculated amounts of Diluent. After mixing, another amount is transferred from the second container to a third container, where the buffer is diluted again with a Diluent. In this example, the source sample is being diluted by factors of 10 two times in a water Diluent.
    Figure 1.2: A specified or calculated amount is transferred from the input sample to a container with specified or calculated amounts of Diluent, and optionally, a ConcentratedBuffer. After mixing, another amount is transferred from the second container to a third container with a specified amount of Diluent, and the process repeats until the desired number of dilutions is reached. In this example, the sample is being diluted by factors of 10 two times, where the Diluent is 1X PBS, and the ConcentratedBuffer is 10X PBS.
    Figure 1.3: A specified or calculated amount is transferred from the input sample to a container with specified or calculated amounts of BufferDiluent, and optionally, a ConcentratedBuffer. After mixing, another amount is transferred from the second container to a third container with a specified amount of BufferDiluent and optionally ConcentratedBuffer, and the process repeats until the desired number of dilutions is reached. The BufferDiluent here is meant to dilute the ConcentratedBuffer at each step. In this example, the sample is being diluted by factors of 10 twi times, where the BufferDiluent is water and the ConcentratedBuffer is 10X PBS.
    Figure 1.4: A chart of equations showing how the amounts used in the serial dilutions are calculated.

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: The diagram above lists the available pipette sizes and corresponding tip types that are available in the ECL.

    pipetus

    Figure 2.4: 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 to 8 samples can be transferred at the same time using the 8 channel pipette.

Experiment Options

    General

    SerialDilutionFactors

    The factors by which you wish to reduce the concentrations starting with SamplesIn, followed by each previous dilution in the series of dilutions. This or TargetConcentrations must be provided, or an error is thrown.
    Default Value: Automatic
    Default Calculation: Automatically set to 10. This option can also be calculated from equations in Process Diagrams.
    Pattern Description: List of one or more greater than or equal to 1 entries or Null.
    Programmatic Pattern: ({GreaterEqualP[1]..} | Automatic) | Null
    Index Matches to: experiment samples

    NumberOfSerialDilutions

    The number of times the sample is repeatedly diluted, starting with SamplesIn, followed by each previous dilution.
    Default Value: Automatic
    Default Calculation: Automatically set to the number of TargetConcentrations or SerialDilutionFactors if provided, otherwise set to 1.
    Pattern Description: Greater than or equal to 1 in increments of 1.
    Programmatic Pattern: GreaterEqualP[1, 1] | Automatic
    Index Matches to: experiment samples

    TargetConcentrations

    Desired concentrations of Analyte in the final diluted samples after serial dilutions.
    Default Value: Automatic
    Default Calculation: Automatically set to 2Molar. In either Direct or FromConcentrate, this can be calculated from the equations in Process Diagrams.
    Pattern Description: List of one or more greater than 0 molar or greater than 0 grams per liter entries or Null.
    Programmatic Pattern: ({(GreaterP[0*Molar] | GreaterP[0*(Gram/Liter)])..} | Automatic) | Null
    Index Matches to: experiment samples

    Analyte

    The components in SamplesIn's Composition whose final concentrations (TargetConcentrations) are attained through a series of repeated dilutions.
    Default Value: Automatic
    Default Calculation: Automatically set to the first value in the Analytes field of SamplesIn, 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

    FinalVolume

    The volume into which the sample is diluted for each serial dilution.
    Default Value: Automatic
    Default Calculation: Automatically set to 100Microliter. In either Direct or FromConcentrate, can be calculated from the equations in Process Diagrams.
    Pattern Description: List of one or more greater than or equal to 0 microliters and less than or equal to 20 liters entries.
    Programmatic Pattern: {RangeP[0*Microliter, $MaxTransferVolume]..} | Automatic
    Index Matches to: experiment samples

    BufferDilutionStrategy

    BufferDilutionStrategy describes the manner in which to generate to buffer samples for each serial dilution. FromConcentrate provides ConcentratedBuffer to each well, which is then diluted with BufferDiluent to reach a final buffer concentraion of 1X, whereas Direct uses pre-diluted buffer which is already at 1X to perform the subsequent dilutions (see Equations chart in Process Diagrams).
    Default Value: Direct
    Pattern Description: Direct or FromConcentrate.
    Programmatic Pattern: Direct | FromConcentrate
    Index Matches to: experiment samples

    TransferAmounts

    The series of volume transferred starting from SamplesIn, and going into each subsequent dilution.
    Default Value: Automatic
    Default Calculation: Automatically set to 10Microliter. If SerialDilutionFactors or TargetConcentrations, and FinalVolume are provided, this option can be calculated from the equations in Process Diagrams.
    Pattern Description: List of one or more greater than or equal to 0 microliters and less than or equal to 20 liters entries.
    Programmatic Pattern: {RangeP[0*Microliter, $MaxTransferVolume]..} | Automatic
    Index Matches to: experiment samples

    Diluent

    The solution used to reduce the concentration of the SamplesIn and each subsequent dilution.
    Default Value: Automatic
    Default Calculation: Automatically set to the Solvent of SamplesIn, or Model[Sample,"milli-Q Water"] if Solvent is not defined.
    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

    DiluentAmount

    The amount of solution used to reduce the concentration of the SamplesIn and each subsequent dilution.
    Default Value: Automatic
    Default Calculation: Automatically set to 90Microliter. If SerialDilutionFactors or TargetConcentrations, and FinalVolume are provided, this option can be calculated from the equations in Process Diagrams.
    Pattern Description: List of one or more greater than or equal to 0 microliters and less than or equal to 20 liters entries.
    Programmatic Pattern: {RangeP[0*Microliter, $MaxTransferVolume]..} | Automatic
    Index Matches to: experiment samples

    BufferDiluent

    The solution used to reduce the concentration of the ConcentratedBuffer in the first and each subsequent dilution.
    Default Value: Null
    Default Calculation: If the BufferDilutionStrategy is Direct, it will be set to Null. If not, it will automatically be set to the Solvent of ConcentratedBuffer, or Model["milli-Q Water"] if Solvent is not defined.
    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 factor by which to reduce the concentration of the ConcentratedBufferDilutionFactor (but not the input sample) in all of the dilutions.
    Default Value: Automatic
    Default Calculation: Automatically set to the ConcentratedBufferDilutionFactor of ConcentratedBuffer. If ConcentratedBufferDilutionFactor is not defined, automatically set to 10 and throws a warning.
    Pattern Description: Greater than or equal to 1.
    Programmatic Pattern: GreaterEqualP[1] | Automatic
    Index Matches to: experiment samples

    BufferDiluentAmount

    The amount of buffer diluent to be added to reduce the concentration of ConcentratedBuffer in each dilution.
    Default Value: Automatic
    Default Calculation: Can be calculated from the equations in Process Diagrams.
    Pattern Description: List of one or more greater than or equal to 0 microliters and less than or equal to 20 liters entries or Null.
    Programmatic Pattern: ({RangeP[0*Microliter, $MaxTransferVolume]..} | Automatic) | Null
    Index Matches to: experiment samples

    ConcentratedBuffer

    The buffer used in the first dilution from SamplesIn. If BufferDiluentStrategy is FromConcentrate, then it will also be used in subsequent dilutions.
    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

    ConcentratedBufferAmount

    The amount of ConcentratedBuffer used in the first dilution from SamplesIn and each subsequent dilution.
    Default Value: Automatic
    Default Calculation: Can be calculated from the equations in Additional Information.
    Pattern Description: List of one or more greater than or equal to 0 microliters and less than or equal to 20 liters entries or Null.
    Programmatic Pattern: ({RangeP[0*Microliter, 20*Liter]..} | Automatic) | Null
    Index Matches to: experiment samples

    DiscardFinalTransfer

    Indicates if the final wells contain the same volume as the previously diluted wells by removing TransferAmount from the final dilution.
    Default Value: False
    Pattern Description: True or False or Null.
    Programmatic Pattern: BooleanP | Null
    Index Matches to: experiment samples

    DestinationWells

    The wells in which the dilutions will occur in ContainerOut if the dilutions occur in well plates.
    Default Value: Automatic
    Default Calculation: Automatically determined based on available wells and volume of liquid.
    Pattern Description: List of one or more any well from A1 to P24 entries or Null.
    Programmatic Pattern: ({WellPositionP..} | Automatic) | Null
    Index Matches to: experiment samples

    ContainerOut

    The desired type of container that should be used to prepare and house the diluted 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 diluting into the next.
    Pattern Description: List of one or more an object of type or subtype Model[Container] or Object[Container] or a prepared sample entries or list of one or more {Index, Container} entries.
    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

    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

    The automated workstation with a collection of integrated instruments on which this unit operation will be will be performed 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

    Mixing

    TransferMix

    Indicates if mixing of the samples is needed after each dilution in the series.
    Default Value: True
    Pattern Description: True or False.
    Programmatic Pattern: BooleanP
    Index Matches to: experiment samples

    TransferMixType

    Determines which type of mixing should be performed on the diluted samples after each dispense.
    Default Value: Automatic
    Default Calculation: Automatically set based on the Volume option and size of the container in which the sample is prepared.
    Pattern Description: Pipette or Swirl or Null.
    Programmatic Pattern: ((Pipette | Swirl) | Automatic) | Null
    Index Matches to: experiment samples

    TransferNumberOfMixes

    Determines the number of times the sample is mixed for discrete mixing processes such as Pipette or Swirl.
    Default Value: Automatic
    Pattern Description: Greater than or equal to 0 in increments of 1 or Null.
    Programmatic Pattern: (GreaterEqualP[0, 1] | Automatic) | Null
    Index Matches to: experiment samples

    Incubate

    Determines if incubation of the samples should occur after the dilutions.
    Default Value: True
    Pattern Description: True or False or Null.
    Programmatic Pattern: BooleanP | Null
    Index Matches to: experiment samples

    Incubation and Mixing

    IncubationTime

    Determines how long the incubation should occur for the sample after the dilutions.
    Default Value: Automatic
    Default Calculation: Automatically set to 30 minutes unless MixType is set to Pipette, Swirl or Invert, in which case it is set to Null.
    Pattern Description: Greater than or equal to 0 hours and less than or equal to 72 hours or Null.
    Programmatic Pattern: ((Null | RangeP[0*Hour, 72*Hour]) | Automatic) | Null
    Index Matches to: experiment samples

    MaxIncubationTime

    The maximum time to let the samples incubate after the dilutions.
    Default Value: Automatic
    Default Calculation: Automatically set based on the MixType if MixUntilDissolved is set to True. If MixUntilDissolved is False, resolves to Null.
    Pattern Description: Greater than or equal to 1 second and less than or equal to 72 hours or Null.
    Programmatic Pattern: ((Null | RangeP[1*Second, 72*Hour]) | Automatic) | Null
    Index Matches to: experiment samples

    IncubationTemperature

    The temperature at which the diluted samples will incubate after the dilutions.
    Default Value: Automatic
    Default Calculation: Automatically set to Ambient, or Null if Mix is set to False or MixType is set to Pipette, Swirl or Invert.
    Pattern Description: Ambient or greater than or equal to -20 degrees Celsius and less than or equal to 500 degrees Celsius or Null.
    Programmatic Pattern: ((Null | (RangeP[$MinIncubationTemperature, $MaxIncubationTemperature] | Ambient)) | Automatic) | Null
    Index Matches to: experiment samples

    Model Input

    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: (ObjectP[Model[Container]] | Automatic) | Null
    Index Matches to: experiment samples

    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: ((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

    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
    Index Matches to: experiment samples

    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

Protocol Options

    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

    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: Automatic
    Pattern Description: True or False or Null.
    Programmatic Pattern: (BooleanP | Automatic) | 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: Automatic
    Pattern Description: True or False or Null.
    Programmatic Pattern: (BooleanP | Automatic) | 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: Automatic
    Pattern Description: True or False or Null.
    Programmatic Pattern: (BooleanP | Automatic) | Null

Example Calls

    Specify how the samples should be diluted by using FinalVolume and SerialDilutionFactors, or FinalVolume and TargetConcentrations.

    If FinalVolume and SerialDilutionFactors are specified, the samples should be diluted by the specified SerialDiltuionFactors into the FinalVolume specified:
    If FinalVolume and TargetConcentrations are specified, the samples should be diluted to the TargetConcentrations into the specified FinalVolumes.

    Use the same call to serially dilute multiple samples separately. If FinalVolume, SerialDilutionFactors and other variables are left as singletons, then these variables will apply to all samples.

    Specifying that both samples will be diluted 10-fold three times in 100 microliters of diluent each time:

    Use the NumberOfSerialDilutions option to specify how many dilutions are wanted.

    Using the NumberOfSerialDilutions option will resolve the lengths of FinalVolume, SerialDilutionFactors and/or TargetConcentrations:

    Specify whether to use a Diluent or BufferDiluent, and a ConcentratedBuffer. The default Diluent or BufferDiluent is water.

    Specify the dilutions to be performed in 1X PBS:
    Specify the dilutions to be performed in 1X PBS from a concentrated solution of 10X PBS:

    Change the strategy being used for the dilutions with BufferDilutionStrategy.

    Specify the dilutions to be performed with the FromConcentrate strategy and to be diluted in 1X PBS in the end:
    Specify the dilutions to be performed with the Direct strategy and to be diluted in 1X PBS in the end:

    TransferMix and Incubate parameters

    Indicate how the samples ought to be mixed following each iterative dilution:
    Indicate if and how the samples should be incubated after the iterative dilutions:

    The options FinalVolume, along with SerialDilutionFactors or TargetConcentrations, are required options.

    If FinalVolume is not provided, it will throw an error:
    If SerialDilutionFactors or TargetConcentrations are not provided, it will throw an error:

Preferred Input Containers

    96-well 2mL Deep Well Plate
    2mL Tube

Warnings and Errors

    Messages  (16)

    BufferDilutionStrategyErr  (1)

    The selected BufferDilutionStrategy is not compatible with the given information:

    ConflictingIncubate  (1)

    The specified Incubate option is conflicting with the ContainerOut:

    DiscardedSamples  (1)

    Discarded samples test:

    IncompatibleIncubateDevice  (1)

    The specified Incubate option is not compatible with the ContainerOut:

    MismatchedNumber  (2)

    Mismatched number of serial dilutions:

    Mismatched number of serial dilutions TotalConcentrations:

    ObjectDoesNotExist  (6)

    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 sample but a simulation is specified that indicates that it is simulated:

    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 (ID form):

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

    UnevenBufferDiluentAmountsError  (1)

    The specified number of BufferDiluentAmount does not match the NumberOfSerialDilutions:

    UnevenConcentratedBufferAmountsError  (1)

    The specified number of ConcentratedBufferAmounts does not match the NumberOfSerialDilutions:

    UnevenDiluentAmountsError  (1)

    The specified number of DiluentAmount does not match the NumberOfSerialDilutions:

    UnevenTransferAmountsError  (1)

    The specified number of TransferAmounts does not match the NumberOfSerialDilutions:

Last modified on Wed 8 Oct 2025 09:43:11