nmproject

Turning R and RStudio into a NONMEM model development environment

https://github.com/tsahota/nmproject

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (20.7%) to scientific vocabulary
Last synced: 11 months ago · JSON representation

Repository

Turning R and RStudio into a NONMEM model development environment

Basic Info
Statistics
  • Stars: 29
  • Watchers: 9
  • Forks: 9
  • Open Issues: 11
  • Releases: 9
Created over 9 years ago · Last pushed over 1 year ago
Metadata Files
Readme Changelog License

README.Rmd

---
output: github_document
---



```{r, include = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.path = "man/figures/README-",
  out.width = "100%"
)
```

# NMproject 


[![CRAN status](https://www.r-pkg.org/badges/version/NMproject)](https://CRAN.R-project.org/package=NMproject)
[![R-CMD-check](https://github.com/tsahota/NMproject/workflows/R-CMD-check/badge.svg)](https://github.com/tsahota/NMproject/actions)
[![Codecov test coverage](https://codecov.io/gh/tsahota/NMproject/branch/master/graph/badge.svg)](https://app.codecov.io/gh/tsahota/NMproject?branch=master)
[![Lifecycle: maturing](https://img.shields.io/badge/lifecycle-maturing-blue.svg)](https://lifecycle.r-lib.org/articles/stages.html)


Script based 'NONMEM' model development in RStudio intended for intermediate to advanced R users.

- NONMEM code library
- End-to-end script based model development workflows
- Scale to groups of runs and complex workflows
- 100% flexibility through tracked manual edits to model files
- Customisable to multiple infrastructure types

## Prerequisites

- PsN >= 4.4.8
- NONMEM installed with valid license
- RStudio

## Installation

You can install the released version of NMproject from [CRAN](https://CRAN.R-project.org) with:

```{r eval = FALSE}
install.packages("NMproject")
```

To install the latest version of NMproject from [GitHub](https://github.com/):

```{r eval = FALSE}
if(!require("devtools")) install.packages("devtools")
devtools::install_github("tsahota/NMproject")
```

To install a specific release (e.g. v0.5.1) on [GitHub](https://github.com/) 
use the following command:

```{r eval = FALSE}
devtools::install_github("tsahota/NMproject@v0.5.1")
```

Load the package with 

```{r eval = FALSE}
library(NMproject)
```

## Getting started with NMproject

Two options:

1. Running the
[demo](https://tsahota.github.io/NMproject/articles/articles/NMproject.html#demo-1)
is easiest way to familiarise your with NMproject.
2. Reading the website [vignette](https://tsahota.github.io/NMproject/articles/articles/NMproject.html).

## Code snippets

Use of pipes, `%>%`, make it easy to code sequences of operations to model 
objects.

Following snippet adds covariates to model object, `m2`:

- create a separate child control file
- add a covariate relationship to it (using PsN SCM syntax)
- run

```{r eval=FALSE}

m2WT <- m2 %>% child(run_id = "m2WT") %>%
  add_cov(param = "CL", cov = "WT", state = "power") %>%
  run_nm()

```

Graphical RStudio 'Addins' exist for reviewing the changes that functions like
`add_cov()` make before execution and performing `nm_tran()` checks.

For more complex operations use fully tracked manual edits.

Apply fully customisable diagnostic reports to one or multiple objects with
`nm_render()` like so:

```{r eval = FALSE}

c(m1, m2) %>% nm_render("Scripts/basic_gof.Rmd")
## Saves html diagnostic reports in "Results" directory

```

The template `Scripts/basic_gof.Rmd` can also be run as an R notebook for
interactively customising to your specific model evaluation criteria.

Here's a snippet for producing PPCs and VPCs:

- create a new (child) control stream
- updating initial estimates to final estimates
- convert it to a simulation control file
- run
- generate customised PPCs and VPCs from the outputs

```{r eval=FALSE}
m2s <- m2 %>% child(run_id = "m2s") %>%
  update_parameters(m2) %>%
  convert_to_simulation(subpr = 50) %>%
  run_nm()

m2s %>% nm_render("Scripts/basic_vpc.Rmd")
m2s %>% nm_render("Scripts/basic_ppc.Rmd")

```

Advanced functionality enables groups of runs to be handled with the same
concise syntax (no loops).  For example:

- create 5 child runs
- Randomly perturb the initial estimates of \$THETA and \$OMEGA
- run them all in their own subdirectory for tidiness.

```{r eval = FALSE}

m1rep <- m1 %>% child(run_id = 1:5) %>% 
  init_theta(init = rnorm(init, mean = init, sd = 0.3)) %>%
  init_omega(init = runif(init, min = init/2, max = init*2)) %>%
  run_in("Models/m1_perturb_inits") %>%
  run_nm()

```

See the website [vignette](https://tsahota.github.io/NMproject/articles/articles/NMproject.html) for more
examples

Owner

  • Name: Tarj Sahota
  • Login: tsahota
  • Kind: user
  • Location: United Kingdom
  • Company: GSK

GitHub Events

Total
  • Release event: 1
  • Watch event: 5
  • Member event: 1
  • Push event: 2
  • Pull request event: 5
  • Fork event: 2
  • Create event: 2
Last Year
  • Release event: 1
  • Watch event: 5
  • Member event: 1
  • Push event: 2
  • Pull request event: 5
  • Fork event: 2
  • Create event: 2

Committers

Last synced: almost 3 years ago

All Time
  • Total Commits: 1,103
  • Total Committers: 23
  • Avg Commits per committer: 47.957
  • Development Distribution Score (DDS): 0.694
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
tarj sahota t****0@g****m 338
tarjinde t****a@g****m 220
Tarjinder Sahota k****9@s****t 111
klgk669 k****9@r****t 85
kjh l****j 80
Tarjinder Sahota k****9@s****t 76
klgk669 k****9@r****t 68
klgk669 k****9@r****t 51
klgk669 k****9@r****t 18
Tarjy h****j 11
Tarj Sahota T****a 11
klgk669 k****9@r****t@r****t 7
kpfn434 k****4@r****t 6
klgk669 k****9@s****p 4
klgk669 k****9@s****p 3
Jane j****e@e****m 3
kpfn434 k****4@s****p 2
NuriaBuilBruna 3****a 2
tarjinde t****a@g****m 2
SteinSJ S****k@g****m 2
kmsg757 k****7@r****t 1
klgk669 k****9@s****p 1
name e****l@e****g 1

Issues and Pull Requests

Last synced: 11 months ago

All Time
  • Total issues: 21
  • Total pull requests: 12
  • Average time to close issues: 5 months
  • Average time to close pull requests: 8 months
  • Total issue authors: 5
  • Total pull request authors: 6
  • Average comments per issue: 1.0
  • Average comments per pull request: 0.67
  • Merged pull requests: 9
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 2
  • Average time to close issues: N/A
  • Average time to close pull requests: 15 days
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • tsahota (17)
  • JoannaPeng (1)
  • HenrikBengtsson (1)
  • filippo-ciceri (1)
  • ahazel (1)
  • ldbro0 (1)
Pull Request Authors
  • NuriaBuilBruna (5)
  • ajcastleman (2)
  • Ollegst (2)
  • SteinSJ (1)
  • tsahota (1)
  • ItziarIA (1)
Top Labels
Issue Labels
bug (3) enhancement (2)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • cran 302 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 6
  • Total maintainers: 1
cran.r-project.org: NMproject

Script Based 'NONMEM' Model Development

  • Versions: 6
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 302 Last month
Rankings
Forks count: 8.3%
Stargazers count: 10.7%
Average: 25.2%
Dependent packages count: 29.8%
Dependent repos count: 35.5%
Downloads: 41.6%
Maintainers (1)
Last synced: over 1 year ago

Dependencies

DESCRIPTION cran
  • DT * imports
  • crayon >= 1.3.4 imports
  • diffobj >= 0.1.11 imports
  • dplyr >= 0.7.2 imports
  • dygraphs * imports
  • git2r >= 0.18.0 imports
  • htmltools * imports
  • lifecycle >= 1.0.0 imports
  • magrittr * imports
  • methods * imports
  • miniUI >= 0.1.1 imports
  • rlang >= 0.2.1 imports
  • rmarkdown * imports
  • rprojroot * imports
  • rstudioapi >= 0.7 imports
  • shiny * imports
  • stringr >= 1.3.1 imports
  • tidyr >= 1.0.0 imports
  • usethis * imports
  • Hmisc * suggests
  • covr * suggests
  • data.tree * suggests
  • desc * suggests
  • devtools * suggests
  • digest * suggests
  • ggplot2 * suggests
  • knitr * suggests
  • lubridate * suggests
  • pmxTools * suggests
  • purrr * suggests
  • renv * suggests
  • roxygen2 * suggests
  • rsample * suggests
  • testthat * suggests
  • xfun * suggests
  • xpose * suggests