{
  "_id": "6ab3b8693d719c1f84093030",
  "Package": "ExperimentalDesignGeneratorandRandomiser",
  "Type": "Package",
  "Version": "0.1.0",
  "Date": "2026-08-22",
  "Title": "'EDGAR': Experimental Design Generator and Randomiser",
  "Description": "Native R implementation of 'EDGAR', the Experimental\nDesign Generator and Randomiser. 'EDGAR' was originally\ndeveloped as a suite of 'Excel'\n<https://www.microsoft.com/microsoft-365/excel> workbooks by\nthe Biometrics team at Rothamsted Research\n<http://www.edgarweb.org.uk/>. The algorithms were subsequently\nre-implemented in the open-source 'Python'\n<https://www.python.org/> project 'rotsl/edgar'\n<https://rotsl.github.io/edgar/>, distributed as the\n'edgar-design' package on 'PyPI'\n<https://pypi.org/project/edgar-design/>. This R package is a\nnative R port of that 'Python' implementation: it does not\nrequire 'Python', 'reticulate'\n<https://CRAN.R-project.org/package=reticulate>, or any\nexternal service at runtime, and provides deterministic,\nreproducible randomisation for nine experimental designs\nincluding alpha designs (Patterson and Williams, 1976)\n<doi:10.1093/biomet/63.1.83>. Cross-language reproducibility\nwith the 'Python' implementation is achieved by porting the\nMersenne Twister seeding implementation from 'CPython'\n<https://github.com/python/cpython> and the Fisher-Yates\nshuffle to native R.",
  "Authors@R": "c(\nperson(given = \"Rohan\",\nfamily = \"R\",\nrole = c(\"aut\", \"cph\"),\nemail = \"phonics-tiffs1i@icloud.com\",\ncomment = c(ORCID = \"0009-0005-9225-1775\",\n\"Author of the upstream Python implementation rotsl/edgar and this native R port\")),\nperson(given = \"BiologyAutomation\",\nrole = \"cre\",\nemail = \"phonics-tiffs1i@icloud.com\",\ncomment = \"Repository owner\"))",
  "Maintainer": "BiologyAutomation <phonics-tiffs1i@icloud.com>",
  "URL": "https://github.com/biologyautomation/edgar-r,\nhttps://rotsl.github.io/edgar/, http://www.edgarweb.org.uk/",
  "BugReports": "https://github.com/biologyautomation/edgar-r/issues",
  "License": "MIT + file LICENSE",
  "Encoding": "UTF-8",
  "Roxygen": "list(markdown = TRUE)",
  "Config/testthat/edition": "3",
  "VignetteBuilder": "knitr",
  "Config/roxygen2/version": "8.1.0",
  "Repository": "https://biologyautomation.r-universe.dev",
  "Date/Publication": "2026-08-24 09:09:15 UTC",
  "RemoteUrl": "https://github.com/biologyautomation/edgar-r",
  "RemoteRef": "HEAD",
  "RemoteSha": "556e7b83e57ffdf93e6300bef423e6ce07d3902f",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-09-23 11:26:57 UTC",
    "User": "root"
  },
  "Author": "Rohan R [aut, cph] (ORCID: <https://orcid.org/0009-0005-9225-1775>,\nAuthor of the upstream Python implementation rotsl/edgar and this\nnative R port),\nBiologyAutomation [cre] (Repository owner)",
  "_user": "biologyautomation",
  "_type": "src",
  "_file": "ExperimentalDesignGeneratorandRandomiser_0.1.0.tar.gz",
  "_fileid": "https://r2.ropensci.org/d3f63127da2bed211882ab437e52c09544a33eab56f719b5fb08c3dcbf17f914",
  "_filesize": 195671,
  "_sha256": "d3f63127da2bed211882ab437e52c09544a33eab56f719b5fb08c3dcbf17f914",
  "_expires": "2027-01-01T11:30:48.000Z",
  "_created": "2026-09-23T11:26:57.000Z",
  "_published": "2026-09-23T11:30:49.787Z",
  "_jobs": [
    {
      "job": 107160048271,
      "time": 132,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "10747027412"
    },
    {
      "job": 107160048179,
      "time": 170,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10746928225"
    },
    {
      "job": 107160048105,
      "time": 164,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "10746709615"
    },
    {
      "job": 107160048168,
      "time": 188,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10746918163"
    },
    {
      "job": 107158442092,
      "time": 309,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10746403411"
    },
    {
      "job": 107160048157,
      "time": 111,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "10746654537"
    },
    {
      "job": 107160048250,
      "time": 78,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "10746314021"
    },
    {
      "job": 107160048222,
      "time": 84,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "10746423379"
    },
    {
      "job": 107160048229,
      "time": 93,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10746597946"
    }
  ],
  "_host": "GitHub-Actions",
  "_buildurl": "https://github.com/r-universe/biologyautomation/actions/runs/35854088001",
  "_status": "success",
  "_upstream": "https://github.com/biologyautomation/edgar-r",
  "_commit": {
    "id": "556e7b83e57ffdf93e6300bef423e6ce07d3902f",
    "author": "Rohan R <223545247+rotsl@users.noreply.github.com>",
    "committer": "GitHub <noreply@github.com>",
    "message": "Create FUNDING.yml\n\nSigned-off-by: Rohan R <223545247+rotsl@users.noreply.github.com>",
    "time": 1787562555
  },
  "_maintainer": {
    "name": "BiologyAutomation",
    "email": "phonics-tiffs1i@icloud.com",
    "login": "rotsl",
    "description": "Me chase Doctor rock in bioscience.Me try idea. Idea from wires, robots, biology brain stuff, number machine. Sometimes idea punch back. Me punch again\n",
    "uuid": 223545247
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 3.6",
      "role": "Depends"
    },
    {
      "package": "jsonlite",
      "role": "Suggests"
    },
    {
      "package": "openxlsx",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    }
  ],
  "_owner": "biologyautomation",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-34",
      "n": 2
    },
    {
      "week": "2026-35",
      "n": 1
    }
  ],
  "_tags": [],
  "_stars": 0,
  "_contributors": [
    {
      "user": "rotsl",
      "count": 3,
      "uuid": 223545247
    }
  ],
  "_userbio": {
    "uuid": 318943992,
    "type": "organization",
    "name": "biologyautomation",
    "followers": 0,
    "description": "Community resources, curated research software, R packages, datasets, protocols and scholarly outputs related to automation in biology"
  },
  "_downloads": {
    "count": 211,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/ExperimentalDesignGeneratorandRandomiser"
  },
  "_devurl": "https://github.com/biologyautomation/edgar-r",
  "_searchresults": 0,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/ExperimentalDesignGeneratorandRandomiser.html",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE"
  ],
  "_homeurl": "https://github.com/biologyautomation/edgar-r",
  "_realowner": "biologyautomation",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.1.0",
      "date": "2026-09-08"
    }
  ],
  "_exports": [
    "as_layout_frames",
    "choose_design",
    "design_alpha",
    "design_cr",
    "design_cr_unequal",
    "design_info",
    "design_latin",
    "design_rcb",
    "design_rcb_unequal",
    "design_split_plot",
    "design_two_factor_rcb",
    "design_variable_blocks",
    "generate_design",
    "has_layout",
    "list_designs",
    "make_rng",
    "propose_alpha_structures",
    "seeded_randint",
    "seeded_sample",
    "seeded_shuffle",
    "total_units",
    "validate_design",
    "with_edgar_seed",
    "write_edgar_csv",
    "write_edgar_json",
    "write_edgar_xlsx"
  ],
  "_help": [
    {
      "page": "ExperimentalDesignGeneratorandRandomiser-package",
      "title": "Package-level documentation.",
      "topics": [
        "ExperimentalDesignGeneratorandRandomiser-package",
        "ExperimentalDesignGeneratorandRandomiser"
      ]
    },
    {
      "page": "as_layout_frames",
      "title": "Access the layout view as a list of data frames (one per section), with section names from 'layout_section_labels'. Returns NULL if the design has no layout.",
      "topics": [
        "as_layout_frames"
      ]
    },
    {
      "page": "as.data.frame.edgar_design",
      "title": "'as.data.frame' method: returns the underlying 'rows' data frame.",
      "topics": [
        "as.data.frame.edgar_design"
      ]
    },
    {
      "page": "design_alpha",
      "title": "Generate an 'alpha' design.",
      "topics": [
        "design_alpha"
      ]
    },
    {
      "page": "design_cr",
      "title": "Generate a 'cr_eq' design.",
      "topics": [
        "design_cr"
      ]
    },
    {
      "page": "design_cr_unequal",
      "title": "Generate a 'cr_uneq' design.",
      "topics": [
        "design_cr_unequal"
      ]
    },
    {
      "page": "design_info",
      "title": "Convenience wrapper to fetch a design's metadata (for programmatic introspection by tests or downstream packages).",
      "topics": [
        "design_info"
      ]
    },
    {
      "page": "design_latin",
      "title": "Generate a 'latin' design.",
      "topics": [
        "design_latin"
      ]
    },
    {
      "page": "design_rcb",
      "title": "Generate an 'rcb' design.",
      "topics": [
        "design_rcb"
      ]
    },
    {
      "page": "design_rcb_unequal",
      "title": "Generate an 'rcb_uneq' design.",
      "topics": [
        "design_rcb_unequal"
      ]
    },
    {
      "page": "design_split_plot",
      "title": "Generate a 'split_plot' design.",
      "topics": [
        "design_split_plot"
      ]
    },
    {
      "page": "design_two_factor_rcb",
      "title": "Generate a 'two_factor_rcb' design.",
      "topics": [
        "design_two_factor_rcb"
      ]
    },
    {
      "page": "design_variable_blocks",
      "title": "Generate a 'variable_blocks' design.",
      "topics": [
        "design_variable_blocks"
      ]
    },
    {
      "page": "edgar_py_random",
      "title": "Constructor: returns an environment that owns the MT state. Pass by reference lets 'genrand_uint32' advance the state without copying.",
      "topics": [
        "edgar_py_random"
      ]
    },
    {
      "page": "generate_design",
      "title": "Public dispatcher: generate a design by key.",
      "topics": [
        "generate_design"
      ]
    },
    {
      "page": "has_layout",
      "title": "Whether the design carries a layout view.",
      "topics": [
        "has_layout"
      ]
    },
    {
      "page": "list_designs",
      "title": "List all registered designs with their metadata.",
      "topics": [
        "list_designs"
      ]
    },
    {
      "page": "make_rng",
      "title": "Create a fresh seeded RNG.",
      "topics": [
        "make_rng"
      ]
    },
    {
      "page": "new_edgar_design",
      "title": "Constructor: build an 'edgar_design' S3 object.",
      "topics": [
        "new_edgar_design"
      ]
    },
    {
      "page": "print.edgar_design",
      "title": "'print' method for 'edgar_design'. Mirrors the upstream CLI summary.",
      "topics": [
        "print.edgar_design"
      ]
    },
    {
      "page": "propose_alpha_structures",
      "title": "Propose viable alpha design structures for a given treatment count. Mirrors the upstream Python 'choose_design(treatment_count)' helper.",
      "topics": [
        "choose_design",
        "propose_alpha_structures"
      ]
    },
    {
      "page": "register_design",
      "title": "Register a design.",
      "topics": [
        "register_design"
      ]
    },
    {
      "page": "seeded_randint",
      "title": "Return a random integer between a and b inclusive.",
      "topics": [
        "seeded_randint"
      ]
    },
    {
      "page": "seeded_sample",
      "title": "Return k random items from 'items', without replacement.",
      "topics": [
        "seeded_sample"
      ]
    },
    {
      "page": "seeded_shuffle",
      "title": "Return a new vector with 'items' shuffled by 'rng'.",
      "topics": [
        "seeded_shuffle"
      ]
    },
    {
      "page": "total_units",
      "title": "Total number of experimental units.",
      "topics": [
        "total_units"
      ]
    },
    {
      "page": "validate_design",
      "title": "Public dispatcher: validate design parameters by key.",
      "topics": [
        "validate_design"
      ]
    },
    {
      "page": "validate_treatment_count",
      "title": "Validate treatment counts. Mirrors 'validate_treatment_count'.",
      "topics": [
        "validate_treatment_count"
      ]
    },
    {
      "page": "with_edgar_seed",
      "title": "Run a block of code with an isolated seeded RNG, restoring the caller's '.Random.seed' afterwards. This is the safety net for any internal code that calls base R 'sample()' or 'runif()' directly; the 'make_rng()' / 'seeded_shuffle()' path does not touch the global state, so this wrapper is provided for completeness and for users who want to call base R sampling under a known seed.",
      "topics": [
        "with_edgar_seed"
      ]
    },
    {
      "page": "write_edgar_csv",
      "title": "Write a design to a CSV file.",
      "topics": [
        "write_edgar_csv"
      ]
    },
    {
      "page": "write_edgar_json",
      "title": "Write a design to a JSON file (or return as a string).",
      "topics": [
        "write_edgar_json"
      ]
    },
    {
      "page": "write_edgar_xlsx",
      "title": "Write a design to an XLSX file.",
      "topics": [
        "write_edgar_xlsx"
      ]
    }
  ],
  "_readme": "https://github.com/biologyautomation/edgar-r/raw/HEAD/README.md",
  "_rundeps": [],
  "_vignettes": [
    {
      "source": "alpha-designs.Rmd",
      "filename": "alpha-designs.html",
      "title": "Alpha designs and structure proposal",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Background",
        "Generating an alpha design",
        "Repeated controls",
        "Proposing alpha structures",
        "Resolvability",
        "Reference"
      ],
      "created": "2026-08-22 07:17:55",
      "modified": "2026-08-22 07:17:55",
      "commits": 1
    },
    {
      "source": "edgar-introduction.Rmd",
      "filename": "edgar-introduction.html",
      "title": "Introduction to EDGAR",
      "engine": "knitr::rmarkdown",
      "headings": [
        "What EDGAR is",
        "Installing",
        "Listing designs",
        "Generating a design",
        "Reproducibility",
        "Working with the result",
        "Exporting",
        "Provenance"
      ],
      "created": "2026-08-22 07:17:55",
      "modified": "2026-08-22 07:17:55",
      "commits": 1
    }
  ],
  "_score": 4.301029995663981,
  "_indexed": true,
  "_nocasepkg": "experimentaldesigngeneratorandrandomiser",
  "_universes": [
    "biologyautomation",
    "rotsl"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.1.0",
      "date": "2026-09-23T11:29:06.000Z",
      "distro": "resolute",
      "commit": "556e7b83e57ffdf93e6300bef423e6ce07d3902f",
      "fileid": "https://r2.ropensci.org/0097665d2af5ba29ce6f5fc2d38a44361bdbbd0aeae5b4fc47d98091515d783a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/biologyautomation/actions/runs/35854088001"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.1.0",
      "date": "2026-09-23T11:29:42.000Z",
      "distro": "resolute",
      "commit": "556e7b83e57ffdf93e6300bef423e6ce07d3902f",
      "fileid": "https://r2.ropensci.org/36daa4b1b657b33a791db0f47d13fa0e12eaed57f031a1fa791d215f6296894e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/biologyautomation/actions/runs/35854088001"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.1.0",
      "date": "2026-09-23T11:29:15.000Z",
      "commit": "556e7b83e57ffdf93e6300bef423e6ce07d3902f",
      "fileid": "https://r2.ropensci.org/2b52736716dcaae1f5824d1688007315367256c5438195c3eb7d8e774cd64d4e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/biologyautomation/actions/runs/35854088001"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.1.0",
      "date": "2026-09-23T11:29:30.000Z",
      "commit": "556e7b83e57ffdf93e6300bef423e6ce07d3902f",
      "fileid": "https://r2.ropensci.org/0f2e243c61fc3c32636682bf37730798d0b6e305a0b07c4ffe25303e55f22a7c",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/biologyautomation/actions/runs/35854088001"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.1.0",
      "date": "2026-09-23T11:29:07.000Z",
      "commit": "556e7b83e57ffdf93e6300bef423e6ce07d3902f",
      "fileid": "https://r2.ropensci.org/fb729fa527b50cc0d06315d219ac2e52a7d09705be3f0d01f1d653b7ed234c18",
      "status": "success",
      "buildurl": "https://github.com/r-universe/biologyautomation/actions/runs/35854088001"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.1.0",
      "date": "2026-09-23T11:28:14.000Z",
      "commit": "556e7b83e57ffdf93e6300bef423e6ce07d3902f",
      "fileid": "https://r2.ropensci.org/fa17795d6b4f1f69bf3a73b72785c85e81e15481a084499079742f9c86fc5a54",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/biologyautomation/actions/runs/35854088001"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.1.0",
      "date": "2026-09-23T11:28:11.000Z",
      "commit": "556e7b83e57ffdf93e6300bef423e6ce07d3902f",
      "fileid": "https://r2.ropensci.org/a2aab8af213c57566303e9a970c076eddac6a39e610c086cafd1c6f3408773d1",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/biologyautomation/actions/runs/35854088001"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.1.0",
      "date": "2026-09-23T11:28:16.000Z",
      "commit": "556e7b83e57ffdf93e6300bef423e6ce07d3902f",
      "fileid": "https://r2.ropensci.org/c479ae9adb5e87c9bd5fa450cc3cfcf5494d4934637fb2a972d2bcca6d51880d",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/biologyautomation/actions/runs/35854088001"
    }
  ]
}