Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ OpenAlea.HydroRoot is a hydraulic root architecture modelling and a root
architecture system generator package.

<figure>
<img src="example/data/fig-6E.png" alt="Alt text" />
<img src="doc/example/data/fig-6E.png" alt="Alt text" />
<figcaption>Heat map representation of the incoming local radial flows on an
arabidopsis root.</figcaption>
</figure>
Expand Down Expand Up @@ -76,7 +76,7 @@ mamba env create -f ./conda/environment.yml

#### Usage

See notebooks in example directory, they are listed [here](example/notebook_list.ipynb) and can be played following [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/openalea/hydroroot/HEAD?urlpath=%2Fdoc%2Ftree%2Fexample%2Fnotebook_list.ipynb)
See notebooks in example directory, they are listed [here](doc/example/notebook_list.ipynb) and can be played following [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/openalea/hydroroot/HEAD?urlpath=%2Fdoc%2Ftree%2Fexample%2Fnotebook_list.ipynb)


## Documentation
Expand Down
1 change: 0 additions & 1 deletion doc/example

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@
}
],
"source": [
"draw = pd.read_csv(\"data_figures/fig_2-A.csv\", sep = ';')\n",
"draw = pd.read_csv(\"data_figures/fig_2-A.csv\", sep =';')\n",
"fig = {}\n",
"ax5 = {}\n",
"ax6 = {}\n",
Expand Down Expand Up @@ -276,7 +276,7 @@
}
],
"source": [
"draw = pd.read_csv(\"data_figures/fig_2-C.csv\", sep = ',', dtype = 'float')\n",
"draw = pd.read_csv(\"data_figures/fig_2-C.csv\", sep =',', dtype ='float')\n",
"ax = draw.plot('x K median', 'mediancurve from cut and flow measurements',color='m')\n",
"draw.plot('x K median', 'median -t*SE', color='m', ax=ax, style='--')\n",
"draw.plot('x K median', 'median + t*SE', color='m', ax=ax, style='--')\n",
Expand Down Expand Up @@ -435,7 +435,7 @@
}
],
"source": [
"df3a = pd.read_csv(\"data_figures/fig-3-A.csv\", sep = ',', dtype = 'float')\n",
"df3a = pd.read_csv(\"data_figures/fig-3-A.csv\", sep =',', dtype ='float')\n",
"df3a.iloc[:,range(0,43,2)]=df3a.iloc[:,range(0,43,2)]/1000\n",
"ax = df3a.plot.scatter(0,1,marker='o',color='black',edgecolor ='black')\n",
"for i in range(2,26,2):\n",
Expand All @@ -447,7 +447,7 @@
"ax.set_ylabel('Number of lateral roots')\n",
"ax.set_xlabel('distance to tip (m)')\n",
"ax.set_title('fig-3-A')\n",
"df3b = pd.read_csv(\"data_figures/fig-3-B.csv\", sep = ',', dtype = 'float')\n",
"df3b = pd.read_csv(\"data_figures/fig-3-B.csv\", sep =',', dtype ='float')\n",
"df3b.iloc[:,[0,2]]=df3b.iloc[:,[0,2]]/1000\n",
"ax = df3b.plot.scatter(1,0,marker='o',color='black',edgecolor ='black')\n",
"df3b.plot.scatter(3,2,marker='o',color='white',edgecolor ='black',ax=ax)\n",
Expand Down Expand Up @@ -574,7 +574,7 @@
}
],
"source": [
"df4a = pd.read_csv(\"data_figures/fig-4-A.csv\", sep = ',', dtype = 'float')\n",
"df4a = pd.read_csv(\"data_figures/fig-4-A.csv\", sep =',', dtype ='float')\n",
"df4a.iloc[:,[0,3,6]]=df4a.iloc[:,[0,3,6]]/1e3\n",
"ax=df4a.plot(0,'all intercepts 1',color='orange')\n",
"df4a.plot(0,'all intercepts 2',color='blue',ax=ax)\n",
Expand Down Expand Up @@ -622,7 +622,7 @@
}
],
"source": [
"df4b = pd.read_csv(\"data_figures/fig-4-B.csv\", sep = ',')\n",
"df4b = pd.read_csv(\"data_figures/fig-4-B.csv\", sep =',')\n",
"df4b.iloc[:,[0]]/=1e3\n",
"ax=df4b.plot(0,'all intercepts',color='orange')\n",
"df4b.plot(0,'intercepts order 2',color='purple',ax=ax)\n",
Expand Down Expand Up @@ -668,7 +668,7 @@
}
],
"source": [
"df4c = pd.read_csv(\"data_figures/fig-4-C.csv\", sep = ',')\n",
"df4c = pd.read_csv(\"data_figures/fig-4-C.csv\", sep =',')\n",
"ax=df4c.plot.scatter('simulated plant id','total length simulated (m)',color='grey')\n",
"df4c.plot.scatter('plant id','total length (m)',color='pink',marker='s',edgecolor='pink',ax=ax)\n",
"ax.set_title('fig-4-C')"
Expand Down Expand Up @@ -1051,7 +1051,7 @@
}
],
"source": [
"df7a = pd.read_csv(\"data_figures/fig-7-A.csv\", sep = ',')\n",
"df7a = pd.read_csv(\"data_figures/fig-7-A.csv\", sep =',')\n",
"ax=df7a.plot('dist to base (m)','n Col0',color='black')\n",
"df7a.plot('dist to base (m)','95 - Col',color='black',ax=ax)\n",
"df7a.plot('dist to base (m)','95 + Col',color='black',ax=ax)\n",
Expand Down Expand Up @@ -1185,12 +1185,12 @@
],
"source": [
"ax = draw.plot('x K median', 'mediancurve from cut and flow measurements',color='grey')\n",
"draw2 = pd.read_csv(\"data_figures/fig_7-C-e11.csv\", sep = ',', dtype = float)\n",
"draw2 = pd.read_csv(\"data_figures/fig_7-C-e11.csv\", sep =',', dtype = float)\n",
"draw2.plot('x', 'median-esk1-1',color = 'green',ax=ax)\n",
"for i in range(0,10,2):\n",
" color = (0.25,1.0-float(i)/10.0,0.25)\n",
" draw2.plot.scatter(i,i+1, ax = ax, color = color, edgecolor = color)\n",
"draw3 = pd.read_csv(\"data_figures/fig_7-C-e15.csv\", sep = ',', dtype = float)\n",
"draw3 = pd.read_csv(\"data_figures/fig_7-C-e15.csv\", sep =',', dtype = float)\n",
"draw3.plot('x', 'median esk1-5',color ='blue',ax=ax)\n",
"for i in range(0,14,2):\n",
" color = (0.,1.0-float(i)/14.0,1.)\n",
Expand Down Expand Up @@ -1289,7 +1289,7 @@
}
],
"source": [
"df1c = pd.read_csv(\"data_figures/sup-fig-1-C.csv\", sep = ',', dtype = float)\n",
"df1c = pd.read_csv(\"data_figures/sup-fig-1-C.csv\", sep =',', dtype = float)\n",
"marker = ['o','s','^','d','s','d','v']\n",
"colors = ['green','green','green','green','purple','purple','purple']\n",
"ax = df1c.plot('X lowess','K lowess', color='black')\n",
Expand Down Expand Up @@ -1359,13 +1359,13 @@
}
],
"source": [
"dsf2a = pd.read_csv(\"data_figures/sup-fig-3-A.csv\", sep = ',', dtype = float)\n",
"dsf2a = pd.read_csv(\"data_figures/sup-fig-3-A.csv\", sep =',', dtype = float)\n",
"ax = dsf2a.plot.scatter(0,1,color='black')\n",
"for i in range(1,6):\n",
" dsf2a.plot(0,i, ax=ax)\n",
"ax.set_ylim(0.03,0.045)\n",
"ax.set_title('supplemental figure 3-A')\n",
"dsf2b = pd.read_csv(\"data_figures/sup-fig-3-B.csv\", sep = ',', dtype = float)\n",
"dsf2b = pd.read_csv(\"data_figures/sup-fig-3-B.csv\", sep =',', dtype = float)\n",
"ax2 = dsf2b.iloc[:,range(1,10,2)].plot(style='--')\n",
"dsf2b.iloc[:,range(2,11,2)].plot(ax=ax2)\n",
"ax2.legend(bbox_to_anchor=(1.05, 1), loc='upper left')\n",
Expand Down Expand Up @@ -1472,7 +1472,7 @@
}
],
"source": [
"dfs3a = pd.read_csv(\"data_figures/sup-fig-5-A.csv\", sep = ',')\n",
"dfs3a = pd.read_csv(\"data_figures/sup-fig-5-A.csv\", sep =',')\n",
"ax=dfs3a.plot.scatter('totals length (m)','integral6pointSum',color='black')"
]
},
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -295,38 +295,10 @@
"metadata": {},
"outputs": [],
"source": [
"# from openalea.hydroroot.display import plot\n",
"# %gui qt\n",
"# plot(g, prop_cmap='psi_in')"
"from openalea.hydroroot.display import plot\n",
"%gui qt\n",
"plot(g, prop_cmap='psi_in')"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "56b48ced-dcdc-4425-9fdf-6530e62ade11",
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "254ea21b-1b57-4b63-a9c9-8600a40aa606",
"metadata": {},
"outputs": [],
"source": [
"plt.plot(range(2), range(2))"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e1269bf7-3807-4417-a8c7-06cbcd2c6419",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -336,9 +336,7 @@
"output_type": "execute_result"
}
],
"source": [
"FileLinks('.')"
]
"source": "FileLinks('')"
},
{
"cell_type": "code",
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
150 changes: 150 additions & 0 deletions doc/example/parameters_10LP08.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
#%YAML

#All parameters should be in SI units

#Few parameters may be set to list of float or integer allowing to run successive simulation
# there are two syntaxes:
# [x1, ..., xn] or range(start, end, step)
# eg. range(0.02, 0.09, 0.02) or [0.02, 0.04, 0.06, 0.08] will give the same results
# the parameter will take successively the values 0.02, 0.04, 0.06 and 0.08

archi:
#if read_architecture is true then architecture will be constructed from the file(s) given by input_dir and input_file
#otherwise the architecture will be generated according to the parameters
read_architecture: True

#Input architecture from scanned image (distance_from_base_(mm) \t lateral_root_length_(mm) \t order)
#folder name
input_dir: data/Maize/FB-LR/

#File name:
#may be a list of names, eg. [file1, file2, file3] wildcar may be used
input_file: [Exp10_LP08.txt]

#seed used to generate an MTG, for a same seed we got the same MTG, if no seed is given a seed is generated randomly
#integer, list of integer or nothing
seed:

#file names with length laws relative path
#file format: "LR_length_mm" ; "relative_distance_to_tip"
#laws used to generate lateral roots of the 1st order (1_order_law), and lateral roots of order above 1 (2_order_law)
length_file:
- data/length_LR_order1_Exp33_20-10-09.csv
- data/length_LR_order1_Exp33_20-10-09.csv

#length of the primary root
#float or list of float
#unit: m
primary_length: 0.3

#branching delay
#float or list of float
#unit: m
branching_delay: 1.07e-3

#branching variability
#float between [0 ; 1], 0.25 means 25%
branching_variability: 0.25

#maximum roots order
order_max: 1

#vertices length
#unit: m
segment_length: 1.0e-3

#part of roots without any lateral root, distance from tip
#float or list of float
#unit: m
nude_length: 0.021

#reference radius of the primary root
#float
#unit: m
ref_radius: 0.54e-3

#radius decrease factor applied when increasing order
#float
#radius lateral order n: r = order_decrease_factor^n * ref_radius
order_decrease_factor: 0.25

hydro:
#radial conductivity
#float
#unit: microL/(s.MPa.m2)
k0: 225

#axial_conductance_data
# - [x1, ......, xn]
# - [K1, ....., Kn]
#list of float
#unit: microL.m/(s.Mpa)
axial_conductance_data:
- [0, 0.0335, 0.0579, 0.0713, 0.0854, 0.13]
# - [2.0e-2, 2.0e-2, 2.0e-2, 2.0e-2, 2.0e-2, 0.2]
# - [ 0.00125315, 0.00100948, 0.0161021 , 0.0155661 , 0.02511466,
# 0.03140052 ]
- [7.393e-04, 5.955e-04, 1.597e-02, 1.578e-02, 2.607e-02, 3.284e-02]


solute:
#J_s: active pumping rate
#float
#unit: mol/(m2.s)
J_s: 2.0e-4

#P_s: permeability coefficient
#float
#unit: m/s
P_s: 4.9e-6

#Cse: concentration of permeating solutes
#float
#unit: mol/m3 or mM
Cse: 13.96 #13.96 -> pi CTR = -0.034 MPa

#Ce: concentration of non-permeating solutes
#float
#unit: mol/m3 or mM
Ce: 0.

#sigma: reflexion coefficient
#float
#dimensionless
Sigma: 0.85 #

experimental:
#water flux at the root base
#float
#unit: microL/s
Jv: 0.0

#hydric potential outside the roots (pressure chamber)
#float
#unit: MPa
psi_e: 0.201325

#hydric potential at the root base (e.g. atmospheric pressure for decapitated plant)
#float
#unit: MPa
psi_base: .101325

output:
#distance from the base for intercepts calculation
# float or list of float
#unit: m
intercepts: []

#factor to explore a k0 range
# float or list of float
radfold: 1.0

#like radfold but apply to axial_conductance_data
axfold: 1.0

#number of run with the same set of parameters i.e. number of different seeds
#integer
#enable only if read_architecture is false
run_nb: 1


File renamed without changes.
File renamed without changes.
File renamed without changes.
Loading