Register here for Universidad Autonoma de Aguascalientes


Register here for Universidad Autonoma de Chapingo


Maize root growth
Maize root growth

Introduction

Hi there! Welcome to the OpenSimRoot workshop!

In this workshop, you will learn the basics of the structural-functional model for simulating root growth using OpenSimRoot. This course will be divided into several sections that will guide you from the basics of OpenSimRoot for users to the more complex engine code for developers.

In Section 1, you will learn what programs you need for running a simple simulation, how to extract your data, and how to see the 3D models of your roots.

In Section 2, you will learn about root phenotypes and how to modify parameters such as root number, angle, lateral branching frequency, growth rates, etc.

In Section 3, you will learn about soil parameters, including soil texture and hydraulic parameters, bulk density, and nutrient availability.

In Section 4, you will learn about atmospheric parameters such as temperature, precipitation, wind speed, humidity, etc.

In Section 5, you will have a specific case study of how to implement OpenSimRoot for a real scientific problem.

Before you jump into the sections, please download the following programs:

If you have any trouble downloading the programs or if you are a Mac user, please send me a message.


Section 1 - Running a simple simulation in OpenSimRoot

Here you will run your first simulation! There are a few steps you need to perform before running the simulation. Once you have downloaded the OpenSimRoot source code and the inputfiles, you need to compile the program OpenSimRoot in your computer or cluster. For this, access to your OpenSimRoot source code using WSL into OpenSimRoot-master and run the program build.sh using the command:

bash build.sh

If you got an error in the compilation, double check that you have the most recent version of your compilator is loaded. You can run the command:

module load gcc/your_latest_version

If want to know the versions available in your computer, run this command:

module avail

Once you succesfully compiled you OpenSimRoot you are ready to run the first simulation!

If you are using WSL in your own computer, run the command:

./pathToDownload/OpenSimRoot_Linux_x64 -f ./pathToUnzippedArchive/

If you are using a slurm cluster, run the program “input_production.sh”:

bash input_production.sh

and then “run_rep_v4.sh”:

bash run_rep_v4.sh

You can follow this process step-by-step in this Tutorial 1


Results

OpenSimRoots produces different type of outputs. It produces vtu and vtp files with the 3D representation of the root system and the soil over multiple time steps. It also include a table_output.tab file, which include values of the variables such as shoot dry weight, root dry weight, nitrogen depletion paterns, root distribution and many more. For this example, we show the root distribution in the form of root weight along different soil profiles (0-10 cm, 10-20 cm, and so on).


Section 2 - Root phenotypes

To define the root architecture in OpenSimRoot it is necesary to edit the parameters for the root system in the inputfiles. For instance, in the InputFiles we can define the number of nodal roots, angle of emergence of the roots, lateral branching frequency, among others. For this workshop, we will use a script called “input_production.sh” which will simplify this process for you. The “input_production.sh” script will edit and create new inputfiles based on the spreadsheet “parameters_v1.csv”, in which you will specify the root phenotypes you want. Think about it as a two step process, in which you first define your parameters in the “parameters_v1.csv”, then run the script “inputfile_production.sh” and create the input files. Once you have created the inputfiles you can run the simulations.

So, let’s explore the parameters_v1.csv file. It contains :

From column 1 to 7 we have the Tags. These are not parameters but simple names that you can edit when designing your simulations. For instance, in column 1 we have ACCESSION, which correspond to a particular phenotype, let’s say steep or shallow roots. In the column 2 we have the environment, which we will cover in section 3 and 4. In this case, column 2 is the same for all because we are using the same environment for all the simulations. The rest of the columns have 0 because we are not using them in this example, but can be easily edited by the user as needed.

Starting from column 8 we have the parameters of the simulation. These parameters include parameters for the root morphology, root physiology and environment. In this section we will focus only in the root morphology. In particular we will look at the columns AN_, NRN_, and MIN/MAX_BF, which represents the values for Angle, Number of roots and lateral branching frequency. You will notice that the column name is accompanied by the acronyms “SEM”, “N1”, “N2”, … “N7”. These acronyms refer to the root type the apply. For instance, AN_N1 correspond to the Angle for nodal root 1, NRN_SEM correspond to the number of “seminal” roots.

In the following figure you can see the results for each of the ACCESSIONS, corresponding to contrasting values for Angle, Number of roots and Branching frequecies.

Root phenotypes
Root phenotypes

Section 3 - Soil Environment

In this section we will explore the parameters to simulate different soil types. In OpenSimRoot, the soil is represented as a matrix in which different modules simulate: the concentration and movement of nutrients (N, P, K) in different profiles, bulk density, organic matter and soil dimensions. Soil texture is considered by the integration of the van Genuchten parameters for soil hydraulic conductance and water retention. In SoilGrids, you can have access to different soil cores around the world and you can obtain information about the physical and chemical characteristics for a particular soil type. Based on the soil physical properties, you can use the software Rossetta to obtain the van Genuchten parameters.

Once you have obtained all the parameters of your soil you can input them into the models using the “parameters_v1.csv” file that we reviewed before. To change this parameters, refer to the columns: bulk density, Nitrogen (multiplier), Mineralization (multiplier), Organic Matter (multiplier), Residual Water Content, Saturated Water content, Alpha, n, Saturated Conductivity, OM (organic mater), Phoshporus (multiplier). Note that some variables are a “multiplier”, which means that the value to set will multiply the actual values of the input file. To see the actual values you can open the runMaize.xml file in the Reference directory. The variables without a “multiplier” label refer to the actual values.

For this example, we obtained the physical and chemical properties from Colorado, USA and Cusco, Peru and simulated a clay and sandy soil, respectively.

Soil Types and Nitrogen leaching
Soil Types and Nitrogen leaching

Section 4 - Atmosphere


In this section we will manipulate the atmopheric parameters inside the model. To do so, we will use the same scripts we used in the previous sections. In the “parameters.csv” you will find columns corresponding to: Temperature, Precipitation, Relative Humidity, Wind Speed. You will also find Altitude, Latitude, Longitude, day and month, which will be used to calculate the solar radiation.

If you want to parameterize a particular place of interest, you can access to the [NASA POWER Data Access Viewer v.2.0.0] (https://power.larc.nasa.gov/data-access-viewer/) and obtain the atmospheric data for any region of the world.

More information

This workshop is in continuous development, and more sections will be gradually added.