Differential rhythmicity asks how an oscillation CHANGES between conditions, genotypes, treatments, tissues, or ages - not whether a feature is rhythmic in one condition (that is single-condition detection, the sibling temporal-genomics/circadian-rhythms skill). It is a statistically distinct question, and its dominant failure mode is the detect-then-Venn anti-pattern: subtracting two independently thresholded rhythmicity lists systematically overestimates reprogramming because near p~0.05 the lists differ mostly from threshold noise, not biology. The correct approach fits a single model spanning both conditions and tests the condition x time interaction directly, borrowing strength across conditions. A second distinction that matters is differential EXPRESSION (a change in mean level, the condition main effect) versus differential RHYTHMICITY (a change in the oscillation, the condition x time interaction) - conflating them mislabels mean shifts as rhythm reprogramming. Because a difference test estimates an interaction, differential rhythmicity needs a matched, evenly-sampled, replicated grid in every condition and more power than detection.
install.packages(c('limorhyde', 'circacompare'))remotes::install_version('DODR'), or rely on it being pulled in as a compareRhythms dependencyBiocManager::install(c('limma', 'edgeR', 'DESeq2', 'rain'))remotes::install_github(c('naef-lab/dryR', 'bharathananth/compareRhythms', 'diffCircadian/diffCircadian'))Tell your AI agent what you want to do: - "Test which genes change their 24h rhythm between wild-type and knockout" - "Classify each gene as gain, loss, phase change, or amplitude change relative to control" - "Separate genes whose mean level shifts from genes whose oscillation changes" - "Compare rhythms between young and aged tissue without intersecting two rhythmicity lists" - "Estimate the amplitude and phase difference for these specific clock genes with p-values"
"I have RNA-seq time-courses for wild-type and clock-mutant liver, sampled every 4h for 48h with 2 replicates. Fit a model that tests the genotype x time interaction so I get differential rhythmicity separately from differential expression, and rank the genes that changed their rhythm."
"Classify every gene as gain-of-rhythm, loss-of-rhythm, phase change, amplitude change, or unchanged relative to the normal-chow reference, using a method built to replace the Venn-diagram approach."
"I have three feeding regimes sampled across the day. Assign each gene a parsimonious model of which conditions share amplitude and phase, rather than running pairwise tests."
"For these eight candidate genes, give me explicit estimates and p-values for the difference in mesor, amplitude, and phase between treatment and control."
"My knockout shows lower bulk amplitude - help me decide whether that is loss of the cell-autonomous rhythm or loss of synchrony between cells before I call it arrhythmic."
deseq2/edger/voom expect raw counts; use mod_sel/limma/cosinor for normalized or microarray data.temporal-genomics/circadian-rhythms - Single-condition rhythm detection and estimation; run first, then compare across conditions here differential-expression/timeseries-de - Temporal differential expression (a trend over time), which is differential expression, not differential rhythmicity temporal-genomics/temporal-clustering - Group differentially-rhythmic genes by the shape of their change single-cell/preprocessing - Entry to cell-level analysis, to separate reduced ensemble amplitude (desynchrony) from true loss of per-cell rhythm