Skip to main content

· One min read
Johnny Xu

31st PAGE Meeting is about to kickoff in Palexco Expo, A Coruña, Spain!

We are thrilled to announce that we will be presenting our work on the 31st PAGE Meeting. We will be in Booth 9 from Wednesday, June 28 to Friday, June 30.

PAGE booth

And also our poster is in III95.

PAGE poster

We will be happy to talk to you about our work and answer any questions you may have.

Come and say ¡HOLA!

· 3 min read
Johnny Xu

We are very happy to introduce Maspectra™ to help you accelerate the modeling & simulation process for drug development.

Maspectra is designed to be a data analysis platform that excels in performance, usability, and extensibility, specifically catering to the diverse needs of pharmacology and statistics functionalities.

Our development mainly focused on two aspects: a Python-based modeling framework named masmod and a cross-platform software graphical user interface.

masmod framework

masmod is a high-performance pharmacokinetic/pharmacodynamic (PK/PD) modeling & simulation framework with a well-designed Python interface. It provides a set of tools including exploratory data analysis, model definition/estimation/evaluation, and simulation.

The syntax of masmod follows Python's widely recognized style, making it a breeze to learn and use. Its extensibility enables effortlessly incorporating your own models into a customized masmod model library.

Writing and reading a masmod model is as easy as writing and reading math equations. You can also use masmod to simulate from models and visualize the results. If you have experience with the renowned machine learning framework PyTorch, you'll notice the similarities in syntax, making it intuitive and accessible.

Show me a demo!
class DemoPopPKProblem(Module):

def __init__(self):

# pk parameters
self.tv_v = theta(8.06, bounds=(0.01, 20))
self.tv_cl = theta(0.131, bounds=(0.01, 1))
self.tv_ka = theta(1.325, bounds=(0.01, None))
self.tv_alag = theta(1.03, bounds=(0.01, 24))
self.eta_v = omega(0.016744)
self.eta_cl = omega(0.0662868)
self.eta_ka = omega(0.452064)
self.eta_alag = omega(0.302627)
self.eps_prop_pk = sigma(0.00478)
self.eps_add_pk = sigma(0.135)

# Compartments
self.dose_cmt = compartment(default_dose=True)
self.central_cmt = compartment(default_obs=True)

# From Data Input
self.wt, self.dvid = column(['WT', 'DVID'])

def pred(self):
cl = self.tv_cl * (self.wt / 70)**0.75 * exp(self.eta_cl) # Clearance
v = self.tv_v * (self.wt / 70) * exp(self.eta_v) # Volume
ka = self.tv_ka * exp(self.eta_ka) # Absorption rate
alag = self.tv_alag * exp(self.eta_alag) # Absorption lag time
k20 = cl / v

self.dose_cmt.alag = alag # Alag on dosing compartment
cp = self.central_cmt.A / v # Central compartment concentration
self.dose_cmt.dAdt = -ka * self.dose_cmt.A # Dose compartment dynamics
self.central_cmt.dAdt = ka * self.dose_cmt.A - k20 * self.central_cmt.A # Central compartment dynamics

y = cp * (1 + self.eps_prop_pk) + self.eps_add_pk # Additive and proportional error
return y

If you are interested in masmod, please check out our quickstart for more details.

Maspectra graphical user interface

Maspectra is a desktop software for modeling & simulation workflow. It provides a graphical user interface (GUI) that plays the role of an integrated development environment (IDE) for Modeling Information Drug Discovery and Development (MID3).

It is an all-in-one solution for MID3 workflows, including pharmacokinetic/pharmacodynamic modeling, statistical analysis, data processing/visualization, and more. The software is cross-platform, which means it can run on Windows and macOS (Linux support is under development).

We will give more details about the Maspectra software in future blogs. Keep an eye on us 👀!

This is the first post of this blog. Thanks for reading. We will keep updating this blog to share our progress with you. If you are interested in our project, please follow us on GitHub. Also, we will post some more interesting things here. Stay tuned!


We recommand you to join our wait list to experience Maspectra first-in-place as soon as it becomes available to public.