A Course on Bioequivalence: Unit 6 - Using PumasCP for Bioequivalence

Authors

Yoni Nazarathy

Andreas Noack

This is Unit 6 of a complete bioequivalence analysis course using Pumas. There are 15 units in the course in total.

1 Unit overview

Previous units focused on some key theoretical aspects of the analysis including hypothesis testing, decision criteria, designs, and the use of linear models. More such theory will appear in units that follow.

Meanwhile in this unit we momentarily depart from the theory and go through the simple steps of carrying out a bioequivalence analysis using PumasCP.

PumasCP is an easy to use tool for carrying out clinical pharmacology analysis tasks in the NCA (Non-compartmental analysis) and BE (Bioequivalence) space. Some of the key tasks automated by PumasCP are:

  1. NCA
  2. NCA & BE
  3. BE
  4. Superposition & NCA
  5. Dose Proportionality
  6. NCA & Dose Proportionality

In particular, given study data, PumasCP provides an easy to use graphical interface for carrying out such tasks.

Our focus here on tasks 2 and 3 above, and in particular 3.

See complete video playlist illustrating the many features of PumasCP: PumasAI (2024).

2 PumasCP vs. Pumas (command line): When to Use Each for Bioequivalence?

Pumas (command line) is a flexible tool that can handle a wide range of bioequivalence tasks. As shown in previous units—especially in Unit 4—the built-in pumas_be function performs bioequivalence analysis for many different study designs and scenarios. For a broad overview, see the Quick Run-through of Pumas Bioequivalence Outputs tutorial.

If you need to go beyond the standard use of the pumas_be function, Pumas provides even more power. By using Julia alongside Pumas, you can easily create simulations to test multiple scenarios. You can also customize models with packages like GLM and MixedModels, as explained earlier.

On the other hand, PumasCP is a graphical user interface (GUI) tool. It is best for repetitive workflows where simplicity is key, and it is accessible to users without programming experience. PumasCP makes it easy to create and reuse templates for your team or organization, and is generally intended for straightforward tasks.

So in summary:

  • PumasCP: Simple to use, no need for coding, suitable for routine bioequivalence analyses.
  • Pumas (command line): Offers full flexibility and customization, from simple uses with pumas_be to advanced simulation and modeling.

Further:

  • Everything you can do in PumasCP can also be done in Pumas (command line).
  • Many common Pumas (command line) workflows can be done in PumasCP—no coding required.
  • Some advanced analyses (such as complex simulations or non-standard model adjustments) can only be done in Pumas (command line).

For most standard bioequivalence tasks, PumasCP is usually enough. For more complex scenarios, choose Pumas (command line).

Consult the Pumas Products Page for more information.

3 The elements of Pumas CP: Studies, Datasets, Tasks, and Reports

PumasCP organizes data, activities, and results with the concept of a study.

A study is then comprised of:

  • Datasets
  • Tasks
  • Reports

Each study can have multiple datasets, multiple tasks, and multiple reports.

The actions carried out are the tasks as these tasks create intermediate and final summaries of the study. Our focus in this unit is obviously on bioequivalence related tasks.

All studies

When you log onto PumasCP you are presented with a list of all of your studies. A study is related to a Compound.

Then once you are focused on a particular study, the key actions you can cary are uploading a dataset, Run a New Task, or Generate a Report:

You can obviously also return to older tasks to modify them, and modify reports. You can also transform datasets within the study.

The Datasets, Tasks, and Reports of a Study

When you consider a study, such as for example a study we named Learning PumasCP here, you see a display as this:

It lists all of the datasets, tasks, and reports in the study. You can add more datasets by uploading them, or by transforming existing datasets. You can add tasks by running tasks. Finally you can add and modify reports.

The key verb: a task

As stated the key activity of PumasCP is a task. When you start a task (always within a study) you can choose the analysis template for the task. In special cases you can make your own template, but we don’t discuss these cases here.

As you can see above, we chose the Bioequivalence analysis template (or “task type”).

The key noun: a dataset

Obviously, PumasCP operates based on collected experimental data. After you upload the data, within the task, you Select Dataset to indicate which dataset (from the those available in the study) is going to be used in the task.

At this point you can also transform a dataset and PumasCP builds a hierarchy where your new transformed dataset is a child of the original dataset. This is the data transformations menu and it offers many features and options for both standard and powerfully unique transformations:

Once the data is chosen (either a raw uploaded dataset or a transformed one), you map subjects in the sense that you relate column names from the daset to their respective input names for the analysis:

For example, in the context of bioequivalence, we typically want the columns:

  • id for determining the subject.
  • sequence for determining the sequence (e.g. RT vs TR).
  • period for determining the period.

If the data has names different from these, then you map them with the pull down menus.

Setting up the Task

In the heart of the task you choose a few options. For example in the context of bioequivalence you choose the endpoint to analyze and a few other options as needed.

As you can see, by this point PumasCP already recognizes the design and study paradigm and often channels you to the set of available options based on the design and study paradigm.

Results

In the context of bioequivalence, results with PumasCP are similar to the output of a pumas_be function (with command line Pumas). There are also options for looking at the model output and other results:

Thus with a few clicks, you are able to carry out bioequivalence analysis.

4 An example \(2 \times 2\) crossover study workflow

Here are instructions for working through a simple \(2 \times 2\) crossover study workflow, directly with bioequivalence endpoint data. You can try to follow these steps directly with PumasCP:

  1. Launch PumasCP.
  2. Create study: Click New study -> Create new study; call the study My first study; call the compound example 1; skip the sponsor name; skip the user-defined template. Hit Create + to finish creating the study. You will move to the study page.
  3. Upload dataset: Click 📎 Upload Dataset. Click Try an example dataset. Choose under BE, the dataset PJ2017_3_12 (crossover). The Upload dataset menu will appear. Inspect that dataset and then click Done. You will now see this dataset list in the Datasets section.
  4. Start the task: Click 📋 Run New Task. A page titled Start the Task appears. Change the name of the task from Unnamed task to BE analysis 1. Then choose the Bioequivalence option. Finally hit Next.
  5. Select dataset for the task (part of task): You will see the PJ2017_3_12.csv dataset. Select the original version of it (as opposed to some transformed version) by clicking next to Original. Finally hit Next.
  6. Map Subjects (part of task): Here you map names of columns from the dataset to their meaning for the analysis. In this case, id already matches id, sequence already matches sequence, and period already matches period. After inspecting this mapping, hit Next.
  7. Review subject data (part of task): Here some subject data and summary statistics appear. You may view and when done hit `Next.
  8. Set BE Preferences (part of task): Here some options are set. In our case, make sure to choose both AUC and Cmax endpoints. Then hit Next.
  9. Review BE Results (part of task): Here expand the BE Result AUC and BE Result Cmax to see the result tables for both endpoints. As you can see, AUC fails while Cmax passes. After inspecting the results, hit Next.
  10. Complete the task (part of task): Now you see a summary of all the results (you can click to expand results). Hit Complete to finish the task.
  11. Start generating a report: Now back in the study screen you can see that the task is completed. Hit now 🗎 Generate Report. A popup dialogue appears where you can choose the task for the report. In this case there is only the BE analysis 1 task that you ran. So select that task.
  12. Choose content from task (part of report): Expand the menu next to BE Analysis 1. Make sure that both Subject Data and BE Result are selected. Change the name of the report from My first study to Basic report 1. Then hit Done. You will return to the study page.
  13. Download the report: In the study page you will see the report Basic report 1. By hovering on the date next to it you will see an icon that represents downloading. Hit that icon. A popup menu appears where you can change the file format to pdf. After making that change, hit Confirm. You can now inspect the pdf file of the report.

5 Bioequivalance together with NCA workflow

Here are instructions for working through a simple \(2 \times 2\) crossover study workflow all the way from obtaining drug concentration over time data, to a bioequivalence study. You can try to follow these steps directly with PumasCP:

  1. Launch PumasCP.
  2. Go back to My first study: You created this study above (in case you didn’t repeat step 2 of the section above). We will run the analysis as part of this study.
  3. Upload dataset: Click 📎 Upload Dataset. Click Try an example dataset. Choose under BE, the dataset crossover_study. The Upload dataset menu will appear. Inspect that dataset to observe this dataset has concentration over time data. and then click Done. You will now see this dataset list in the Datasets section.
  4. Start to transform the dataset: (This step can also be done as part of a task). Hover over the date of the dataset crossover_study.csv and choose Transform. A popup will appear titled Transformed Copy. This dataset has the first 168 hours (week) for period 1 and the remaining 168 hours for period 2. You can observe this by looking at rows 17 and 18 where the period for subject id 1 changes from 1 to 2. Our transformation will be to take the times in period and subtract 168.
  5. Derive a column (part of the transform step): Hit Derive under the Transformations Available heading. A menu on the right will present you with a field currently set with New column name. Replace this text with time_in_period. Under it (and under the text is defined as) you are to put a formula (Julia expression). For this put: :period == 1 ? :time : round(:time - 168, digits = 4). Finally in the Notes enter: Time from start of period requires shifting of period 2. Finish by clicking Done. You will now see that the dataset has a derived dataset, crossover_study (derived).csv.
  6. Start the task: Click 📋 Run New Task. A page titled Start the Task appears. Change the name of the task from Unnamed task to NCA+BE analysis 1. Then choose the NCA & Bioequivalence option. Finally hit Next.
  7. Select dataset for the task (part of task): Select crossover_study (derived).csv (note that you could have created the transformation here as well). Finally hit Next.
  8. Map & Group Subjects (part of task): Here you map names of columns from the dataset to their meaning for the analysis. Change the time choice from the automatically detected time column to be the time_in_period column. Inspect that other choices and finally hit Next.
  9. Review NCA Subject Data (part of task): Inspect the Listing of concentrations at nominal time points table and the Observations vs. Time plots. Then hit Next.
  10. Set NCA Preferences (part of task): Here look at the Standard Parameters and only keep cmax and auclast selected. These are the two endpoints that will be calculated via NCA analysis. Finally hit Next.
  11. Explore Subjects (part of task): Explore the related plots and hit Next when finished.
  12. Review NCA Results (part of task): Look at the table under NCA parameter listing. These are now the calculated endpoints per subject and period. Then hit Next.
  13. Review Data for BE (part of task): At this point the task transitions from NCA analysis to BE analysis. Increase the No. Rows per page to 100. You may now inspect the dataset fully. Hit Next when finished.
  14. Set BE Preferences (part of task): Under the Endpoints selected table change No. Rows per page to 100. You now see all the endpoints. Select only cmax and auclast and make sure all others (e.g. tmax are unselected). Now as you hit Next PumasCP will carry out BE analysis.
  15. Review BE Results (part of task): This is similar to step 9 in the first workflow above (BE only). Inspect BE Result cmax to see the CI is [92.74, 100.2]. Inspect BE Result auclast to see the CI is [96.23, 101.1]. Hit Next when finished.
  16. Complete the task (part of task): Now you see a summary of all the results (you can click to expand results). Hit Complete to finish the task.
  17. Generating a report: Now back in the study screen you can see that the task is completed. You can now generate a report based on the result of this task and other tasks run (e.g. if you ran the previous task also). As you can see, when you generate a report you can expand/collapse many parts of the task to choose the tables, listing, and figures that suit you best.

6 Conclusion

This unit provided a hands-on introduction to PumasCP, the graphical user interface for clinical pharmacology analysis. We demonstrated how PumasCP simplifies bioequivalence analysis into a no-code, click-through process, making it an accessible tool for routine analyses. The unit began by positioning PumasCP in contrast to the power and flexibility of the Pumas command-line interface, providing guidance on when to use each tool.

We then walked through two practical workflows. The first illustrated a direct bioequivalence analysis on a dataset with pre-calculated endpoints. The second demonstrated a more comprehensive workflow, starting with raw concentration-time data, performing a data transformation, running a Non-Compartmental Analysis (NCA) to derive endpoints, and finally conducting the bioequivalence assessment. Through these examples, we covered the core concepts of PumasCP—Studies, Datasets, Tasks, and Reports—showing how to navigate the interface to produce a complete analysis and generate a final report. Having established this practical foundation with PumasCP, we are now equipped to return to the statistical theory in subsequent units to explore more advanced topics.

7 Unit exercises

  1. Basic Bioequivalence Analysis in PumasCP

    This exercise is based on the first workflow, “An example \(2 \times 2\) crossover study workflow,” which performs a direct BE analysis on a dataset with existing endpoints.

    1. Follow the steps outlined in the first workflow to perform a bioequivalence analysis, but instead of the PJ2017_3_12 dataset, use the SLF2014_1.csv example dataset, which is also available under the BE category in PumasCP.
    2. For the AUC endpoint, what is the reported Geometric Mean Ratio (GMR) and its 90% Confidence Interval?
    3. Based on the standard 80.00% to 125.00% acceptance range, does the analysis for the Cmax endpoint conclude bioequivalence? Justify your answer by citing the 90% CI from the PumasCP output.
  2. NCA and BE Workflow with Data Manipulation

    This exercise is based on the second workflow, “Bioequivalence together with NCA workflow,” and requires you to modify the dataset before analysis.

    1. Begin with the crossover_study.csv example dataset. Before starting the main task, use the Transform feature to create a new, filtered dataset that excludes subjects with id 4, 5, 6, and 7. (Hint: Use the Filter transformation and a condition like !(id in [4,5,6,7]).)
    2. Using this new filtered dataset, follow the complete “Bioequivalence together with NCA workflow” to derive the time_in_period column, run the NCA, and perform the final BE analysis on the cmax and auclast endpoints.
    3. After running the analysis, what is the new 90% Confidence Interval for the auclast endpoint? How does it compare to the interval from the tutorial where all subjects were included ([96.23, 101.1])?
    4. Generate a PDF report for this task. Customize the report to include only the “NCA parameter listing” table and the final “BE Result” tables for cmax and auclast. Exclude all plots and other tables.

References

PumasAI. 2024. “Working with PumasCP.” 2024. https://www.youtube.com/playlist?list=PLTPIIhCuAkzlM9VR9C2Rx2laq096WCGg5.

Reuse