Learn R Programming

archiDART (version 1.0)

architect: Computing Root System Architecture Parameters

Description

Calculation of common root system architecture (RSA) parameters from Data Analysis of Root Tracings (DART) output files.

Usage

architect(inputrac, inputtps, res=NULL, unitlength="px", rootdiv=1)

Arguments

inputrac
A character string specifying the path to the folder containing the rac files created by DART. This argument could be the same as inputtps.
inputtps
A character string specifying the path to the folder containing the tps files created by DART. This argument could be the same as inputrac.
res
A numeric value specifying the image resolution (dots per inch, dpi) of the pictures used in DART for the vectorization of the root systems. This argument must only be specified if unitlength="mm" or unitlength="cm".
unitlength
A character string specifying the unit of length that will be used by the function to express the results in the final data frame. The value acceptable for this argument could be either px for pixels, cm for centimeters o
rootdiv
Either a numeric value or a vector of numeric values defining a class number or the class limits that will be used by the function to divide the primary root in zones. Using this argument, architect will also compute the distribution of the s

Value

  • Returns a data frame summarizing all RSA parameters calculated for each rac file located in inputrac. The data frame contains the following columns: FileName (the name of the rac files), Time (the observation date expressed in the same unit as in the tps file(s) (=unittime)), TRL (the total length of the root system expressed in unitlength), GRTR (the growth rate of the root system expressed in unitlength/unittime), PRL (the primary root length expressed in unitlength), GRPR (the growth rate of the primary root expressed in unitlength/unittime), TNLR (the total number of lateral roots), TLRL (the total length of lateral roots expressed in unitlength), NxLR (the total number of lateral roots with a branching order equal to x), LxLR (the total length of lateral roots with a branching order equal to x expressed in unitlength), MLxLR (the mean length of lateral roots with a branching order equal to x expressed in unitlength), GRxL (the growth rate of lateral roots with a branching order equal to x expressed in unitlength/unittime), D2LR (the density of second-order lateral roots on the primary root expressed in root(s)/unitlength). If rootdiv is a numeric value, the following columns will be added to the data frame: N2LR.LayerX (the total number of second-order lateral roots in layer X), L2LR.LayerX (the total length of second-order lateral roots in layer X expressed in unitlength), D2LR.LayerX (the density of second-order lateral roots on the primary root in the layer X expressed in root(s)/unitlength). If rootdiv is a vector of numeric values, the following columns will be added to the data frame: N2LR.XtoY (the total number of second-order lateral roots in a layer delimited by X and Y on the primary root), L2LR.XtoY (the total length of second-order lateral roots in a layer delimited by X and Y on the primary root expressed in unitlength), D2LR.XtoY (the density of second-order lateral roots in a layer delimited by X and Y on the primary root expressed in root(s)/unitlength).

Details

Le Bot et al (2010) presented a free and open-access software (Data Analysis of Root Tracings - DART) allowing the analysis of complex RSAs from captured images, particularly across time series. Using this software, a user has to manually identify roots as a set of links. After vectorization of a root system, a final data set can be exported as a table file (rac file) containing several attributes for each individual root, notably the root length at each observation date. A second table file (tps file) containing the root system age at each observation date can also be exported from DART. These two data sets can finally be used to calculate derived root system architecture parameters. In this context, architect is an R function allowing the calculation of common RSA parameters at each observation date for each DART rac file: the total root system length, the length of the primary root, the total number of lateral roots, the total lateral root length, the length and the number of lateral roots for each branching order, the mean length of lateral roots for each branching order, the density of second-order lateral roots on the primary root, the primary and the lateral root growth rates, as well as the growth rate of the entire root system. When needed, the distribution of the second-order lateral root number, length and density on the primary root can also be calculated (via rootdiv). The function architect will successively locate and read the rac and tps files created by DART and calculate RSA parameters. First, architect will check if all arguments have been written in the suitable mode. If res is specified, the function will check if the numeric value required by this argument is positive. The function will also automatically check if the numeric elements in rootdiv are superior or equal to zero and sorted by increasing values. If an error occurs for one argument, the code stops and the corresponding error message will be returned by the function. Second, the function will use inputrac and inputtps to locate and read the raw rac and tps files created by DART respectively. To run architect efficiently, DART files must have been saved with their appropriate extensions (.rac or .tps). Third, the function will create vectors and matrices for RSA parameters calculation. If inputtps contains a single tps file, it will be used by architect for each rac file located in inputrac. If inputps contains more than one tps file, the number of tps files in inputtps must be equal to the number of rac files in inputrac and corresponding rac and tps files must have the same name. If an error occurs at this step, a message will be returned by the function. Growth rates are calculated as follows:
  • Primary root growth rate: for the first observation date, it is calculated as the ratio of the primary root length to the root system age. For other observation dates (t), it is calculated as the difference between the primary root length at time t and t-1 divided by the difference between the root system age at time t and t-1.
  • Second- and third-order lateral root growth rates: for the first observation date, it is calculated as the ratio of the second- or third-order lateral root length to the root system age. For other observation dates (t), it is calculated as the difference between the second- or third-order lateral root length at time t and t-1 divided by the difference between the root system age at time t and t-1.
  • Growth rate of the root system: for the first observation date, it is calculated as the ratio of the total root system length to the root system age. For other observation dates (t), it is calculated as the difference between the total root system length at time t and t-1 divided by the difference between the root system age at time t and t-1.

References

Le Bot J., Serra V., Fabre J., Draye X., Adamowicz S., Pages L. (2010) DART: a software to analyse root system architecture and development from captured images, Plant and Soil, 326, 261--273.

Examples

Run this code
## Importation of example data sets
data(ch7rac)
data(ch7tps)

## Creation of a folder (DART_architect) inside a temporary directory to contain the rac and tps
## example data sets created by DART
dirDART <- paste(tempdir(), "/DART_architect", sep="")
dir.create(dirDART)

## Definition of the number of rac and tps files that will be saved inside dirDART
n <- 2

## Creation of rac and tps files inside dirDART
for (i in 1:n) {
write.table(ch7rac, file=paste(dirDART,"/ch7_",i,".rac", sep=""), row.names=FALSE)
write.table(ch7tps, file=paste(dirDART,"/ch7_",i,".tps", sep=""), row.names=FALSE)}

## Use of architect to compute RSA parameters from DART output files
## rootdiv=1
ch7_output_2 <- architect(inputrac=dirDART, inputtps=dirDART, res=75, unitlength="cm")

## Use of the rootdiv argument to compute the distribution of the second-order lateral root number,
## length and density in the [0-15[, [15-30[, [30-45[ and [45-60[ first centimeters of the primary
## root
ch7_output_3 <- architect(inputrac=dirDART, inputtps=dirDART, res=75, unitlength="cm",
rootdiv=c(0,15,30,45,60))

unlink(dirDART, recursive=TRUE)

Run the code above in your browser using DataLab