## Percentile Plot

In the **SimBiology Model Analyzer**
app, you can visualize time course data and its corresponding statistics using a percentile plot.
The plot shows the percentile curves over time for an array of time courses along with other data
statistics such as mean, standard deviation, minimum, and maximum values.

To show a percentile plot, select a data source that contains time courses in the
**Browser** pane, then click **percentile** in the
**Plot** section on the **Home** tab. For a workflow example,
see Visualize Simulation Statistics and Overlay Experimental Data Using Percentile Plot.

### Display Options

Each response in a percentile plot has three display options, which you can configure.

**Percentiles**— Shows the percentile curves. By default, the plot shows 5th and 95th percentiles. Scan programs with more than 40 samples use percentile plots as default plots. You can change this default cutoff in**Preferences**>**Programs**>**Plots**. This is the default display type for simulation data.**Mean**— Shows the mean and standard deviation of response data at each time point. This is the default display type for experimental data.**Raw Data**— Shows the original response data points at each time point.

### Percentiles Options

The **Percentiles** section provides the following options to configure
the percentile curves.

Option | Description |
---|---|

Show percentiles (%) | Percentiles to plot. Enter one or more nonnegative numbers between 0 and 100 or any
MATLAB^{®} expression that results in a nonnegative number or vector of values between 0
and 100 in ascending order. |

Show median | Logical flag to show or hide the median line in the plot. |

Display style | Display format to show lines, shading, or both. |

For details on how the app computes the percentile curves and other statistics, see Calculation of Percentile Curves, Mean, and Other Statistics.

### Mean Options

The **Mean** section provides the following options to configure the
plots.

Option | Description |
---|---|

Show mean | Logical flag to show the mean response value at each time point. The plot uses the
marker `o` to represent mean values. |

Show standard deviation | Logical flag to show ±1 standard deviation of the response value at each time point. The plot shows error bars to indicate the standard deviations. |

Show min/max | Logical flag to show the derived minimum and maximum response values at each time point. To calculate these values, the app first interpolates all the time courses to a common time vector and then computes the statistics, such as min, max, mean, and standard deviation, at each time point on the common time vector across all interpolated time courses. Hence the interpolated maximum and minimum values at a given time point shown in the percentile plot may not match those values of the raw data exactly. The plot uses the marker |

Display style | Display format to show lines, markers, or both. |

For details on how the app computes the mean, minimum, maximum response values, and other statistics, see Calculation of Percentile Curves, Mean, and Other Statistics.

### Data Options

For each data source plotted in the percentile plot, the app shows the following options. You can change these options for each data source independently from other data sources.

Option | Description |
---|---|

Time vector | Common time vector to which all time courses are interpolated before calculating the percentiles. The default Enter a vector of nonnegative numbers or MATLAB expression that results in a vector of nonnegative numbers that are in ascending order. |

Interpolation method | Method used to interpolate time courses onto a common time vector. The app calls |

Show raw data fraction (%) | Percentage of original time courses to show in the plot. Enter a nonnegative integer between 0 and 100. |

### Calculation of Percentile Curves, Mean, and Other Statistics

The app computes the percentile curves, mean, minimum, maximum response values, and other statistics using the following steps.

The app obtains a common time vector by using the code specified in the

**Time vector**option or by automatically computing it as a linearly spaced vector of times between the minimum and maximum times across all the groups (or runs) in the input data source.It then interpolates the response time course for each group or run onto the common time vector using

`interp1`

with the method specified in the**Interpolation method**option. For simulation data, the app treats multiple response values at the same time point as a discontinuity and performs piecewise interpolation between such time points. For experimental data, the app treats data at the same time point as repeated measurements and uses the mean of all measurements at those time points.The app then calculates the corresponding statistics, such as percentiles, mean, max, standard deviation, for each time point in the common time vector across all groups for that time point in the interpolated time courses.

**Note**Because of interpolation, calculated maximum and minimum values might be different than those values from the original data.

It then generates a plot using the calculated statistics against the common time vector according to the

**Display style**option.