{
  "_id": "6a22767bcd65a98ecbd4afd5",
  "Type": "Package",
  "Package": "gcplyr",
  "Title": "Wrangle and Analyze Growth Curve Data",
  "Version": "1.12.0",
  "Date": "2025-07-28",
  "Authors@R": "person(\"Mike\", \"Blazanin\", , \"mikeblazanin@gmail.com\",\nrole = c(\"aut\", \"cre\"),\ncomment = c(ORCID = \"0000-0003-4630-6235\"))",
  "Description": "Easy wrangling and model-free analysis of microbial growth\ncurve data, as commonly output by plate readers. Tools for\nreshaping common plate reader outputs into 'tidy' formats and\nmerging them with design information, making data easy to work\nwith using 'gcplyr' and other packages. Also streamlines common\ngrowth curve processing steps, like smoothing and calculating\nderivatives, and facilitates model-free characterization and\nanalysis of growth data. See methods at\n<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",
  "RoxygenNote": "7.3.2",
  "Config/pak/sysreqs": "libicu-dev",
  "Repository": "https://mikeblazanin.r-universe.dev",
  "Date/Publication": "2025-07-28 23:53:00 UTC",
  "RemoteUrl": "https://github.com/mikeblazanin/gcplyr",
  "RemoteRef": "HEAD",
  "RemoteSha": "da868d5af445700e6bf16e049799feb1f3fb0433",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-06-05 07:02:59 UTC",
    "User": "root"
  },
  "Author": "Mike Blazanin [aut, cre] (ORCID:\n<https://orcid.org/0000-0003-4630-6235>)",
  "Maintainer": "Mike Blazanin <mikeblazanin@gmail.com>",
  "MD5sum": "21eaed928d114514b89e48d92fe5c435",
  "_user": "mikeblazanin",
  "_type": "src",
  "_file": "gcplyr_1.12.0.tar.gz",
  "_fileid": "7bf69b039ee6f43e2ceebccd2cc450af0629c31711605c799e20783ab990a112",
  "_filesize": 9986584,
  "_sha256": "7bf69b039ee6f43e2ceebccd2cc450af0629c31711605c799e20783ab990a112",
  "_created": "2026-06-05T07:02:59.000Z",
  "_published": "2026-06-05T07:10:51.151Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 79680198371,
      "time": 176,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7430767814"
    },
    {
      "job": 79680198334,
      "time": 172,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7430766721"
    },
    {
      "job": 79680198352,
      "time": 189,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7430764917"
    },
    {
      "job": 79680198330,
      "time": 433,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7430768580"
    },
    {
      "job": 79679536734,
      "time": 319,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7430725146"
    },
    {
      "job": 79680198333,
      "time": 127,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7430755712"
    },
    {
      "job": 79680198323,
      "time": 138,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7430758636"
    },
    {
      "job": 79680198345,
      "time": 136,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7430757958"
    },
    {
      "job": 79680198346,
      "time": 122,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7430754766"
    }
  ],
  "_buildurl": "https://github.com/r-universe/mikeblazanin/actions/runs/27000454272",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/mikeblazanin/gcplyr",
  "_commit": {
    "id": "da868d5af445700e6bf16e049799feb1f3fb0433",
    "author": "Mike Blazanin <mikeblazanin@gmail.com>",
    "committer": "Mike Blazanin <mikeblazanin@gmail.com>",
    "message": "CRAN Submission 1.12.0\n",
    "time": 1753746780
  },
  "_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"
  },
  "_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": 0,
  "_updates": [
    {
      "week": "2025-29",
      "n": 5
    },
    {
      "week": "2025-30",
      "n": 7
    },
    {
      "week": "2025-31",
      "n": 14
    }
  ],
  "_tags": [
    {
      "name": "v1.12.0",
      "date": "2025-07-28"
    }
  ],
  "_topics": [
    "dplyr",
    "ggplot2",
    "tidyverse"
  ],
  "_stars": 39,
  "_contributors": [
    {
      "user": "mikeblazanin",
      "count": 1628,
      "uuid": 16413385
    },
    {
      "user": "celiavilaro",
      "count": 6,
      "uuid": 65031245
    }
  ],
  "_userbio": {
    "uuid": 16413385,
    "type": "user",
    "name": "Mike Blazanin",
    "description": "Graduate student in Ecology and Evolutionary Biology at Yale University"
  },
  "_downloads": {
    "count": 367,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/gcplyr"
  },
  "_devurl": "https://github.com/mikeblazanin/gcplyr",
  "_pkgdown": "https://mikeblazanin.github.io/gcplyr/",
  "_searchresults": 91,
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/gcplyr.html",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "manual.pdf"
  ],
  "_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 A tidy-shaped dataset with the experimental design (i.e. plate layout) for the example data included with 'gcplyr'.",
      "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 A tidy-shaped dataset with the experimental design (i.e. plate layout) for the example data included with 'gcplyr'.",
      "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.frames",
      "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 dataframes, or merge two dataframes 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",
        "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 growth with antagonists",
        "Peak bacterial density",
        "Extinction time",
        "Centroid of area under the curve",
        "What's next?"
      ],
      "created": "2023-11-03 04:34:43",
      "modified": "2025-01-16 21:17:01",
      "commits": 12
    },
    {
      "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": "2025-01-16 22:45:29",
      "commits": 10
    },
    {
      "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": "2025-01-16 22:45:43",
      "commits": 9
    },
    {
      "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": 7.726197258403274,
  "_indexed": true,
  "_nocasepkg": "gcplyr",
  "_universes": [
    "mikeblazanin"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.12.0",
      "date": "2026-06-05T07:05:37.000Z",
      "distro": "noble",
      "commit": "da868d5af445700e6bf16e049799feb1f3fb0433",
      "fileid": "49f34fe1c4572ae9b44a8dc80e2fca250f8129f8f118bd82a0369d7e500ba634",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/mikeblazanin/actions/runs/27000454272"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "1.12.0",
      "date": "2026-06-05T07:05:35.000Z",
      "distro": "noble",
      "commit": "da868d5af445700e6bf16e049799feb1f3fb0433",
      "fileid": "36b6de4df31089af4f6e313004764b9a8ff372a2540d787d3c118ddd6afdf341",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/mikeblazanin/actions/runs/27000454272"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "1.12.0",
      "date": "2026-06-05T07:05:33.000Z",
      "commit": "da868d5af445700e6bf16e049799feb1f3fb0433",
      "fileid": "2d3017e4fd1391244a40e16d60477abe6d85b8cb096267e27279c6df333675f4",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/mikeblazanin/actions/runs/27000454272"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "1.12.0",
      "date": "2026-06-05T07:05:35.000Z",
      "commit": "da868d5af445700e6bf16e049799feb1f3fb0433",
      "fileid": "9d1d871669d41b278010ef167eac64435b598227e8aff1edb388781f9512f911",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/mikeblazanin/actions/runs/27000454272"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "1.12.0",
      "date": "2026-06-05T07:05:24.000Z",
      "commit": "da868d5af445700e6bf16e049799feb1f3fb0433",
      "fileid": "eb74733ca73170f43952bd8a29b01873ef99650d837fbe2bac58316be4ebf1cd",
      "status": "success",
      "buildurl": "https://github.com/r-universe/mikeblazanin/actions/runs/27000454272"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "1.12.0",
      "date": "2026-06-05T07:04:50.000Z",
      "commit": "da868d5af445700e6bf16e049799feb1f3fb0433",
      "fileid": "bda9e2dad29199b06a6c8851cd674bb8af8c69867be83eeb08cf9272908249ae",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/mikeblazanin/actions/runs/27000454272"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "1.12.0",
      "date": "2026-06-05T07:04:27.000Z",
      "commit": "da868d5af445700e6bf16e049799feb1f3fb0433",
      "fileid": "c0f6b1a47a77aed401c65f7fae1d70115638b29a8ba7671b6095c6da4600f4e5",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/mikeblazanin/actions/runs/27000454272"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "1.12.0",
      "date": "2026-06-05T07:04:36.000Z",
      "commit": "da868d5af445700e6bf16e049799feb1f3fb0433",
      "fileid": "c3443926f352a0904e6712b923d0b9c2d096f51bc68c327c46933686f4dbdff0",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/mikeblazanin/actions/runs/27000454272"
    }
  ]
}