{
  "_id": "6ad29af090c8bbdf41a50a92",
  "Type": "Package",
  "Package": "gcplyr",
  "Title": "Wrangle and Analyze Growth Curve Data",
  "Version": "1.13.1",
  "Date": "2026-10-16",
  "Authors@R": "person(\"Mike\", \"Blazanin\", , \"mikeblazanin@gmail.com\",\nrole = c(\"aut\", \"cre\"),\ncomment = c(ORCID = \"0000-0003-4630-6235\"))",
  "Description": "Easy importing, wrangling, and model-free analysis of\nmicrobial growth curve data, as commonly output by plate\nreaders. Tools for flexibly importing all the common data\nformats output by plate readers and reshaping them into 'tidy'\nformats for analyses. Tools for importing experimental designs\nfrom files or generating them in R and merging design\ninformation with density data, making it easy to analyze with\n'gcplyr' and 'tidyverse' or 'dplyr' functions, and to plot with\n'ggplot2'. Streamlines extracting parameters like growth\nrate/doubling time, maximum density (carrying capacity), lag\ntime, area under the curve, diauxic shifts, extinction, and\nmore without fitting an equation for growth to your data. Has\nseveral methods to deal with noise in growth curve data. See\nmethods at <https://mikeblazanin.github.io/gcplyr/>.",
  "License": "MIT + file LICENSE",
  "URL": "https://mikeblazanin.github.io/gcplyr/,\nhttps://github.com/mikeblazanin/gcplyr/",
  "VignetteBuilder": "knitr",
  "Config/testthat/edition": "3",
  "Encoding": "UTF-8",
  "LazyData": "true",
  "Roxygen": "list(markdown = TRUE)",
  "Config/roxygen2/version": "8.1.1",
  "Config/pak/sysreqs": "libicu-dev",
  "Repository": "https://mikeblazanin.r-universe.dev",
  "Date/Publication": "2026-10-16 18:17:10 UTC",
  "RemoteUrl": "https://github.com/mikeblazanin/gcplyr",
  "RemoteRef": "HEAD",
  "RemoteSha": "dc8ceb3a26388502c66594bf0fb31c7bca7075a5",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-10-16 21:39:30 UTC",
    "User": "root"
  },
  "Author": "Mike Blazanin [aut, cre] (ORCID:\n<https://orcid.org/0000-0003-4630-6235>)",
  "Maintainer": "Mike Blazanin <mikeblazanin@gmail.com>",
  "_user": "mikeblazanin",
  "_type": "src",
  "_file": "gcplyr_1.13.1.tar.gz",
  "_fileid": "https://r2.ropensci.org/f1ca70628e33f4c18d8b0a47dabc509212ba485209efe448f081b51901278d2d",
  "_filesize": 9969541,
  "_sha256": "f1ca70628e33f4c18d8b0a47dabc509212ba485209efe448f081b51901278d2d",
  "_expires": "2027-01-24T21:45:16.000Z",
  "_created": "2026-10-16T21:39:30.000Z",
  "_published": "2026-10-16T21:45:20.565Z",
  "_buildurl": "https://github.com/r-universe/mikeblazanin/actions/runs/38970210602",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_jobs": [
    {
      "job": 117208697724,
      "time": 192,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12077580907"
    },
    {
      "job": 117208697547,
      "time": 153,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12076796750"
    },
    {
      "job": 117208697555,
      "time": 130,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12077001995"
    },
    {
      "job": 117208697529,
      "time": 143,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12077441327"
    },
    {
      "job": 117206555164,
      "time": 350,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12076323349"
    },
    {
      "job": 117208697593,
      "time": 130,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "12076458447"
    },
    {
      "job": 117208697820,
      "time": 96,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12076333469"
    },
    {
      "job": 117208697574,
      "time": 91,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12076298511"
    },
    {
      "job": 117208697886,
      "time": 105,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12077520842"
    }
  ],
  "_upstream": "https://github.com/mikeblazanin/gcplyr",
  "_commit": {
    "id": "dc8ceb3a26388502c66594bf0fb31c7bca7075a5",
    "author": "Mike Blazanin <mikeblazanin@gmail.com>",
    "committer": "Mike Blazanin <mikeblazanin@gmail.com>",
    "message": "CRAN submission 1.13.1\n",
    "time": 1792174630
  },
  "_maintainer": {
    "name": "Mike Blazanin",
    "email": "mikeblazanin@gmail.com",
    "login": "mikeblazanin",
    "description": "Graduate student in Ecology and Evolutionary Biology at Yale University",
    "uuid": 16413385,
    "orcid": "0000-0003-4630-6235"
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 2.10",
      "role": "Depends"
    },
    {
      "package": "dplyr",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "tidyr",
      "role": "Imports"
    },
    {
      "package": "tools",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "caret",
      "role": "Suggests"
    },
    {
      "package": "cellranger",
      "role": "Suggests"
    },
    {
      "package": "ggplot2",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "lubridate",
      "role": "Suggests"
    },
    {
      "package": "mgcv",
      "role": "Suggests"
    },
    {
      "package": "readxl",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "sf",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "xlsx",
      "role": "Suggests"
    }
  ],
  "_owner": "mikeblazanin",
  "_selfowned": true,
  "_usedby": 1,
  "_updates": [
    {
      "week": "2026-05",
      "n": 2
    },
    {
      "week": "2026-17",
      "n": 3
    },
    {
      "week": "2026-19",
      "n": 1
    },
    {
      "week": "2026-41",
      "n": 3
    },
    {
      "week": "2026-42",
      "n": 45
    }
  ],
  "_tags": [
    {
      "name": "v1.13.0",
      "date": "2026-10-14"
    },
    {
      "name": "v1.13.1",
      "date": "2026-10-16"
    }
  ],
  "_topics": [
    "bacterial-growth",
    "bioinformatics",
    "dplyr",
    "ggplot2",
    "growth-curve-analysis",
    "growth-curves",
    "microbial-growth",
    "microbiology",
    "tidyverse"
  ],
  "_stars": 39,
  "_contributors": [
    {
      "user": "mikeblazanin",
      "count": 1685,
      "uuid": 16413385
    },
    {
      "user": "celiavilaro",
      "count": 6,
      "uuid": 65031245
    }
  ],
  "_userbio": {
    "uuid": 16413385,
    "type": "user",
    "name": "Mike Blazanin",
    "followers": 9,
    "description": "Graduate student in Ecology and Evolutionary Biology at Yale University"
  },
  "_downloads": {
    "count": 616,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/gcplyr"
  },
  "_devurl": "https://github.com/mikeblazanin/gcplyr",
  "_pkgdown": "https://mikeblazanin.github.io/gcplyr/",
  "_searchresults": 108,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/gcplyr.html",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE"
  ],
  "_homeurl": "https://github.com/mikeblazanin/gcplyr",
  "_realowner": "mikeblazanin",
  "_cranurl": true,
  "_releases": [
    {
      "version": "1.1.0",
      "date": "2023-02-03"
    },
    {
      "version": "1.5.1",
      "date": "2023-04-14"
    },
    {
      "version": "1.5.2",
      "date": "2023-05-03"
    },
    {
      "version": "1.6.0",
      "date": "2023-09-13"
    },
    {
      "version": "1.7.1",
      "date": "2023-11-03"
    },
    {
      "version": "1.8.0",
      "date": "2024-01-30"
    },
    {
      "version": "1.9.0",
      "date": "2024-03-11"
    },
    {
      "version": "1.10.0",
      "date": "2024-07-09"
    },
    {
      "version": "1.11.0",
      "date": "2025-01-17"
    },
    {
      "version": "1.12.0",
      "date": "2025-08-01"
    }
  ],
  "_exports": [
    "auc",
    "block_tidydesign",
    "calc_deriv",
    "centroid",
    "centroid_both",
    "centroid_x",
    "centroid_y",
    "doubling_time",
    "extr_val",
    "find_local_extrema",
    "find_threshold_crosses",
    "first_above",
    "first_below",
    "first_maxima",
    "first_minima",
    "first_peak",
    "from_excel",
    "gc_smooth.spline",
    "import_blockdesigns",
    "import_blockmeasures",
    "lag_time",
    "make_design",
    "make_designpattern",
    "make_example",
    "make_tidydesign",
    "makemethod_train_smooth_data",
    "max_gc",
    "mdp",
    "merge_dfs",
    "min_gc",
    "moving_average",
    "moving_median",
    "paste_blocks",
    "predict_interpolation",
    "print_df",
    "read_blocks",
    "read_tidys",
    "read_wides",
    "separate_tidy",
    "smooth_data",
    "solve_linear",
    "to_excel",
    "train_smooth_data",
    "trans_block_to_wide",
    "trans_wide_to_tidy",
    "uninterleave",
    "which_max_gc",
    "which_min_gc",
    "write_blocks"
  ],
  "_datasets": [
    {
      "name": "example_design_tidy",
      "title": "Design for example growth curve data",
      "object": "example_design_tidy",
      "class": [
        "data.frame"
      ],
      "fields": [
        "Well",
        "Bacteria_strain",
        "Phage"
      ],
      "rows": 96,
      "table": true,
      "tojson": true
    },
    {
      "name": "example_widedata",
      "title": "Example noisy growth curve data in wide format",
      "object": "example_widedata",
      "class": [
        "data.frame"
      ],
      "fields": [
        "Time",
        "A1",
        "B1",
        "C1",
        "D1",
        "E1",
        "F1",
        "G1",
        "H1",
        "A2",
        "B2",
        "C2",
        "D2",
        "E2",
        "F2",
        "G2",
        "H2",
        "A3",
        "B3",
        "C3",
        "D3",
        "E3",
        "F3",
        "G3",
        "H3",
        "A4",
        "B4",
        "C4",
        "D4",
        "E4",
        "F4",
        "G4",
        "H4",
        "A5",
        "B5",
        "C5",
        "D5",
        "E5",
        "F5",
        "G5",
        "H5",
        "A6",
        "B6",
        "C6",
        "D6",
        "E6",
        "F6",
        "G6",
        "H6",
        "A7",
        "B7",
        "C7",
        "D7",
        "E7",
        "F7",
        "G7",
        "H7",
        "A8",
        "B8",
        "C8",
        "D8",
        "E8",
        "F8",
        "G8",
        "H8",
        "A9",
        "B9",
        "C9",
        "D9",
        "E9",
        "F9",
        "G9",
        "H9",
        "A10",
        "B10",
        "C10",
        "D10",
        "E10",
        "F10",
        "G10",
        "H10",
        "A11",
        "B11",
        "C11",
        "D11",
        "E11",
        "F11",
        "G11",
        "H11",
        "A12",
        "B12",
        "C12",
        "D12",
        "E12",
        "F12",
        "G12",
        "H12"
      ],
      "rows": 97,
      "table": true,
      "tojson": true
    },
    {
      "name": "example_widedata_noiseless",
      "title": "Example growth curve data in wide format",
      "object": "example_widedata_noiseless",
      "class": [
        "data.frame"
      ],
      "fields": [
        "Time",
        "A1",
        "B1",
        "C1",
        "D1",
        "E1",
        "F1",
        "G1",
        "H1",
        "A2",
        "B2",
        "C2",
        "D2",
        "E2",
        "F2",
        "G2",
        "H2",
        "A3",
        "B3",
        "C3",
        "D3",
        "E3",
        "F3",
        "G3",
        "H3",
        "A4",
        "B4",
        "C4",
        "D4",
        "E4",
        "F4",
        "G4",
        "H4",
        "A5",
        "B5",
        "C5",
        "D5",
        "E5",
        "F5",
        "G5",
        "H5",
        "A6",
        "B6",
        "C6",
        "D6",
        "E6",
        "F6",
        "G6",
        "H6",
        "A7",
        "B7",
        "C7",
        "D7",
        "E7",
        "F7",
        "G7",
        "H7",
        "A8",
        "B8",
        "C8",
        "D8",
        "E8",
        "F8",
        "G8",
        "H8",
        "A9",
        "B9",
        "C9",
        "D9",
        "E9",
        "F9",
        "G9",
        "H9",
        "A10",
        "B10",
        "C10",
        "D10",
        "E10",
        "F10",
        "G10",
        "H10",
        "A11",
        "B11",
        "C11",
        "D11",
        "E11",
        "F11",
        "G11",
        "H11",
        "A12",
        "B12",
        "C12",
        "D12",
        "E12",
        "F12",
        "G12",
        "H12"
      ],
      "rows": 97,
      "table": true,
      "tojson": true
    }
  ],
  "_help": [
    {
      "page": "auc",
      "title": "Calculate area under the curve",
      "topics": [
        "auc"
      ]
    },
    {
      "page": "block_tidydesign",
      "title": "Turn tidydesign into block format",
      "topics": [
        "block_tidydesign"
      ]
    },
    {
      "page": "calc_deriv",
      "title": "Calculate derivatives of vector of data",
      "topics": [
        "calc_deriv"
      ]
    },
    {
      "page": "CentroidFunctions",
      "title": "Calculate centroid",
      "topics": [
        "centroid",
        "CentroidFunctions",
        "centroid_both",
        "centroid_x",
        "centroid_y"
      ]
    },
    {
      "page": "doubling_time",
      "title": "Calculate doubling time equivalent of per-capita growth rate",
      "topics": [
        "doubling_time"
      ]
    },
    {
      "page": "example_design_tidy",
      "title": "Design for example growth curve data",
      "topics": [
        "example_design_tidy"
      ]
    },
    {
      "page": "example_widedata",
      "title": "Example noisy growth curve data in wide format",
      "topics": [
        "example_widedata"
      ]
    },
    {
      "page": "example_widedata_noiseless",
      "title": "Example growth curve data in wide format",
      "topics": [
        "example_widedata_noiseless"
      ]
    },
    {
      "page": "extr_val",
      "title": "Extract parts of an object",
      "topics": [
        "extr_val"
      ]
    },
    {
      "page": "ExtremaFunctions",
      "title": "Find local extrema of a numeric vector",
      "topics": [
        "ExtremaFunctions",
        "find_local_extrema",
        "first_maxima",
        "first_minima"
      ]
    },
    {
      "page": "first_peak",
      "title": "Find the first local maxima of a 'numeric' 'vector'",
      "topics": [
        "first_peak"
      ]
    },
    {
      "page": "from_excel",
      "title": "A function that converts base-26 Excel-style letters to numbers",
      "topics": [
        "from_excel"
      ]
    },
    {
      "page": "gc_smooth.spline",
      "title": "Fit a Smoothing Spline",
      "topics": [
        "gc_smooth.spline"
      ]
    },
    {
      "page": "import_blockdesigns",
      "title": "Import blockdesigns",
      "topics": [
        "import_blockdesigns"
      ]
    },
    {
      "page": "import_blockmeasures",
      "title": "Import blockmeasures",
      "topics": [
        "import_blockmeasures"
      ]
    },
    {
      "page": "lag_time",
      "title": "Calculate lag time",
      "topics": [
        "lag_time"
      ]
    },
    {
      "page": "make_design",
      "title": "Make design data.frame(s)",
      "topics": [
        "make_design"
      ]
    },
    {
      "page": "make_designpattern",
      "title": "Make design pattern",
      "topics": [
        "make_designpattern",
        "mdp"
      ]
    },
    {
      "page": "make_example",
      "title": "Create R objects or files as seen in vignette examples",
      "topics": [
        "make_example"
      ]
    },
    {
      "page": "make_tidydesign",
      "title": "Make tidy design data.frame's",
      "topics": [
        "make_tidydesign"
      ]
    },
    {
      "page": "makemethod_train_smooth_data",
      "title": "Create method argument for train of growth curve smoothers",
      "topics": [
        "makemethod_train_smooth_data"
      ]
    },
    {
      "page": "merge_dfs",
      "title": "Collapse a list of data.frame's, or merge two data.frame's together",
      "topics": [
        "merge_dfs"
      ]
    },
    {
      "page": "MinMaxGC",
      "title": "Maxima and Minima",
      "topics": [
        "max_gc",
        "MinMaxGC",
        "min_gc"
      ]
    },
    {
      "page": "MovingWindowFunctions",
      "title": "Moving window smoothing",
      "topics": [
        "MovingWindowFunctions",
        "moving_average",
        "moving_median"
      ]
    },
    {
      "page": "paste_blocks",
      "title": "Paste a list of blocks into a single block",
      "topics": [
        "paste_blocks"
      ]
    },
    {
      "page": "predict_interpolation",
      "title": "Predict data by linear interpolation from existing data",
      "topics": [
        "predict_interpolation"
      ]
    },
    {
      "page": "print_df",
      "title": "Nicely print the contents of a data.frame",
      "topics": [
        "print_df"
      ]
    },
    {
      "page": "read_blocks",
      "title": "Read blocks",
      "topics": [
        "read_blocks"
      ]
    },
    {
      "page": "read_tidys",
      "title": "Read tidy-shaped files",
      "topics": [
        "read_tidys"
      ]
    },
    {
      "page": "read_wides",
      "title": "Read wides",
      "topics": [
        "read_wides"
      ]
    },
    {
      "page": "separate_tidy",
      "title": "Separate a column into multiple columns",
      "topics": [
        "separate_tidy"
      ]
    },
    {
      "page": "smooth_data",
      "title": "Smooth data",
      "topics": [
        "smooth_data"
      ]
    },
    {
      "page": "solve_linear",
      "title": "Return missing information about a line",
      "topics": [
        "solve_linear"
      ]
    },
    {
      "page": "ThresholdFunctions",
      "title": "Find point(s) when a numeric vector crosses some threshold",
      "topics": [
        "find_threshold_crosses",
        "first_above",
        "first_below",
        "ThresholdFunctions"
      ]
    },
    {
      "page": "to_excel",
      "title": "A function that converts numbers into base-26 Excel-style letters",
      "topics": [
        "to_excel"
      ]
    },
    {
      "page": "train_smooth_data",
      "title": "Test efficacy of different smoothing parameters",
      "topics": [
        "train_smooth_data"
      ]
    },
    {
      "page": "trans_block_to_wide",
      "title": "Transform blocks to wides",
      "topics": [
        "trans_block_to_wide"
      ]
    },
    {
      "page": "trans_wide_to_tidy",
      "title": "Pivot wide-shaped into tidy",
      "topics": [
        "trans_wide_to_tidy"
      ]
    },
    {
      "page": "uninterleave",
      "title": "Uninterleave list",
      "topics": [
        "uninterleave"
      ]
    },
    {
      "page": "WhichMinMaxGC",
      "title": "Where is the Min() or Max() or first TRUE or FALSE?",
      "topics": [
        "WhichMinMaxGC",
        "which_max_gc",
        "which_min_gc"
      ]
    },
    {
      "page": "write_blocks",
      "title": "Write block designs to csv",
      "topics": [
        "write_blocks"
      ]
    }
  ],
  "_readme": "https://github.com/mikeblazanin/gcplyr/raw/HEAD/README.md",
  "_rundeps": [
    "cli",
    "cpp11",
    "dplyr",
    "generics",
    "glue",
    "lifecycle",
    "magrittr",
    "pillar",
    "pkgconfig",
    "purrr",
    "R6",
    "rlang",
    "stringi",
    "stringr",
    "tibble",
    "tidyr",
    "tidyselect",
    "utf8",
    "vctrs",
    "withr"
  ],
  "_vignettes": [
    {
      "source": "gc06_analyze.Rmd",
      "filename": "gc06_analyze.pdf",
      "title": "Analyzing data",
      "author": "Mike Blazanin",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Where are we so far?",
        "Analyzing data with summarize",
        "Most common metrics",
        "Growth",
        "Saturation",
        "Total growth",
        "Diauxic growth",
        "Death or growth with antagonists (e.g. phages)",
        "Another brief primer on dplyr: summarize",
        "Plotting summarized metrics",
        "The most common metrics",
        "Lag time",
        "Maximum growth rate and minimum doubling time",
        "Maximum density",
        "Area under the curve",
        "Growth metrics",
        "Initial density",
        "Lag time",
        "Time to reach threshold density",
        "Time to reach threshold growth rate",
        "Maximum growth rate and minimum doubling time",
        "Saturation metrics",
        "Mid-point time or inflection point",
        "Maximum density",
        "Total growth metrics",
        "Area under the curve",
        "Centroid of area under the curve",
        "Diauxic growth metrics",
        "Diauxic shifts",
        "Growth rate during diauxie",
        "Metrics of death or growth with antagonists",
        "Peak bacterial density",
        "Extinction time",
        "Centroid of area under the curve",
        "Maximum death rate",
        "Total death",
        "What's next?"
      ],
      "created": "2023-11-03 04:34:43",
      "modified": "2026-10-16 00:00:40",
      "commits": 18
    },
    {
      "source": "gc08_conclusion.Rmd",
      "filename": "gc08_conclusion.pdf",
      "title": "Best practices and other tips",
      "author": "Mike Blazanin",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Where are we so far?",
        "Statistical analyses of growth curves data",
        "When should we average replicates?",
        "Carrying out statistical testing",
        "Combining growth curves data with other data",
        "Other growth curve analysis packages",
        "What's next?"
      ],
      "created": "2023-11-03 04:34:43",
      "modified": "2024-07-09 18:57:02",
      "commits": 13
    },
    {
      "source": "gc07_noise.Rmd",
      "filename": "gc07_noise.pdf",
      "title": "Dealing with noise",
      "author": "Mike Blazanin",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Where are we so far?",
        "Introduction",
        "Summarizing on subsets of derivatives",
        "Fitting during derivative calculation",
        "Smoothing raw data",
        "Smoothing with moving-median",
        "Smoothing with moving-average",
        "Combining multiple smoothing methods",
        "Smoothing with other methods",
        "Choosing tuning parameter values",
        "Calculating derivatives of smoothed data",
        "What's next?"
      ],
      "created": "2023-11-03 04:34:43",
      "modified": "2024-03-10 18:44:08",
      "commits": 14
    },
    {
      "source": "gc02_import_reshape.Rmd",
      "filename": "gc02_import_reshape.pdf",
      "title": "Importing and reshaping data",
      "author": "Mike Blazanin",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Where are we so far?",
        "Data formats and layouts",
        "Importing data",
        "Importing block-shaped data",
        "A basic example",
        "Specifying metadata",
        "Reading multiple blocks from a single file",
        "What to do next",
        "Importing wide-shaped data",
        "Importing tidy-shaped data",
        "Transforming data",
        "Transforming from wide-shaped to tidy-shaped",
        "What's next?"
      ],
      "created": "2024-01-29 21:06:05",
      "modified": "2024-03-09 19:54:11",
      "commits": 7
    },
    {
      "source": "gc03_incorporate_designs.Rmd",
      "filename": "gc03_incorporate_designs.pdf",
      "title": "Incorporating experimental designs",
      "author": "Mike Blazanin",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Where are we so far?",
        "Including design elements",
        "Importing block-shaped design files",
        "A basic example",
        "Importing multiple block-shaped design elements",
        "Importing multiple block-shaped designs in separate files",
        "Importing multiple separated block-shaped designs in one file",
        "Importing multiple pasted block-shaped designs",
        "Importing tidy-shaped design files",
        "Merging growth curve data with designs",
        "What's next?"
      ],
      "created": "2023-11-03 04:34:43",
      "modified": "2024-03-10 17:46:59",
      "commits": 12
    },
    {
      "source": "gc01_gcplyr.Rmd",
      "filename": "gc01_gcplyr.pdf",
      "title": "Introduction to using gcplyr",
      "author": "Mike Blazanin",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Getting started",
        "A quick demo of gcplyr",
        "What's next?"
      ],
      "created": "2023-11-03 04:34:43",
      "modified": "2026-10-14 21:54:21",
      "commits": 12
    },
    {
      "source": "gc04_preprocess_plot.Rmd",
      "filename": "gc04_preprocess_plot.pdf",
      "title": "Pre-processing and plotting data",
      "author": "Mike Blazanin",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Where are we so far?",
        "Pre-processing",
        "Pre-processing: excluding data",
        "Pre-processing: converting dates & times into numeric",
        "Pre-processing: subtracting blanks",
        "Plotting your data",
        "What's next?"
      ],
      "created": "2023-11-03 04:34:43",
      "modified": "2025-07-26 19:54:08",
      "commits": 15
    },
    {
      "source": "gc05_process.Rmd",
      "filename": "gc05_process.pdf",
      "title": "Processing data",
      "author": "Mike Blazanin",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Where are we so far?",
        "How to process and analyze your data",
        "A brief primer on dplyr",
        "Processing data: calculating derivatives",
        "A simple derivative",
        "Per-capita derivative",
        "Converting per-capita growth rates into doubling times",
        "What's next?"
      ],
      "created": "2023-11-03 04:34:43",
      "modified": "2026-10-16 00:00:40",
      "commits": 12
    },
    {
      "source": "gc10_using_make_design.Rmd",
      "filename": "gc10_using_make_design.pdf",
      "title": "Using make_design to generate experimental designs",
      "author": "Mike Blazanin",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Where are we so far?",
        "Including design elements",
        "An example with a single design",
        "A few notes on the pattern",
        "Continuing with the example: multiple designs",
        "Saving designs to files",
        "Saving tidy-shaped designs",
        "Saving block-shaped designs",
        "Saving block-shaped designs to multiple files",
        "Saving block-shaped designs to a single file",
        "Merging growth curve data with designs"
      ],
      "created": "2024-03-08 18:00:06",
      "modified": "2024-03-09 19:54:11",
      "commits": 2
    },
    {
      "source": "gc09_multiple_plates.Rmd",
      "filename": "gc09_multiple_plates.pdf",
      "title": "Working with multiple plates",
      "author": "Mike Blazanin",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Where are we so far?",
        "A brief primer on lists in R",
        "Importing data for multiple plates",
        "Reading files for multiple block-shaped plates",
        "Separated block-shaped plate files",
        "Interleaved block-shaped plate files",
        "Reading files for multiple wide-shaped plates",
        "Transforming multiple plates to tidy-shaped",
        "Merging designs with multiple plates",
        "Plates with different designs",
        "Plates with a shared design"
      ],
      "created": "2023-11-03 04:34:43",
      "modified": "2024-07-09 18:57:02",
      "commits": 7
    }
  ],
  "_score": 8.49954962590515,
  "_indexed": true,
  "_nocasepkg": "gcplyr",
  "_universes": [
    "mikeblazanin"
  ],
  "_previous": "1.13.0",
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.13.1",
      "date": "2026-10-16T21:42:21.000Z",
      "distro": "resolute",
      "commit": "dc8ceb3a26388502c66594bf0fb31c7bca7075a5",
      "fileid": "https://r2.ropensci.org/373911a791738a183cdc3fd61b20fd8012516cd4e2fe84cc434357bf69ac73f2",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/mikeblazanin/actions/runs/38970210602"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "1.13.1",
      "date": "2026-10-16T21:42:02.000Z",
      "distro": "resolute",
      "commit": "dc8ceb3a26388502c66594bf0fb31c7bca7075a5",
      "fileid": "https://r2.ropensci.org/66e227355bc56ceecd3b3164016ca5f69f618be4245f503c0b14bb3913b3fe08",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/mikeblazanin/actions/runs/38970210602"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "1.13.1",
      "date": "2026-10-16T21:44:19.000Z",
      "commit": "dc8ceb3a26388502c66594bf0fb31c7bca7075a5",
      "fileid": "https://r2.ropensci.org/ca7986b276a710d72b9f8c23fdb0aeb6b508dbd87847105b18905b569971c443",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/mikeblazanin/actions/runs/38970210602"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "1.13.1",
      "date": "2026-10-16T21:43:02.000Z",
      "commit": "dc8ceb3a26388502c66594bf0fb31c7bca7075a5",
      "fileid": "https://r2.ropensci.org/a3ddb9e484c73b057686fdb18ac1869875908f3098776f936c2be65618584901",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/mikeblazanin/actions/runs/38970210602"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "1.13.1",
      "date": "2026-10-16T21:42:02.000Z",
      "commit": "dc8ceb3a26388502c66594bf0fb31c7bca7075a5",
      "fileid": "https://r2.ropensci.org/e5a799b09f6df8551aa0a87a38fe7cd026d4d005d84a65a37a5e2365d6f2d25b",
      "status": "success",
      "buildurl": "https://github.com/r-universe/mikeblazanin/actions/runs/38970210602"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "1.13.1",
      "date": "2026-10-16T21:40:55.000Z",
      "commit": "dc8ceb3a26388502c66594bf0fb31c7bca7075a5",
      "fileid": "https://r2.ropensci.org/f4082b077862a6aeb70a47609300f102c0cb35285195a7b5164099c95ae37a15",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/mikeblazanin/actions/runs/38970210602"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "1.13.1",
      "date": "2026-10-16T21:40:47.000Z",
      "commit": "dc8ceb3a26388502c66594bf0fb31c7bca7075a5",
      "fileid": "https://r2.ropensci.org/b4d6766964fa1d20fada1d84e7ec5004971bead08f7c539c50b68fceba7a95f7",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/mikeblazanin/actions/runs/38970210602"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "1.13.1",
      "date": "2026-10-16T21:40:57.000Z",
      "commit": "dc8ceb3a26388502c66594bf0fb31c7bca7075a5",
      "fileid": "https://r2.ropensci.org/0187728f0dedd58bca8e2bd160503a51157cf8286e697249ef51c19e96fbb115",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/mikeblazanin/actions/runs/38970210602"
    }
  ]
}