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: