qPCR ΔΔCt Calculator — Biological vs Technical Replicates — 9/10
No caveat: this output can be checked by hand or is asserted against published reference values in the test suite.
Every SciKeep tool carries a verification grade, and the grade reflects what has been tested against something external — not how finished the tool looks. We publish the whole table, including the tools that score badly, because a product claiming uniform excellence is not one you should trust with a number that ends up in a paper.
The rule we hold ourselves to: a score goes up only after the test that justifies it is written.
Closed-form maths you can check by hand, or asserted in the test suite against published reference values.
No caveat: this output can be checked by hand or is asserted against published reference values in the test suite.
No caveat: this output can be checked by hand or is asserted against published reference values in the test suite.
No caveat: this output can be checked by hand or is asserted against published reference values in the test suite.
No caveat: this output can be checked by hand or is asserted against published reference values in the test suite.
No caveat: this output can be checked by hand or is asserted against published reference values in the test suite.
No caveat: this output can be checked by hand or is asserted against published reference values in the test suite.
No caveat: this output can be checked by hand or is asserted against published reference values in the test suite.
Tm is verified against SantaLucia 1998 nearest-neighbour values, and primers are now checked for multiple binding sites in the template you paste — including a repeated 3-prime 12 bases, which primes extension even when the full-length primer is unique. This is NOT a genome search: a primer with one site here can still bind elsewhere in the organism. Run shortlisted pairs through Primer-BLAST before ordering.
Pairwise alignment now uses real AFFINE gap penalties (Gotoh 1982), asserted in npm test against hand-computed scores: identical 8-mers score exactly 16, a single substitution 13, and a 20-base deletion is aligned as ONE gap opening rather than twenty. It previously used a LINEAR penalty while the method notes described affine — which charges a long deletion by the base and so scatters small gaps where biology expects one indel. The gap-extension control was also inert: the slider moved but the function accepted only a gap-open cost. Both are now live. Progressive alignment now follows a real UPGMA guide tree (Sokal & Michener 1958) — node heights and size-weighted merges are asserted against a hand-computed tree — rather than the input order it used while displaying a "Clustal-W Lite & UPGMA" badge. Because progressive alignment is greedy, merging the most similar sequences first is what makes the early, frozen decisions the reliable ones. Scope: this is a Clustal-style progressive aligner, not an iterative refiner — for deep or highly divergent alignments prefer MAFFT or Clustal Omega.
Restriction sites are asserted in npm test against REBASE: EcoRI, BamHI, HindIII, XbaI, ClaI and StuI recognition sequences match, every palindromic site equals its own reverse complement (a typo there is invisible in the drawing but shifts every predicted fragment size), and Dam methylation blocking is detected where GATC genuinely overlaps the site — and NOT reported for Dam-insensitive enzymes, since a false warning is its own kind of wrong.
No caveat: this output can be checked by hand or is asserted against published reference values in the test suite.
No caveat: this output can be checked by hand or is asserted against published reference values in the test suite.
No caveat: this output can be checked by hand or is asserted against published reference values in the test suite.
No caveat: this output can be checked by hand or is asserted against published reference values in the test suite.
No caveat: this output can be checked by hand or is asserted against published reference values in the test suite.
No caveat: this output can be checked by hand or is asserted against published reference values in the test suite.
No caveat: this output can be checked by hand or is asserted against published reference values in the test suite.
No caveat: this output can be checked by hand or is asserted against published reference values in the test suite.
p-values are exact at every degrees of freedom, asserted in npm test against published t and F tables. ANOVA is now followed by a real Tukey-Kramer HSD: the studentized range is integrated numerically and checked against published q tables, and a two-group Tukey reproduces the pooled t-test exactly. The previous version approximated q as t times root two and then applied a Bonferroni bound, which overstated every adjusted p and hid real differences. Bonferroni, Holm and Benjamini-Hochberg corrections, Welch unequal-variance t-tests, Cohen's d with the Hedges correction, confidence intervals and omega-squared are all available. Samples are screened for normality (D'Agostino-Pearson K-squared, n >= 8) as advice, not a veto. Kruskal-Wallis with tie correction runs alongside every ANOVA, with Dunn's post-hoc (Holm-adjusted) when it is significant — chi-squared p-values are asserted against textbook critical values, and a two-group Dunn reproduces Kruskal-Wallis exactly. REPEATED-MEASURES ANOVA covers the design most bench experiments actually have — the same passage or animal measured under every condition. Treating those as independent pushes the shared subject-level swing into the error term and hides real effects, so the subject is removed as its own term; Mauchly sphericity is checked and the Greenhouse-Geisser correction applied, with the uncorrected value shown beside it. It is pinned by the exact identity F = t-squared against a paired t-test, which fixes the entire sum-of-squares partition rather than matching one table value. A LINEAR MIXED-EFFECTS MODEL (random intercept, REML) handles what repeated measures must refuse: missing cells and unbalanced designs. A subject that lost one measurement keeps contributing the rest instead of being discarded entirely. Its omnibus test refits by maximum likelihood, because REML likelihoods from models with different fixed effects are not comparable — a standard and silent error. On balanced complete data it reproduces the plain condition means exactly and agrees with the repeated-measures result, both asserted. Still absent: crossed or multiply-nested random effects, and Satterthwaite degrees of freedom (the conservative between-subject count is used instead). For those, use R and lme4.
A MONTE CARLO SIMULATOR now runs beside the formula, because the closed form assumes normal data, equal variance and one independent observation per subject — and bench biology routinely breaks all three. It is validated against the formula where the formula is valid (n = 26 per group at d = 0.8 returns 79.9% against G*Power's 80%), which is what licenses trusting it where the formula does not apply. Every run is seeded and the seed is reported, so a number you put in a grant can be reproduced exactly. It also quantifies the winner's curse: at n = 6 and d = 0.5 the power is 11% and the effect you would publish is inflated about 2.8x. MOST IMPORTANTLY it simulates NESTED designs. Measuring 100 cells from each of 3 dishes is n = 3, not n = 300 — and analysed as 300 the design looks well powered while, on data with NO real effect, that pooled test still declares significance around 80% of the time against the 5% you asked for. Pooling does not buy power; it manufactures findings. Sample sizes match G*Power exactly for a two-tailed independent t-test at alpha 0.05 and 80% power (d = 0.2/0.5/0.8/1.0 gives 394/64/26/17 per group), asserted in npm test. The textbook normal approximation is biased LOW by one subject per group across that whole range, always toward an underpowered study; Guenther's correction is applied.
No caveat: this output can be checked by hand or is asserted against published reference values in the test suite.
No caveat: this output can be checked by hand or is asserted against published reference values in the test suite.
No caveat: this output can be checked by hand or is asserted against published reference values in the test suite.
No caveat: this output can be checked by hand or is asserted against published reference values in the test suite.
The published standard method, correct on review, with no external reference test yet. Verify against your own positive control before quoting absolute values.
Benchmarked against TWO independent hand-annotated datasets, and improved on both. A two-level (hysteresis) mask replaced the single Otsu threshold after the benchmark showed every nucleus came out about 38% too small (median predicted/true area 0.615): Otsu separates bright cores from background and discards the dimmer rim that is still nucleus. Growth is capped at 3 pixels, a value chosen because it was the best on BOTH datasets — uncapped growth improved one and destroyed the other, which is exactly the overfitting the second dataset exists to catch. BBBC039 (1,733 U2OS nuclei): F1 at IoU 0.5 rose from 55.3% to 63.8%, missed nuclei fell from 12.2% to 6.4%, and the object count is now within 0.1% of the human count (was -2.7%). BBBC020 (700 mouse macrophage nuclei, a deliberately different morphology): F1 rose from 47.8% to 62.9%, missed fell from 6.0% to 4.0%. THE GENERALISATION TEST, and the number to quote when asked "will it work on MY images": BBBC038, the Kaggle 2018 Data Science Bowl collection, spans 30-plus experiments — human, mouse and fly nuclei, fluorescence, brightfield and histology stains, varied magnification and illumination. Across 1,696 nuclei sampled evenly through the collection, F1 is 60.0% (up from 58.3% before the two-level mask). Holding within four points of the single-preparation sets is the evidence the method generalises rather than being fitted to one morphology, and the 3-pixel growth cap proved independently best on this set too, having been chosen on the other two. Over-segmentation stays low: splits 0.0-0.8%. Merges are the honest weak point on diverse data at 3.3%, against 0.0-0.3% on the uniform sets. What this means in practice: counts are H&E HISTOLOGY, measured at last and the weakest result here: TNBC (Naylor et al. 2019; hand-annotated breast-cancer patches) gives F1 24.6% over 1,797 nuclei at the settings the app actually ships, and 20.5% over the full 50 patches. An earlier draft of this note said 33.9%. That figure was real but was produced with hand-tuned benchmark flags (split sensitivity 4.0, minimum area 80px) that no user gets by default, so it overstated what the tool does — the shipped-settings number replaces it, and a test now pins the benchmark to the shipped defaults so a tuned run cannot be quoted again. Tissue is confluent — there are no gaps between cells — which is the hardest case for a watershed. Colour deconvolution (Ruifrok & Johnston 2001) is what lifted it off the floor, separating haematoxylin from eosin, because inverting the red channel makes the pink stroma bright too and the tool was finding tissue rather than nuclei; without it the same patches score 20.5%. The modality is auto-detected as histology in 45 of 50 patches, so those settings apply themselves. USE H&E COUNTS AS A SCREEN, NOT A MEASUREMENT: at F1 0.25 only about a quarter of objects match a human annotation, and a dedicated histology model (HoVer-Net, StarDist, CellPose) will do far better. It is reported because measuring it honestly is more useful than not measuring it. BROADER H&E, AND IT IS WORSE. TNBC is 50 patches of ONE tissue from one lab, which cannot separate "confluent tissue is hard" from "this preparation is hard". NuInsSeg (Mahbod et al., Sci Data 2024; CC-BY-4.0) is the same question across 31 human and mouse organs. On 62 patches sampled evenly across all 31, F1 is 12.0% (precision 9.5%, recall 16.3%) — HALF the TNBC figure, and the per-organ spread runs from 52.9% (cerebellum) to 0.0% on several tissues. So the honest H&E summary is 12-25% depending on tissue, not 25%. MEASURED AGAINST THE ALTERNATIVES, on the identical 62 patches with identical IoU 0.5 scoring: Cellpose "nuclei" reaches F1 64.9% and StarDist 2D_versatile_he 45.2%, against our 12.0%. That is a 53-point gap, and no amount of threshold tuning closes it — a watershed needs gaps between objects and confluent tissue has none. Anyone doing serious H&E nuclear morphometry should use Cellpose, StarDist or HoVer-Net, and this note says so because the measurement says so. Those tools were installed and RUN as published binaries for this comparison; no code was copied from either. THERE IS NOW A DEEP-LEARNING PATH, IT IS OPT-IN, AND THE MODEL IS OURS. Shipping Cellpose's weights was the obvious move and is not permitted: Cellpose states that ALL its models are trained on CC-BY-NC data, and NonCommercial excludes a paid product — the BSD-3 licence on their source does not change what is behind the weights, and StarDist's H&E model traces back to a non-commercial annotation set the same way. So a model was trained here from scratch on NuInsSeg (CC-BY-4.0, commercial use permitted with attribution), 665 hand-annotated H&E patches across 31 organs. IT ALSO TURNED OUT BETTER. Scored on SEVEN WHOLE ORGANS held out of training, with Cellpose run on the identical patches: ours F1 67.2% (precision 66.3%, recall 68.3%), Cellpose 63.2% (precision 78.5%, recall 52.9%), classical watershed 12.0%. Cellpose is the more precise; ours finds a third more of the nuclei that are actually there, which is what a count is for. That is not general superiority — it is that ours was trained on tissue sections specifically. The split is by ORGAN rather than by patch, because patches from one organ are near-duplicates and a random split would report memorisation; every figure here is generalisation to tissue the model has never seen. It is 3.9 MB against Cellpose's 13.3 MB. Per-organ F1 ranges from 76.5% to 45.0%, so check the overlay on your own tissue rather than assuming the mean. It is OPT-IN because it costs a one-time ~17 MB download and every other tool here runs with nothing downloaded. YOUR IMAGES ARE STILL NOT UPLOADED: inference is local, there is no server, and the privacy guarantee is unchanged. Only the SEGMENTATION step is replaced; every measurement, the learned detection-quality gate, duplicate suppression and border clearing run identically, so the two paths give comparable numbers and one set of export columns. The mask-recovery half — turning the network's vector field into objects — is our own code, written from the published algorithm and pinned in npm test against a frozen fixture of the Python reference: it reproduces 29 of 29 objects at median IoU 1.000. If the model fails to load, the classical engine runs instead rather than the analysis failing. Please cite NuInsSeg if you publish results from this path. THE SHAPE FLAG IS NOT A DAMAGE CALL, and this was measured. The tool marks objects "irregular" from circularity, and users read the colour as cell damage. Applying the old fixed cut of 0.58 to BBBC039 flagged 40.2% of OUR detections but only 0.9% of the HUMAN outlines of the very same healthy nuclei — so roughly 39 of every 40 flags were our own boundary roughness, not biology. Circularity divides by perimeter SQUARED, and a pixelated outline is punished before biology is involved. The threshold is now derived from each IMAGE'S OWN circularity distribution (median minus 3 robust SDs), because every outline in a field shares the same roughness: false positives on healthy nuclei fall from 40.2% to 0.0%, while genuine shape outliers are still caught (asserted in npm test). Even so, this measures SHAPE. Nothing in this tool observes membrane integrity, caspase activity or dye exclusion — confirm with a viability stain before reporting damage. Counts are good and boundaries are much better, but an F1 near 0.60-0.64 is below a dedicated deep-learning segmenter such as Cellpose or StarDist, so check the overlay on your own images before quoting per-cell morphometry. MULTIVERSE ANALYSIS re-runs the count across every defensible combination of settings and reports what fraction agree, so you learn whether your number survives the settings you happened to pick. BATCH ANALYSIS applies one fixed set of settings across many images grouped by condition and reports n as the number of IMAGES rather than pooled cells, so the handoff to the statistics tools is not pseudoreplicated. AUTO-DETECT reads each uploaded image and configures the tool from what is actually there: modality (fluorescence, brightfield, DAB immunohistochemistry or H&E), whether objects are darker than background and must be inverted, which channel carries the signal, typical object size, and how crowded the field is — then sets the size limits and split sensitivity to match and SHOWS you what it changed and why. Asserted in npm test against synthetic fields of known modality and density: object radius is recovered within 25% at 5, 9 and 16 px, and foreground coverage within about 2 points from sparse (3.6%) to confluent (64.5%). Very large images are profiled from a systematic sample so the tab stays responsive; the segmentation itself still processes every pixel. Soft or out-of-focus fields are flagged, because boundaries — and therefore every area measurement — become unreliable before the count does.
Band detection and quantification are asserted in npm test against synthetic lanes with known band amounts: bands are found by position rather than assumed, background is subtracted per lane, and doubling the protein doubles the reported density to within 12% across the usable exposure range. Two known limits — a band under about 10% above background is under-measured by roughly 20%, and saturated bands are flagged rather than quantified. Re-expose faint or saturated blots instead of trusting the number.
Every ordered pair in a panel is assessed — asserted in npm test. The previous table covered 19 of 132 pairs and reported the other 86% as clean simply because they were absent; BV605 and BV711 could never raise a warning at all. Published spillover values are labelled as measured and kept separate from spectral estimates. YOUR INSTRUMENT IS AN INPUT, because spillover is not a property of a dye pair: it is the fraction of the donor's emission landing in the acceptor's DETECTOR, and a detector is a bandpass filter on a specific machine. Two peaks 90 nm apart spill heavily through a wide filter and barely at all through a narrow one. Choose your optical configuration and the tool integrates the donor emission over the acceptor's actual filter band, so the numbers change with the instrument — which is the honest behaviour, since the physical quantity does too. Asserted in npm test: the textbook FITC-into-PE spillover is detected, it is correctly ASYMMETRIC (emission tails run red, so the reverse is far smaller), two dyes forced into one detector are called unusable rather than given a percentage, and results genuinely differ between two configurations. What remains an approximation, and is labelled as such: the emission profile is parametric — asymmetric with a long red tail — not a measured spectrum, which would mean shipping licensed per-dye spectral curves. The filter bands themselves are the manufacturers' published layouts. Treat the output as a ranking of what to check, then run single-stain controls.
Verify against your own positive control before relying on absolute values.
Off-target sites are now genuinely SEARCHED and SCORED. Both strands of the sequence you submit are scanned for NGG-PAM sites within 4 mismatches, and each is scored with the published Hsu-Zhang 2013 position weights — asserted in npm test to return exactly 100 for a perfect match, exactly (1 - w) x 100 for a single mismatch at each weighted position, and to fall monotonically as mismatches accumulate. This is NOT genome-wide: it covers the sequence you paste, so a guide that looks clean here can still cut elsewhere in your organism. Guide discovery and ranking are asserted in npm test: malformed spacers are rejected rather than given a passing grade, poly-T is penalised hardest because it truncates Pol III transcription, extreme GC and repetitive seeds rank below balanced guides, and scoring is deterministic and bounded. The score orders candidates — it is NOT a predicted cutting efficiency, and NO genome-wide off-target search is performed. Run shortlisted guides through Cas-OFFinder, CRISPOR or Benchling before ordering oligos.
Indel calling is asserted in npm test: deletions of 1-9 bp and insertions are sized exactly, a single clean deletion is not split into scattered gaps, substitutions are not counted as indels, the result does not change with how much flanking sequence you paste, and a negative control returns "no edit" rather than a floor value. It deliberately reports NO editing efficiency — that is a population property and needs a Sanger chromatogram, not consensus text.
Verify against your own positive control before relying on absolute values.
Verify against your own positive control before relying on absolute values.
The microRNA seed screen is asserted in npm test. It was previously DEAD: the seed table is written in RNA (AGCACUU) while the designer passes DNA (AGCACTT), so no siRNA ever matched and every candidate came back clean. Now normalised, and verified live to flag a miR-21 seed. Scope is 5 well-characterised human seeds, not the full miRBase catalogue — a clean result narrows risk, it does not clear the siRNA. Design 3-4 independent siRNAs per transcript.
Verify against your own positive control before relying on absolute values.
Verify against your own positive control before relying on absolute values.
Verify against your own positive control before relying on absolute values.
Verify against your own positive control before relying on absolute values.
Verify against your own positive control before relying on absolute values.
Generates DRAFT text from the parameters you entered, and — more usefully — tells you what the draft is MISSING. Every draft is checked against the ARRIVE 2.0, MIQE and SAMPL items that apply to it, and each gap names the guideline, its item number and what to write. This replaced a fixed "Compliance Validation Summary" that asserted RRIDs and catalogue numbers were included whether or not they were, congratulating the user for compliance it had never checked. The core limit is unchanged: it reports what you told it, so a wrong input becomes a wrong sentence stated with full confidence, and this text is destined for a manuscript where an unchecked number is the most expensive kind of error. It does NOT verify that the described method is what you performed, and it invents no citations. Read every sentence against your own records before submission.
Generates a DRAFT protocol from your inputs. Volumes, timings and concentrations are echoed from what you entered, not validated against any reference protocol, and nothing here knows your reagents, your cell line or your safety requirements. Treat the output as a formatting aid, and have someone who has run the assay read it before anyone follows it at the bench.
Conformance against PUBLISHED, citable guidelines rather than our own list: the ARRIVE 2.0 Essential 10 (Percie du Sert et al., PLOS Biology 2020) for animal research, the essential detectable subset of MIQE (Bustin et al., Clinical Chemistry 2009) for qPCR, and SAMPL for statistical reporting. The applicable guideline is inferred from your text, so ARRIVE items are not thrown at an in-vitro paper. Every item carries its official number and links to the source, and every PASS quotes the sentence that triggered it so you can disagree with it. Asserted in npm test: detection routes correctly by manuscript type, a well-reported text scores above 90% while a bare one fails, and removing a single MIQE essential fails exactly that item. IT REMAINS A CHECKLIST, NOT A REVIEW: it detects whether a topic is ADDRESSED. It cannot judge whether your statistics are appropriate, whether your sample size is justified, or whether your blinding worked. A clean result means nothing obvious is missing, not that the manuscript is sound.
Verify against your own positive control before relying on absolute values.
SciKeep is a research aid. Validate any result you intend to publish against an independent method or a known control. It is not a medical device and is not for clinical or diagnostic use.
All 42 tools · Methods guide · Compare with Prism, ImageJ and Benchling · Scientific disclaimer