Package: qpcr
A python package to analyse qPCR data on single-datasets or high-throughputThis project presents a python package designed to facilitate the analysis of qPCR data through establishedDelta-Delta-Ctanalysis. To that end, this module provides a set of processing classes that may be assembled into a fully-fledged analysis pipeline, starting from rawCtvalues stored incsvorexcelfiles all the way to finished visualisations of the results.User-friendliness and quick and easy workflows were of primary concern during development, so that this module is suitable for both non-experienced users as well as veteran coders. Virtually all steps within the analysis workflow are customizible to allow a streamlined analysis of any given dataset.The exported results are formatted to be readily imported into other analysis or graphing software.InstallationThis module can directly be installed viapip.pip install qpcrQupid Web AppIn case you prefer a graphical user interface,qpcroffers theQupidweb app built withstreamlit. Qupid provides access to the bulk of qpcr's main features with costumizability to some degree. Qupid is openly availablevia streamlit. Or can be run locally by cloning itsGithub repository.What doesqpcrdo?The "core business" thatqpcrwas designed for isDelta-Delta-Ctanalysis starting from raw Ct values. It offers automated processes to read datafiles, filter out outlier Ct values, compute Delta-Ct, normalise assays against one another, and visualise the results. Hence,qpcroffers a full suite for automated Delta-Delta-Ct analyses.
However, even if your analysis is not going to be Delta-Delta-Ct, you may wish to check out how theqpcr.Readersmight help you faciliate your workflow, as they are streamlined to read diversely structured datafiles contianing both a single and multiple qPCR datasets.Example usageA very simple analysis may start from a singleexcelfile containing data of several qPCR assays, some of which are "assays-of-interest" and some of which are "normalisers" such as 28S rRNA. If we have performed a tiny bit of pre-processing on our datafile, our analysis may look like this:importqpcrfromqpcrimportstatsasqstatsmyfile="todays_qPCR_run.xlsx"# read the datafileassays,normalisers=qpcr.read(myfile,multi_assay=True,decorator=True)# we perform Delta-Delta Ct analysisassays=qpcr.delta_ct(assays)normalisers=qpcr.delta_ct(normalisers)results=qpcr.normalise(assays,normalisers)# at this point we can save our results to a fileresults.save("./MyResults/")# we can perform t-tests to compare the different groups (we can optionally select only specific pairs to compare)qstats.assaywise_ttests(results,groups=[("wildtype (-)","wildtype (+)"),("knockout (-)","knockout (+)")])# and generate a preview that already includes the p-values of our t-testsfig=results.preview()Getting startedFor more information about the API, checkout the documentation onRead the Docs. There you will also find a number of basic tutorials. You can also access the tutorials direcctly asjupyter notebooksin theExamplesdirectory in this repository.CustomisabilityA technical note at this point. At it's coreqpcroffers very versatile data manipulation through two processing classes called theqpcr.Analyserand theqpcr.Normaliser. Theqpcr.Analyserperforms actions on a single qPCR datasets / assay stored in aqpcr.Assayobject (the central data storage unit of theqpcrmodule).
It is used to performDelta-Ctcomputation. However, the precise function that itappliesto the single Assay is customizable, so there is no restriction as such to what the Analyser will do to an Assay.On the other hand theqpcr.Normaliserwill perform actions on a single Assay using data from a second Assay. It is used to perform normalisation of assays-of-interst against normaliser-assays. However, here too the precise function that is applied to the Assay is customizable.CitationKleinschmidt, N. (2023). qpcr - a python package for easy and versatile qPCR data analysis for small-scale datasets and high-throughput (Version 4.1.3) [Computer software].https://github.com/NoahHenrikKleinschmidt/qpcr.git