New Features in this Version
Assays and Efficiency
Efficiency is now directly handled by the `qpcr.Assay` objects (`qpcr.Analyser` can still receive `.efficiency()` as before, but this will be dropped at some point...)
New `qpcr.Calibrator` class
The new `qpcr.Calibrator` allows calculation of qPCR primer efficiencies based
a dilution series. It is able to work either with an entire assay as input or with
just a subset of specially labeled replicates and can compute, store, save, and load and later assign pre-computed efficiencies from and to `qpcr.Assay` objects.
New `EfficiencyLines` Plotter
Accompanying the `Calibrator` is a new plotter that can visualise the linear regression performed during efficiency computation, similar to how the `FilterSummary` plotter can summarise the workings of the `qpcr.Filters`.
New Plotting shortcuts
A `Plotters.PreviewResults` can now directly be called from `qpcr.Results` without having to import and setting up manually. The new `qpcr.Results.preview()` method calls on `PreviewResults` object to plot the stored data and returns the produced figure.
The same goes for a `Plotters.ReplicateBoxplot` which can be called from a `qpcr.Assay` directly via `qpcr.Assay.boxplot()`.
Also, the `qpcr.Calibrator` is equipped with a `qpcr.Calibrator.plot()` method to
call `Plotters.EfficiencyLines`.
v.3.1.2
This update introduces support for new pre-implemented normalisation methods as well as new Plotters.
Normalisation mode
Up to now the `Normaliser` by default strictly paired replicates by their order (1st - 1st, 2nd - 2nd, etc.). In addition to this `pair-wise` normalisation, two new normalisation modes are now available to account for equivalence between replicates in cases where they were pipetted separately and there is no strict reason to link replicates in such a fashion. These modes are `combinatoric`, which computes combinations of 1st-1st, 1st-2nd etc., and `permutative`, which approximates combinatoric computation through iterative permutations in cases where datasets may be large and combinatoric computation is therefore undesired.
Dot Plots
New Plotters are introduced that show the individual normalised fold changes in dot plots rather than as mean + stdev. Optionally, violins can be added to aid visualising the distribution. New Plotters implemented for this are `AssayDots` and `GroupDots`.
Group-Plotters and Assay-Plotters
Up to now, by default separate assays were displayed in separate subplots, with the replicate groups plotted on the x-axis. Now, another option is introduced wherein the separate groups are displayed in subplots and assays on the x-axis. The two grouped-kind Plotters are `GroupBars` and `GroupDots`, which visualise the results either in bar charts or as dot plots. Their equivalents are `AssayBars` (which is the same as the default `PreviewResults`) and `AssayDots`.
More versatile `PreviewResults`
To allow more easy interaction with the new plotters, `PreviewResults` is now a wrapper that can call on any Plotter that displays a preview of the results: `AssayBars`, `AssayDots`, `GroupBars`, `GroupDots`. `AssayBars` has now taken over the core role that was previously held directly by `PreviewResults` and this is now the default mode, so the main behaviour of `PreviewResults` remains unchanged.
Filter-NaN
A bug was fixed that caused Filters to crash when encountering all-NaN groups. Also, Filters now by default set outliers to NaN instead of completely removing the entries (this behaviour can be changed, however).
FilterSummary Class
A new Plotter dedicated to visualising Filtering is now available and replaces the previous setup of two consecutive `ReplicateBoxPlots`. The new `FilterSummary` figure displays separate assays in separate subplots and offers two boxes for each replicate group next to each other, one showing the data pre-filtered and one post-filtered.
Bugfixes
Some other small bugs were fixed as they were discovered.