{"id":28927591,"url":"https://github.com/insightrx/luna","last_synced_at":"2025-07-14T16:39:50.358Z","repository":{"id":298478205,"uuid":"966321705","full_name":"InsightRX/luna","owner":"InsightRX","description":"Lightweight Universal NLME Administrator","archived":false,"fork":false,"pushed_at":"2025-07-08T14:02:57.000Z","size":1466,"stargazers_count":1,"open_issues_count":6,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-07-08T14:49:23.721Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://insightrx.github.io/luna/","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/InsightRX.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-14T18:39:35.000Z","updated_at":"2025-07-08T13:58:02.000Z","dependencies_parsed_at":"2025-07-08T14:40:57.641Z","dependency_job_id":"cdfe0fe2-10cc-4d76-bfe5-5c05c20cc82e","html_url":"https://github.com/InsightRX/luna","commit_stats":null,"previous_names":["insightrx/luna"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/InsightRX/luna","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InsightRX%2Fluna","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InsightRX%2Fluna/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InsightRX%2Fluna/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InsightRX%2Fluna/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/InsightRX","download_url":"https://codeload.github.com/InsightRX/luna/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InsightRX%2Fluna/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265319582,"owners_count":23746364,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-22T13:30:45.649Z","updated_at":"2025-07-14T16:39:50.346Z","avatar_url":"https://github.com/InsightRX.png","language":"R","funding_links":[],"categories":[],"sub_categories":[],"readme":"**THIS R PACKAGE IS UNDER DEVELOPMENT, NOT READY FOR PRODUCTION USE!!**\n\n# Luna\n\nLuna is a tool to organize your NONMEM and nlmixr2 modeling workflows in \na structured and traceable manner. Luna is an acronym for \n**Light-weight Universal NLME Admininstrator**\n\nThe organization of projects is implemented through YAML files, which\nforces the modeler to define each step during the modeling process prior \nto execution of the step. This ensures that all steps are properly\nlogged and at any time during the model development a clear log of\nmodeling steps is available.\n\n## Goals and rationale\n\nThe goal of Luna is to implement a structured model development: if model development \nand results are structured, it’s easier for anyone to interpret (human and AI agents).\n\n## Justification\n\n__But don't we already have workflow managers, like Pirana, Finch Studio, ShinyMixR, etc?__\n\nYes, and those tools are great and work for a lot of folks. However, we believe\nthat, especially for advanced modelers or modelers who come in from a \n(software-) engineering background, often prefer an interface that is accessible\neither programmatically (from R) or from the command line (CLI). This is the\nprimary target audience of Luna. However, we do think that many novice modelers will\nalso like the flexibility of Luna.\n\n__But why not just keep a modeling workflow in RMarkdown or Quarto notebooks__\n\nThat is certainly an option, and may work for some projects. However,\nwe feel that for most model development projects, having an R notebook as the\nprimary source of your model workflow quickly becomes unwieldy: after a few \nmodel runs the notebook file quickly becomes too long to navigate easily. Luna\nwill have features to export to R notebooks in the future, so the ability to\nuse R notebooks for creating automated reports and slides will still be\navailable.\n\n# Implementation\n\n## Structure\n\nAll high-level luna functions that the user needs start with `luna_`. For example,\nto run a model, use `luna_run(...)`, and to get a list of models in the current \nproject, use `luna_list()`. \n\nThe luna package also exposes various other functions to perform certain tasks, but those\ndo not make use of the `luna` workflow and in principle should not be used within\na luna workflow.\n\n## Dependencies and extensions\n\nLuna depends on Pharmpy and pharmr (the R wrapper around Pharmpy). The dependency\nis primarily to use parsing of models and result files. It can of course also\nleverage Pharmpy's model execution tools, bootstrap tool, and the automated model\ndevelopment tools. Luna is, however, flexible in what tools are used to perform \nmodeling analyses. It provides an interface to PsN for running models, bootstraps,\nand any other PsN tools.\n\n# Example usage\n\n```\nlibrary(luna)\n\n## Create a new project (only if starting from scratch, or if creating a new Luna project from existing model folder)\nproject \u003c- luna_new_project(\n  \"uvm\",\n  description = \"UVM vancomycin in obese patients\",\n  folder = proj_path,\n  # force = TRUE,\n  return_object = TRUE\n)\n\n## Load an existing project\nproject \u003c- luna_load_project(\n  folder = proj_path\n)\n\n## To list runs, just print the luna project object\nproject\n\n## To run models:\nluna_run(\"run4\")\n\n## If the model was already run, use `force` to rerun:\nluna_run(\"run4\", force=TRUE)\n\n## Show model run info:\nluna_info(\"run1\")\n\n## Show model run info side-by-side for multiple runs:\nluna_compare(\"run1\", \"run2\", \"run3\")\n\n## Load the dataset from a model into R\ndat \u003c- luna_dataset(\"run2\")\n```\n\n## Available functions\n\n```\n## Projects\nluna_new_project()\nluna_load_project()\nluna_list()\n\n## Model run workflow\nluna_run()\nluna_info()\nluna_compare()\nluna_help()\nluna_note()\nluna_tag()\nluna_edit()\n\n## External tools\nluna_tool()\n\n## Diagnostic plots\nluna_gof()\nluna_ind()\nluna_xpose()\n\n## Misc\nluna_dataset()\nluna_tables()\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finsightrx%2Fluna","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finsightrx%2Fluna","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finsightrx%2Fluna/lists"}