5D Library › Ecological Cultivation, Stress-Induced Polysaccharide Synthesis and Fresh-Extract Rheology of Dendrobium officinale · 中文
Chapter 8 Practice and a Pre-registered Trial
Part 1 A four-step weekly check for growers
The first seven chapters turn into four numbers that a grower can record each week from an ordinary climate logger, a conductivity meter and a monthly laboratory assay.
- VPD and wet hours. Count the hours, mostly at night, in which the VPD falls below 0.2 kPa: the hours in which leaves are at risk of wetting. (Chapter 1.)
- Drainage EC. Measure the conductivity of the water that drains from the beds twice a week. A rising EC means salts are building up and adding osmotic stress. (Chapter 3.)
- Day–night difference. Record the mean day and night temperatures and their difference. (Chapter 2.)
- Polysaccharide. Send a sample of stems each month for total polysaccharide by the phenol–sulfuric acid method, as in the pharmacopoeia. (Chapter 2.)
Calculation
The check applied to one week of hourly records. The records are simulated, with one still, humid night on day 5. The targets are starting values proposed by the author, to be adjusted to each site with its own records.
import math, random
def es(t):
return 0.6108 * math.exp(17.27 * t / (t + 237.3))
# One week of hourly greenhouse records (simulated here; a grower's logger exports the same columns).
random.seed(3)
log = []
for hour in range(7 * 24):
h = hour % 24
day = 6 <= h < 18
t = (26 if day else 15) + random.gauss(0, 1.0)
rh = (68 if day else 88) + random.gauss(0, 5) + (8 if hour // 24 == 4 and not day else 0) # a still night
log.append((h, t, min(rh, 100.0)))
ec_readings = [0.42, 0.55, 0.61, 0.48] # drainage EC, dS/m, measured twice a week
poly_assay = 31.5 # % polysaccharide in the monthly sample (phenol–sulfuric)
vpd = [es(t) * (1 - rh / 100) for _, t, rh in log]
wet_risk_h = sum(1 for v in vpd if v < 0.2)
days_t = [t for h, t, _ in log if 6 <= h < 18]
nights_t = [t for h, t, _ in log if not 6 <= h < 18]
dif = sum(days_t) / len(days_t) - sum(nights_t) / len(nights_t)
checks = [("1 VPD: hours below 0.2 kPa (leaf-wetness risk)", wet_risk_h, wet_risk_h <= 10, "≤ 10 h/week"),
("2 drainage EC, highest reading, dS/m", max(ec_readings), max(ec_readings) <= 1.0, "≤ 1.0"),
("3 day–night difference, K", round(dif, 1), dif >= 8, "≥ 8 K"),
("4 polysaccharide, % of dry stem", poly_assay, poly_assay >= 25, "≥ 25 % (ChP)")]
for name, value, ok, target in checks:
print(f"{name:48s} {value:>6} target {target:13s} {'OK' if ok else 'ACT'}")
# 1 VPD: hours below 0.2 kPa (leaf-wetness risk) 44 target ≤ 10 h/week ACT
# 2 drainage EC, highest reading, dS/m 0.61 target ≤ 1.0 OK
# 3 day–night difference, K 11.0 target ≥ 8 K OK
# 4 polysaccharide, % of dry stem 31.5 target ≥ 25 % (ChP) OKThe check flagged the week: 44 hours of wetting risk, 11 of them in the still night of day 5 and the rest scattered over nights that were humid but not still. Most nights in this simulated house sit close to the threshold. The response is to move the air at night, open a vent or draw a thermal screen, not to spray. The other numbers are in range. Over a season the four columns build a record that links practice to results in each greenhouse, and the records of several greenhouses together could test the hypotheses of Chapters 1 and 2.
Note
None of these targets is a standard, and none guarantees a disease-free crop or a given polysaccharide content. They are a way of measuring what is done, so that what works can be found out.
Part 2 A pre-registered trial
The question
In healthy adults, does a warm decoction of fresh D. officinale stem taken before bed increase slow-wave sleep, compared with a placebo matched for temperature and viscosity? And does it warm the hands and feet relative to the trunk, as the thermal route of Chapter 5 would require?
Design
| Element | Specification |
|---|---|
| Participants | Healthy adults aged 25–60 with no diagnosed sleep disorder, no shift work and no regular sleep medication; not pregnant or breastfeeding; screened by questionnaire and an adaptation night |
| Design | Double-blind, randomised, two-period crossover; one adaptation night, then two study nights at least 7 days apart, in random order |
| Active drink | 200 mL decoction of 12 g fresh stem, pressed and heated to 95 °C for 10 minutes, served at 45 °C, 30 minutes before lights-out |
| Placebo | 200 mL of water thickened with food-grade xanthan gum to the same apparent viscosity at 50 s⁻¹, at 45 °C; flavour and colour masked identically in an opaque cup |
| Primary outcome | Minutes of slow-wave sleep (N3) by polysomnography |
| Secondary outcomes | Distal–proximal skin temperature gradient (DPG) over the first hour in bed, from skin-temperature button loggers (iButton) on hands, feet and trunk; tympanic temperature at lights-out and on waking (exploratory); sleep-onset latency; wake after sleep onset; self-rated sleep quality; blinding check |
| Analysis | Mixed model with period and sequence; the primary outcome tested at two-sided α = 0.05; secondary outcomes reported with confidence intervals, not as confirmatory tests |
Measurement choices
Three choices in the table refine the original proposal. The thermal measure is the distal–proximal gradient, which Kräuchi and colleagues found to predict sleep onset (Chapter 5); it is recorded with small button loggers taped to the skin, a method validated against conventional skin thermometry (Marken Lichtenbelt et al. 2006). Core temperature is only an exploratory secondary measure. Chapter 5’s model predicts that a drink changes it very little; a rectal probe, the accurate method, is a heavy burden for an outcome expected to be null; and a temperature pill in the stomach would read the warm drink itself, so pills must be swallowed many hours before and are still disturbed by fluid intake (Byrne and Lim 2007). Tympanic readings are taken instead, and their lower accuracy is stated in the report. Slow-wave sleep is measured by polysomnography, not by a consumer ring: rings estimate sleep stages from movement, heart rate and skin temperature, and their agreement with polysomnography for individual stages is moderate (Altini and Kinnunen 2021). Ring data can be collected as a secondary measure.
Sample size
Calculation
import math
from statistics import NormalDist
N = NormalDist()
def n_crossover(sd_diff, delta, alpha=0.05, power=0.90):
"""Two-period crossover: each person drinks both cups, in random order. One primary outcome,
two-sided alpha = 0.05."""
za, zb = N.inv_cdf(1 - alpha / 2), N.inv_cdf(power)
return math.ceil(((za + zb) * sd_diff / delta) ** 2 + za ** 2 / 2)
def power_at(n, sd_diff, delta, alpha=0.05):
za = N.inv_cdf(1 - alpha / 2)
return N.cdf(delta / sd_diff * math.sqrt(n - za ** 2 / 2) - za)
# Primary outcome: minutes of slow-wave sleep (N3) by polysomnography; smallest worthwhile gain 10 min.
for sd in (15, 20, 25):
print(f"SD of within-person difference {sd} min: {n_crossover(sd, 10, power=0.80)} people for 80 % power, "
f"{n_crossover(sd, 10)} for 90 %")
print(f"planned 36 completers, SD 20 min: power {100 * power_at(36, 20, 10):.0f} %")
# SD of within-person difference 15 min: 20 people for 80 % power, 26 for 90 %
# SD of within-person difference 20 min: 34 people for 80 % power, 44 for 90 %
# SD of within-person difference 25 min: 51 people for 80 % power, 68 for 90 %
# planned 36 completers, SD 20 min: power 83 %The protocol plans for 36 completers. If the within-person SD of the difference is 20 minutes, that gives about 83 % power to detect a 10-minute gain; 90 % power would need 44. It recruits 44 to allow for drop-out after the adaptation night. The SD is an assumption to be checked in a pilot of 10 people, and if the pilot shows it to be 25 minutes or more, the sample size will be recalculated before the main trial begins.
Decision rule
Calculation
SESOI = 10.0 # minutes of N3 sleep: the smallest gain worth acting on
def verdict(diff, lo, hi):
"""diff = decoction night minus placebo night in N3 minutes, with a 95 % confidence
interval. Fixed before any data are seen."""
if lo >= SESOI:
v = "gain of at least 10 minutes"
elif lo > 0:
v = "gain; size not shown to reach 10 minutes"
elif hi < 0:
v = "less N3 than placebo"
elif lo >= -SESOI and hi <= SESOI:
v = "no difference worth acting on"
else:
v = "unclear"
return f"N3 sleep {diff:+.1f} min ({lo:+.1f} to {hi:+.1f}): {v}"
# Invented results, to show how the trial will be reported.
print(verdict(4.0, -3.0, 11.0))
print(verdict(12.5, 10.5, 14.5))
print("Secondary outcomes (distal-proximal gradient, tympanic temperature, sleep latency) are")
print("reported with their intervals but cannot by themselves make the trial positive, and a")
print("positive result is not evidence that the decoction treats insomnia.")
# N3 sleep +4.0 min (-3.0 to +11.0): unclear
# N3 sleep +12.5 min (+10.5 to +14.5): gain of at least 10 minutes
# Secondary outcomes (distal-proximal gradient, tympanic temperature, sleep latency) are
# reported with their intervals but cannot by themselves make the trial positive, and a
# positive result is not evidence that the decoction treats insomnia.The example results are invented, to show in advance how results will be reported. If N3 rises but the distal–proximal gradient does not change, the result would argue against the thermal route of Chapter 5 and for some other explanation, such as relaxation, routine or an imperfect blind; the report will say so.
What this trial cannot show
The trial compares one preparation with one placebo in healthy adults over single nights. It does not test people with insomnia, regular use over weeks, other doses or other preparations, and a positive result would not show that the decoction treats any sleep disorder. Blinding is difficult, because the decoction has a taste that the placebo can only approximate; the blinding check will show how well it worked, and the result will be reported whatever it is.
Ethics and interests
The trial requires approval from an independent ethics committee, written informed consent and registration of the protocol, with the analysis plan, before the first participant is enrolled (Chan et al. 2013; Nosek et al. 2018). Participants are paid for their time and may withdraw at any point.
Disclosure
The author runs dendrobiumofficinale.com, which sources and supplies D. officinale, and uses this book in discussions with plantations about cultivation and standards partnerships, and so has an interest in a favourable result. To limit the influence of that interest: the protocol, analysis code and decision rule are published before enrolment; the stems are bought from a source chosen by the research team and analysed for polysaccharide before use; the trial is run and analysed by researchers independent of the author’s business; and the results, data and code will be published whatever they show.
References
Fan, Y. (2026). Ecological Cultivation, Stress-Induced Polysaccharide Synthesis and Fresh-Extract Rheology of Dendrobium officinale: CAM Photosynthesis, VPD Water Control, Growth-Differentiation Balance and Nocturnal Core-Body-Temperature Regulation [铁皮石斛的生态栽培、逆境多糖合成与鲜汁流变学] (Version 1.0.0). 5D Library. https://doi.org/10.5281/zenodo.23729740 · Licensed under Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0).