{
  "_id": "6a57f25cff0138dec5d7222a",
  "Package": "NOVA",
  "Type": "Package",
  "Title": "Neural Output Visualization and Analysis",
  "Version": "0.5.0",
  "Description": "A toolkit for analyzing and visualizing Multi-Electrode\nArray (MEA) neural recordings, from raw CSV discovery through\nPrincipal Component Analysis (PCA), heatmaps, per-metric plots,\nand trajectory visualization. A lightweight trajectory-summary\nlayer describes how experimental conditions move through state\nspace relative to baseline (distance travelled, path\ndirectness, and timing), with robust timepoint ordering and a\nplain-language interpretation helper. Provides\npublication-ready visualizations with flexible customization\noptions for neuroscience research applications.",
  "Authors@R": "person(given = \"Alex\",\nfamily = \"Tudoras\",\nrole = c(\"aut\", \"cre\"),\nemail = \"alex.tudorasmiravet@ucsf.edu\")",
  "License": "GPL (>= 3)",
  "Encoding": "UTF-8",
  "Language": "en-US",
  "RoxygenNote": "7.3.3",
  "VignetteBuilder": "knitr",
  "URL": "https://github.com/atudoras/nova",
  "BugReports": "https://github.com/atudoras/nova/issues",
  "Config/pak/sysreqs": "cmake make libicu-dev libuv1-dev libx11-dev\nzlib1g-dev",
  "Repository": "https://atudoras.r-universe.dev",
  "Date/Publication": "2026-07-15 19:29:30 UTC",
  "RemoteUrl": "https://github.com/atudoras/nova",
  "RemoteRef": "HEAD",
  "RemoteSha": "206cb603a3f7ef0eb91033b94608b7583520a92e",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-07-15 20:45:50 UTC",
    "User": "root"
  },
  "Author": "Alex Tudoras [aut, cre]",
  "Maintainer": "Alex Tudoras <alex.tudorasmiravet@ucsf.edu>",
  "_user": "atudoras",
  "_type": "src",
  "_file": "NOVA_0.5.0.tar.gz",
  "_fileid": "https://r2.ropensci.org/c726b65b67b738a9154f26ed46b0e10cae480ff8d2d171465f719f10aab01fba",
  "_filesize": 652009,
  "_sha256": "c726b65b67b738a9154f26ed46b0e10cae480ff8d2d171465f719f10aab01fba",
  "_expires": "2026-10-23T20:49:30.000Z",
  "_created": "2026-07-15T20:45:50.000Z",
  "_published": "2026-07-15T20:49:32.391Z",
  "_jobs": [
    {
      "job": 87468365979,
      "time": 175,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "8356949411"
    },
    {
      "job": 87468365987,
      "time": 175,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8356949659"
    },
    {
      "job": 87468366019,
      "time": 103,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "8356920173"
    },
    {
      "job": 87468365950,
      "time": 123,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8356928116"
    },
    {
      "job": 87467522920,
      "time": 244,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8356875982"
    },
    {
      "job": 87468365896,
      "time": 131,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "8356931368"
    },
    {
      "job": 87468365982,
      "time": 122,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "8356928100"
    },
    {
      "job": 87468365969,
      "time": 105,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "8356921141"
    },
    {
      "job": 87468365977,
      "time": 114,
      "config": "windows-release",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8356924669"
    }
  ],
  "_host": "GitHub-Actions",
  "_buildurl": "https://github.com/r-universe/atudoras/actions/runs/29449268320",
  "_status": "success",
  "_upstream": "https://github.com/atudoras/nova",
  "_commit": {
    "id": "206cb603a3f7ef0eb91033b94608b7583520a92e",
    "author": "Àlex Tudoras Miravet <alex.tudoras.miravet@gmail.com>",
    "committer": "Àlex Tudoras Miravet <alex.tudoras.miravet@gmail.com>",
    "message": "chore: keep case studies local until a finding is worth publishing\n\nMerges the removal of case_studies/ from the remote and ignores the\ndirectory wholesale, so nothing there can reach GitHub by accident.\n\nThe distinction that was missed: \"the package is ready to ship\" and \"this\nresult should be read by strangers\" are two different decisions. Approval\nfor the first was taken as approval for the second, and a scientific claim\nabout someone else's dataset went public without anyone deciding it should.\nA case study is a claim, not a code change. Publishing one is now a\ndeliberate act -- un-ignoring the folder -- rather than a side effect of a\npush.\n\nThe work is intact locally and still reproduces from a clean folder.\n\nAlso drops two now-broken links to case_studies/ from README.md and\nNEWS.md. The EPA dataset stays as a documentation example for why\n`experiment` may need several columns: that describes a public dataset's\nplate layout and asserts no result.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\n",
    "time": 1784143770
  },
  "_maintainer": {
    "name": "Alex Tudoras",
    "email": "alex.tudorasmiravet@ucsf.edu"
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1.0",
      "role": "Depends"
    },
    {
      "package": "readr",
      "role": "Imports"
    },
    {
      "package": "tibble",
      "role": "Imports"
    },
    {
      "package": "DT",
      "role": "Imports"
    },
    {
      "package": "knitr",
      "role": "Imports"
    },
    {
      "package": "scales",
      "role": "Imports"
    },
    {
      "package": "readxl",
      "role": "Imports"
    },
    {
      "package": "writexl",
      "role": "Imports"
    },
    {
      "package": "dplyr",
      "role": "Imports"
    },
    {
      "package": "ggplot2",
      "role": "Imports"
    },
    {
      "package": "tidyr",
      "version": ">= 1.1.0",
      "role": "Imports"
    },
    {
      "package": "purrr",
      "version": ">= 0.3.0",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "version": ">= 0.4.0",
      "role": "Imports"
    },
    {
      "package": "stringr",
      "version": ">= 1.4.0",
      "role": "Imports"
    },
    {
      "package": "RColorBrewer",
      "version": ">= 1.1.0",
      "role": "Imports"
    },
    {
      "package": "viridis",
      "version": ">= 0.5.0",
      "role": "Imports"
    },
    {
      "package": "pheatmap",
      "version": ">= 1.0.0",
      "role": "Imports"
    },
    {
      "package": "gridExtra",
      "version": ">= 2.3.0",
      "role": "Imports"
    },
    {
      "package": "ggrepel",
      "version": ">= 0.9.0",
      "role": "Imports"
    },
    {
      "package": "grid",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "grDevices",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "version": ">= 2.0",
      "role": "Suggests"
    }
  ],
  "_owner": "atudoras",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2025-37",
      "n": 8
    },
    {
      "week": "2025-41",
      "n": 4
    },
    {
      "week": "2026-13",
      "n": 13
    },
    {
      "week": "2026-14",
      "n": 10
    },
    {
      "week": "2026-26",
      "n": 5
    },
    {
      "week": "2026-27",
      "n": 1
    },
    {
      "week": "2026-28",
      "n": 2
    },
    {
      "week": "2026-29",
      "n": 14
    }
  ],
  "_tags": [
    {
      "name": "v0.1.0",
      "date": "2025-10-06"
    },
    {
      "name": "v0.1.1",
      "date": "2025-10-10"
    },
    {
      "name": "v0.2.0",
      "date": "2026-06-23"
    },
    {
      "name": "v0.3.0",
      "date": "2026-06-23"
    }
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "atudoras",
      "count": 47,
      "uuid": 78902934
    }
  ],
  "_userbio": {
    "uuid": 78902934,
    "type": "user",
    "name": "Àlex Tudoras",
    "followers": 0,
    "description": "Neuroscience PhD Candidate @UCSF"
  },
  "_downloads": {
    "count": 344,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/NOVA"
  },
  "_devurl": "https://github.com/atudoras/nova",
  "_searchresults": 18,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/NOVA.html",
    "extra/readme.html",
    "extra/readme.md",
    "manual.pdf"
  ],
  "_homeurl": "https://github.com/atudoras/nova",
  "_realowner": "atudoras",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.1.1",
      "date": "2025-10-16"
    },
    {
      "version": "0.1.5",
      "date": "2026-03-30"
    }
  ],
  "_exports": [
    "analyze_pca_variable_importance_general",
    "create_mea_heatmaps_enhanced",
    "discover_mea_structure",
    "nova_describe",
    "nova_extract_trajectories",
    "nova_order_timepoints",
    "nova_palette",
    "nova_theme",
    "nova_time_to_minutes",
    "nova_trajectory_summary",
    "nova_unit_cols",
    "nova_unit_id",
    "pca_analysis_enhanced",
    "pca_plots_enhanced",
    "plot_mea_metric",
    "plot_pca_trajectories_general",
    "process_mea_flexible",
    "process_mea_table"
  ],
  "_help": [
    {
      "page": "analyze_pca_variable_importance_general",
      "title": "Analyze and Visualize PCA Variable Importance",
      "topics": [
        "analyze_pca_variable_importance_general"
      ]
    },
    {
      "page": "create_mea_heatmaps_enhanced",
      "title": "Create Enhanced Heatmaps for Multi-Electrode Array (MEA) Data Analysis",
      "topics": [
        "create_mea_heatmaps_enhanced"
      ]
    },
    {
      "page": "discover_mea_structure",
      "title": "Discover MEA Data Structure",
      "topics": [
        "discover_mea_structure"
      ]
    },
    {
      "page": "nova_describe",
      "title": "Plain-language interpretation of a trajectory summary",
      "topics": [
        "nova_describe"
      ]
    },
    {
      "page": "nova_extract_trajectories",
      "title": "Extract ordered state-space trajectories from a PCA (or embedding) result",
      "topics": [
        "nova_extract_trajectories"
      ]
    },
    {
      "page": "nova_order_timepoints",
      "title": "Order timepoint labels into a biologically correct sequence",
      "topics": [
        "nova_order_timepoints"
      ]
    },
    {
      "page": "nova_palette",
      "title": "NOVA qualitative / sequential colour palette",
      "topics": [
        "nova_palette"
      ]
    },
    {
      "page": "nova_theme",
      "title": "NOVA dynamics ggplot2 theme",
      "topics": [
        "nova_theme"
      ]
    },
    {
      "page": "nova_time_to_minutes",
      "title": "Parse timepoint labels to numeric minutes",
      "topics": [
        "nova_time_to_minutes"
      ]
    },
    {
      "page": "nova_trajectory_summary",
      "title": "Summarise how conditions move through state space",
      "topics": [
        "nova_trajectory_summary"
      ]
    },
    {
      "page": "nova_unit_cols",
      "title": "Which columns identify one replicate well",
      "topics": [
        "nova_unit_cols"
      ]
    },
    {
      "page": "nova_unit_id",
      "title": "Collapse well identity into a single label",
      "topics": [
        "nova_unit_id"
      ]
    },
    {
      "page": "pca_analysis_enhanced",
      "title": "Enhanced PCA Analysis for MEA Data",
      "topics": [
        "pca_analysis_enhanced"
      ]
    },
    {
      "page": "pca_plots_enhanced",
      "title": "Enhanced PCA Plotting for Neural and Omics Data",
      "topics": [
        "pca_plots_enhanced"
      ]
    },
    {
      "page": "plot_mea_metric",
      "title": "Plot a Single MEA Metric Across Conditions",
      "topics": [
        "plot_mea_metric"
      ]
    },
    {
      "page": "plot_pca_trajectories_general",
      "title": "Plot PCA Trajectories for Time Series Data",
      "topics": [
        "plot_pca_trajectories_general"
      ]
    },
    {
      "page": "process_mea_flexible",
      "title": "Process MEA Data Flexibly",
      "topics": [
        "process_mea_flexible"
      ]
    },
    {
      "page": "process_mea_table",
      "title": "Process an already-tidy MEA metrics table",
      "topics": [
        "process_mea_table"
      ]
    }
  ],
  "_readme": "https://github.com/atudoras/nova/raw/HEAD/README.md",
  "_rundeps": [
    "base64enc",
    "bit",
    "bit64",
    "bslib",
    "cachem",
    "cellranger",
    "cli",
    "clipr",
    "cpp11",
    "crayon",
    "crosstalk",
    "digest",
    "dplyr",
    "DT",
    "evaluate",
    "farver",
    "fastmap",
    "fontawesome",
    "fs",
    "generics",
    "ggplot2",
    "ggrepel",
    "glue",
    "gridExtra",
    "gtable",
    "highr",
    "hms",
    "htmltools",
    "htmlwidgets",
    "isoband",
    "jquerylib",
    "jsonlite",
    "knitr",
    "labeling",
    "later",
    "lazyeval",
    "lifecycle",
    "magrittr",
    "memoise",
    "mime",
    "otel",
    "pheatmap",
    "pillar",
    "pkgconfig",
    "prettyunits",
    "progress",
    "promises",
    "purrr",
    "R6",
    "rappdirs",
    "RColorBrewer",
    "Rcpp",
    "readr",
    "readxl",
    "rematch",
    "rlang",
    "rmarkdown",
    "S7",
    "sass",
    "scales",
    "stringi",
    "stringr",
    "tibble",
    "tidyr",
    "tidyselect",
    "tinytex",
    "tzdb",
    "utf8",
    "vctrs",
    "viridis",
    "viridisLite",
    "vroom",
    "withr",
    "writexl",
    "xfun",
    "yaml"
  ],
  "_vignettes": [
    {
      "source": "NOVA_Trajectory_Summary.Rmd",
      "filename": "NOVA_Trajectory_Summary.html",
      "title": "NOVA: summarising how conditions move through state space",
      "author": "NOVA",
      "engine": "knitr::rmarkdown",
      "headings": [
        "1. The idea",
        "2. Get a PCA result (real data if available, else simulated)",
        "3. Trajectories (standard NOVA)",
        "4. Trajectory summary",
        "5. Plain-language summary",
        "6. How to read it",
        "Session info"
      ],
      "created": "2026-06-23 02:44:21",
      "modified": "2026-06-23 02:44:21",
      "commits": 1
    }
  ],
  "_score": 4.857332496431268,
  "_indexed": true,
  "_nocasepkg": "nova",
  "_universes": [
    "atudoras"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.5.0",
      "date": "2026-07-15T20:48:24.000Z",
      "distro": "resolute",
      "commit": "206cb603a3f7ef0eb91033b94608b7583520a92e",
      "fileid": "https://r2.ropensci.org/d0fc1a5ba5947af8b042724a0c22d62dd5a638d16fdd1116ec8c0ae083a87d71",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/atudoras/actions/runs/29449268320"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.5.0",
      "date": "2026-07-15T20:48:24.000Z",
      "distro": "resolute",
      "commit": "206cb603a3f7ef0eb91033b94608b7583520a92e",
      "fileid": "https://r2.ropensci.org/18d0c0d3cd015f7c7bbb5a269c4b7b686a716d1383575b300352ecb235d778d6",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/atudoras/actions/runs/29449268320"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.5.0",
      "date": "2026-07-15T20:47:29.000Z",
      "commit": "206cb603a3f7ef0eb91033b94608b7583520a92e",
      "fileid": "https://r2.ropensci.org/4d55ae005965d8084e4c80e88c07885dcd85483c651580b6387a7d49eaaf8cc3",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/atudoras/actions/runs/29449268320"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.5.0",
      "date": "2026-07-15T20:47:39.000Z",
      "commit": "206cb603a3f7ef0eb91033b94608b7583520a92e",
      "fileid": "https://r2.ropensci.org/e9c04796e30030a38b4276e4ba772878bd060a2420508c07bf60a36f8b891e7d",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/atudoras/actions/runs/29449268320"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.5.0",
      "date": "2026-07-15T20:48:23.000Z",
      "commit": "206cb603a3f7ef0eb91033b94608b7583520a92e",
      "fileid": "https://r2.ropensci.org/2f8ebd9960be4376793abcd646c9a812f0de4c37f28ec4aaa8a280f1c40d23d2",
      "status": "success",
      "buildurl": "https://github.com/r-universe/atudoras/actions/runs/29449268320"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.5.0",
      "date": "2026-07-15T20:47:21.000Z",
      "commit": "206cb603a3f7ef0eb91033b94608b7583520a92e",
      "fileid": "https://r2.ropensci.org/735dbb9d334e044714dd512d2b37d2a9437a2f2dde7f68ad76ba0fe1574ab4cb",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/atudoras/actions/runs/29449268320"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.5.0",
      "date": "2026-07-15T20:47:06.000Z",
      "commit": "206cb603a3f7ef0eb91033b94608b7583520a92e",
      "fileid": "https://r2.ropensci.org/1fad5d06f08ed5fa00a4fbd3a4e77f0c0f471507f7d13bf9612ad43492b5dade",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/atudoras/actions/runs/29449268320"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.5.0",
      "date": "2026-07-15T20:47:12.000Z",
      "commit": "206cb603a3f7ef0eb91033b94608b7583520a92e",
      "fileid": "https://r2.ropensci.org/cdd477fb9a43405d6a0fd7e7cfc3417d8aa2479279dc2b967182bdba40e92357",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/atudoras/actions/runs/29449268320"
    }
  ]
}