API Reference
PlateArrays.objectivesPlateArrays.solversPlateArrays.ExperimentPlateArrays.PlateArrayBase.sizePlateArrays.MILPPlateArrays.active_indicesPlateArrays.arrayerPlateArrays.exchangePlateArrays.partitionPlateArrays.place_controlsPlateArrays.place_controlsPlateArrays.runs
Full docstrings
PlateArrays.Experiment — Type
struct Experiment
runs::Int
positive_controls::Int
negative_controls::Int
end
Collect the number of runs and controls in an experiment.PlateArrays.PlateArray — Type
struct PlateArray
wells::BitMatrix
positives::BitMatrix
negatives::BitMatrix
end
A PlateArray object describes the layout of a microwell plate that includes the active experimental wells and controls.PlateArrays.objectives — Constant
objectives
Predefined objectives for the place_controls algorithm
PlateArrays.solvers — Constant
solversPredefined solvers for the place_controls algorithm
PlateArrays.MILP — Method
function MILP(P::Int,N::Int,wells::BitMatrix;objective::Function=hybrid,minimize=true,timelimit=100)MILP solver for control placment. Requires Gurobi licence.
Arguments
wells: A BitMatrix indicating the shape and active wells, usetrues(n,m)for a full n x m plate.P: The integer number of positive controlsN: The integer number of negative controls
Keyword Arguments
objective: the objective type for the MILP solver. Must be either 'minimax' or 'hybrid'.timelimit: time limit in seconds for the solver to return a suboptimal solution if it hasn't found an optimal oneminimize: if true, the solver minimizes the distance from experiment wells to control wells. if false, it will maximize (this is not useful for practical purposes but is helpful for assessing performance)
PlateArrays.active_indices — Method
active_indices(plate::BitMatrix)Compute the integer indices of active wells.
PlateArrays.arrayer — Method
arrayer(wells::BitMatrix,experiments::Vararg{Experiment};kwargs...)Array Experiment objects onto plates in three steps:
- assign all experiments to as few plates as possible
- partition plates that contain multiple experiments and select wells to hold each run. Use central wells first.
- place a full complement of controls on each plate that has a given experiment
Arguments
wells: A BitMatrix of active wells on each plate (block any inactive wells by setting them to false)experiments: Array a variable number ofExperimentobjects
Returns a Matrix of PlateArray objects with dimensions E x P, where E is the number of experimens and P the number of plates.
PlateArrays.exchange — Method
exchange(wells::BitMatrix,P::Int,N::Int;objective::Function=hybrid,minimize=true,restarts::Int=10,iterations::Int=1000,kwargs...)Exchange solver for control placment
Arguments
plate: A BitMatrix indicating the shape and active wells, usetrues(n,m)for a full n x m plate.P: The integer number of positive controlsN: The integer number of negative controls
Keyword Arguments
objective: The objective function criteria, choose fromminimax,LHS, andhybrid. The hybrid objective is slower than the other objectives because it calculates bounds to balance two objectives.minimize: flip the objective signrestarts: Number of solver restarts. The solver returns the best solution among the restartsiterations: number of exchange iterations per run.
PlateArrays.partition — Method
function partition(wells::BitMatrix,expts::Vararg{Int})Partition experiments onto a plate of active wells. Use center wells before using edge wells, and place the experiments into contiguous blocks.
Arguments
wellsa BitMatrix where each active well has a value of 'true'exptsa Vararg Int indicating how many runs are present in each experiment
PlateArrays.place_controls — Method
function place_controls(wells::BitMatrix,expt::Experiment;kwargs...)Place optimal controls for detecting errors in microplate experiments
Arguments
wells: A BitMatrix mask indicating the shape and active wells, usetrues(n,m)for a full n x m plate.expt: AnExperimenttype indicating the number of runs as well as positive and negative controls
Keyword Arguments
solver: The algorithm used to place the controls. There are currently two solvers available:- exchange (default):
- MILP :
objective: The objective the solver uses to score plate array candidates.- minimax -> Minimize the maximum distance in wells from an active well to its nearest control.
- LHS -> Find an approximate latin hypercube sample of the available wells in the plate.
- hybrid (default) -> a weighted combination of both criteria
PlateArrays.place_controls — Method
place_controls(wells::BitMatrix,P::Int,N::Int;solver::String="exchange",objective::String="hybrid",kwargs...)Place optimal controls for detecting errors in microplate experiments
Arguments
wells: A BitMatrix mask indicating the shape and active wells, usetrues(n,m)for a full n x m plate.P: The integer number of positive controlsN: The integer number of negative controls
Keyword Arguments
solver: The algorithm used to place the controls. There are currently two solvers available:- exchange (default):
- MILP :
objective: The objective the solver uses to score plate array candidates.- minimax -> Minimize the maximum distance in wells from an active well to its nearest control.
- LHS -> Find an approximate latin hypercube sample of the available wells in the plate.
- hybrid (default) -> a weighted combination of both criteria
PlateArrays.runs — Method
runs(platearray::PlateArray)Compute the non-control active wells of a PlateArray.