The story behind archiDART

Posted by Benjamin Delory on April 26, 2018 · 13 mins read

That will not come as a surprise for the root researchers reading this post: analysing plant root system architectures and measuring root functional traits are challenging tasks! The first challenge is methodological: How to efficiently acquire root images? And what is the ‘best’ method to analyse them? The answers to these questions are not easy to find and will depend on a number of factors, such as the traits or variables you would like to measure and the level of automation you wish to have, for instance. Guillaume has already written several nice posts on these topics here.

The second challenge is linked to time management. If you have ever worked with roots, you probably already know the unspeakable truth: it can take a lot of time to analyse root images! But once all the roots in each image have been traced, I am often (positively) surprised by the amount of information that one can get from such analyses. Root image analysis generates information-rich datasets from which numerous morphological and architectural traits can be derived. However, this information is often hidden in complex and well-structured data files. When I was a PhD student in Belgium, I thought it would be very useful to have a ‘code’ able to compute as many traits as possible from all the data files produced during root image analysis (and if possible, able to do everything at once!). That is how this story began!

Once upon a time in Montpellier

In August 2013, I attended a summer school organised in Montpellier by Philippe Hinsinger and Frédéric Gérard. During this week spent in Montpellier, I met lots of amazing researchers and our discussions often had a belowground focus. One day, we had a presentation given by Loïc Pagès, a French researcher (and excellent root modeller), about root system architecture and plasticity. His name sounded familiar to me because a few days before arriving in Montpellier, I downloaded a software that Loïc developed for the manual analysis of root system architectures: Data analysis of root tracings (DART). I liked DART for lots of different reasons (simplicity, time series analysis, etc.), but I thought that the computation of root architectural traits from the different data files created by the software was not so easy, particularly if you have analysed hundreds of different images. After his presentation, Loïc and I spent some time discussing about DART and root image analysis in general. As I was thinking to start developing a tool to easily extract a number of architectural traits from DART files, we agreed to stay in touch.

Let’s start coding!

When I was back in Gembloux (Belgium), I started to write an R code to speed up the computation of architectural traits from the data files created by DART after image analysis. When I had something working (it was just a script at that time, not even a function!), I met with some colleagues (Pierre Delaplace and Caroline Baudson) and asked their opinion about this first version. We had a really nice discussion and we came up with a bunch of new ideas to make the code more flexible and add new functionalities (such as graphical tools). At some point (I do not remember when), I went to see another colleague (Yves Brostaux) to discuss about the functions that have already been developed. Being a statistician familiar with the R environment, Yves was able to provide me with very nice tips and suggestions, such as adding some code to intercept errors. He also suggested to put all the functions (three at that time) inside a package to facilitate R code distribution, use, and documentation. I thought it was a great idea and I asked one of my PhD supervisor (Patrick du Jardin) if it would be possible for me to attend a seminar in Louvain-la-Neuve (also in Belgium) to learn more about how to build an R package. A few days after this seminar, the first version of the R package archiDART was born! As Loïc Pagès and I decided to stay in touch, I sent him this first version of the package to have his opinion. The different functions worked nicely on his own DART files and he even made some very nice suggestions to extend the capabilities of the package, such as developing new functions able to calculate root growth directions and trajectories (branching angles), and study lateral root distribution. As I was very interested in doing a research stay abroad, I asked Loïc if it would be possible for me to spend some weeks in his lab so that we can develop these new functions together. He said yes. In September 2014, I loaded my car and drove to Avignon (France) to meet Loïc and his team.

Visiting the city of Popes

As soon as I arrived in Avignon, Loïc introduced me to his team and we started to work on the algorithms of two new R functions: one for computing root growth directions and trajectories (trajectory), and one for computing lateral root distribution (latdist). Developing these two functions was a bit faster than I expected, probably because I was in an environment where I could focus only on coding. After six weeks, archiDART had two new functionalities working and we seriously started to think about submitting this R package to the CRAN repository and write a paper about it.

Why not making archiDART RSML-compatible?

Back in Belgium, I finished writing the first draft of my first scientific paper. When all co-authors agreed on a final version of the manuscript, I started to have a deeper look at the instructions for authors of the journal in which we wanted to submit the paper: Plant and Soil. Because this journal requires all manuscripts to be pre-reviewed by a third party, I contacted Guillaume Lobet (he was doing a postdoc in Liège at that time) and asked him if he could review our manuscript. He accepted and sent very useful suggestions! At that time (around May-June 2015), Guillaume just published a paper in Plant Physiology introducing the Root System Markup Language (RSML) as a convenient way to store and exchange root architecture data [paper here]. Based on this work, Guillaume made a really great suggestion: why not making archiDART RSML-compatible? A few days later, Guillaume came in Gembloux and we worked together on an R function able to read RSML files, import them into R, and format the data so that the functions that have been already developed for DART could be used to compute root architectural traits for RSML files. A few days later, all five functions of the package were RSML-compatible! As Guillaume made an important contribution to the development of archiDART, we decided to include him as a co-author of the paper. As co-authors are not allowed to be the third party doing the pre-review for Plant and Soil, we had to find somebody else to perform a second pre-review. Fortunately, a colleague of Guillaume (Pierre Tocquin, also working in Liège) was happy to do it. After taking Pierre’s comments into account, the paper was (finally) ready to be submitted!

First CRAN experience and first paper submission

In June 2015, we submitted archiDART to the CRAN repository. I remember that it took several rounds for the package to be accepted in the main CRAN package area (important tip: if you want to send your package to CRAN, read carefully the CRAN policies and stick to it! ). In July 2015, we submitted our manuscript introducing archiDART to Plant and Soil. A few weeks later, we received a very good news in our mailbox: paper accepted with minor revisions. The paper was finally accepted in September 2015 [link to paper].

Publish, but never perish!

In November 2015, I moved to Germany to start a postdoc. When I had some free time, I kept on maintaining the package (solving bugs or rewriting some code to make it a little bit faster, etc.). In May 2017, we submitted a new version of the package that was able to support 3D and time series root architecture data stored as RSML files. This was an important update as it allowed researchers to use archiDART to analyse simulations produced via root architecture models, such as ArchiSimple [paper] and CRootBox [website].

archiDART goes topological!

In July 2017, Guillaume sent me an Email about a new method (called persistent homology) developed by Mao Li and Christopher Topp (USA) to quantify plant morphology and analyse the topology of branching structures, such as plant shoots and root systems. One Skype meeting later, we decided to work on a new data analysis pipeline that could be implemented in archiDART to analyse the topology of plant root systems using the method developed by Mao and Chris. While I was working on new functions relying on persistent homology, Guillaume started to develop a Shiny app to demonstrate the capabilities of archiDART. After a few weeks, we made some nice progresses and we decided to contact Mao (the persistent homology expert of the team!) to ask her opinion (and also ask her some technical questions). When we had something working well on various types of root architecture data, we started writing a paper describing this new data analysis pipeline. This paper was submitted to the R gateway of F1000Research in January 2018 [link to paper].

(Not) The End

For readers familiar with The Lord of The Rings, you probably remember what Bilbo said to Frodo when he left the Shire: ‘It’s a dangerous business, Frodo, going out your door…You step into the road, and if you don’t keep your feet, there is no knowing where you might be swept off to’. Sometimes, I believe that this quote can be a nice summary to describe the development of archiDART. What a journey! From three functions in the first version, we now have more than ten functions available in the latest version available on GitHub. The package is what it is today because of ideas and efforts of numerous collaborators coming from many different countries (Belgium, Germany, France, USA, etc.), as well as users giving useful feedbacks! There is always more in two brains than in one, and this package is a very good example of that! That’s probably what I like the most about it.

If you liked this post, you can share it with your followers or follow me on Twitter!