NOVA v0.1.1 — CRAN-ready + UX enhancements
NOVA v0.1.1
Install from GitHub:
remotes::install_github("atudoras/nova")New Features
UX Enhancements
color_byparameter inplot_pca_trajectories_general()— colour trajectory lines by Treatment or Genotype- Genotype end-labels —
ggrepellabels at trajectory endpoints, shaped start (◇) and end (●) markers, timepoint subtitle split_by = "combination"increate_mea_heatmaps_enhanced()— Treatment × Genotype dual-annotated heatmap with Z-score scaling (blue-white-red, ±3 SD cap)- Per-metric visualisation —
plot_mea_metric()supports bar, box, violin and line plots per electrode metric - Zero-code quickstart —
Example/nova_quickstart.Rrequires only a single path change - Smart MEA row detection — label-based scan replaces hardcoded row positions
README & Docs
- Publication-quality 300 DPI trajectory figure from real MEA Neuronal Agonists data (4 treatment groups × 7 timepoints)
- Illustrated HTML User Guide with step-by-step walkthroughs
Bug Fixes & Code Quality
CRAN Readiness — 0 ERRORs · 0 WARNINGs in R CMD check --as-cran
| # | Issue | Fix |
|---|---|---|
| 1 | Non-ASCII chars in source (→ — × ◇ ● + box-drawing in comments) caused 4 test failures in ASCII locale |
Replaced all with ASCII equivalents |
| 2 | 4 undocumented params in create_mea_heatmaps_enhanced() |
Added @param for use_raw, filter_timepoints, filter_treatments, filter_genotypes |
| 3 | ~192 cat() calls writing to stdout |
Converted to message() — now suppressable via suppressMessages() |
| 4 | 6 print(plot_obj) side-effects |
Removed; plots already saved by ggsave() |
| 5 | 6 deprecated aes_string() calls |
Replaced with aes(x = .data[[col]]) pattern |
| 6 | size = in geom_tile, geom_errorbar, geom_errorbarh, stat_ellipse |
Changed to linewidth = (ggplot2 >= 3.4) |
| 7 | Missing globalVariables() entries |
All NSE column names declared; no "no visible binding" NOTEs |
| 8 | No LICENSE file | GPL (>= 3) LICENSE file added |
| 9 | LazyData: true with no data/ directory |
Removed from DESCRIPTION |
| 10 | No Language field |
Added Language: en-US to DESCRIPTION |
| 11 | .Rbuildignore too narrow |
Expanded to exclude .claude/, docs/, scripts/, Rplots.pdf, .github/ |
| 12 | Stray Rplots.pdf in root and tests/testthat/ |
Deleted |
| 13 | @param roxygen order didn't match function signature |
Reordered to match |
Earlier Bug Fixes
- Z-score scaling on combination heatmap (raw 300–500 range → normalised ±3 SD, blue-white-red)
- Duplicate row names in combination heatmap — fixed with unique
Treatment_Genotype_WellIDs names(.)anti-pattern insidedplyr::summarise— replaced with pre-computed flags- Scoping bug in
pca_analysis_enhancedExcel loading branch - Duplicate
null_coalescedefinition removed - Missing
tp_subtitlein per-group trajectorylabs()calls