Register here for
Universidad Autonoma de Aguascalientes
Register here for Universidad
Autonoma de Chapingo
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:
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
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
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.