ecl-logo Documentation
ECL`

ExperimentCrossFlowFiltration

ExperimentCrossFlowFiltration[Samples]Protocol

creates a Protocol to filter the provided sample or container Samples using cross flow filtration.

    
Cross flow filtration (also known as tangential flow filtration) is an experiment designed to filter and concentrate samples. The experiment runs on the principle of flowing a sample perpendicular to a filter. As the sample flows across the filter surface, permeate passes through the filter, separating it from the retentate based on a molecular weight or size cutoff. Cross flow filtration can separate and concentrate samples with a cutoff from 1 kDa to 0.65 microns, so it finds many uses, such as harvesting or removing viruses and cells, purification of large molecules such as nanoparticles, nucleic acids and proteins, and recovery of antibodies or recombinant proteins from cell culture media. Additionally, cross-flow filtration can perform a continuous diafiltration, which can achieve higher buffer exchange ratios than discontinuous diafiltration. A diafiltration volume of 3-fold sample volume will result in 95% of the initial buffer being removed from the final solution, 5-fold sample volume will result in 99.3%, and 7-fold sample volume will result in 99.9% of the initial buffer being removed.
    

Experimental Principles

    Figure 1.1: Procedural overview of a cross-flow filtration experiment using KR2i instrument. Step1: The filter is primed and prepared for the experiment. Step2: The sample is filtered, concentrated, or buffer exchanged. This step can be repeated multiple times as separate concentration and diafiltration steps. A permeate is collected for each step. Step3: Retentate is collected from the system and moved into its storage container. Step4: Filter is flushed, and prepared for storage if requested.
    Figure 1.2: Procedural overview of a cross-flow filtration experiment using uPulse instrument. Step1: The filter is primed and prepared for the experiment. Step2: The sample is filtered, concentrated, or buffer exchanged. A permeate is collected for each step. Step3: Filter is flushed, and prepared for storage if requested.

Instrumentation

    KrosFlo KR2i

    Figure 2.1: Instrument Flow Path. The sample is positioned within a specialized reservoir and assessed using a scale. To initiate the filtration process, a peristaltic filter pump draws the sample from the reservoir's base and conveys it to the filter unit. Inside the filter unit, molecules smaller than the designated filter cutoff are pushed out as the permeate. The permeate subsequently traverses an in-line conductivity sensor before being collected in a separate container, which is also monitored by a scale. On the other hand, molecules larger than the filter cutoff remain trapped within the filter and are redirected back to the sample reservoir via the retentate conductivity sensor. This continuous cycle repeats throughout the operation. Additionally, if desired, a diafiltration buffer can be connected to the system and introduced into the sample reservoir to facilitate buffer exchange.

    µPULSE - TFF

    Figure 2.2: The uPulse cross flow filtration system employs a well-defined instrument flow path to achieve efficient filtration. To initiate the process, a 50 mL tube is used to contain the sample and the diafiltration buffer, which are carefully positioned on scales. Integrating a microfluidic filter chip with a peristaltic filter pump, the system draws the sample from the sample reservoir and transports it to the filter microchip. Within the filter chip, molecules that are smaller than the specified filter cutoff are propelled out as the permeate. Conversely, molecules larger than the filter cutoff are trapped within the filter and redirected back to the sample reservoir. The permeate, the filtered portion, is collected in a separate container. This cyclic operation continues throughout the filtration process, ensuring continuous separation. Moreover, if desired, a diafiltration buffer can be placed on the diafiltration balance. This allows for the exchange of the solvent in the sample through the process of diafiltration.

Experiment Options

    Instrument Setup

    Instrument

    CrossFlow filtration apparatus that will be used to perform the filtration.
    Default Value: Automatic
    Default Calculation: Automatically set based on the SampleInVolume and number of samples. If multiple samples are specified, and all SampleInVolume is smaller than 200 Milliliter, this option is set to Model[Instrument, CrossFlowFiltration, "µPULSE - TFF"]. If SampleInVolume is larger than 200 Milliliter, this option is set to Model[Instrument, CrossFlowFiltration, "KrosFlo KR2i"]. Note that since the instrument setup is very time-consuming, only one sample is allower if using Model[Instrument, CrossFlowFiltration, "KrosFlo KR2i"] as the Instrument. If using Model[Instrument, CrossFlowFiltration, "µPULSE - TFF"] as the Instrument, ten samples are allowed for each experiment.
    Pattern Description: An object of type or subtype Model[Instrument, CrossFlowFiltration] or Object[Instrument, CrossFlowFiltration]
    Programmatic Pattern: ObjectP[{Model[Instrument, CrossFlowFiltration], Object[Instrument, CrossFlowFiltration]}] | Automatic

    TubingType

    Material of tubes used to transport solutions during the experiment.
    Default Value: Automatic
    Default Calculation: Automatically set to PharmaPure if the Instrument is Model[Instrument,CrossFlowFiltration,"KrosFlo KR2i"].
    Pattern Description: PharmaPure or Null.
    Programmatic Pattern: (PharmaPure | Automatic) | Null

    TransmembranePressureTarget

    Amount of pressure maintained across the filter during the experiment.
    Default Value: Automatic
    Default Calculation: Automatically set to 20 PSI if the Instrument is Model[Instrument,CrossFlowFiltration,"KrosFlo KR2i"].
    Pattern Description: Greater than or equal to 1 poundforce per inch squared and less than or equal to 30 poundsforce per inch squared or Null.
    Programmatic Pattern: (RangeP[1*PSI, 30*PSI] | Automatic) | Null
    Index Matches to: experiment samples

    PrimaryPumpFlowRate

    Volume of feed pumped through the Instrument per minute.
    Default Value: Automatic
    Default Calculation: Automatically set to the DefaultFlowRate in the Model of CrossFlowFilter if the Instrument is Model[Instrument,CrossFlowFiltration,"KrosFlo KR2i"].
    Pattern Description: Greater than or equal to 1 milliliter per minute and less than or equal to 2280 milliliters per minute or Null.
    Programmatic Pattern: (RangeP[1*(Milliliter/Minute), 2280*(Milliliter/Minute)] | Automatic) | Null
    Index Matches to: experiment samples

    SampleReservoir

    Container used to store the sample during the experiment.
    Default Value: Automatic
    Default Calculation: When using Model[Instrument,CrossFlowFiltration,"KrosFlo KR2i"] as the Instrument, automatically set to the smallest Object[Container, Vessel, CrossFlowContainer] that can accommodate the entire sample volume. Otherwise, set based on the container of SamplesIn, if the SamplesIn are contained in containers with a model Model[Container, Vessel, "50mL Tube"], set to the object of those containers, else set to Model[Container, Vessel, "50mL Tube"].
    Pattern Description: An object of type or subtype Model[Container, Vessel, CrossFlowContainer], Object[Container, Vessel, CrossFlowContainer], Model[Container, Vessel], or Object[Container, Vessel] or a prepared sample.
    Programmatic Pattern: (ObjectP[{Model[Container, Vessel, CrossFlowContainer], Object[Container, Vessel, CrossFlowContainer], Model[Container, Vessel], Object[Container, Vessel]}] | _String) | Automatic
    Index Matches to: experiment samples

    General

    Sterile

    Whether the experiment will be performed under aseptic conditions.
    Default Value: Automatic
    Default Calculation: Automatically set to True if the specified filter unit or the sample reservoir is sterile. If both are specified, the experiment will only set to sterile if both are sterile. Otherwise, it will set to the sterility of the sample.
    Pattern Description: True or False.
    Programmatic Pattern: BooleanP | Automatic

    SampleInVolume

    Amount of sample that will be filtered in this experiment.
    Default Value: Automatic
    Default Calculation: Automatically set to the entire volume of the chosen sample or the highest volume the specified system can handle.
    Pattern Description: Greater than or equal to 5 milliliters and less than or equal to 2 liters.
    Programmatic Pattern: RangeP[5*Milliliter, 2*Liter] | Automatic
    Index Matches to: experiment samples

    CrossFlowFilter

    Filter unit used to separate the sample during the experiment.
    Default Value: Automatic
    Default Calculation: Automatically set to a filter unit that has a size cutoff between the two highest molecular weight components of the sample, and can accommodate the entire sample volume. Unless sterile is specified, a non-sterile filter will be selected.
    Pattern Description: An object of type or subtype Model[Item, CrossFlowFilter], Object[Item, CrossFlowFilter], Model[Item, Filter, MicrofluidicChip], or Object[Item, Filter, MicrofluidicChip]
    Programmatic Pattern: ObjectP[{Model[Item, CrossFlowFilter], Object[Item, CrossFlowFilter], Model[Item, Filter, MicrofluidicChip], Object[Item, Filter, MicrofluidicChip]}] | Automatic
    Index Matches to: experiment samples

    SizeCutoff

    Largest diameter or molecular weight of the molecules that can cross the membrane.
    Default Value: Automatic
    Default Calculation: Automatically set to the value that cuts off the component with the highest molecular weight in the sample.
    Pattern Description: 3. kilograms per mole, 3 kilograms per mole, 5. kilograms per mole, 5 kilograms per mole, 10. kilograms per mole, 10 kilograms per mole, 30. kilograms per mole, 30 kilograms per mole, 50. kilograms per mole, 50 kilograms per mole, 100. kilograms per mole, 100 kilograms per mole, 300. kilograms per mole, 300 kilograms per mole, 500. kilograms per mole, 500 kilograms per mole, 0.05 micrometers, or 0.2 micrometers.
    Programmatic Pattern: CrossFlowFilterCutoffP | Automatic
    Index Matches to: experiment samples

    PrimaryConcentrationTarget

    The amount of volume or the factor of volume for the first concentration process of sample that will be removed from the sample to the permeate during concentration.
    Default Value: Automatic
    Default Calculation: Automatically set to 10 if FiltrationMode is Concentration or ConcentrationDiafiltration and. Automatically set to 5 if FiltrationMode is ConcentrationDiafiltrationConcentration and SecondaryConcentrationTarget is not specified. If FiltrationMode is ConcentrationDiafiltrationConcentration SecondaryConcentrationTarget is specified, this option will set to (10/SecondaryConcentrationTarget) to result in a 10-fold concentration across both concentration steps.
    Pattern Description: Concentration Factor or Volume or Weight or Null.
    Programmatic Pattern: ((GreaterEqualP[1] | RangeP[0*Milliliter, 18*Liter] | GreaterEqualP[0*Gram]) | Automatic) | Null
    Index Matches to: experiment samples

    SecondaryConcentrationTarget

    The amount of volume or the factor of volume for the second portion of sample that will be removed from the sample to the permeate during concentration.
    Default Value: Automatic
    Default Calculation: Automatically set based on FiltrationMode and PrimaryConcentrationTarget. When PrimaryConcentrationTarget is not specified, this option is set to 2 if FiltrationMode is ConcentrationDiafiltrationConcentration. If PrimaryConcentrationTarget is specified, this option will set to (10/PrimaryConcentrationTarget) to result in a 10-fold concentration across both concentration steps.
    Pattern Description: Concentration Factor or Volume or Weight or Null.
    Programmatic Pattern: ((GreaterEqualP[1] | RangeP[0*Milliliter, 18*Liter] | GreaterEqualP[0*Gram]) | Automatic) | Null
    Index Matches to: experiment samples

    DiafiltrationBuffer

    The solution in the feed that used for buffer exchange in the Diafiltration process.
    Default Value: Automatic
    Default Calculation: Automatically set to Milli-Q water if FiltrationMode contains Diafiltration, ConcentrationDiafiltration or ConcentrationDiafiltrationConcentration.
    Pattern Description: An object of type or subtype Model[Sample] or Object[Sample] or a prepared sample or Null.
    Programmatic Pattern: ((ObjectP[{Model[Sample], Object[Sample]}] | _String) | Automatic) | Null
    Index Matches to: experiment samples

    Filtration

    FiltrationMode

    The crossflow filtration recipe performed in the experiment. There are 4 modes Concentration,Diafiltration, ConcentrationDiafiltration, ConcentrationDiafiltrationConcentration.
    Default Value: Automatic
    Default Calculation: Automatically resolved based on DiafiltrationTarget, PrimaryConcentrationTarget, and SecondaryConcentrationTarget. If non of these values were specified, set to Concentration
    Pattern Description: Concentration, Diafiltration, ConcentrationDiafiltration, or ConcentrationDiafiltrationConcentration.
    Programmatic Pattern: CrossFlowFiltrationModeP | Automatic
    Index Matches to: experiment samples

    DiafiltrationTarget

    The amount of DiafiltrationBuffer for Diafiltration, ConcentrationDiafiltration and ConcentrationDiafiltrationConcentration mode. This option can be specified as "Fold", "Volume" and "Weight". If specified as "Volume" and "Weight", the exact amount (in volume or mass) of DiafiltrationBuffer is used. If specified as "Fold" and FiltrationMode is Diafiltration, the experiment uses Fold * SampleInVolume for DiafiltrationBuffer. If specified as "Fold" and FiltrationMode is ConcentrationDiafiltration or ConcentrationDiafiltrationConcentration, the experiment uses Fold * (SampleInVolume - PrimaryConcentrationTarget) if PrimaryConcentrationTarget is specified as Volume, or Fold * (SampleInVolume / PrimaryConcentrationTarget) if PrimaryConcentrationTarget is specified as a Concentration Factor for DiafiltrationBuffer. For example, given {DiafiltrationTarget -> 5, FiltrationMode -> Diafiltration, SampleInVolume is 6 Milliliter}, the DiafiltrationBuffer volume is (5 * 6 =) 30 Milliliter; given {DiafiltrationTarget -> 5, FiltrationMode -> ConcentrationDiafiltration, SampleInVolume is 6 Milliliter, PrimaryConcentrationTarget -> 2 Milliliter}, the DiafiltrationBuffer volume is (5 * (6 - 2) =) 20 Milliliter; given {DiafiltrationTarget -> 5, FiltrationMode -> Diafiltration, SampleInVolume is 6 Milliliter, PrimaryConcentrationTarget -> 2}, the DiafiltrationBuffer volume is (5 * (6 / 2) =) 15 Milliliter.
    Default Value: Automatic
    Default Calculation: Automatically set 5 if FiltrationMode is Diafiltration, ConcentrationDiafiltration or ConcentrationDiafiltrationConcentration.
    Pattern Description: Fold or Volume or Weight or Null.
    Programmatic Pattern: ((GreaterP[1] | RangeP[1*Milliliter, 18*Liter] | GreaterP[1*Gram]) | Automatic) | Null
    Index Matches to: experiment samples

    DiafiltrationMode

    The mode to diafiltrate the sample, In Discrete mode, the sample will be diafiltrated in a certain number of steps determined by DiafiltrationExchangeCount. Meanwhile, Continuous mode will diafiltrate continuously using a step size of 2 mL. This is an unique option when the Instrument is set to Model[Instrument, CrossFlowFiltration, "µPULSE - TFF"].
    Default Value: Automatic
    Default Calculation: Automatically set to Continuous if Instrument is set to Model[Instrument, CrossFlowFiltration, "µPULSE - TFF"].
    Pattern Description: Continuous or Discrete or Null.
    Programmatic Pattern: (CrossFlowFiltrationDiafiltrationModeP | Automatic) | Null
    Index Matches to: experiment samples

    DeadVolumeRecoveryMode

    The Model[Instrument, CrossFlowFiltration, "µPULSE - TFF"] is equipped with a liquid recovery mode that operates after filtration is complete. This mode has three settings: Air, Buffer, and Null. In Air mode, the instrument flushes the filter with air to recover the trapped sample. In Buffer mode, the instrument flushes the filter with a small amount of buffer to recover the sample. In Null mode, the instrument does not recover the sample. This option is exclusive to Model[Instrument, CrossFlowFiltration, "µPULSE - TFF"].
    Default Value: Automatic
    Default Calculation: Automatically set to Continuous if Instrument is set to Model[Instrument, CrossFlowFiltration, "µPULSE - TFF"].
    Pattern Description: Air or Buffer or Null.
    Programmatic Pattern: (CrossFlowFiltrationDeadVolumeRecoveryModeP | Automatic) | Null
    Index Matches to: experiment samples

    Output

    PermeateAliquotVolume

    Amount of permeate solution that is transferred into a new container after the experiment. Note that the balance of the instrument have the limit
    Default Value: All
    Pattern Description: All or greater than or equal to 1 milliliter and less than or equal to 20 liters.
    Programmatic Pattern: RangeP[1*Milliliter, $MaxTransferVolume] | All
    Index Matches to: experiment samples

    PermeateContainerOut

    Containers the permeate will be transferred into after the experiment.
    Default Value: Automatic
    Default Calculation: Automatically set based on estimated permeation volume and PermeateStorageCondition if PermeateAliquotVolume is All, otherwise set to PreferredContainer[PermeateAliquotVolume].
    Pattern Description: An object of type or subtype Model[Container, Vessel] or Object[Container, Vessel] or a prepared sample.
    Programmatic Pattern: (ObjectP[{Model[Container, Vessel], Object[Container, Vessel]}] | _String) | Automatic
    Index Matches to: experiment samples

    PermeateStorageCondition

    How the permeate solution will be stored after the experiment.
    Default Value: Automatic
    Default Calculation: Automatically set to the StorageCondition in the Object of sample if it's not Null, otherwise set to Refrigerator.
    Pattern Description: {AmbientStorage, EnclosedAmbientStorage, Refrigerator, Freezer, DeepFreezer, CryogenicStorage, YeastIncubation, YeastShakingIncubation, BacterialIncubation, BacterialShakingIncubation, MammalianIncubation, ViralIncubation, CrystalIncubation, AcceleratedTesting, IntermediateTesting, LongTermTesting, UVVisLightTesting} or Disposal.
    Programmatic Pattern: (SampleStorageTypeP | Disposal) | Automatic
    Index Matches to: experiment samples

    DiafiltrationExchangeCount

    The number of steps during diafiltration process. For example, if you exchange 30 mL of buffer when DiafiltrationExchangeCount is set to 3 and start the buffer exchange at 20 mL, the sample will concentrated to 20 mL and then add 10 mL of buffer and concentrate back to 20 mL in 3 x 10 mL steps.
    Default Value: Automatic
    Default Calculation: Automatically set to 3 if DiafiltrationMode is Discrete.
    Pattern Description: Greater than or equal to 1 in increments of 1 or Null.
    Programmatic Pattern: ((Alternatives[GreaterEqualP[1, 1]]) | Automatic) | Null
    Index Matches to: experiment samples

    RetentateContainerOut

    Container that retentate is transferred into after the experiment. Note if using Model[Instrument,CrossFlowFiltration,"KrosFlo KR2i"] as the Instrument, this option cannot be set to Null (the Retentate sample must be transferred into a new container after the experiment).
    Default Value: Automatic
    Default Calculation: When using Model[Instrument,CrossFlowFiltration,"KrosFlo KR2i"] as the Instrument, automatically set to PreferredContainer[SampleInVolume] if RetentateAliquotVolume is All, otherwise set to PreferredContainer[RetentateAliquotVolume].
    Pattern Description: An object of type or subtype Model[Container, Vessel] or Object[Container, Vessel] or a prepared sample or Null.
    Programmatic Pattern: ((ObjectP[{Model[Container, Vessel], Object[Container, Vessel]}] | _String) | Automatic) | Null
    Index Matches to: experiment samples

    RetentateAliquotVolume

    Amount of retentate solution that is transferred into a new container after the experiment. Note if using Model[Instrument,CrossFlowFiltration,"KrosFlo KR2i"] as the Instrument, this option cannot be set to Null.
    Default Value: Automatic
    Default Calculation: When using Model[Instrument,CrossFlowFiltration,"KrosFlo KR2i"] as the Instrument, automatically set to All is SampleInVolume is smaller than $MaxTransferVolume, otherwise set to $MaxTransferVolume.
    Pattern Description: All or greater than or equal to 1 milliliter or Null.
    Programmatic Pattern: ((GreaterEqualP[1*Milliliter] | All) | Automatic) | Null
    Index Matches to: experiment samples

    RetentateStorageCondition

    How the RetentateContainerOut will be kept after the experiment. If you're using KR2i as the instrument, the sample should be transferred into a new RetentateContainerOut, and this option determines where the filtered samples will be stored. On the other hand, if you're using uPulse as the instrument, the SamplesIn won't be transferred into RetentateContainerOut automatically. Therefore, this option only determines the storage location for filtered samples when RetentateContainerOut is specified.
    Default Value: Automatic
    Default Calculation: Automatically set to the StorageCondition in the Object of sample if it's not Null, otherwise set to Refrigerator.
    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: ((SampleStorageTypeP | Disposal) | Automatic) | Null
    Index Matches to: experiment samples

    FilterStorageCondition

    How the filter will be kept after the experiment.
    Default Value: Automatic
    Default Calculation: Automatically set to Disposal if if the Instrument is Model[Instrument,CrossFlowFiltration,"KrosFlo KR2i"], else set to AmbientStorage.
    Pattern Description: {AmbientStorage, EnclosedAmbientStorage, Refrigerator, Freezer, DeepFreezer, CryogenicStorage, YeastIncubation, YeastShakingIncubation, BacterialIncubation, BacterialShakingIncubation, MammalianIncubation, ViralIncubation, CrystalIncubation, AcceleratedTesting, IntermediateTesting, LongTermTesting, UVVisLightTesting} or Disposal.
    Programmatic Pattern: (SampleStorageTypeP | Disposal) | Automatic
    Index Matches to: experiment samples

    Priming

    FilterPrime

    Whether the CrossFlowFilter and the Instrument will be wet and rinsed before the experiment.
    Default Value: True
    Pattern Description: True or False.
    Programmatic Pattern: BooleanP

    FilterPrimeBuffer

    Solution used to wet and rinsed the CrossFlowFilter and the Instrument.
    Default Value: Automatic
    Default Calculation: If FilterPrime is True, automatically set based on the MembraneMaterial and ModuleFamily fields in the Model of CrossFlowFilter. If MembraneMaterial is Polysulfone and ModuleFamily is either MicroKros, MidiKros, MidiKrosTC or MiniKrosSampler, this option is set to Model[Sample,StockSolution,"20% Ethanol"], otherwise set to Model[Sample,"Milli-Q water"].
    Pattern Description: An object of type or subtype Model[Sample] or Object[Sample] or a prepared sample or Null.
    Programmatic Pattern: ((ObjectP[{Model[Sample], Object[Sample]}] | _String) | Automatic) | Null

    FilterPrimeVolume

    Volume of solution that is used to prime the Instrument, about half of which is expected to pass through the filter.
    Default Value: Automatic
    Default Calculation: If FilterPrime is True, automatically set based on the MembraneMaterial and FilterSurfaceArea fields in the Model of CrossFlowFilter. When MembraneMaterial is Polysulfone, this option is set to 500 Milliliter if the FilterSurfaceArea is greater or equal to 250 square centimeter or set to 2 * FilterSurfaceArea Milliliter. When MembraneMaterial is not Polysulfone, this option is set to 500 Milliliter if the FilterSurfaceArea is greater or equal to 500 square centimeter or set to (1 * FilterSurfaceArea) Milliliter.
    Pattern Description: Greater than or equal to 1 milliliter and less than or equal to 500 milliliters or Null.
    Programmatic Pattern: (RangeP[1*Milliliter, 500*Milliliter] | Automatic) | Null

    FilterPrimeRinse

    Whether the CrossFlowFilter and the Instrument will be rinsed by one additional buffer solution after the filter priming.
    Default Value: Automatic
    Default Calculation: If FilterPrime is True, automatically set to True if FilterPrimeBuffer is not water Model[Sample, "Milli-Q water"].
    Pattern Description: True or False or Null.
    Programmatic Pattern: (BooleanP | Automatic) | Null

    FilterPrimeRinseBuffer

    Solution used to rinse the membrane after priming.
    Default Value: Automatic
    Default Calculation: If FilterPrime is True, automatically set to the first DiafiltrationBuffer if specified, otherwise resolves to Model[Sample, "Milli-Q water"].
    Pattern Description: An object of type or subtype Model[Sample] or Object[Sample] or a prepared sample or Null.
    Programmatic Pattern: ((ObjectP[{Model[Sample], Object[Sample]}] | _String) | Automatic) | Null

    FilterPrimeFlowRate

    Volume of priming buffer pumped through the Instrument per minute.
    Default Value: Automatic
    Default Calculation: When usingModel[Instrument,CrossFlowFiltration,"KrosFlo KR2i"] as the Instrument, if FilterPrime is True, automatically set to DefaultFlowRate field in the Model of CrossFlowFilter.
    Pattern Description: Greater than or equal to 1 milliliter per minute and less than or equal to 2280 milliliters per minute or Null.
    Programmatic Pattern: (RangeP[1*(Milliliter/Minute), 2280*(Milliliter/Minute)] | Automatic) | Null

    FilterPrimeTransmembranePressureTarget

    Amount of pressure maintained across the filter during the filter prime step.
    Default Value: Automatic
    Default Calculation: When usingModel[Instrument,CrossFlowFiltration,"KrosFlo KR2i"] as the Instrument, if FilterPrime is True, automatically set to 10 PSI.
    Pattern Description: Greater than or equal to 1 poundforce per inch squared and less than or equal to 20 poundsforce per inch squared or Null.
    Programmatic Pattern: (RangeP[1*PSI, 20*PSI] | Automatic) | Null

    Flushing

    FilterFlush

    Whether the CrossFlowFilter and the Instrument will be flushed after the experiment.
    Default Value: Automatic
    Default Calculation: Automatically set to True if FilterStorageCondition is not Disposal.
    Pattern Description: True or False.
    Programmatic Pattern: BooleanP | Automatic

    FilterFlushBuffer

    Solution used to flush the CrossFlowFilter and the Instrument after the experiment.
    Default Value: Automatic
    Default Calculation: If FilterFlush is True, automatically set to Model[Sample, "Milli-Q water"] if FilterFlush is True.
    Pattern Description: An object of type or subtype Model[Sample] or Object[Sample] or a prepared sample or Null.
    Programmatic Pattern: ((ObjectP[{Model[Sample], Object[Sample]}] | _String) | Automatic) | Null

    FilterFlushVolume

    Volume of solution that is pumped into the Instrument to flush the CrossFlowFilter, about half of which is expected to pass through the filter.
    Default Value: Automatic
    Default Calculation: If FilterFlush is True, automatically set based on the FilterSurfaceArea filed in the Model of CrossFlowFilter. This option is set to 500 Milliliter if the FilterSurfaceArea is greater or equal to 250 square centimeter or set to 2 * FilterSurfaceAre Milliliter.
    Pattern Description: Greater than or equal to 1 milliliter and less than or equal to 500 milliliters or Null.
    Programmatic Pattern: (RangeP[1*Milliliter, 500*Milliliter] | Automatic) | Null

    FilterFlushRinse

    Whether there will be a water wash step after the filter flush.
    Default Value: Automatic
    Default Calculation: If FilterFlush is True, automatically set to True if FilterFlushBuffer is not Model[Sample, "Milli-Q water"] and FilterFlush is True.
    Pattern Description: True or False or Null.
    Programmatic Pattern: (BooleanP | Automatic) | Null

    FilterFlushFlowRate

    Volume of flushing buffer pumped through the system per minute.
    Default Value: Automatic
    Default Calculation: When usingModel[Instrument,CrossFlowFiltration,"KrosFlo KR2i"] as the Instrument, if FilterFlush is True, automatically set to DefaultFlowRate field in the Model of CrossFlowFilter..
    Pattern Description: Greater than or equal to 1 milliliter per minute and less than or equal to 2280 milliliters per minute or Null.
    Programmatic Pattern: (RangeP[1*(Milliliter/Minute), 2280*(Milliliter/Minute)] | Automatic) | Null

    FilterFlushTransmembranePressureTarget

    Amount of pressure maintained across the filter during the filter flush step.
    Default Value: Automatic
    Default Calculation: When usingModel[Instrument,CrossFlowFiltration,"KrosFlo KR2i"] as the Instrument, if FilterFlush is True, automatically set to 10 PSI.
    Pattern Description: Greater than or equal to 1 poundforce per inch squared and less than or equal to 20 poundsforce per inch squared or Null.
    Programmatic Pattern: (RangeP[1*PSI, 20*PSI] | Automatic) | Null

    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

Sample Prep Options

    Sample Preparation

    PreparatoryUnitOperations

    Specifies a sequence of transferring, aliquoting, consolidating, or mixing of new or existing samples before the main experiment. These prepared samples can be used in the main experiment by referencing their defined name. For more information, please reference the documentation for ExperimentSamplePreparation.
    Default Value: Null
    Pattern Description: List of one or more unit Operation ManualSamplePreparation or RoboticSamplePreparation or unit Operation must match SamplePreparationP entries or Null.
    Programmatic Pattern: {((ManualSamplePreparationMethodP | RoboticSamplePreparationMethodP) | SamplePreparationP)..} | Null

    Preparatory Incubation

    Incubate

    Indicates if the SamplesIn should be incubated at a fixed temperature prior to starting the experiment or any aliquoting. Sample Preparation occurs in the order of Incubation, Centrifugation, Filtration, and then Aliquoting (if specified).
    Default Value: Automatic
    Default Calculation: Resolves to True if any of the corresponding Incubation options are set. Otherwise, resolves to False.
    Pattern Description: True or False.
    Programmatic Pattern: BooleanP | Automatic
    Index Matches to: experiment samples

    IncubationTemperature

    Temperature at which the SamplesIn should be incubated for the duration of the IncubationTime prior to starting the experiment.
    Default Value: Automatic
    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: ((Ambient | RangeP[$MinIncubationTemperature, $MaxIncubationTemperature]) | Automatic) | Null
    Index Matches to: experiment samples

    IncubationTime

    Duration for which SamplesIn should be incubated at the IncubationTemperature, prior to starting the experiment.
    Default Value: Automatic
    Pattern Description: Greater than or equal to 1 minute and less than or equal to 72 hours or Null.
    Programmatic Pattern: (RangeP[1*Minute, $MaxExperimentTime] | Automatic) | Null
    Index Matches to: experiment samples

    Mix

    Indicates if this sample should be mixed while incubated, prior to starting the experiment.
    Default Value: Automatic
    Default Calculation: Automatically resolves to True if any Mix related options are set. Otherwise, resolves to False.
    Pattern Description: True or False or Null.
    Programmatic Pattern: (BooleanP | Automatic) | Null
    Index Matches to: experiment samples

    MixType

    Indicates the style of motion used to mix the sample, prior to starting the experiment.
    Default Value: Automatic
    Default Calculation: Automatically resolves based on the container of the sample and the Mix option.
    Pattern Description: Roll, Vortex, Sonicate, Pipette, Invert, Stir, Shake, Homogenize, Swirl, Disrupt, or Nutate or Null.
    Programmatic Pattern: (MixTypeP | Automatic) | Null
    Index Matches to: experiment samples

    MixUntilDissolved

    Indicates if the mix should be continued up to the MaxIncubationTime or MaxNumberOfMixes (chosen according to the mix Type), in an attempt dissolve any solute. Any mixing/incubation will occur prior to starting the experiment.
    Default Value: Automatic
    Default Calculation: Automatically resolves to True if MaxIncubationTime or MaxNumberOfMixes is set.
    Pattern Description: True or False or Null.
    Programmatic Pattern: (BooleanP | Automatic) | Null
    Index Matches to: experiment samples

    MaxIncubationTime

    Maximum duration of time for which the samples will be mixed while incubated in an attempt to dissolve any solute, if the MixUntilDissolved option is chosen. This occurs prior to starting the experiment.
    Default Value: Automatic
    Default Calculation: Automatically resolves based on MixType, MixUntilDissolved, and the container of the given sample.
    Pattern Description: Greater than or equal to 1 minute and less than or equal to 72 hours or Null.
    Programmatic Pattern: (RangeP[1*Minute, $MaxExperimentTime] | Automatic) | Null
    Index Matches to: experiment samples

    IncubationInstrument

    The instrument used to perform the Mix and/or Incubation, prior to starting the experiment.
    Default Value: Automatic
    Default Calculation: Automatically resolves based on the options Mix, Temperature, MixType and container of the sample.
    Pattern Description: An object of type or subtype Model[Instrument, Roller], Model[Instrument, OverheadStirrer], Model[Instrument, Vortex], Model[Instrument, Shaker], Model[Instrument, BottleRoller], Model[Instrument, Roller], Model[Instrument, Sonicator], Model[Instrument, HeatBlock], Model[Instrument, Homogenizer], Model[Instrument, Disruptor], Model[Instrument, Nutator], Model[Instrument, Thermocycler], Model[Instrument, EnvironmentalChamber], Model[Instrument, Pipette], Object[Instrument, Roller], Object[Instrument, OverheadStirrer], Object[Instrument, Vortex], Object[Instrument, Shaker], Object[Instrument, BottleRoller], Object[Instrument, Roller], Object[Instrument, Sonicator], Object[Instrument, HeatBlock], Object[Instrument, Homogenizer], Object[Instrument, Disruptor], Object[Instrument, Nutator], Object[Instrument, Thermocycler], Object[Instrument, EnvironmentalChamber], or Object[Instrument, Pipette] or Null.
    Programmatic Pattern: (ObjectP[Join[MixInstrumentModels, MixInstrumentObjects]] | Automatic) | Null
    Index Matches to: experiment samples

    AnnealingTime

    Minimum duration for which the SamplesIn should remain in the incubator allowing the system to settle to room temperature after the IncubationTime has passed but prior to starting the experiment.
    Default Value: Automatic
    Pattern Description: Greater than or equal to 0 minutes and less than or equal to 72 hours or Null.
    Programmatic Pattern: (RangeP[0*Minute, $MaxExperimentTime] | Automatic) | Null
    Index Matches to: experiment samples

    IncubateAliquotContainer

    The desired type of container that should be used to prepare and house the incubation samples which should be used in lieu of the SamplesIn for the experiment.
    Default Value: Automatic
    Pattern Description: An object of type or subtype Model[Container] or {Index, Container} or Null.
    Programmatic Pattern: ((ObjectP[Model[Container]] | {GreaterEqualP[1, 1] | (Automatic | Null), (ObjectP[{Model[Container], Object[Container]}] | _String) | Automatic}) | Automatic) | Null
    Index Matches to: experiment samples

    IncubateAliquotDestinationWell

    The desired position in the corresponding IncubateAliquotContainer in which the aliquot samples will be placed.
    Default Value: Automatic
    Default Calculation: Automatically resolves 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 or Null.
    Programmatic Pattern: (WellPositionP | Automatic) | Null
    Index Matches to: experiment samples

    IncubateAliquot

    The amount of each sample that should be transferred from the SamplesIn into the IncubateAliquotContainer when performing an aliquot before incubation.
    Default Value: Automatic
    Default Calculation: Automatically set as the smaller between the current sample volume and the maximum volume of the destination container.
    Pattern Description: All or greater than or equal to 1 microliter and less than or equal to 20 liters or Null.
    Programmatic Pattern: ((RangeP[1*Microliter, 20*Liter] | All) | Automatic) | Null
    Index Matches to: experiment samples

    Preparatory Centrifugation

    Centrifuge

    Indicates if the SamplesIn should be centrifuged prior to starting the experiment or any aliquoting. Sample Preparation occurs in the order of Incubation, Centrifugation, Filtration, and then Aliquoting (if specified).
    Default Value: Automatic
    Default Calculation: Resolves to True if any of the corresponding Centrifuge options are set. Otherwise, resolves to False.
    Pattern Description: True or False.
    Programmatic Pattern: BooleanP | Automatic
    Index Matches to: experiment samples

    CentrifugeInstrument

    The centrifuge that will be used to spin the provided samples prior to starting the experiment.
    Default Value: Automatic
    Pattern Description: An object of type or subtype Model[Instrument, Centrifuge] or Object[Instrument, Centrifuge] or Null.
    Programmatic Pattern: (ObjectP[{Model[Instrument, Centrifuge], Object[Instrument, Centrifuge]}] | Automatic) | Null
    Index Matches to: experiment samples

    CentrifugeIntensity

    The rotational speed or the force that will be applied to the samples by centrifugation prior to starting the experiment.
    Default Value: Automatic
    Pattern Description: Greater than 0 revolutions per minute or greater than 0 standard accelerations due to gravity on the surface of the earth or Null.
    Programmatic Pattern: ((GreaterP[0*RPM] | GreaterP[0*GravitationalAcceleration]) | Automatic) | Null
    Index Matches to: experiment samples

    CentrifugeTime

    The amount of time for which the SamplesIn should be centrifuged prior to starting the experiment.
    Default Value: Automatic
    Pattern Description: Greater than 0 minutes or Null.
    Programmatic Pattern: (GreaterP[0*Minute] | Automatic) | Null
    Index Matches to: experiment samples

    CentrifugeTemperature

    The temperature at which the centrifuge chamber should be held while the samples are being centrifuged prior to starting the experiment.
    Default Value: Automatic
    Pattern Description: Ambient or greater than or equal to -10 degrees Celsius and less than or equal to 40 degrees Celsius or Null.
    Programmatic Pattern: ((Ambient | RangeP[-10*Celsius, 40*Celsius]) | Automatic) | Null
    Index Matches to: experiment samples

    CentrifugeAliquotContainer

    The desired type of container that should be used to prepare and house the centrifuge samples which should be used in lieu of the SamplesIn for the experiment.
    Default Value: Automatic
    Pattern Description: An object of type or subtype Model[Container] or {Index, Container} or Null.
    Programmatic Pattern: ((ObjectP[Model[Container]] | {GreaterEqualP[1, 1] | (Automatic | Null), (ObjectP[{Model[Container], Object[Container]}] | _String) | Automatic}) | Automatic) | Null
    Index Matches to: experiment samples

    CentrifugeAliquotDestinationWell

    The desired position in the corresponding AliquotContainer in which the aliquot samples will be placed.
    Default Value: Automatic
    Default Calculation: Automatically resolves 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 or Null.
    Programmatic Pattern: (WellPositionP | Automatic) | Null
    Index Matches to: experiment samples

    CentrifugeAliquot

    The amount of each sample that should be transferred from the SamplesIn into the CentrifugeAliquotContainer when performing an aliquot before centrifugation.
    Default Value: Automatic
    Default Calculation: Automatically set as the smaller between the current sample volume and the maximum volume of the destination container.
    Pattern Description: All or greater than or equal to 1 microliter and less than or equal to 20 liters or Null.
    Programmatic Pattern: ((RangeP[1*Microliter, 20*Liter] | All) | Automatic) | Null
    Index Matches to: experiment samples

    Preparatory Filtering

    Filtration

    Indicates if the SamplesIn should be filter prior to starting the experiment or any aliquoting. Sample Preparation occurs in the order of Incubation, Centrifugation, Filtration, and then Aliquoting (if specified).
    Default Value: Automatic
    Default Calculation: Resolves to True if any of the corresponding Filter options are set. Otherwise, resolves to False.
    Pattern Description: True or False.
    Programmatic Pattern: BooleanP | Automatic
    Index Matches to: experiment samples

    FiltrationType

    The type of filtration method that should be used to perform the filtration.
    Default Value: Automatic
    Default Calculation: Will automatically resolve to a filtration type appropriate for the volume of sample being filtered.
    Pattern Description: PeristalticPump, Centrifuge, Vacuum, Syringe, or AirPressure or Null.
    Programmatic Pattern: (FiltrationTypeP | Automatic) | Null
    Index Matches to: experiment samples

    FilterInstrument

    The instrument that should be used to perform the filtration.
    Default Value: Automatic
    Default Calculation: Will automatically resolved to an instrument appropriate for the filtration type.
    Pattern Description: An object of type or subtype Model[Instrument, FilterBlock], Object[Instrument, FilterBlock], Model[Instrument, PeristalticPump], Object[Instrument, PeristalticPump], Model[Instrument, VacuumPump], Object[Instrument, VacuumPump], Model[Instrument, Centrifuge], Object[Instrument, Centrifuge], Model[Instrument, SyringePump], or Object[Instrument, SyringePump] or Null.
    Programmatic Pattern: (ObjectP[{Model[Instrument, FilterBlock], Object[Instrument, FilterBlock], Model[Instrument, PeristalticPump], Object[Instrument, PeristalticPump], Model[Instrument, VacuumPump], Object[Instrument, VacuumPump], Model[Instrument, Centrifuge], Object[Instrument, Centrifuge], Model[Instrument, SyringePump], Object[Instrument, SyringePump]}] | Automatic) | Null
    Index Matches to: experiment samples

    Filter

    The filter that should be used to remove impurities from the SamplesIn prior to starting the experiment.
    Default Value: Automatic
    Default Calculation: Will automatically resolve to a filter appropriate for the filtration type and instrument.
    Pattern Description: An object of type or subtype Model[Container, Plate, Filter], Model[Container, Vessel, Filter], or Model[Item, Filter] or Null.
    Programmatic Pattern: (ObjectP[{Model[Container, Plate, Filter], Model[Container, Vessel, Filter], Model[Item, Filter]}] | Automatic) | Null
    Index Matches to: experiment samples

    FilterMaterial

    The membrane material of the filter that should be used to remove impurities from the SamplesIn prior to starting the experiment.
    Default Value: Automatic
    Default Calculation: Resolves to an appropriate filter material for the given sample is Filtration is set to True.
    Pattern Description: Cellulose, Cotton, Polyethylene, Polypropylene, PTFE, Nylon, PES, PLUS, PVDF, GlassFiber, GHP, UHMWPE, EPDM, DuraporePVDF, GxF, ZebaDesaltingResin, NickelResin, AgaroseResin, CobaltResin, Silica, HLB, or AnoporeAlumina or Null.
    Programmatic Pattern: (FilterMembraneMaterialP | Automatic) | Null
    Index Matches to: experiment samples

    PrefilterMaterial

    The material from which the prefilter filtration membrane should be made of to remove impurities from the SamplesIn prior to starting the experiment.
    Default Value: Automatic
    Default Calculation: By default, no prefiltration is performed on samples, even when Filter->True.
    Pattern Description: Cellulose, Cotton, Polyethylene, Polypropylene, PTFE, Nylon, PES, PLUS, PVDF, GlassFiber, GHP, UHMWPE, EPDM, DuraporePVDF, GxF, ZebaDesaltingResin, NickelResin, AgaroseResin, CobaltResin, Silica, HLB, or AnoporeAlumina or Null.
    Programmatic Pattern: (FilterMembraneMaterialP | Automatic) | Null
    Index Matches to: experiment samples

    FilterPoreSize

    The pore size of the filter that should be used when removing impurities from the SamplesIn prior to starting the experiment.
    Default Value: Automatic
    Default Calculation: Resolves to an appropriate filter pore size for the given sample is Filtration is set to True.
    Pattern Description: 0.008 micrometers, 0.02 micrometers, 0.1 micrometers, 0.2 micrometers, 0.22 micrometers, 0.45 micrometers, 1. micrometer, 1.1 micrometers, 2.5 micrometers, 6. micrometers, 20. micrometers, 30. micrometers, or 100. micrometers or Null.
    Programmatic Pattern: (FilterSizeP | Automatic) | Null
    Index Matches to: experiment samples

    PrefilterPoreSize

    The pore size of the filter; all particles larger than this should be removed during the filtration.
    Default Value: Automatic
    Default Calculation: By default, no prefiltration is performed on samples, even when Filter->True.
    Pattern Description: 0.008 micrometers, 0.02 micrometers, 0.1 micrometers, 0.2 micrometers, 0.22 micrometers, 0.45 micrometers, 1. micrometer, 1.1 micrometers, 2.5 micrometers, 6. micrometers, 20. micrometers, 30. micrometers, or 100. micrometers or Null.
    Programmatic Pattern: (FilterSizeP | Automatic) | Null
    Index Matches to: experiment samples

    FilterSyringe

    The syringe used to force that sample through a filter.
    Default Value: Automatic
    Default Calculation: Resolves to an syringe appropriate to the volume of sample being filtered, if Filtration is set to True.
    Pattern Description: An object of type or subtype Model[Container, Syringe] or Object[Container, Syringe] or a prepared sample or Null.
    Programmatic Pattern: ((ObjectP[{Model[Container, Syringe], Object[Container, Syringe]}] | _String) | Automatic) | Null
    Index Matches to: experiment samples

    FilterHousing

    The filter housing that should be used to hold the filter membrane when filtration is performed using a standalone filter membrane.
    Default Value: Automatic
    Default Calculation: Resolve to an housing capable of holding the size of the membrane being used, if filter with Membrane FilterType is being used and Filtration is set to True.
    Pattern Description: An object of type or subtype Model[Instrument, FilterHousing], Object[Instrument, FilterHousing], Model[Instrument, FilterBlock], or Object[Instrument, FilterBlock] or Null.
    Programmatic Pattern: (ObjectP[{Model[Instrument, FilterHousing], Object[Instrument, FilterHousing], Model[Instrument, FilterBlock], Object[Instrument, FilterBlock]}] | Automatic) | Null
    Index Matches to: experiment samples

    FilterIntensity

    The rotational speed or force at which the samples will be centrifuged during filtration.
    Default Value: Automatic
    Default Calculation: Will automatically resolve to 2000 GravitationalAcceleration if FiltrationType is Centrifuge and Filtration is True.
    Pattern Description: Greater than 0 revolutions per minute or greater than 0 standard accelerations due to gravity on the surface of the earth or Null.
    Programmatic Pattern: ((GreaterP[0*RPM] | GreaterP[0*GravitationalAcceleration]) | Automatic) | Null
    Index Matches to: experiment samples

    FilterTime

    The amount of time for which the samples will be centrifuged during filtration.
    Default Value: Automatic
    Default Calculation: Will automatically resolve to 5 Minute if FiltrationType is Centrifuge and Filtration is True.
    Pattern Description: Greater than 0 minutes or Null.
    Programmatic Pattern: (GreaterP[0*Minute] | Automatic) | Null
    Index Matches to: experiment samples

    FilterTemperature

    The temperature at which the centrifuge chamber will be held while the samples are being centrifuged during filtration.
    Default Value: Automatic
    Default Calculation: Will automatically resolve to 22 Celsius if FiltrationType is Centrifuge and Filtration is True.
    Pattern Description: Greater than or equal to 4 degrees Celsius or Null.
    Programmatic Pattern: ((Alternatives[GreaterEqualP[4*Celsius]]) | Automatic) | Null
    Index Matches to: experiment samples

    FilterContainerOut

    The desired container filtered samples should be produced in or transferred into by the end of filtration, with indices indicating grouping of samples in the same plates, if desired.
    Default Value: Automatic
    Default Calculation: Automatically set as the PreferredContainer for the Volume of the sample. For plates, attempts to fill all wells of a single plate with the same model before using another one.
    Pattern Description: An object of type or subtype Model[Container] or Object[Container] or a prepared sample or {Index, Container} or Null.
    Programmatic Pattern: (((ObjectP[{Model[Container], Object[Container]}] | _String) | {GreaterEqualP[1, 1] | Automatic, (ObjectP[{Model[Container], Object[Container]}] | _String) | Automatic}) | Automatic) | Null
    Index Matches to: experiment samples

    FilterAliquotDestinationWell

    The desired position in the corresponding AliquotContainer in which the aliquot samples will be placed.
    Default Value: Automatic
    Default Calculation: Automatically resolves 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 or Null.
    Programmatic Pattern: (WellPositionP | Automatic) | Null
    Index Matches to: experiment samples

    FilterAliquotContainer

    The desired type of container that should be used to prepare and house the filter samples which should be used in lieu of the SamplesIn for the experiment.
    Default Value: Automatic
    Pattern Description: An object of type or subtype Model[Container] or {Index, Container} or Null.
    Programmatic Pattern: ((ObjectP[Model[Container]] | {GreaterEqualP[1, 1] | (Automatic | Null), (ObjectP[{Model[Container], Object[Container]}] | _String) | Automatic}) | Automatic) | Null
    Index Matches to: experiment samples

    FilterAliquot

    The amount of each sample that should be transferred from the SamplesIn into the FilterAliquotContainer when performing an aliquot before filtration.
    Default Value: Automatic
    Default Calculation: Automatically set as the smaller between the current sample volume and the maximum volume of the destination container.
    Pattern Description: All or greater than or equal to 1 microliter and less than or equal to 20 liters or Null.
    Programmatic Pattern: ((RangeP[1*Microliter, 20*Liter] | All) | Automatic) | Null
    Index Matches to: experiment samples

    FilterSterile

    Indicates if the filtration of the samples should be done in a sterile environment.
    Default Value: Automatic
    Default Calculation: Resolve to False if Filtration is indicated. If sterile filtration is desired, this option must manually be set to True.
    Pattern Description: True or False or Null.
    Programmatic Pattern: (BooleanP | Automatic) | Null
    Index Matches to: experiment samples

    Aliquoting

    Aliquot

    Indicates if aliquots should be taken from the SamplesIn and transferred into new AliquotSamples used in lieu of the SamplesIn for the experiment. Note that if NumberOfReplicates is specified this indicates that the input samples will also be aliquoted that number of times. Note that Aliquoting (if specified) occurs after any Sample Preparation (if specified).
    Default Value: Automatic
    Pattern Description: True or False.
    Programmatic Pattern: BooleanP | Automatic
    Index Matches to: experiment samples

    AliquotAmount

    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[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

    TargetConcentration

    The desired final concentration of analyte in the AliquotSamples after dilution of aliquots of SamplesIn with the ConcentratedBuffer and BufferDiluent which should be used in lieu of the SamplesIn for the experiment.
    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

    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

    AssayVolume

    The desired total volume of the aliquoted sample plus dilution buffer.
    Default Value: Automatic
    Default Calculation: Automatically determined based on Volume 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

    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 AliquotAmount and the total AssayVolume.
    Default Value: Automatic
    Pattern Description: An object of type or subtype Model[Sample] or Object[Sample] or a prepared sample or Null.
    Programmatic Pattern: ((ObjectP[{Model[Sample], Object[Sample]}] | _String) | Automatic) | 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 AliquotAmount 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 AliquotAmount and the total AssayVolume.
    Default Value: Automatic
    Default Calculation: Automatically resolves to Model[Sample, "Milli-Q water"] if ConcentratedBuffer is specified; otherwise, resolves to Null.
    Pattern Description: An object of type or subtype Model[Sample] or Object[Sample] or a prepared sample or Null.
    Programmatic Pattern: ((ObjectP[{Model[Sample], Object[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 AliquotAmount and the total AssayVolume.
    Default Value: Automatic
    Default Calculation: Automatically resolves to Model[Sample, "Milli-Q water"] if ConcentratedBuffer is not specified; otherwise, resolves to Null.
    Pattern Description: An object of type or subtype Model[Sample] or Object[Sample] or a prepared sample or Null.
    Programmatic Pattern: ((ObjectP[{Model[Sample], Object[Sample]}] | _String) | Automatic) | Null
    Index Matches to: experiment samples

    AliquotSampleStorageCondition

    The non-default conditions under which any aliquot samples generated by this experiment should be stored after the protocol is completed.
    Default Value: Automatic
    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: ((SampleStorageTypeP | Disposal) | Automatic) | Null
    Index Matches to: experiment samples

    DestinationWell

    The desired position in the corresponding AliquotContainer in which the aliquot samples will be placed.
    Default Value: Automatic
    Default Calculation: Automatically resolves 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 or list of one or more any well from A1 to H12 or any well from A1 to H12 entries or Null.
    Programmatic Pattern: ((WellPositionP | {((Automatic | Null) | WellPositionP)..}) | Automatic) | Null

    AliquotContainer

    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. This option will resolve to be the length of the SamplesIn * NumberOfReplicates.
    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 Automatic or Null or {Index, Container} or list of one or more an object of type or subtype Model[Container] or Object[Container] or a prepared sample or Automatic or Null entries or list of one or more Automatic or Null or {Index, Container} entries.
    Programmatic Pattern: (((ObjectP[{Model[Container], Object[Container]}] | _String) | (Automatic | Null) | {GreaterEqualP[1, 1] | (Automatic | Null), (ObjectP[{Model[Container], Object[Container]}] | _String) | (Automatic | Null)} | {((ObjectP[{Model[Container], Object[Container]}] | _String) | (Automatic | Null))..} | {({GreaterEqualP[1, 1] | (Automatic | Null), (ObjectP[{Model[Container], Object[Container]}] | _String) | (Automatic | Null)} | (Automatic | Null))..}) | Automatic) | Null

    AliquotPreparation

    Indicates the desired scale at which liquid handling used to generate aliquots will occur.
    Default Value: Automatic
    Default Calculation: Automatic resolution will occur based on manipulation volumes and container types.
    Pattern Description: Manual or Robotic or Null.
    Programmatic Pattern: (PreparationMethodP | Automatic) | Null

    ConsolidateAliquots

    Indicates if identical aliquots should be prepared in the same container/position.
    Default Value: Automatic
    Pattern Description: True or False or Null.
    Programmatic Pattern: (BooleanP | Automatic) | Null

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

    Choose A Proper Instrument

    Choose to use uPulse for filtering a series of small scale sample (<50 mL):
    Choose to use KR2i for filtering a single sample with relatively large amount (>50 mL):

    Filtration and Concentration

    Filter and concentrate a sample 10-fold:

    Diafiltration (Buffer Exchange)

    Diafiltrate a sample:

    Multiple Filtration Modes: Concentration followed by Diafiltration (Buffer Exchange)

    Concentrate and exchange the buffer of a sample:

    Cutoff

    Samples of different compositions may require different size cutoffs to separate the sample:

Preferred Input Containers

    The KR2i only accepts containers with specialty tubing to allow for liquids to be drawn from the bottom of the container, and returned after filtration.
    The uPulse only accepts 50 mL tube as the input container.

Data Processing

    Plot the results of an ExperimentCrossFlowFiltration using a protocol object as input:
    Plot the results of an ExperimentCrossFlowFiltration using a data object as input:

Warnings and Errors

    Messages  (62)

    CrossFlowAssumedDensity  (2)

    A warning will be shown if the density of the solvent is not known, and was assumed to be 1 g/mL:

    A warning will be shown if the density of the solvent is not known, and was assumed to be 1 g/mL:

    CrossFlowCannotResolveSampleVolume  (1)

    An error will be shown if neither the sample nor its container has volume information:

    CrossFlowConcentrationFactorExceedsUnity  (2)

    An error will be shown if the specified targets for concentration steps cumulatively exceed 1, indicating that the sample needs to be concentrated beyond 100%:

    An error will be shown if the specified targets for concentration steps cumulatively exceed 1, indicating that the sample needs to be concentrated beyond 100%:

    CrossFlowDefaultFilterReturned  (1)

    A warning will be shown if a default filter is returned:

    CrossFlowDiafiltrationBufferIgnored  (1)

    A warning will be shown if a diafiltration buffer was specified for a concentration step:

    CrossFlowFilteConflictingFilterStorageCondition  (1)

    One filter cannot be specified multiple storage conditions:

    CrossFlowFilterDiaFiltrationExchangeCount  (2)

    If Instrument is specified as uPulse, and filtration mode is resolved to include Diafiltration, DiafiltrationExchangeCount needs to be specified.

    Instrument specific options are not specified:

    CrossFlowFilterDoesNotMatchInstrument  (1)

    Instrument specific options are not specified:

    CrossFlowFilterIncompatibleWithVolume  (2)

    An error will be shown if the specified sample volume is greater or less than the capacity of the specified filter:

    An error will be shown if the specified sample volume is greater or less than the capacity of the specified filter:

    CrossFlowFilterInvalidDiafiltrationMode  (2)

    If FiltrationMode requires diafiltration and instrument is uPulse, the DiafiltrationMode cannot be Null

    Instrument specific options are not specified:

    CrossFlowFilterSizeCutoffUnavailable  (1)

    A warning will be shown if a filter with the specified SizeCutoff cannot be found:

    CrossFlowFilterSpecifiedMismatch  (1)

    A warning will be shown if an option related to the filter and the specified filter are inconsistent:

    CrossFlowFiltrationUnneededOptions  (1)

    Instrument specific options are not specified:

    CrossFlowFlushOptionSpecifiedWithoutFlush  (2)

    An error will be shown if any filter flushing option is specified while FilterFlush is False:

    An error will be shown if any filter flushing option is specified while FilterFlush is False:

    CrossFlowIncompatibleSample  (1)

    An error will be shown if the specified sample is incompatible with the instrument:

    CrossFlowInstrumentalPrecision  (1)

    A warning will be shown if an option is specified beyond the capacity of the instrument, indicating that the option has been rounded to the instrument specifications:

    CrossFlowInsufficientSampleVolume  (1)

    An error will be shown if the specified sample volume is greater than the available sample volume:

    CrossFlowInvalidDiafiltrationBuffer  (1)

    An error will be shown if Null was specified as the diafiltration buffer for a diafiltration step:

    CrossFlowInvalidOutputVolumes  (3)

    An error will be shown if a combination of Targets, RetentateAliquotVolume and PermeateAliquotVolume are inconsistent amongst each other (RetentateAliquotVolume exceeds the retentate volume specified by Targets):

    An error will be shown if a combination of Targets, RetentateAliquotVolume and PermeateAliquotVolume are inconsistent amongst each other (PermeateAliquotVolume exceeds the permeate volume specified by Targets):

    An error will be shown if a combination of Targets, RetentateAliquotVolume and PermeateAliquotVolume are inconsistent amongst each other (Both RetentateAliquotVolume and PermeateAliquotVolume exceed the volumes specified by Targets):

    CrossFlowInvalidSampleReservoir  (1)

    An error will be shown if Null was specified as the diafiltration buffer for a diafiltration step:

    CrossFlowInvalidTarget  (2)

    An error will be shown if the specified target for a concentration step exceeds 1, indicating that the sample needs to be concentrated beyond 100%:

    An error will be shown if the specified target for a concentration step exceeds 1, indicating that the sample needs to be concentrated beyond 100%:

    CrossFlowKR2ICannotRunMultipleSamples  (1)

    When using KR2i as the instrument, an error will be shown if more than one sample is specified:

    CrossFlowMissingCompositionInformation  (1)

    An error will be shown if the sample has no composition information:

    CrossFlowNonOptimalSizeCutoff  (1)

    A warning will be shown if sample components do not have :

    CrossFlowNonSterileSampleReservoir  (1)

    A warning will be shown if sterile was specified and the resolved SampleReservoir is not available in a sterile format:

    CrossFlowPermeateExceedsCapacity  (1)

    An error will be shown if the permeate volume exceeds the instrument's capacity:

    CrossFlowPermeateExceedsSample  (1)

    An error will be shown if the total of specified PermeateAliquotVolume for concentration steps exceeds SampleInVolume:

    CrossFlowPermeateVolumeExceedsContainer  (1)

    An error will be shown if the specified PermeateAliquotVolume is greater than the capacity of the specified PermeateContainerOut:

    CrossFlowPrimeBuffersIncompatible  (1)

    A warning will be shown if the specified FilterPrimeRinseBuffer is not of the same model as the first DiafiltrationBuffer:

    CrossFlowPrimeOptionSpecifiedWithoutPrime  (2)

    An error will be shown if any filter priming option is specified while FilterPrime is False:

    An error will be shown if any filter priming option is specified while FilterPrime is False:

    CrossFlowReservoirIncompatibleWithVolume  (2)

    An error will be shown if the specified sample volume is greater or less than the capacity of the specified sample reservoir:

    An error will be shown if the specified sample volume is greater or less than the capacity of the specified sample reservoir:

    CrossFlowRetentateExceedsSample  (1)

    An error will be shown if the specified RetentateAliquotVolume exceeds SampleInVolume:

    CrossFlowRetentateVolumeTooLow  (3)

    An error will be shown if the specified experiment would create a retentate volume that is below the capacity of the specified or smallest database filter and/or sample reservoir:

    An error will be shown if the specified experiment would create a retentate volume that is below the capacity of the specified or smallest database filter and/or sample reservoir:

    An error will be shown if the specified experiment would create a retentate volume that is below the capacity of the specified or smallest database filter and/or sample reservoir:

    CrossFlowSampleDeadVolume  (1)

    An error will be shown if the SampleIn or the expected retentate volume is lower than the system's dead volume + the sample reservoir minimum volume:

    CrossFlowSampleNotLiquid  (1)

    An error will be shown if the sample is not in a liquid state:

    CrossFlowSampleVolumeExceedsCapacity  (1)

    An warning will be shown if the specified sample has a volume that exceeds the capacity of the instrument:

    CrossFlowTooManySamples  (1)

    When using uPulse as the instrument, an error will be shown if more than one sample is specified:

    CrossFlowUnsupportedInstrument  (1)

    An error will be shown if the specified instrument is deprecated or retired:

    DiscardedSamples  (1)

    An error will be shown if the sample is discarded:

    IncompatibleMaterials  (3)

    An error will be shown if a specified diafiltration buffer is incompatible with the instrument:

    An error will be shown if a specified filter prime buffer is incompatible with the instrument:

    An error will be shown if a specified filter flush buffer is incompatible with the instrument:

    InputContainsTemporalLinks  (1)

    An warning will be shown if the sample is a temporal link:

    ObjectDoesNotExist  (6)

    Throw a message if we have a sample that does not exist (name 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 container that does not exist (ID form):

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

Possible Issues

    Experiment Time

    Due to variations in pressure across the filter membrane, the volume of the liquid being filtered, and the large range of filter size cutoffs, it is possible for the filtration process to take longer than 8 hours. In cases where the sample is sensitive to being at room temperature for extended periods of time (e.g. antibody purification), consider using the largest feasible filter size cutoff, and increasing the pressure to achieve the fastest filtration time.

    Diafiltration (Buffer Exchange)

    In cases where the sample is only subjected to one diafiltration step, large amounts of buffer will be necessary. To achieve similar results with much lower quantities of buffer, consider adding a concentration step beforehand. Concentrating the sample before the diafiltration will reduce the buffer requirement of the experiment, and in general will shorten overall experiment time.

    Experiment Dead-Volume

    In cases where the sample or the expected retentate volume is below the system's dead volume (defined as the total volume of tubing from the sample to the filter and back, and the minimal filter volume) air might be drawn into the system causing pressure flactuations. Pressure spikes are handled by decreasing the flowrate. The system's dead-volume can be decreased by specifying TubingType with smaller inner diameter or a filter with smaller minimal volume.
Last modified on Fri 5 Sep 2025 08:51:39