Recent Releases of qpcr
qpcr - qpcr (v.4.1.3)
New features in this version
This release includes a new
copymethod available for all "id"-ed classes (Assay, Results, etc.), yielding a deepcopy with a new UUID for the respective object.The
Assayclass now supports reading and writing for theCtanddCtattributes (before only reading was allowed). Thus, an assay now supportssome_assay.Ct = some_valuesfor easier external data manipulation. The same goes for thedCtattribute.
- Python
Published by NoahHenrikKleinschmidt over 2 years ago
qpcr - qpcr (v.4.1.2)
Refactored the imports of the main func_api which were causing issues on python 3.10.9 and MacOS 1.11 (Big Sur)
- Python
Published by NoahHenrikKleinschmidt almost 3 years ago
qpcr - qpcr (v.4.1.1)
Fixed some package imports.
- Python
Published by NoahHenrikKleinschmidt about 3 years ago
qpcr - qpcr (v.4.1.0)
New features in this version
New qpcr.stats module
qpcr now offers T-tests and ANOVA analyses on qpcr.Results objects. Tests are offered to compare the groups within assays or assays across groups. P-values from multiple T-tests are automatically integrated into the results preview figures. At the core of the module is the new Evaluator class that performs statistical evaluations on results and produces Comparison objects that store the related p-values.
For convenience, stand-alone functions are directly available to perform statistical tests:
- assaywise_ttests
- groupwise_ttests
- assaywise_anova
- groupwise_anova
Note: This does not affect the properties of the qpcr.Results.stats() data frame.
qpcr.Results.setup_cols automated
It is not necessary anymore to call setup_cols manually before adding data using add_Ct, add_dCt, and add_ddCt. They will do so if necessary.
Bugfixes...
The main functionality has not been altered.
- Python
Published by NoahHenrikKleinschmidt about 3 years ago
qpcr - qpcr (v.4.0.0)
New Features in this Version
pipe method comprehension
The pipe methods of qpcr.Analyser, qpcr.Normaliser, and the qpcr.Filters, as well as the read method of the qpcr.DataReader can now directly be fed with a list.
Extended interface for qpcr.Assay and qpcr.Results
qpcr.Assay and qpcr.Results objects now allow direct item setting, getting and deleting on their dataframes. qpcr.Results can now be merged together using the + operator.
Function API
There are now a number of functions that wrap the qpcr classes to allow even easier
data handling. Among them are:
- qpcr.read(...) to wrap a standard qpcr.DataReader and its read method
- qpcr.analyse(...) to wrap a standard qpcr.Analyser and its pipe method
- qpcr.normalise(...) to wrap a standard qpcr.Normalaliser and its pipe method.
-qpcr.plot(...)to allow quick visualisation from severalqpcrclasses such asqpcr.Resultsorqpcr.Assay`.
New stats
The qpcr.Results.stats() dataframe now also includes IQR (by default, but adjustable to any two quantiles), and CI (assuming a normal distribution, default at 95% but also adjustable).
New extended documentation
There is a new documentation now available with extended explanations on class usage. It is available on qpcr.readthedocs.io.
New __str__ representations
The main qpcr classes now all have a __str__ method to allow easier user-interaction, where they display their dataframes as well as other information.
SampleReader drop
The qpcr.SampleReader was dropped from qpcr.
qpcr.Results.split drop
The split method that previously generated a number of qpcr.Results objects from a single one based on its _rel_ columns has been dropped.
Attribute changes
Some attributes such as the qpcr.Assay.dCt or qpcr.Results.is_empty are now properties and now longer callable methods. Also, the qpcr.Results.adopt_names method is now called setup_cols.
Bugfixes and Code Refactorizations
The huge __init__ method was refactored into a proper main submodule. Also the defaults were refactored into their own submodule instead of being part of _auxiliary. Also the id policy has been changed to allow repetitive .id(...) calling without requiring the use of .id_reset().
- Python
Published by NoahHenrikKleinschmidt over 3 years ago
qpcr - qpcr (v3.1.5)
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.
- Python
Published by NoahHenrikKleinschmidt almost 4 years ago
qpcr - qpcr (v3.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.
- Python
Published by NoahHenrikKleinschmidt almost 4 years ago
qpcr - qpcr (v3.1.1)
This update introduces support for a new type of Big Table, as well as a filetype independent Parser. Furthermore, Plotter default settings were slightly adjusted, which only affects the Figure's default labelling, however.
New "hybrid" Big Table support
"Hybrid" Big Tables store their replicate identifiers in a dedicated column, while storing Ct values for separate assays in side-by-side columns. Hence, they combine aspects from horizontal and vertical big tables. Support for this data arrangement was added as a feature of the BigTableReader.
Extended "regular" file support
Regular files may now also store additional data columns apart from replicate identifier and Ct values. However, in this case column names must be supplied while reading. Furthermore, users may now force reading a file as "regular" using is_regular = True (this only works for the SingleReader) to prevent the Reader from calling Parsers. This was primarily implemented to avoid the Parser-generated assay_pattern related error messages from regular files when the true reason for failure were wrong specified column names.
The ArrayParser
The ArrayParser, contrary to the already existing CsvParser and ExcelParser, does does not rely on a specific filetype but adopts an existing numpy.ndarray using its read method.
New id_label and altered id handling.
Objects are identified by qpcr through their id attribute. The id attribute is now supported by a secondary id named the id_label, which can be arbitrarily set or automatically generated by splitting the actual id using simple string operations or regex matching. To that end new methods id_label , split_id , and merge_id are introduced and are available for all qpcr classes that inherit from the auxiliary _ID. id_label and id can be repeatedly switched using id_to_label. Also, a merged id can be generated without the object adopting it using get_merged_id. Finally, id_reset (which must be called before a new object id can be set) is now a public method.
This was done in an effort to allow more facilitated comparison of transcript isoform assays, which is a planned feature of a future release.
- Python
Published by NoahHenrikKleinschmidt about 4 years ago
qpcr - Second Release (v.3.1.0)
This is the second release of qpcr and a major update.
The code has been extensively refactored, while the general end-user usability has remained virtually unchanged.
The qpcr.Assay object takes up a much more prominent role within the code, and receiving new functionalities to
allow easier use. Additionaly, a number of completely new features have been introduced that greatly expand qpcr's capacities.
New features
1. Support for multi-assay datafiles
The new qpcr.Readers submodule now specifies dedicated Reader classes that are able to read and extract data from csv and excel files that contain a single or multiple qPCR assays. To read such "irregular" datafiles, these Readers make use of the also newly added qpcr.Parsers that parse and extract data using numpy.
A new central hub for data reading has been introduced in the form of the qpcr.DataReader which replaces the old SampleReader.
2. Replicate inference
Information about the groups of replicates can now be automatically inferred by a qpcr.Assay object provided that all replicates of a group share the same replicate identifier. If this is the case, also the group names are automatically inferred. Nevertheless, replicates can still be manually provided. To further ease manual replicate settings for large numbers of irregular group sizes a new "formula" method was added to avoid having to specify a long tuple manually.
3. New Pipelines
Two new pipelines have been introduced, called Blueprint and ddCt. The Blueprint pipeline allows access to the same workflow as the BasicPlus pipeline but also allows customisation of the Analyser, Reader, and Normaliser that is used. The ddCt pipeline on the other hand does not work directly with datafiles but requires qpcr.Assay objects directly. This is especially powerful when reading data from a mulit-assay file, which are currently not supported by Basic-style pipelines (including Blueprint).
4. New predefined anchors
The qpcr.Analyser now natively supports using the mean of the reference group and will not require an externally computed value to achieve this. Furthermore, a user-defined function can now also be set as anchor to compute a custom anchor.
Also a bug that rendered the "grouped" anchor non-functional was fixed.
5. Filter nan policy
qpcr.Filters used to crash when encountering an all-nan group of replicates. This can now be suppressed.
6. Plotters
Interactive PreviewResults figures now support padding between subplots. Also, the default style of static PreviewResults figures was changed.
7. Big Fixes
Some more bugs were fixed as they noticed.
- Python
Published by NoahHenrikKleinschmidt about 4 years ago
qpcr - First release (v.2.1.0)
The first stable release of the new qpcr module.
- Python
Published by NoahHenrikKleinschmidt about 4 years ago