Skip to content

Conversation

@mhovd
Copy link
Collaborator

@mhovd mhovd commented Jan 18, 2026

No description provided.

Copilot AI review requested due to automatic review settings January 18, 2026 14:41
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds pre-review updates to a JOSS paper for the pharmsol software package. The changes primarily expand the paper with new sections providing additional context about software design, research impact, and AI usage disclosure.

Changes:

  • Added "Software design" section explaining the architecture and design principles
  • Added "Research impact statement" documenting existing usage and publications
  • Expanded data format section with builder-pattern information
  • Added "AI usage disclosure" section declaring the use of generative AI
  • Updated bibliography with a new book chapter citation
  • Added /joss/paper_files to .gitignore

Reviewed changes

Copilot reviewed 2 out of 3 changed files in this pull request and generated 5 comments.

File Description
joss/paper.md Added four new sections (Software design, Research impact statement, AI usage disclosure) and expanded Data format section
joss/paper.bib Added bibliography entry for npod book chapter reference
.gitignore Added /joss/paper_files directory to ignore list

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.


To the authors' knowledge, `pharmsol` is the first software written in Rust for pharmacokinetic modeling and simulation. The design of `pharmsol` is to provide a flexible and efficient API for solving pharmacokinetic problems. It aims to provide researchers and pharmacometricians with a fast and flexible solver for pharmacokinetic problems.

These problems are defined by two key aspects: the pharmacokinetic data, and the structural model. While the data structure is explained in detail below, the structural model is more complex. In `pharmsol`, models are defined using a set of closures, providing methods to define the set of equations that describe the mass transfer of drug, as well as initial conditions and output equations, i.e. detailing the initial and observed states of the system. Bioavailability terms and lag-time of absorption is also supported. Covariates may be applied on both parameters and state values. Importantly, `pharmsol` provides both linear interpolation and carry-forward for covariates, both common in population pharmacokinetic models.
Copy link

Copilot AI Jan 18, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The phrase "detailing the initial and observed states" creates ambiguity about whether "detailing" refers to the output equations or all the previously mentioned methods. Consider rephrasing for clarity, such as: "as well as initial conditions and output equations (which detail the initial and observed states of the system)."

Suggested change
These problems are defined by two key aspects: the pharmacokinetic data, and the structural model. While the data structure is explained in detail below, the structural model is more complex. In `pharmsol`, models are defined using a set of closures, providing methods to define the set of equations that describe the mass transfer of drug, as well as initial conditions and output equations, i.e. detailing the initial and observed states of the system. Bioavailability terms and lag-time of absorption is also supported. Covariates may be applied on both parameters and state values. Importantly, `pharmsol` provides both linear interpolation and carry-forward for covariates, both common in population pharmacokinetic models.
These problems are defined by two key aspects: the pharmacokinetic data, and the structural model. While the data structure is explained in detail below, the structural model is more complex. In `pharmsol`, models are defined using a set of closures, providing methods to define the set of equations that describe the mass transfer of drug, as well as initial conditions and output equations (which detail the initial and observed states of the system). Bioavailability terms and lag-time of absorption is also supported. Covariates may be applied on both parameters and state values. Importantly, `pharmsol` provides both linear interpolation and carry-forward for covariates, both common in population pharmacokinetic models.

Copilot uses AI. Check for mistakes.

To the authors' knowledge, `pharmsol` is the first software written in Rust for pharmacokinetic modeling and simulation. The design of `pharmsol` is to provide a flexible and efficient API for solving pharmacokinetic problems. It aims to provide researchers and pharmacometricians with a fast and flexible solver for pharmacokinetic problems.

These problems are defined by two key aspects: the pharmacokinetic data, and the structural model. While the data structure is explained in detail below, the structural model is more complex. In `pharmsol`, models are defined using a set of closures, providing methods to define the set of equations that describe the mass transfer of drug, as well as initial conditions and output equations, i.e. detailing the initial and observed states of the system. Bioavailability terms and lag-time of absorption is also supported. Covariates may be applied on both parameters and state values. Importantly, `pharmsol` provides both linear interpolation and carry-forward for covariates, both common in population pharmacokinetic models.
Copy link

Copilot AI Jan 18, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Grammar error: "lag-time" should be "lag-times" to match the plural form of "Bioavailability terms", or both should be singular. Consider: "Bioavailability and lag-time of absorption are also supported."

Suggested change
These problems are defined by two key aspects: the pharmacokinetic data, and the structural model. While the data structure is explained in detail below, the structural model is more complex. In `pharmsol`, models are defined using a set of closures, providing methods to define the set of equations that describe the mass transfer of drug, as well as initial conditions and output equations, i.e. detailing the initial and observed states of the system. Bioavailability terms and lag-time of absorption is also supported. Covariates may be applied on both parameters and state values. Importantly, `pharmsol` provides both linear interpolation and carry-forward for covariates, both common in population pharmacokinetic models.
These problems are defined by two key aspects: the pharmacokinetic data, and the structural model. While the data structure is explained in detail below, the structural model is more complex. In `pharmsol`, models are defined using a set of closures, providing methods to define the set of equations that describe the mass transfer of drug, as well as initial conditions and output equations, i.e. detailing the initial and observed states of the system. Bioavailability and lag-time of absorption are also supported. Covariates may be applied on both parameters and state values. Importantly, `pharmsol` provides both linear interpolation and carry-forward for covariates, both common in population pharmacokinetic models.

Copilot uses AI. Check for mistakes.

# Software design

To the authors' knowledge, `pharmsol` is the first software written in Rust for pharmacokinetic modeling and simulation. The design of `pharmsol` is to provide a flexible and efficient API for solving pharmacokinetic problems. It aims to provide researchers and pharmacometricians with a fast and flexible solver for pharmacokinetic problems.
Copy link

Copilot AI Jan 18, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This sentence is redundant with the previous sentence. Both state that pharmsol aims to provide a flexible/fast solver for pharmacokinetic problems. Consider merging these sentences or removing the redundancy.

Suggested change
To the authors' knowledge, `pharmsol` is the first software written in Rust for pharmacokinetic modeling and simulation. The design of `pharmsol` is to provide a flexible and efficient API for solving pharmacokinetic problems. It aims to provide researchers and pharmacometricians with a fast and flexible solver for pharmacokinetic problems.
To the authors' knowledge, `pharmsol` is the first software written in Rust for pharmacokinetic modeling and simulation. The design of `pharmsol` is to provide researchers and pharmacometricians with a flexible and efficient API for solving pharmacokinetic problems.

Copilot uses AI. Check for mistakes.
joss/paper.md Outdated

These problems are defined by two key aspects: the pharmacokinetic data, and the structural model. While the data structure is explained in detail below, the structural model is more complex. In `pharmsol`, models are defined using a set of closures, providing methods to define the set of equations that describe the mass transfer of drug, as well as initial conditions and output equations, i.e. detailing the initial and observed states of the system. Bioavailability terms and lag-time of absorption is also supported. Covariates may be applied on both parameters and state values. Importantly, `pharmsol` provides both linear interpolation and carry-forward for covariates, both common in population pharmacokinetic models.

The three different solver types, i.e. analytical, ODE, and SDE based, are all build around a common `Equation` trait. This allows for
Copy link

Copilot AI Jan 18, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This sentence appears to be incomplete. It starts with "The three different solver types... are all build around a common Equation trait. This allows for" but doesn't complete the thought. Please finish this sentence to explain what this design allows for.

Suggested change
The three different solver types, i.e. analytical, ODE, and SDE based, are all build around a common `Equation` trait. This allows for
The three different solver types, i.e. analytical, ODE, and SDE based, are all built around a common `Equation` trait. This allows for a uniform interface across solver backends and makes it straightforward to swap or extend solver implementations without changing the underlying model definitions.

Copilot uses AI. Check for mistakes.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants