Readme: Xylem_Network_Matlab

This post is meant as a guide to the Github code used in the research article published in Plant, Cell, & Environment (link for paper to be added). Access the code by clicking here.

In this article


Research on plant hydraulics is advancing at great pace and from different scientific angles. There is a need to combine newly acquired knowledge on plant hydraulic tissue anatomy, physiology, and whole tissue hydraulic function. This model was developed to do just that for flowering plant xylem. The object oriented nature of the model provides modularity and allows for easy implementation of additional levels of complexity of xylem function.

The Xylem Network model first builds a xylem network (XN) of random topology. Topology means the relative position of vessels relative to each other. Properties such as mean vessel length, diameter and mean mean pit membrane size are controlled through input parameters to the model as detailed in the How to use section.

The model can then generate Vulnerability Curves (VCs) and extract hydraulic properties of the generated XN. Below is a figure illustrating how emboli propagate through the xylem as the pressure difference between the water and the atmosphere (\Delta P) increases.

GIF of the new flowering plant xylem network model showing the process of cavitation. Black vertical lines are vessels and red horizontal lines are intervessel connections (IVCs). \Delta P is the pressure difference between the water and the atmosphere. As the pressure difference increases, emboli propagate embolizing some vessels (cyan) and isolating others (magenta).


This Matlab code is designed as a model to explore how water or emboli propagate throughout a flowering plant xylem tissue. This code is based on Object Oriented Programming (OOP) capabilities of Matlab. There are five objects that interact in this model:

  • XylemNet: The xylem network object containing all conduits, conduit elements, ICCs, and clusters.
  • Conduits: each conduit is made up of multiple consecutive conduit elements. Conduits are constrained to one direction, considered vertical along the orientation of water flow. One can think of conduits in this context as vessels.
  • Conduit elements: conduit elements form part of every conduit. All conduit elements are of the same length in the model. Therefore, the vertical distance between two consecutive nodes is the conduit element length which is set by the user.
  • InterConduit Connections (ICCs): each ICC connects two conduits with each other. This is necessary because conduits do not usually span the whole length of the conductive tissue.
  • Clusters: clusters are collections of conduits and ICCs that form an independent water pathway from the inlet of the conductive tissue to the outlet. A xylemNet object may contain multiple clusters.

How to use

There are scripts a user may use to take advantage of the model without knowing its inner workings:

XylemNetIni.m initializes a xylem network, pertinent parameters can be changed in that script, they are set to default values corresponding to Acer anatomy measurements. The detailed descriptions of parameters are included as comments in the code.

VCGen.m allows you to compute the vulnerability curve associated with the generated xylem network. You can control the behavior of VCGen with the following parameters:


Xylem Network Model

GIF of the new flowering plant xylem network model showing the process of cavitation. Black vertical lines are vessels and red horizontal lines are intervessel connections (IVCs). ΔP is the pressure difference between the water and the atmosphere. As the pressure difference increases, emboli propagate and embolize some vessels (cyan) while isolating others (magenta).

Without water plants can’t photosynthesize. Without photosynthesis plants can’t produce the sugar required to grow or produce the fruits and vegetables so many organisms depend on, including all of us. To become better informed on how plants will react to our ever-changing climate, investigating the fragility of plant water use and its adaptive capabilities is paramount.

Xylem, the water conductive tissues of plants, uses a delicate combination of physics, biology, and alleged chemistry to move water against gravity. Any attempt to directly observe xylem functioning in detail (such as cutting wood, inserting probes,…) almost always makes it obsolete due to how fragile the water transport mechanism is. Since humanity still heavily needs to understand this process for many reasons, we developed a computational program to mimic xylem function.

We used the object-oriented capabilities of Matlab, a powerful computational tool developed by MathWorks. As shown in the above GIF, water goes “up” from the roots to the leaves through ducts called vessels in flowering plants. However, no vessel spans the whole length of the plant so water has to flow horizontally from one vessel to the other through vessel contact walls. It may seem like a like not to use a single duct to transport all the water from the roots to the leaves until you realize what happens when a prolonged drought makes available water scarce.

When a drought persists and soil water decreases in quantity, the soil and the leaves of the plant start competing for the same water like in a tug of war: the leaves high up and the soil below the plant. The water inside the trunk of the tree, however, is not as strong as the rope you always use and can therefore break. When a water column breaks inside a vessel, an air bubble fills it up and inhibits further water movement (in cyan in the above GIF). This is why it is important that the plant depend on multiple vessels for water. If one vessel is filled with an air bubble, the plant can still depend on the other ones for water. It really is fascinating how, for hundreds of millions of years, plants have relied on such an apparently fragile mechanism.

The model simulates water flow, air bubble formation and its propagation. It elucidates how different anatomical characteristics of flowering plants affect the vulnerability of plants to water scarcity and ensuing bubble formation. We submitted a manuscript that is currently under review. The Matlab code used is online on Github and you can access the all important Readme file on this link.