A SYSTEM FOR THE AUTOMATION OF ONE-AT-A-TIME SENSITIVITY ANALYSIS IN ODE SYSTEMS UM SISTEMA PARA A AUTOMATIZAÇÃO DA ANÁLISE DE SENSIBILIDADE DO TIPO UM POR VEZ EM SISTEMAS DE EDOs

Sensitivity analysis is a widely used tool in computing modeling, being used for distinct purposes, such as a better understanding of the relationship between parameter values in a mathematical model and its results, and the identification of parameters whose change in their values implies in a larger variation in the results of a model, among others purposes. Several approaches can be used to perform sensitivity analysis. One of the simplest is one-at-a-time, which analyzes the impact of changing a single parameter on a model while keeping the others one fixed. Depending on the number of parameters and the variations adopted, the sensitivity analysis of a large model may generate a large volume amount of results and it can be hard to identify the most sensitive parameters of the model. This paper presents a tool that automates the identification of these parameters.


INTRODUCTION
Sensitivity analysis is a tool used for understanding a mathematical model, more specifically, the influence that each parameters will have on the results of a model. In this way, it is possible to identify its most sensitive parameters, that is, those whose changes have a more significant impact on the results and, for this reason, should have their reference values assigned more carefully.
Although the basic principle that guides sensitivity analysis is extremely simple, changing the values used in a model and observing its new behavior, some complications may arise in this process, especially when the OAT (one-at-a-time) sensitivity analysis approach is employed. In particular, a large number of experiments may be necessary, and therefore the analysis of a large number of results is necessary to identify the most sensitive parameter(s).
The objective of this work is to assist this process: a tool was developed to carry out local sensitivity analysis automatically using the OAT approach. The tool allows the user to describe a mathematical model composed of ODE (Ordinary Differential Equations) and choose, for each parameter, its reference value, lower and upper limits and ranges of variation. At the end of its execution, the tool identifies the most sensitive parameters of the model. This paper describes the computational implementation of this tool, as well as a case study of its use in a model that describes the immune response against the yellow fever vaccine.
The rest of this paper is organized as follows. Section 2 presents a brief review of sensitivity analysis and section 3 presents the implementation of the tool. The case study is presented in section 4. Finally, conclusions and plans for future work are presented in the last section.

SENSITIVITY ANALYSIS
According to the literature (SALTELLI et al., 2008), the sensitivity analysis allows to determine how the uncertainty in an output of a mathematical model can be attributed to different uncertainties in its inputs. There are several reasons to perform the sensitivity analysis of a model, among which we can highlight: a) to better understand the relationships between the parameters of a model and its results; b) to identify the parameters of a model that are the main causes of variations in the results and that, therefore, should be adjusted more carefully; c) to identify errors in the model, resulting from unexpected relationships between the input parameters and the responses produced by them; and d) to simplify the model, excluding parameters that have little effect on its results. Revista Mundi, Engenharia e Gestão, Paranaguá, PR, v. 5, n. 2, p. 230-01, 230-10, 2020 DOI: 10.21575/25254782rmetg2020vol5n21171 There are several approaches to carry out the sensitivity analysis of a mathematical model. One of the simplest and most commonly used is one-at-a-time (OAT), which analyzes the impact of changing a single parameter on the outputs produced by the model, keeping the other parameters fixed. This process is repeated several times for the same parameter, until all values of interest are evaluated. In the next step, this procedure is repeated for each parameter of the model. The sensitivity can then be measured by monitoring changes in the results, since any change that is observed could only be caused by the change in the parameter value. Despite its simplicity, this approach does not fully explore the entire input space, since it does not take into account the simultaneous variation of two or more parameters, thus it is not possible to identify correlations between them, which is a limitation of this approach.

A COMPUTATIONAL TOOL TO AUTOMATE THE SENSITIVITY ANALYSIS
The tool proposed in the scope of this work aims to automate the sensitivity analysis of ODE systems, using the OAT approach.
The tool allows the user to define, at run time, the ODE system, either through a file or a graphical interface. Additionally, for each parameter and initial condition, it is possible to define its default value, the percentage of variation, and the upper and lower limits. For example, for a given parameter A, the following values can be defined: initial value equals to 50, the percentage of variation equals to 10%, lower limit equals to 10% and upper limit equals to 20%. Thus, the model would be evaluated using the values 45, 50, 55 and 60 for the parameter A. All parameters of the model can be studied in the same way.
At the end of the sensitivity analysis process, the tool informs the user the variations in the outputs observed by changing each parameter, allowing he/she to identify the most sensitive parameters.

Computational Implementation
The tool was developed using the Python programming language, which is available in distinct hardware and operating systems platforms. Python has also the advantage of having a vast number of libraries that offer tools to facilitate the development of graphical interfaces, the numerical resolution of EDOs, and the generation of graphs with the results obtained.
For the development of the graphical interface, the standard GUI library for Python, Tkinter, was used. For the resolution of the ODE system, the library chosen was scipy (ODEINT, 2014), which has a package called integrate with some functions for differential Revista Mundi, Engenharia e Gestão, Paranaguá, PR, v. 5, n. 2, p. 230-01, 230-10, 2020 DOI: 10.21575/25254782rmetg2020vol5n21171 and integral computations. In particular, this package has a function called odeint that implements the numerical resolution of ODE systems. The function odeint chooses the numerical method to solve the ODE system automatically, depending on its characteristics. For example, the BDF (Backward Differentiation Formulae) or Adams(LEVEQUE, 2007) methods can be used, depending whether stiff equations are identified or not, respectively.
Initially, the user must define the number of parameters and equations that his/her model has, as shown in Figure 1. In a second screen, shown in Figure 2, the user types the default values of each parameter, the set of equations, the percentage of variation that will be used in each step and the lower(%) and upper(%) limits. There is also the possibility of entering this data through a file, which facilitates the process for more complex ODE systems. Initial conditions are also required for all variables.  After the user has entered all data, he/she can choose to solve the system of equations (by clicking on the "Calculate" button), or to perform the sensitivity analysis (by clicking on the "Analysis" button). In the case the user chooses to solve the system of equations, the lower and upper limits do not need to be informed, and the tool will solve it using the function odeint.
In the case the user chooses the sensitivity analysis, the system will automatically vary, one at a time, each input parameter, between its minimum and maximum values, with intervals given by the rate of change. The results obtained for each equation over time will be stored in a vector. This process is done repeatedly for each variation of each parameter. The values Revista Mundi, Engenharia e Gestão, Paranaguá, PR, v. 5, n. 2, p. 230-01, 230-10, 2020 DOI: 10.21575/25254782rmetg2020vol5n21171 obtained in each of the variations are, finally, compared to identify the largest variations found, which are then printed.

CASE STUDY
This section presents the results of the sensitivity analysis of a mathematical model of the immune response against the yellow fever vaccine (BONIN et al., 2018). The mathematical model is composed by ten ODE used to represent the main populations related to the immune response against the vaccine, such as the virus used in the vaccine, antigen presenting cells, B and T cells, and antibodies (BONIN et al., 2018).
Since the focus of this work is the sensitivity analysis tool, the ODE system will be not described in details. Some of its equations will be reproduced here with the purpose of describing how to represent the equations in the tool. The complete model, as well as the detailed description of each of its parameters, can be found in the reference paper (BONIN et al., 2018).

The Equation 1 represents the vaccine virus (V):
The virus cannot reproduce itself, so it infects a cell and uses it as a factory for new virus. The first term represents represents the multiplication of the virus in the body, with a production rate π v ; the second term, c v1 V c v2 +V , denotes the non-specific viral clearing done by the innate innate system. The third term, k v1 V A, denotes the viral cleaning due to the opsonization of the virus by antibodies (A). The last term, k v2 V T E , denotes specific viral clearing due to the induction of apoptosis of infected cells by effector T cells, represented by T E .

The equation 2 represents antibodies (A):
The first and second terms represent, respectively, the production of antibodies by shortlived (P S ) and long-lived (P L ) plasma cells. The third term denotes the natural decay of these molecules in the body.
In order to represent the ODE system in the tool, each model variable is associated with a position in a vector that represents the system of equations. This vector will be referred to as f . For example, in the equation 1, V will be associated with f [0], A will be associated with Revista Mundi, Engenharia e Gestão, Paranaguá, PR, v. 5, n. 2, p. 230-01, 230-10, 2020 DOI: 10.21575/25254782rmetg2020vol5n21171 and T E with f [3]. In the same way, each model constant is associated with a position in a constant vector, which will be referred to as y. For example, pi v will be associated with y[0], c v1 a y[1], c v2 a y[2], and so on. Thus, the ODE system that describes the immune response against the yellow fever vaccine (BONIN et al., 2018) will be represented as follows: After the representation of the model, its sensitivity analysis was performed. According to the work that proposed the model (BONIN et al., 2018), the three most sensitive parameters of the model are: π v , k v1 , and k v2 , respectively, the virus replication rate, the viral neutralization (opsonization) rate, and the viral clearing rate by the action of effector cells, the same parameters found by the tool. Figure 3 shows the viremia and antibodies curves (the last one using two distinct simulation time, 50 and 4,000 days) generated by the tool, considering different values for the multiplication of the virus in the body (π v ). Figure 4 shows the viremia and antibody curves (the last one using two distinct simulation time, 50 and 4,000 days) generated by the tool, considering different values for the viral clearance rate due to antibody signaling (k v1 ).
Finally, figure 5 shows the viremia and antibody curves (the last one using two distinct simulation time, 50 and 4,000 days) generated by the tool, considering different values for the viral clearance rate due to the induction of apoptosis of cells infected by the YF virus (k v2 ). Revista Mundi, Engenharia e Gestão, Paranaguá, PR, v. 5, n. 2, p. 230-01, 230-10, 2020 DOI: 10.21575/25254782rmetg2020vol5n21171

CONCLUSION AND FUTURE WORK
This work presented a tool, developed in the Python programming language, to perform the sensitivity analysis in ODE systems using the one-at-a-time approach. As a case study, with the help of the tool, the sensitivity analysis of a mathematical-computational model that describes the response of the human immune system against the Yellow Fever vaccine was performed. The tool was able to automatically identify the most sensitive variables of the model.
As future work, the tool will be extended, adding other methods to perform the sensitivity analysis. Approaches such as the Sobol method, which can be used for a global sensitivity analysis, will be implemented in future versions of the tool.