PlateReaderCore
PlateReaderCore.ReaderCurve
PlateReaderCore.ReaderCurveFit
PlateReaderCore.ReaderPlate
PlateReaderCore.ReaderPlateFit
PlateReaderCore.RelativeActivity
PlateReaderCore.Q
PlateReaderCore.app_fit
PlateReaderCore.cross_validate
PlateReaderCore.linreg
PlateReaderCore.linreg_trim
PlateReaderCore.plate
PlateReaderCore.rc_exp
PlateReaderCore.rc_fit
PlateReaderCore.read_table
PlateReaderCore.sub_curve
PlateReaderCore.well
PlateReaderCore.xrange
PlateReaderCore.ReaderCurve
— TypeReaderCurve: Datastructure for holding reader curves
Fields:
readerplate_well::String = "well"
kinetic_time::Array
reader_value::Array{Union{Missing, Real}}
reader_temperature::Array{Union{Missing, Real}} = [missing]
time_unit::String
value_unit::String
temperature_unit::String = "C"
PlateReaderCore.ReaderCurveFit
— TypeReaderCurveFit: Datastructure for holding reader curves and corresponding fits
Fields:
readercurve::ReaderCurve the input readercurve
fit_method::String name of method to fit (linreg_trim, )
fit_input_parameters::NamedTuple parameters given to fit method
predict::Function fitted function. Can be used to predict new fitted values
slope::Real max slope
intercept::Real intercept of max slope curve
fit_mean_absolute_residual::Real average absolute residuals of fit and read
PlateReaderCore.ReaderPlate
— TypeReaderPlate: Structure representing a readerplate
readerplate_id::String globally unique eg from UUIDs.uuid4()
readerplate_barcode::String can be ""
readerfile_name::String
readerplate_geometry::Int 96, 384
readercurves::Array{ReaderCurve,1} array of reader curves
PlateReaderCore.ReaderPlateFit
— TypeReaderPlateFit: Structure representing a fit of curves on a readerplate
Very similar to ReaderPlate
readerplate_id::String globally unique eg from UUIDs.uuid4()
readerplate_barcode::String can be ""
readerfile_name::String
readerplate_geometry::Int 96, 384
readercurves::Array{ReaderCurveFit}
PlateReaderCore.RelativeActivity
— Typestruct RelativeActivity
relative_activity_id::String Some name
relative_activity_value::Real The relative activityvalue
test_activity::ReaderCurveFit Input data
reference_activity::ReaderCurveFit Input data
test_activity_x::Real where it is measured
test_activity_y::Real where it is measured
reference_activity_x::Real where it is measured
reference_activity_y::Real where it is measured
relative_activity_method::String how it was computed
PlateReaderCore.Q
— MethodQ(::ReaderPlate, q; well96=false)
Q(::ReaderPlateFit, q; well96=false)
subset a readerplate to a quadrant
PlateReaderCore.app_fit
— MethodFits based on .xlsx file with the following columns (* are mandatory):
- * readerplate_id
- * readerplate_well
- * kinetic_time
- * reader_value
- reader_temperature
- time_unit
- value_unit
- temperature_unit
- readerplate_barcode
- readerfile_name
- readerplate_geometry
- equipment
- software
- run_starttime
PlateReaderCore.cross_validate
— Functioncross_validate(rc::ReaderCurve, method::String, sd=0.05; keep_fraction = 0.5, fit_args...)
1. Subsample the readercurve according to the keep_fraction
2. Add random noice to "training points"
3. Fit using method and fit_args to noice training points
4. Evaluate mean residual over test-point (no noice)
This does not us the
PlateReaderCore.linreg
— Methodlinreg(x, y): Linear regression
Output: (intercept, slope)
PlateReaderCore.linreg_trim
— Methodlinreg_trim(ReaderCurve; y_low_pct=0, y_high_pct): trimmed linear regression
linreg_trim(x,y; y_low_pct=0, y_high_pct)
Skip the y_low_pct %, and y_high_pct % of the y-range.
Eg linreg_trim(x,y; 5,95) will use the central 90% of the y-range.
Note it is using the range of the y-values. Not the number of values, as a quantile would do.
Output: (intercept, slope) or ReaderCurveFit object
PlateReaderCore.plate
— Methodplate: get plate from a run based on number in run, id or barcode
plate(r::AbstractRun, n::Int): get plate number n (starting from 1)
plate(r::AbstractRun, name::String; search=[:readerplate_id, :readerplate_barcode]) search one or more of the fields readerplate_id, readerplate_barcode. Return first match. If partial==true, do a partial match.
PlateReaderCore.rc_exp
— MethodExponentially asymptotic readercurve
rc_exp(t,A,k,y0) = y0 + A(1 - exp(-t/k))
PlateReaderCore.rc_fit
— Methodrc_fit(::ReaderCurve, method::String; y_low_pct=10, y_high_pct=90, lambda = 250, l4p_parameter=100)
rc_fit(::ReaderPlate, method::String; y_low_pct=10, y_high_pct=90, lambda = 250, l4p_parameter=100)
Fit a readercurve, plate of reader curves or a full run
Returns a ReaderCurveFit containing the original readercurve and a predict function that can be used to predict new values. It also contains Slope, intercept and mean residual.
See @ref ReaderCurveFit
Methods:
- linreg_trim: linear regression omitting y_low_pct and y_high_pct of y range.
- max_slope:
PlateReaderCore.read_table
— Methodread_table: read data from spread-sheet like format to DatraFrame
Supports: .xlsx, .csv, .csv.gz, .csv2, .csv2.gz
PlateReaderCore.sub_curve
— Methodsub_curve(rc::ReaderCurve, keep_steps::Vector{Int})
Extract a sub-curve of a reader-curve by keeping only the supplied steps
PlateReaderCore.well
— Methodwell(::ReaderPlate, well)::ReaderCurve
well(::ReaderPlateFit, well)::ReaderCurveFit
well(::ReaderPlate, well::Array{String})::Array{ReaderCurve}
well(::ReaderPlateFit, well::Array{String})::Array{ReaderCurveFit}
select one or more well(s) from a curve or a fit
PlateReaderCore.xrange
— Methodxrange: range of kinetic_time over curve, plate or run
Returns [xmin, xmax]