GastroPlus Orchestrator Overview
Introduction
GastroPlus Orchestrator is the automation layer for GastroPlus 10.2 designed to enable seamless interaction with the simulation engine programmatically. The automation layer includes multiple functionalities exposed through REST API that facilitate interaction with GastroPlus engine through HTTP protocol. Through a suite of RESTful APIs, Orchestrator allows users to automate GastroPlus 10.2 simulation workflows, integrate it with custom tools, and build bespoke applications-eliminating manual steps and increasing reproducibility.
GastroPlus Orchestrator includes R an Python libraries to facilitate and streamline the use of the REST APIs within Python and R ecosystems.
Installation and Components
GastroPlus 10.2 installation installs the necessary components required for GastroPlus Orchestrator mentioned below
GastroPlusWebService - version 10.2.0
Library that exposes REST APIs for GastroPlus functionalities
gastroPlusAPI Python package - version 10.2.0
Python Client package that facilitates the interaction with GastroPlus engine.
gastroPlusAPI R package - version 10.2.0
R Client package that facilitates the interaction with GastroPlus engine.
gastroPlusRModuLens R pacakge - version 10.2.0
A companion R package offering high-level utilities for frequent workflows, plotting, visualization, and batched API calls for common MIDD workflow scenarios.
The GastroPlus REST APIs follow Header-based versioning. More information can be found in the OpenAPI specification documentation.
Functionalities
GastroPlus Orchestrator 10.2 version exposes a comprehensive list of functionalities of GastroPlus engine that address common use cases and operations.
GastroPlus Project Management(.gpproject)
GastroPlus projects can be programmatically created and modified through the following methods:
Create new
.gpproject
based on reference project templates or by importing legacy.mdb
projects.Programmatically import/export simulation assets (e.g., compound, formulation, physiology).
Access / Modify Variables
The user can navigate through variables within a project and retrieve values of specific variables. Additionally, user can get / set variable values within an asset (eg., drug formulation, compound, physiology, etc.)
Navigate within the project hierarchy to locate variables inside assets (eg. drug formulation, compound, physiology, etc.)
Retrieve or modify variable values (e.g., solubility, clearance, physiological properties).
Run execution and output retrieval
Existing runs within a project can be executed and their outputs can be retrieved in different formats:
Summary of Pharmacokinetic information
Iteration List containing the variable values
Mass / Concentration time-series data
Configuring Parameter Sensitivity Analysis Run
Parameter sensitivity analysis run can be configured within a project through automation. In addition to the variable spacing (logarithmic / uniform) options available in the GUI, automation also provides the user to provide discrete user-defined variable values to be used in the PSA run.
Observed Data Operations
Experimental / Observed data in a .gpproject
can be created, retrieved, and deleted programmatically.
Supported Modules
Key functionalities within the following GastroPlus modules are also exposed as part of GastroPlus Orchestrator
IVIVC analysis
PKPlus analysis
ADMET Predictor module
Concepts
The service can be started by the users in the following ways:
Start the service somewhere and configure from R/Python
Locate and start the GastroPlus 10.2 – Web application icon on your desktop or start menu.
the icon of Gastroplus 10.2-Web
A command window will open showing the service startup process.
Note the port number displayed at the end of the command window message.
Example:
listening on port: 57621
You will use this address to configure your R or Python client.
Start the service from R/Python
To start the service directly from R/Python
From R:
Use the helper function
start_service()
provided in thegastroPlusAPI
package.CODE# Start service and connect gpx_service <- start_service() # The above starts a process using the processx package. See here for available methods. # ?processx::process # Quit the service gpx_service$kill()
From Python:
Use theConfiguration
andApiClient
classes to connect.CODEimport gastroplus_api configuration = gastroplus_api.Configuration( host="http://localhost:8700" ) with gastroplus_api.ApiClient(configuration) as api_client: api_instance = gastroplus_api.AdmetPredictorApi(api_client)