{
  "_id": "6a3a52ab6265ec60d620f1ff",
  "Package": "nocturn",
  "Title": "Sleep Data Filtering and Visualisation",
  "Version": "1.1.3",
  "Authors@R": "person(\n\"Daniel\",\n\"Thedie\",\nemail = \"daniel.thedie@ed.ac.uk\",\nrole = c(\"aut\", \"cre\", \"cph\"),\ncomment = c(ORCID = \"0000-0002-1352-7245\")\n)",
  "Description": "An online app and command-line utility to import, filter\nand visualise sleep data. Can be used with sleep data collected\nfrom any type of device (e.g. radar, sleep diary,...) as long\nas the data contains sleep onset and wake-up times for each\nsleep session.",
  "License": "MIT + file LICENSE",
  "Encoding": "UTF-8",
  "Roxygen": "list(markdown = TRUE)",
  "Config/testthat/edition": "3",
  "LazyData": "true",
  "URL": "https://github.com/chronopsychiatry/AMBIENT-BD-nocturn",
  "BugReports": "https://github.com/chronopsychiatry/AMBIENT-BD-nocturn/issues",
  "Config/roxygen2/version": "8.0.0",
  "Repository": "https://chronopsychiatry.r-universe.dev",
  "Date/Publication": "2026-06-17 15:29:15 UTC",
  "RemoteUrl": "https://github.com/chronopsychiatry/ambient-bd-nocturn",
  "RemoteRef": "HEAD",
  "RemoteSha": "8a19c5314918adaeb8ab3589e922124c73a03900",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-06-23 09:28:43 UTC",
    "User": "root"
  },
  "Author": "Daniel Thedie [aut, cre, cph] (ORCID:\n<https://orcid.org/0000-0002-1352-7245>)",
  "Maintainer": "Daniel Thedie <daniel.thedie@ed.ac.uk>",
  "MD5sum": "7ab0f8079cea8ace66d1a9d4d346aad3",
  "_user": "chronopsychiatry",
  "_type": "src",
  "_file": "nocturn_1.1.3.tar.gz",
  "_fileid": "19f2ba9d837a7b5e86268ccbdea115dc1086a0014b6ca02db980d1a2459d98d9",
  "_filesize": 3527788,
  "_sha256": "19f2ba9d837a7b5e86268ccbdea115dc1086a0014b6ca02db980d1a2459d98d9",
  "_created": "2026-06-23T09:28:43.000Z",
  "_published": "2026-06-23T09:32:27.071Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 82921711549,
      "time": 179,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7816885918"
    },
    {
      "job": 82921711625,
      "time": 146,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7816873061"
    },
    {
      "job": 82921711610,
      "time": 181,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7816876331"
    },
    {
      "job": 82921711594,
      "time": 153,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7816866930"
    },
    {
      "job": 82920880223,
      "time": 255,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7816811177"
    },
    {
      "job": 82921711654,
      "time": 138,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7816869822"
    },
    {
      "job": 82921711626,
      "time": 154,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7816876016"
    },
    {
      "job": 82921711590,
      "time": 120,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7816862616"
    },
    {
      "job": 82921711588,
      "time": 121,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7816862498"
    }
  ],
  "_buildurl": "https://github.com/r-universe/chronopsychiatry/actions/runs/28016141665",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/chronopsychiatry/ambient-bd-nocturn",
  "_commit": {
    "id": "8a19c5314918adaeb8ab3589e922124c73a03900",
    "author": "DanielThedie <dthedie@gmail.com>",
    "committer": "DanielThedie <dthedie@gmail.com>",
    "message": "Fix documentation for CRAN submission\n\n* Add @returns to `nocturn()` and `sleep_report()`\n* Change `\\dontrun{}` to `\\donttest{}` in sleep_report examples\n* Change `\\dontrun{}` to `if(interactive()){}` in nocturn examples\n",
    "time": 1781710155
  },
  "_maintainer": {
    "name": "Daniel Thedie",
    "email": "daniel.thedie@ed.ac.uk",
    "login": "danielthedie",
    "description": "Research Software Engineer in the BioRDM team at the University of Edinburgh.",
    "uuid": 62017239,
    "orcid": "0000-0002-1352-7245"
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.3",
      "role": "Depends"
    },
    {
      "package": "circular",
      "role": "Imports"
    },
    {
      "package": "cli",
      "role": "Imports"
    },
    {
      "package": "dplyr",
      "role": "Imports"
    },
    {
      "package": "edfReader",
      "role": "Imports"
    },
    {
      "package": "ggnewscale",
      "role": "Imports"
    },
    {
      "package": "ggplot2",
      "role": "Imports"
    },
    {
      "package": "lubridate",
      "role": "Imports"
    },
    {
      "package": "readxl",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "scales",
      "role": "Imports"
    },
    {
      "package": "shiny",
      "role": "Imports"
    },
    {
      "package": "shinyalert",
      "role": "Imports"
    },
    {
      "package": "stringr",
      "role": "Imports"
    },
    {
      "package": "tibble",
      "role": "Imports"
    },
    {
      "package": "tidyr",
      "role": "Imports"
    },
    {
      "package": "rsvg",
      "role": "Imports"
    },
    {
      "package": "svgedit",
      "role": "Imports"
    },
    {
      "package": "qpdf",
      "role": "Imports"
    },
    {
      "package": "bslib",
      "role": "Suggests"
    },
    {
      "package": "devtools",
      "role": "Suggests"
    },
    {
      "package": "DT",
      "role": "Suggests"
    },
    {
      "package": "markdown",
      "role": "Suggests"
    },
    {
      "package": "readr",
      "role": "Suggests"
    },
    {
      "package": "shinyjs",
      "role": "Suggests"
    },
    {
      "package": "shinyWidgets",
      "role": "Suggests"
    },
    {
      "package": "svglite",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "role": "Suggests"
    }
  ],
  "_owner": "chronopsychiatry",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2025-26",
      "n": 12
    },
    {
      "week": "2025-27",
      "n": 1
    },
    {
      "week": "2025-28",
      "n": 3
    },
    {
      "week": "2025-29",
      "n": 1
    },
    {
      "week": "2025-30",
      "n": 1
    },
    {
      "week": "2025-31",
      "n": 2
    },
    {
      "week": "2025-36",
      "n": 2
    },
    {
      "week": "2025-37",
      "n": 2
    },
    {
      "week": "2025-38",
      "n": 8
    },
    {
      "week": "2025-39",
      "n": 7
    },
    {
      "week": "2025-41",
      "n": 7
    },
    {
      "week": "2025-42",
      "n": 1
    },
    {
      "week": "2025-46",
      "n": 4
    },
    {
      "week": "2025-47",
      "n": 8
    },
    {
      "week": "2025-48",
      "n": 2
    },
    {
      "week": "2025-50",
      "n": 5
    },
    {
      "week": "2025-51",
      "n": 8
    },
    {
      "week": "2026-02",
      "n": 4
    },
    {
      "week": "2026-03",
      "n": 4
    },
    {
      "week": "2026-04",
      "n": 6
    },
    {
      "week": "2026-10",
      "n": 5
    },
    {
      "week": "2026-12",
      "n": 1
    },
    {
      "week": "2026-19",
      "n": 1
    },
    {
      "week": "2026-20",
      "n": 2
    },
    {
      "week": "2026-24",
      "n": 8
    },
    {
      "week": "2026-25",
      "n": 1
    }
  ],
  "_tags": [
    {
      "name": "minor_release",
      "date": "2025-07-15"
    },
    {
      "name": "0.0.9",
      "date": "2025-09-26"
    },
    {
      "name": "major_release",
      "date": "2025-11-18"
    },
    {
      "name": "v1.1.2",
      "date": "2026-03-20"
    }
  ],
  "_topics": [
    "ambient-bd"
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "danielthedie",
      "count": 326,
      "uuid": 62017239
    }
  ],
  "_userbio": {
    "uuid": 98774571,
    "type": "organization",
    "name": "Chronopsychiatry",
    "followers": 1
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/nocturn"
  },
  "_devurl": "https://github.com/chronopsychiatry/ambient-bd-nocturn",
  "_searchresults": 3,
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/nocturn.html",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE",
    "manual.pdf"
  ],
  "_homeurl": "https://github.com/chronopsychiatry/ambient-bd-nocturn",
  "_realowner": "chronopsychiatry",
  "_cranurl": true,
  "_releases": [
    {
      "version": "1.1.3",
      "date": "2026-06-22"
    }
  ],
  "_exports": [
    "check_epoch_colnames",
    "check_session_colnames",
    "check_suggests",
    "chronotype",
    "clean_epochs",
    "clean_sessions",
    "composite_phase_deviation",
    "filter_by_age_range",
    "filter_by_night_range",
    "filter_by_sex",
    "filter_epochs_from_sessions",
    "get_col",
    "get_colnames",
    "get_epoch_colnames",
    "get_epochs_summary",
    "get_non_complying_sessions",
    "get_removed_sessions",
    "get_session_colnames",
    "get_sessions_summary",
    "get_time_per_day",
    "group_epochs_by_night",
    "group_sessions_by_night",
    "interdaily_stability",
    "is_iso8601_datetime",
    "load_batch",
    "load_epochs",
    "load_sessions",
    "max_time",
    "mean_time",
    "min_time",
    "nocturn",
    "parse_date",
    "parse_time",
    "plot_bedtimes_waketimes",
    "plot_hypnogram",
    "plot_sleep_bubbles",
    "plot_sleep_clock",
    "plot_sleep_spiral",
    "plot_timeseries",
    "plot_timeseries_sessions",
    "read_edf_epochs",
    "read_edf_sessions",
    "remove_sessions_no_sleep",
    "sd_time",
    "select_devices",
    "select_subjects",
    "set_colnames",
    "set_data_type",
    "set_min_sleep_period",
    "set_min_time_in_bed",
    "set_session_sleep_onset_range",
    "set_session_start_time_range",
    "shift_times_by_12h",
    "show_log_once",
    "sleep_regularity_index",
    "sleep_report",
    "sleeptimes_boxplot",
    "sleeptimes_density",
    "sleeptimes_histogram",
    "social_jet_lag",
    "time_diff",
    "time_to_hours",
    "update_date",
    "write_log"
  ],
  "_datasets": [
    {
      "name": "example_epochs",
      "title": "Example Epoch data",
      "object": "example_epochs",
      "class": [
        "data.frame"
      ],
      "fields": [
        "timestamp",
        "session_id",
        "signal_quality_mean",
        "movement_fast_mean",
        "movement_fast_nonzero_pct",
        "distance_mean",
        "motion_data_count",
        "light_ambient_mean",
        "sound_amplitude_mean",
        "temperature_ambient_mean",
        "pressure_mean",
        "humidity_mean",
        "indoor_air_quality_mean",
        "epoch_duration",
        "sleep_stage",
        "filename",
        "is_asleep",
        "night"
      ],
      "rows": 18755,
      "table": true,
      "tojson": true
    },
    {
      "name": "example_epochs_v1",
      "title": "Example Epoch data (Somnofy API v1)",
      "object": "example_epochs_v1",
      "class": [
        "data.frame"
      ],
      "fields": [
        "timestamp",
        "movement_fast_filtered_custom_mean",
        "signal_quality_mean",
        "distance_mean",
        "motion_data_count",
        "light_ambient_mean",
        "sound_amplitude_mean",
        "temperature_ambient_mean",
        "pressure_mean",
        "humidity_mean",
        "indoor_air_quality_mean",
        "epoch_duration",
        "sleep_stage",
        "filename",
        "session_id",
        "is_asleep",
        "night"
      ],
      "rows": 1373,
      "table": true,
      "tojson": true
    },
    {
      "name": "example_sessions",
      "title": "Example Sessions data",
      "object": "example_sessions",
      "class": [
        "data.frame"
      ],
      "fields": [
        "id",
        "state",
        "subject_id",
        "device_serial_number",
        "epoch_count",
        "session_start",
        "relative_session_start",
        "session_end",
        "time_at_last_epoch",
        "time_at_intended_sleep",
        "time_at_intended_wakeup",
        "time_in_undefined",
        "time_at_sleep_onset",
        "time_at_wakeup",
        "time_at_midsleep",
        "sleep_onset_latency",
        "sleep_period",
        "time_in_bed",
        "time_asleep",
        "sleep_efficiency",
        "time_in_light_sleep",
        "time_in_rem_sleep",
        "time_in_deep_sleep",
        "time_in_no_presence",
        "number_of_times_no_presence",
        "time_wake_after_sleep_onset",
        "number_of_times_awake",
        "number_of_times_awake_long",
        "time_wake_pre_post_sleep",
        "time_from_sleep_onset_to_first_rem",
        "movement_fast_during_sleep_period_mean",
        "rpm_non_rem_filtered_mean",
        "rpm_non_rem_mean_var",
        "rpm_non_rem_baseline",
        "rpm_non_rem_baseline_std",
        "heart_rate_non_rem_filtered_mean",
        "heart_rate_non_rem_mean",
        "external_heart_rate_non_rem_filtered_mean",
        "epochs_with_movement_pct",
        "epochs_with_movement_during_time_in_bed_pct",
        "time_with_movement_pct",
        "time_with_movement_during_time_in_bed_pct",
        "sleep_cycles_count",
        "is_workday",
        "chronotype",
        "social_jet_lag",
        "jet_lag",
        "regularity",
        "sleep_score_standard",
        "sleep_fragmentation",
        "external_spo2_mean",
        "external_spo2_min",
        "distance_during_sleep_mean",
        "distance_during_sleep_std",
        "air_pressure_filtered_mean",
        "light_ambient_filtered_mean",
        "light_ambient_at_wakeup_mean",
        "sound_amplitude_filtered_mean",
        "sound_amplitude_during_sleep_mean",
        "sound_amplitude_during_sleep_filtered_for_noise_mean",
        "sound_amplitude_during_sleep_filtered_for_movement_mean",
        "sound_amplitude_at_wakeup",
        "epochs_with_sound_spikes_during_sleep_count",
        "awakenings_caused_by_sound_count",
        "temperature_filtered_mean",
        "indoor_air_quality_filtered_mean",
        "air_humidity_filtered_mean",
        "night"
      ],
      "rows": 124,
      "table": true,
      "tojson": true
    },
    {
      "name": "example_sessions_v1",
      "title": "Example Sessions data (Somnofy API v1)",
      "object": "example_sessions_v1",
      "class": [
        "data.frame"
      ],
      "fields": [
        "user_id",
        "first_name",
        "last_name",
        "display_name",
        "sex",
        "height",
        "weight",
        "birth_year",
        "session_id",
        "epoch_count",
        "session_start",
        "relative_session_start",
        "ems_report_start",
        "session_end",
        "time_at_last_epoch",
        "time_at_intended_sleep",
        "time_at_intended_wakeup",
        "time_in_undefined",
        "time_at_sleep_onset",
        "time_at_wakeup",
        "time_at_midsleep",
        "sleep_onset_latency",
        "sleep_period",
        "time_in_bed",
        "time_asleep",
        "sleep_efficiency",
        "time_in_light_sleep",
        "time_in_rem_sleep",
        "time_in_deep_sleep",
        "time_in_no_presence",
        "number_of_times_no_presence",
        "time_wake_after_sleep_onset",
        "number_of_times_awake",
        "number_of_times_awake_long",
        "time_wake_pre_post_sleep",
        "time_from_sleep_onset_to_first_rem",
        "movement_fast_during_sleep_period_mean",
        "rpm_non_rem_filtered_mean",
        "heart_rate_non_rem_filtered_mean",
        "external_heartrate_non_rem_filtered_mean",
        "epochs_with_movement_pct",
        "epochs_with_movement_during_time_in_bed_pct",
        "sleep_cycles_count",
        "is_workday",
        "chronotype",
        "social_jet_lag",
        "jet_lag",
        "regularity",
        "sleep_score_2_standard",
        "sleep_fragmentation",
        "external_spo2_mean",
        "external_spo2_min",
        "distance_during_sleep_mean",
        "distance_during_sleep_std",
        "air_pressure_filtered_mean",
        "light_ambient_filtered_mean",
        "light_ambient_before_intended_sleep_mean",
        "light_ambient_at_wakeup_mean",
        "sound_amplitude_filtered_mean",
        "sound_amplitude_during_sleep_mean",
        "sound_amplitude_during_sleep_filtered_for_noise_mean",
        "sound_amplitude_during_sleep_filtered_for_movement_mean",
        "sound_amplitude_at_wakeup",
        "epochs_with_sound_spikes_during_sleep_count",
        "awakenings_caused_by_sound_count",
        "temperature_filtered_mean",
        "indoor_air_quality_filtered_mean",
        "air_humidity_filtered_mean",
        ".data_type",
        "night"
      ],
      "rows": 87,
      "table": true,
      "tojson": true
    }
  ],
  "_help": [
    {
      "page": "check_suggests",
      "title": "Check whether suggested packages are installed",
      "concept": [
        "internal"
      ],
      "topics": [
        "check_suggests"
      ]
    },
    {
      "page": "chronotype",
      "title": "Calculate the Chronotype",
      "concept": [
        "sleep metrics"
      ],
      "topics": [
        "chronotype"
      ]
    },
    {
      "page": "clean_epochs",
      "title": "Clean epoch data",
      "topics": [
        "clean_epochs"
      ]
    },
    {
      "page": "clean_sessions",
      "title": "Clean session data",
      "topics": [
        "clean_sessions"
      ]
    },
    {
      "page": "composite_phase_deviation",
      "title": "Calculate Composite Phase Deviation (CPD)",
      "concept": [
        "sleep metrics"
      ],
      "topics": [
        "composite_phase_deviation"
      ]
    },
    {
      "page": "example_epochs",
      "title": "Example Epoch data",
      "topics": [
        "example_epochs"
      ]
    },
    {
      "page": "example_epochs_v1",
      "title": "Example Epoch data (Somnofy API v1)",
      "topics": [
        "example_epochs_v1"
      ]
    },
    {
      "page": "example_sessions",
      "title": "Example Sessions data",
      "topics": [
        "example_sessions"
      ]
    },
    {
      "page": "example_sessions_v1",
      "title": "Example Sessions data (Somnofy API v1)",
      "topics": [
        "example_sessions_v1"
      ]
    },
    {
      "page": "filter_by_age_range",
      "title": "Filter sessions by age range",
      "concept": [
        "filtering"
      ],
      "topics": [
        "filter_by_age_range"
      ]
    },
    {
      "page": "filter_by_night_range",
      "title": "Filter sessions for nights within a night range",
      "concept": [
        "filtering"
      ],
      "topics": [
        "filter_by_night_range"
      ]
    },
    {
      "page": "filter_by_sex",
      "title": "Filter by sex",
      "concept": [
        "filtering"
      ],
      "topics": [
        "filter_by_sex"
      ]
    },
    {
      "page": "filter_epochs_from_sessions",
      "title": "Filter epochs based on session IDs",
      "concept": [
        "filtering"
      ],
      "topics": [
        "filter_epochs_from_sessions"
      ]
    },
    {
      "page": "get_col",
      "title": "Get a column from a dataframe safely",
      "concept": [
        "internal"
      ],
      "topics": [
        "get_col"
      ]
    },
    {
      "page": "get_colnames",
      "title": "Get standard column names for a data frame (sessions or epochs)",
      "concept": [
        "internal"
      ],
      "topics": [
        "get_colnames"
      ]
    },
    {
      "page": "get_epoch_colnames",
      "title": "Get a list of standard column names for epochs data",
      "concept": [
        "internal"
      ],
      "topics": [
        "get_epoch_colnames"
      ]
    },
    {
      "page": "get_epochs_summary",
      "title": "Summarise epoch information",
      "concept": [
        "data tables"
      ],
      "topics": [
        "get_epochs_summary"
      ]
    },
    {
      "page": "get_non_complying_sessions",
      "title": "Get non-complying sessions (i.e. where there is more than one session on the same day)",
      "concept": [
        "data tables"
      ],
      "topics": [
        "get_non_complying_sessions"
      ]
    },
    {
      "page": "get_removed_sessions",
      "title": "Get a table of sessions that were removed during filtering",
      "concept": [
        "data tables"
      ],
      "topics": [
        "get_removed_sessions"
      ]
    },
    {
      "page": "get_session_colnames",
      "title": "Get a list of standard column names for sessions data",
      "concept": [
        "internal"
      ],
      "topics": [
        "get_session_colnames"
      ]
    },
    {
      "page": "get_sessions_summary",
      "title": "Make a summary of session information",
      "concept": [
        "data tables"
      ],
      "topics": [
        "get_sessions_summary"
      ]
    },
    {
      "page": "get_time_per_day",
      "title": "Calculate the number of time units in a day",
      "concept": [
        "internal"
      ],
      "topics": [
        "get_time_per_day"
      ]
    },
    {
      "page": "group_epochs_by_night",
      "title": "Create a grouping by night for epoch data",
      "concept": [
        "time processing"
      ],
      "topics": [
        "group_epochs_by_night"
      ]
    },
    {
      "page": "group_sessions_by_night",
      "title": "Create a grouping by night for session data",
      "concept": [
        "time processing"
      ],
      "topics": [
        "group_sessions_by_night"
      ]
    },
    {
      "page": "interdaily_stability",
      "title": "Calculate Interdaily Stability (IS)",
      "concept": [
        "sleep metrics"
      ],
      "topics": [
        "interdaily_stability"
      ]
    },
    {
      "page": "is_iso8601_datetime",
      "title": "Check if a column contains ISO 8601 datetime strings",
      "concept": [
        "internal"
      ],
      "topics": [
        "is_iso8601_datetime"
      ]
    },
    {
      "page": "load_batch",
      "title": "Load session or epoch data in batch mode",
      "concept": [
        "data loading"
      ],
      "topics": [
        "load_batch"
      ]
    },
    {
      "page": "load_epochs",
      "title": "Load epoch data",
      "concept": [
        "data loading"
      ],
      "topics": [
        "load_epochs"
      ]
    },
    {
      "page": "load_sessions",
      "title": "Load session data",
      "concept": [
        "data loading"
      ],
      "topics": [
        "load_sessions"
      ]
    },
    {
      "page": "max_time",
      "title": "Calculate the maximum time from 12pm to 12pm",
      "concept": [
        "time processing"
      ],
      "topics": [
        "max_time"
      ]
    },
    {
      "page": "mean_time",
      "title": "Calculate the mean time from a vector of time strings",
      "concept": [
        "time processing"
      ],
      "topics": [
        "mean_time"
      ]
    },
    {
      "page": "min_time",
      "title": "Calculate the minimum time from 12pm to 12pm",
      "concept": [
        "time processing"
      ],
      "topics": [
        "min_time"
      ]
    },
    {
      "page": "nocturn",
      "title": "nocturn app",
      "topics": [
        "nocturn"
      ]
    },
    {
      "page": "parse_date",
      "title": "Parse a vector of date strings into Date objects",
      "concept": [
        "time processing"
      ],
      "topics": [
        "parse_date"
      ]
    },
    {
      "page": "parse_time",
      "title": "Parse a vector of time strings into POSIXct objects",
      "concept": [
        "time processing"
      ],
      "topics": [
        "parse_time"
      ]
    },
    {
      "page": "plot_bedtimes_waketimes",
      "title": "Plot bedtimes and waketimes",
      "topics": [
        "plot_bedtimes_waketimes"
      ]
    },
    {
      "page": "plot_hypnogram",
      "title": "Plot Hypnogram",
      "concept": [
        "plot epochs"
      ],
      "topics": [
        "plot_hypnogram"
      ]
    },
    {
      "page": "plot_sleep_bubbles",
      "title": "Plot Sleep Bubbles",
      "concept": [
        "plot sessions"
      ],
      "topics": [
        "plot_sleep_bubbles"
      ]
    },
    {
      "page": "plot_sleep_clock",
      "title": "Plot Sleep Clock",
      "concept": [
        "plot sessions"
      ],
      "topics": [
        "plot_sleep_clock"
      ]
    },
    {
      "page": "plot_sleep_spiral",
      "title": "Plot Sleep Spiral",
      "concept": [
        "plot epochs"
      ],
      "topics": [
        "plot_sleep_spiral"
      ]
    },
    {
      "page": "plot_timeseries",
      "title": "Plot epoch time series data for a given variable",
      "concept": [
        "plot epochs"
      ],
      "topics": [
        "plot_timeseries"
      ]
    },
    {
      "page": "plot_timeseries_sessions",
      "title": "Plot session time series data for a given variable",
      "concept": [
        "plot sessions"
      ],
      "topics": [
        "plot_timeseries_sessions"
      ]
    },
    {
      "page": "read_edf_epochs",
      "title": "Read EDF Epochs",
      "concept": [
        "data loading"
      ],
      "topics": [
        "read_edf_epochs"
      ]
    },
    {
      "page": "read_edf_sessions",
      "title": "Read EDF Sessions",
      "concept": [
        "data loading"
      ],
      "topics": [
        "read_edf_sessions"
      ]
    },
    {
      "page": "remove_sessions_no_sleep",
      "title": "Remove sessions with no sleep",
      "concept": [
        "filtering"
      ],
      "topics": [
        "remove_sessions_no_sleep"
      ]
    },
    {
      "page": "sd_time",
      "title": "Calculate the circular standard deviation of a vector of times",
      "concept": [
        "time processing"
      ],
      "topics": [
        "sd_time"
      ]
    },
    {
      "page": "select_devices",
      "title": "Select devices by ID",
      "concept": [
        "filtering"
      ],
      "topics": [
        "select_devices"
      ]
    },
    {
      "page": "select_subjects",
      "title": "Select subjects by ID",
      "concept": [
        "filtering"
      ],
      "topics": [
        "select_subjects"
      ]
    },
    {
      "page": "set_colnames",
      "title": "Set column names for a data frame (sessions or epochs)",
      "concept": [
        "internal"
      ],
      "topics": [
        "set_colnames"
      ]
    },
    {
      "page": "set_data_type",
      "title": "Set the type attribute for a data frame",
      "concept": [
        "internal"
      ],
      "topics": [
        "set_data_type"
      ]
    },
    {
      "page": "set_min_sleep_period",
      "title": "Set minimum sleep period",
      "concept": [
        "filtering"
      ],
      "topics": [
        "set_min_sleep_period"
      ]
    },
    {
      "page": "set_min_time_in_bed",
      "title": "Set minimum time in bed",
      "concept": [
        "filtering"
      ],
      "topics": [
        "set_min_time_in_bed"
      ]
    },
    {
      "page": "set_session_sleep_onset_range",
      "title": "Set sleep onset time range",
      "concept": [
        "filtering"
      ],
      "topics": [
        "set_session_sleep_onset_range"
      ]
    },
    {
      "page": "set_session_start_time_range",
      "title": "Set session start time range",
      "concept": [
        "filtering"
      ],
      "topics": [
        "set_session_start_time_range"
      ]
    },
    {
      "page": "shift_times_by_12h",
      "title": "Shift times to break at 12 pm",
      "concept": [
        "time processing"
      ],
      "topics": [
        "shift_times_by_12h"
      ]
    },
    {
      "page": "sleep_regularity_index",
      "title": "Calculate the Sleep Regularity Index (SRI)",
      "concept": [
        "sleep metrics"
      ],
      "topics": [
        "sleep_regularity_index"
      ]
    },
    {
      "page": "sleep_report",
      "title": "Generate a patient sleep report in PDF format",
      "topics": [
        "sleep_report"
      ]
    },
    {
      "page": "sleeptimes_boxplot",
      "title": "Plot boxplots for sleep onset, midsleep, and wakeup times",
      "topics": [
        "sleeptimes_boxplot"
      ]
    },
    {
      "page": "sleeptimes_density",
      "title": "Plot density curves for sleep onset, midsleep, and wakeup times with a dashed line showing the median",
      "topics": [
        "sleeptimes_density"
      ]
    },
    {
      "page": "sleeptimes_histogram",
      "title": "Plot histograms for sleep onset, midsleep, and wakeup times",
      "topics": [
        "sleeptimes_histogram"
      ]
    },
    {
      "page": "social_jet_lag",
      "title": "Calculate Social Jet Lag",
      "concept": [
        "sleep metrics"
      ],
      "topics": [
        "social_jet_lag"
      ]
    },
    {
      "page": "time_diff",
      "title": "Compute the forward time difference from t1 to t2 (wrapping at 24)",
      "concept": [
        "time processing"
      ],
      "topics": [
        "time_diff"
      ]
    },
    {
      "page": "time_to_hours",
      "title": "Convert time vector to numeric hours",
      "concept": [
        "time processing"
      ],
      "topics": [
        "time_to_hours"
      ]
    },
    {
      "page": "update_date",
      "title": "Update the date component of a POSIXct time object",
      "concept": [
        "time processing"
      ],
      "topics": [
        "update_date"
      ]
    }
  ],
  "_pkglogo": "https://github.com/chronopsychiatry/ambient-bd-nocturn/raw/HEAD/man/figures/logo.png",
  "_readme": "https://github.com/chronopsychiatry/ambient-bd-nocturn/raw/HEAD/README.md",
  "_rundeps": [
    "askpass",
    "base64enc",
    "boot",
    "bslib",
    "cachem",
    "cellranger",
    "circular",
    "cli",
    "commonmark",
    "cpp11",
    "crayon",
    "curl",
    "digest",
    "dplyr",
    "edfReader",
    "farver",
    "fastmap",
    "fontawesome",
    "fs",
    "generics",
    "ggnewscale",
    "ggplot2",
    "glue",
    "gtable",
    "hms",
    "htmltools",
    "httpuv",
    "isoband",
    "jquerylib",
    "jsonlite",
    "labeling",
    "later",
    "lifecycle",
    "lubridate",
    "magrittr",
    "memoise",
    "mime",
    "mvtnorm",
    "otel",
    "pillar",
    "pkgconfig",
    "prettyunits",
    "progress",
    "promises",
    "purrr",
    "qpdf",
    "R6",
    "rappdirs",
    "RColorBrewer",
    "Rcpp",
    "readxl",
    "rematch",
    "rlang",
    "rsvg",
    "S7",
    "sass",
    "scales",
    "shiny",
    "shinyalert",
    "sourcetools",
    "stringi",
    "stringr",
    "svgedit",
    "sys",
    "tibble",
    "tidyr",
    "tidyselect",
    "timechange",
    "utf8",
    "uuid",
    "vctrs",
    "viridisLite",
    "withr",
    "xml2",
    "xtable"
  ],
  "_score": 4.113943352306837,
  "_indexed": true,
  "_nocasepkg": "nocturn",
  "_universes": [
    "chronopsychiatry",
    "danielthedie"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.1.3",
      "date": "2026-06-23T09:31:28.000Z",
      "distro": "noble",
      "commit": "8a19c5314918adaeb8ab3589e922124c73a03900",
      "fileid": "b6079af4782542d056fc423e1dbc2176ef21319b56ec3b2d46467f4f239847bc",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/chronopsychiatry/actions/runs/28016141665"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "1.1.3",
      "date": "2026-06-23T09:31:05.000Z",
      "distro": "noble",
      "commit": "8a19c5314918adaeb8ab3589e922124c73a03900",
      "fileid": "41113db0844264e3e857fd364eb50d61bf408f3538d8f9255d042bcdc287b1b8",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/chronopsychiatry/actions/runs/28016141665"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "1.1.3",
      "date": "2026-06-23T09:31:16.000Z",
      "commit": "8a19c5314918adaeb8ab3589e922124c73a03900",
      "fileid": "91afa9eca2910d2a530d1fb0e0196ca2c3bb40907f32b9a87d8f7f647dc9c61b",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/chronopsychiatry/actions/runs/28016141665"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "1.1.3",
      "date": "2026-06-23T09:30:53.000Z",
      "commit": "8a19c5314918adaeb8ab3589e922124c73a03900",
      "fileid": "3217b18f109e83daf8f3fc6d82cd143992d257fc1564c7a13cc31838a223728f",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/chronopsychiatry/actions/runs/28016141665"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "1.1.3",
      "date": "2026-06-23T09:31:26.000Z",
      "commit": "8a19c5314918adaeb8ab3589e922124c73a03900",
      "fileid": "b5259958bf8ba3b82222ee00a544c85cf46f956a59f7f85ab95c26579015ef12",
      "status": "success",
      "buildurl": "https://github.com/r-universe/chronopsychiatry/actions/runs/28016141665"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "1.1.3",
      "date": "2026-06-23T09:30:37.000Z",
      "commit": "8a19c5314918adaeb8ab3589e922124c73a03900",
      "fileid": "52a58d646300c29ac3f0ce8f65ca37ab1519d1eec9ed15f9c811bb355b04e131",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/chronopsychiatry/actions/runs/28016141665"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "1.1.3",
      "date": "2026-06-23T09:30:16.000Z",
      "commit": "8a19c5314918adaeb8ab3589e922124c73a03900",
      "fileid": "ba66c2a380ca6fb984e22d3ff81069978d703d2cf33acf06e23cdcbf8ba86b10",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/chronopsychiatry/actions/runs/28016141665"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "1.1.3",
      "date": "2026-06-23T09:30:16.000Z",
      "commit": "8a19c5314918adaeb8ab3589e922124c73a03900",
      "fileid": "10876954882e57fe550bf2021165302c23d9c0a2f34c63fec591d18b2de74d2a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/chronopsychiatry/actions/runs/28016141665"
    }
  ]
}