本节摘要:同一个基因型,在不同的环境里能发育出不同的形态——这叫表型可塑性。发育不是免疫环境的"剧本重演",而是在读外部条件后选定版式。本节先讲可塑性的门类(反应规范、多态发育),再用一个阈值模型演"同一基因型如何在不同温度/营养下切开两种形态",并讨论可塑性如何反过来喂给演化。
阅读完本节,你应当能够:
前面那么多章都默认"已经定好的蓝图从头演到底",但发育随时在偷听环境:可用的营养、外界的温度、是否有同类/天敌,都会进入信号计算。表型可塑性就是"同一基因组产出不同表型"的统称。它分两类程度:
多态发育的厉害之处在于:开关一扳,连身体结构都可能整套换装。这直接印证了本章的观点——发育是可被环境重编程的,不只是机械执行基因。
可塑性不是"基因被环境直接改写",而是环境在某个敏感窗口改写了激素/信号的水平,进而重定向本来 OK 的程序。经典例子是温度决定性别的爬行动物:真鳄类与海龟的性别由孵化温度决定——温度经性腺相关通路把未分化的性腺导向卵巢或精巢。另一个例子是果蝇幼虫在营养充足时,蜕皮峰值更高,最终成虫体型与存活策略随之改变。环境→激素/信号→命运开关→形态,这是可塑性通用的管道。
多态发育常让人困惑:明明环境是连续变量(温度一度度升),形态却常常是"二选一"的离散结果。关键在阈值模型:环境通过某个累积"发育信号的强度",当强度超过体内一条阈值线,命运就翻转。下面用数值把"连续输入 → 阶梯式输出"演出来:
# 阈值反应:连续的环境信号S → 离散形态(低=形态L,高=形态H) def phenotype(S, threshold=0.55, steep=8.0): import numpy as np # 用Sigmoid把连续输入压缩成0~1,再按阈值判档 p = 1.0 / (1.0 + np.exp(-steep * (S - threshold))) return "形态H" if p >= 0.5 else "形态L", float(p) # 播撒一串连续的温度(环境)值,看形态如何被切成两档 for t in [0.30, 0.42, 0.50, 0.56, 0.62, 0.75, 0.88]: name, p = phenotype(t) print(f"环境S={t:.2f} → 判档概率H={p:.2f} → {name}")
跑看会发现:尽管 S 一个点一个点连续往上拱,形态却在 0.55 附近"啪"地从形态L跳成形态H——中间没有中间态。这就是阈值/开关机制(和 6.5 的 Hill 陡化同一数学血脉)。它解释了为什么很多环境诱导变异是"铁两档"而非渐变:发育把连续外界信号,读成了可判定的离散选择。
可塑性能朝演化"升级"吗?一个主流设想是遗传同化 / 先可塑后固定:适应性表型先靠可塑性由环境诱导出来,若这个方向被反复选中,相关的调控变异逐渐固化,最终在环境消失后仍稳定出现。这样,可塑性扮演了"先探路、后写死"的中间站,让演化更快试出新形态。例子:许多昆虫的具尾型蝴蝶在资源充裕时直接长成具尾型,甚至环境不再提示也会出现——被视为"探路功能被固化"的候选。可塑性让生物不必等突变就能先"用一用"新形态,这也是 Evo-Devo 最迷人的一环。
⚠️ 常见坑:把可塑性当"拉马克式的硬遗传"(直得把获得的性状直接传给后代)。可塑性是发育的响应,不是遗传的直接改写;它靠的是调控窗口,且是否特化为遗传,取决于选择与突变累积,而不是"用进废退"的简单写进基因。
可塑性是把第 5 章"环境因素对发育的影响"、第 3 章"信号转导"与第 6 章"敏感窗"串起来的枢纽:环境信息经信号转成信号、在敏感窗里切出形态、再用可塑性为演化提供素材。读完它,你应该把"发育"从"纯程序执行"升级成"程序 + 环境读卡"的双输入系统。