{
  "_id": "6af0e0f2f4a180a2e271e43a",
  "Package": "menstrualcycleR",
  "Title": "Phase-Aligned Cycle Time Scaling (PACTS) and Menstrual Cycle\nAnalysis",
  "Version": "1.1.1",
  "Authors@R": "c(person(given = \"Anisha\", family = \"Nagpal\", email =\"anagpa7@uic.edu\", role = \"aut\",\ncomment = c(ORCID = \"0000-0001-7111-9322\")),\nperson(given = \"Tory\", family = \"Eisenlohr-Moul\", email = \"temo@uchicago.edu\", role = c(\"aut\", \"cre\"),\ncomment = c(ORCID = \"0000-0002-9231-3105\")))",
  "Description": "Implements Phase-Aligned Cycle Time Scaling (PACTS) for\nmenstrual cycle data, placing observations from cycles of\ndiffering length onto a common continuous timeline that\naccounts for variability in ovulation timing. Provides cycle\ntime variables anchored on either menses onset or ovulation,\nsummaries of how ovulation was determined in each cycle, and\nplotting functions for cycle-aligned outcomes. Methods are\ndescribed in Nagpal et al. (2025)\n<doi:10.1016/j.psyneuen.2025.107584>.",
  "URL": "https://menstrualcycler.clearlabresearch.com/,\nhttps://github.com/eisenlohrmoullab/menstrualcycleR",
  "BugReports": "https://github.com/eisenlohrmoullab/menstrualcycleR/issues",
  "License": "GPL (>= 3)",
  "Encoding": "UTF-8",
  "NeedsCompilation": "no",
  "Config/testthat/edition": "3",
  "VignetteBuilder": "knitr",
  "LazyData": "true",
  "Config/roxygen2/version": "8.1.0",
  "Packaged": {
    "Date": "2026-11-08 20:48:11 UTC",
    "User": "root"
  },
  "Author": "Anisha Nagpal [aut] (ORCID:\n<https://orcid.org/0000-0001-7111-9322>), Tory Eisenlohr-Moul\n[aut, cre] (ORCID: <https://orcid.org/0000-0002-9231-3105>)",
  "Maintainer": "Tory Eisenlohr-Moul <temo@uchicago.edu>",
  "Repository": "https://cran.r-universe.dev",
  "Date/Publication": "2026-11-08 19:51:47 UTC",
  "RemoteUrl": "https://github.com/cran/menstrualcycleR",
  "RemoteRef": "HEAD",
  "RemoteSha": "dcbe01f9836a189bf6ad07e1d79d1d9f91130003",
  "_user": "cran",
  "_type": "src",
  "_file": "menstrualcycleR_1.1.1.tar.gz",
  "_fileid": "https://r2.ropensci.org/1fd7d3f8c27d6e158b4af093a627939ee99897c89befb072a207e272fdf17629",
  "_filesize": 1191801,
  "_sha256": "1fd7d3f8c27d6e158b4af093a627939ee99897c89befb072a207e272fdf17629",
  "_expires": "2027-02-16T20:52:00.000Z",
  "_created": "2026-11-08T20:48:11.000Z",
  "_published": "2026-11-08T20:52:02.971Z",
  "_upstream": "https://github.com/cran/menstrualcycleR",
  "_status": "success",
  "_maintainer": {
    "name": "Tory Eisenlohr-Moul",
    "email": "temo@uchicago.edu",
    "login": "teisenlohrmouluc",
    "description": "Professor of Psychiatry and Behavioral Neuroscience at the University of Chicago",
    "uuid": 305322062,
    "orcid": "0000-0002-9231-3105"
  },
  "_jobs": [
    {
      "job": 128857283337,
      "time": 169,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "13634066532"
    },
    {
      "job": 128857283267,
      "time": 191,
      "config": "linux-release-x86_64",
      "r": "4.6.2",
      "check": "OK",
      "artifact": "13633861338"
    },
    {
      "job": 128856350012,
      "time": 215,
      "config": "source",
      "r": "4.6.2",
      "check": "OK",
      "artifact": "13634016179"
    },
    {
      "job": 128857283269,
      "time": 111,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "13633404063"
    },
    {
      "job": 128857283285,
      "time": 161,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "13633553445"
    },
    {
      "job": 128857283409,
      "time": 164,
      "config": "windows-release-x86_64",
      "r": "4.6.2",
      "check": "OK",
      "artifact": "13633787392"
    }
  ],
  "_buildurl": "https://github.com/r-universe/cran/actions/runs/42521646376",
  "_commit": {
    "id": "dcbe01f9836a189bf6ad07e1d79d1d9f91130003",
    "author": "Tory Eisenlohr-Moul <temo@uchicago.edu>",
    "committer": "cran-robot <csardi.gabor+cran@gmail.com>",
    "message": "version 1.1.1\n",
    "time": 1794167507
  },
  "_distro": "resolute",
  "_host": "GitHub-Actions",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 3.5.0",
      "role": "Depends"
    },
    {
      "package": "dplyr",
      "role": "Imports"
    },
    {
      "package": "ggplot2",
      "version": ">= 3.4.0",
      "role": "Imports"
    },
    {
      "package": "magrittr",
      "role": "Imports"
    },
    {
      "package": "purrr",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "tidyr",
      "role": "Imports"
    },
    {
      "package": "zoo",
      "role": "Imports"
    },
    {
      "package": "viridis",
      "role": "Imports"
    },
    {
      "package": "glue",
      "role": "Imports"
    },
    {
      "package": "lubridate",
      "role": "Imports"
    },
    {
      "package": "shiny",
      "role": "Imports"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "marginaleffects",
      "role": "Suggests"
    },
    {
      "package": "mgcv",
      "role": "Suggests"
    },
    {
      "package": "shinyjs",
      "role": "Suggests"
    },
    {
      "package": "writexl",
      "role": "Suggests"
    }
  ],
  "_owner": "cran",
  "_selfowned": false,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-45",
      "n": 1
    }
  ],
  "_tags": [
    {
      "name": "1.1.1",
      "date": "2026-11-08"
    }
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "teisenlohrmouluc",
      "count": 1,
      "uuid": 305322062
    }
  ],
  "_userbio": {
    "uuid": 6899542,
    "type": "organization",
    "name": "cran",
    "followers": 636,
    "description": "Unofficial read-only mirror of all CRAN R packages"
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/menstrualcycleR"
  },
  "_devurl": "https://github.com/eisenlohrmoullab/menstrualcycler",
  "_pkgdown": "https://menstrualcycler.clearlabresearch.com/",
  "_searchresults": 15,
  "_rbuild": "4.6.2",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/menstrualcycleR.html",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md"
  ],
  "_cranurl": false,
  "_releases": [
    {
      "version": "1.1.1",
      "date": "2026-11-08"
    }
  ],
  "_exports": [
    "cycle_plot",
    "cycle_plot_individual",
    "cycledata_check",
    "launch_app",
    "pacts_scaling",
    "summary_ovulation"
  ],
  "_datasets": [
    {
      "name": "cycledata",
      "title": "Example longitudinal daily dataset with cycle measures",
      "object": "cycledata",
      "class": [
        "data.frame"
      ],
      "fields": [
        "id",
        "menses",
        "ovtoday",
        "symptom",
        "daterated"
      ],
      "rows": 619,
      "table": true,
      "tojson": true
    },
    {
      "name": "cycledata_special",
      "title": "Practice dataset of special cases: one person per setting",
      "object": "cycledata_special",
      "class": [
        "data.frame"
      ],
      "fields": [
        "id",
        "daterated",
        "symptom",
        "menses",
        "ovtoday",
        "case"
      ],
      "rows": 998,
      "table": true,
      "tojson": true
    }
  ],
  "_help": [
    {
      "page": "cycle_plot",
      "title": "Plot Symptom Data Across the Menstrual Cycle",
      "topics": [
        "cycle_plot"
      ]
    },
    {
      "page": "cycle_plot_individual",
      "title": "Generate Cycle-Specific Plots and Summary Data for a Given ID",
      "topics": [
        "cycle_plot_individual"
      ]
    },
    {
      "page": "cycledata",
      "title": "Example longitudinal daily dataset with cycle measures",
      "topics": [
        "cycledata"
      ]
    },
    {
      "page": "cycledata_check",
      "title": "Analyze Non-Missing Symptom Data by Cycle Phase",
      "topics": [
        "cycledata_check"
      ]
    },
    {
      "page": "cycledata_special",
      "title": "Practice dataset of special cases: one person per setting",
      "topics": [
        "cycledata_special"
      ]
    },
    {
      "page": "launch_app",
      "title": "Launch the Menstrual Cycle Shiny App",
      "topics": [
        "launch_app"
      ]
    },
    {
      "page": "pacts_scaling",
      "title": "Phase-Aligned Cycle Time Scaling (PACTS)",
      "topics": [
        "pacts_scaling"
      ]
    },
    {
      "page": "summary_ovulation",
      "title": "Summarize Ovulation Confirmation and Imputation",
      "topics": [
        "summary_ovulation"
      ]
    }
  ],
  "_readme": "https://github.com/cran/menstrualcycleR/raw/HEAD/README.md",
  "_rundeps": [
    "base64enc",
    "bslib",
    "cachem",
    "cli",
    "commonmark",
    "cpp11",
    "digest",
    "dplyr",
    "farver",
    "fastmap",
    "fontawesome",
    "fs",
    "generics",
    "ggplot2",
    "glue",
    "gridExtra",
    "gtable",
    "htmltools",
    "httpuv",
    "isoband",
    "jquerylib",
    "jsonlite",
    "labeling",
    "later",
    "lattice",
    "lifecycle",
    "lubridate",
    "magrittr",
    "memoise",
    "mime",
    "otel",
    "pillar",
    "pkgconfig",
    "promises",
    "purrr",
    "R6",
    "rappdirs",
    "RColorBrewer",
    "Rcpp",
    "rlang",
    "S7",
    "sass",
    "scales",
    "shiny",
    "sourcetools",
    "stringi",
    "stringr",
    "tibble",
    "tidyr",
    "tidyselect",
    "timechange",
    "utf8",
    "vctrs",
    "viridis",
    "viridisLite",
    "withr",
    "xtable",
    "zoo"
  ],
  "_vignettes": [
    {
      "source": "menstrualcycleR-overview.Rmd",
      "filename": "menstrualcycleR-overview.html",
      "title": "Getting Started with menstrualcycleR and Phase-Aligned Cycle Time Scaling (PACTS)",
      "author": "Anisha Nagpal, Tory Eisenlohr-Moul",
      "engine": "knitr::rmarkdown",
      "headings": [
        "What is PACTS, Scaled Cycle Time, and menstrualcycleR?",
        "Understanding the Challenge",
        "Introducing PACTS",
        "Why Continuous Cycle Modeling?",
        "Anchoring on Ovulation and Menses",
        "Estimating Ovulation Without an Ovulation Biomarker",
        "Optional: imputing the next menses from a confirmed ovulation",
        "Purpose and Use Cases",
        "Data Requirements for Utilizing PACTS and menstrualcycleR",
        "1. Daily Data with Self-Reported Menses Onset",
        "2. Ovulation Assessment or Imputation",
        "3. Cycle Length Inclusion Criteria",
        "4. Supported Variables and Formats",
        "Installation of the menstrualcycleR package",
        "Using menstrualcycleR",
        "Overview of Package Functions",
        "1. Cycle Scaling Function: pacts_scaling()",
        "2. Data Checking Functions",
        "3. Data Visualization Functions",
        "4. Launching the Shiny App: launch_app()",
        "Demo dataset",
        "A second dataset, for awkward cases",
        "Applying PACTS",
        "Before and After: Filling Missing Dates Within a Cycle",
        "Summary of Row Counts",
        "Cycle time variables are added in cycle_df_scaled",
        "Checking Data availability",
        "Checking Ovulation Data Availability",
        "Visualizing outcomes across the cycle",
        "cycle_plot()",
        "Note on Rolling Averages",
        "Symptom, Menses-centered",
        "Symptom, Ovulation-centered",
        "Visualizing Individual Participants and Cycles with cycle_plot_individual()",
        "cycle_plot_individual",
        "cycle_plot_individual Output",
        "Cycle_1 summary for ID = 2",
        "Cycle_1 plot for ID = 2",
        "Modeling Menstrual Cycle Dynamics with Generalized Additive Mixed Models (GAMMs)",
        "Model Specifications",
        "Running a GAMM",
        "Data Preparation",
        "Interpreting the GAMM Summary Output",
        "Model Family & Link",
        "Model Formula",
        "Parametric Coefficients",
        "Smooth Terms",
        "Model Fit",
        "Visualizing your GAMM across the menstrual cycle",
        "First, we need to compute predicted or model-implied values",
        "Plotting model-implied values",
        "Outstanding Questions",
        "References"
      ],
      "created": "2026-11-08 19:51:47",
      "modified": "2026-11-08 19:51:47",
      "commits": 1
    },
    {
      "source": "preparing-your-data.Rmd",
      "filename": "preparing-your-data.html",
      "title": "Preparing Your Data for PACTS",
      "author": "Tory Eisenlohr-Moul",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Input format",
        "One row per person per day",
        "Menses onset",
        "Ovulation",
        "From a period-tracker export to the PACTS table",
        "Common device exports",
        "Checks before scaling",
        "Choosing a cycle-time variable",
        "Anchor",
        "Confirmed or imputed ovulation",
        "Sensitivity to imputed ovulation",
        "Extended-phase rows",
        "When your data is awkward",
        "A setting recovers rows and data at different rates",
        "leading_ovulation_luteal_days is a placement, not a cap",
        "Some people cannot be recovered, and it is worth knowing which",
        "The case column disappears on fabricated rows, deliberately",
        "What to report",
        "References"
      ],
      "created": "2026-11-08 19:51:47",
      "modified": "2026-11-08 19:51:47",
      "commits": 1
    }
  ],
  "_score": 3.1760912590556813,
  "_indexed": true,
  "_nocasepkg": "menstrualcycler",
  "_universes": [
    "cran",
    "teisenlohrmouluc",
    "eisenlohrmoullab"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.1.1",
      "date": "2026-11-08T20:50:16.000Z",
      "distro": "resolute",
      "commit": "dcbe01f9836a189bf6ad07e1d79d1d9f91130003",
      "fileid": "https://r2.ropensci.org/d4ff6f7e19ec63276e1e3059b065c43128870b9e6a29358d57e3eb89a1b207b9",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/42521646376"
    },
    {
      "r": "4.6.2",
      "os": "linux",
      "version": "1.1.1",
      "date": "2026-11-08T20:50:19.000Z",
      "distro": "resolute",
      "commit": "dcbe01f9836a189bf6ad07e1d79d1d9f91130003",
      "fileid": "https://r2.ropensci.org/9cf591943e3dcd41f28ea802125f96e09438a66c08cbb2df17286a6b44070bcd",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/42521646376"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "1.1.1",
      "date": "2026-11-08T20:50:18.000Z",
      "commit": "dcbe01f9836a189bf6ad07e1d79d1d9f91130003",
      "fileid": "https://r2.ropensci.org/6bfde1915c69c7adb905fb866bc90164ff226ad4e5b55fa043a0d38acadd9608",
      "status": "success",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/42521646376"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "1.1.1",
      "date": "2026-11-08T20:49:24.000Z",
      "commit": "dcbe01f9836a189bf6ad07e1d79d1d9f91130003",
      "fileid": "https://r2.ropensci.org/a2e503102d445ed2219d4b47b5397df0018b9254addf4ea934a8c06476f8e74b",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/42521646376"
    },
    {
      "r": "4.6.2",
      "os": "win",
      "version": "1.1.1",
      "date": "2026-11-08T20:49:18.000Z",
      "commit": "dcbe01f9836a189bf6ad07e1d79d1d9f91130003",
      "fileid": "https://r2.ropensci.org/80547b8199d7a004fe81fe16a43f7a7ea29995d3d55efc28e52910d108db9a9e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/42521646376"
    }
  ]
}