5D Library › 铁皮石斛的生态栽培、逆境多糖合成与鲜汁流变学 · English

第八章 实践与预注册试验

第一部分 种植者每周四步核查

前七章可以归结为四个数字。种植者每周用一台普通的温湿度记录仪、一台电导率仪和每月一次的实验室检测就能记录下来。

  1. VPD 与湿润小时数。 统计 VPD 低于 0.2 kPa 的小时数(多在夜间),即叶片有变湿风险的小时数。(第一章)
  2. 排出液 EC。 每周两次测量种植床排出液的电导率。EC 上升意味着盐分在积累,增加了渗透胁迫。(第三章)
  3. 昼夜温差。 记录白天和夜间的平均温度及其差值。(第二章)
  4. 多糖。 每月送一份茎样,按药典的苯酚–硫酸法测定总多糖。(第二章)

推导

把核查用于一周的逐时记录。记录是模拟的,第 5 天有一个静止潮湿的夜晚。目标值是作者提出的初始值,各地应根据自己的记录调整。

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)  OK

这次核查标出了这一周:湿润风险共 44 小时,其中 11 小时在第 5 天那个静止的夜晚,其余分散在潮湿但并不静止的夜晚。在这个模拟温室中,大多数夜晚都接近阈值。应对的办法是夜间让空气流动、开窗或拉上保温幕,而不是喷药。其他数字都在范围内。一个生长季下来,这四列数字就构成一份把做法与结果联系起来的记录;几个温室的记录合在一起,可以检验第一章和第二章的假说。

注

这些目标都不是标准,也都不能保证作物无病或达到某个多糖含量。它们是记录所做之事的方法,以便找出什么有效。

第二部分 预注册试验

问题

在健康成年人中,与温度和黏度相匹配的安慰剂相比,睡前饮用温热的铁皮石斛鲜条煎煮液能否增加慢波睡眠?它是否像第五章的热学途径所要求的那样,使手脚相对躯干升温?

设计

要素 规定
受试者 25–60 岁健康成年人,无已诊断的睡眠障碍,不上夜班,不经常服用助眠药物;未怀孕、未哺乳;经问卷和一个适应夜筛选
设计 双盲、随机、两阶段交叉;一个适应夜,然后两个研究夜,间隔至少 7 天,顺序随机
试验饮品 12 克鲜条榨汁后加热到 95 °C 保持 10 分钟,制成 200 毫升煎煮液,45 °C 时于熄灯前 30 分钟饮用
安慰剂 200 毫升水,用食品级黄原胶增稠到 50 s⁻¹ 下表观黏度相同,45 °C;以相同方法掩蔽风味和颜色,用不透明杯盛装
主要结局 多导睡眠图测得的慢波睡眠(N3)分钟数
次要结局 上床后第一小时的远端–近端皮肤温差(DPG),用贴在手、脚和躯干上的皮肤温度纽扣记录器(iButton)测量;熄灯时和醒来时的耳温(探索性);入睡潜伏期;入睡后觉醒时间;自评睡眠质量;盲法检验
分析 含阶段和顺序的混合模型;主要结局以双侧 α = 0.05 检验;次要结局报告置信区间,不作为确证性检验

测量方法的选择

表中有三处改进了最初的设想。热学指标采用远端–近端皮肤温差,克劳希等人发现它能预测入睡快慢(第五章);用贴在皮肤上的小型纽扣记录器测量,这种方法已与常规皮肤测温进行过比对验证 (Marken Lichtenbelt et al. 2006)。核心体温只作为探索性次要指标。第五章的模型预测一杯饮品对它影响很小;准确的直肠测温对一个预计为零结果的指标来说负担太重;吞服的体温胶囊若在胃里,会测到热饮本身,所以胶囊必须提前许多小时吞服,即使如此仍会受饮水干扰 (Byrne and Lim 2007)。因此改测耳温,并在报告中说明其准确度较低。慢波睡眠用多导睡眠图测量,而不用消费级指环:指环根据活动、心率和皮肤温度估计睡眠分期,与多导睡眠图在各分期上的一致性只是中等 (Altini and Kinnunen 2021)。指环数据可以作为次要指标收集。

样本量

推导

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 %

方案计划 36 人完成。如果个体内差值的标准差为 20 分钟,这一人数检出 10 分钟增益的把握度约为 83%;要达到 90% 需要 44 人。考虑到适应夜后的脱落,招募 44 人。标准差是假设,将在 10 人的预试验中核对;如果预试验显示标准差达到 25 分钟或以上,正式试验开始前重新计算样本量。

判定规则

推导

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.

示例结果是编造的,用来事先说明结果将怎样报告。如果 N3 增加而远端–近端皮肤温差没有变化,这一结果将不支持第五章的热学途径,而支持其他解释,例如放松、作息或盲法不完善;报告会如实说明。

这项试验不能说明什么

试验在健康成年人中、按单个夜晚,比较一种制备方法和一种安慰剂。它不检验失眠患者、连续数周饮用、其他剂量或其他制备方法;阳性结果也不能证明煎煮液可以治疗任何睡眠障碍。盲法很难做好,因为煎煮液有安慰剂只能近似的味道;盲法检验会显示它做得如何,无论结果如何都会报告。

伦理与利益冲突

试验须经独立伦理委员会批准,取得书面知情同意,并在第一位受试者入组之前登记方案和分析计划 (Chan et al. 2013; Nosek et al. 2018)。受试者按时间获得报酬,可随时退出。

利益披露

作者经营 dendrobiumofficinale.com,从事铁皮石斛的采购与供应,并用本书与种植园区洽谈栽培与标准合作,因此与有利的结果有利益关系。为限制这种利益的影响:方案、分析代码和判定规则在入组前公开;鲜条从研究团队选定的来源购买,使用前测定多糖;试验由独立于作者企业的研究人员实施和分析;无论结果如何,结果、数据和代码都将公开。

参考文献

Altini, Marco, and Hannu Kinnunen. 2021. “The Promise of Sleep: A Multi-Sensor Approach for Accurate Sleep Stage Detection Using the Oura Ring.” Sensors 21 (13): 4302.
Byrne, Christopher, and Chin Leong Lim. 2007. “The Ingestible Telemetric Body Core Temperature Sensor: A Review of Validity and Exercise Applications.” British Journal of Sports Medicine 41 (3): 126–33.
Chan, An-Wen, Jennifer M. Tetzlaff, Douglas G. Altman, et al. 2013. “SPIRIT 2013 Statement: Defining Standard Protocol Items for Clinical Trials.” Annals of Internal Medicine 158 (3): 200–207.
Marken Lichtenbelt, Wouter D. van, Hein A. M. Daanen, Loek Wouters, et al. 2006. “Evaluation of Wireless Determination of Skin Temperature Using iButtons.” Physiology & Behavior 88 (4–5): 489–97.
Nosek, Brian A., Charles R. Ebersole, Alexander C. DeHaven, and David T. Mellor. 2018. “The Preregistration Revolution.” Proceedings of the National Academy of Sciences 115 (11): 2600–2606.

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).