核心功能

FunCross 是芳景生物自研的果蝇杂交方案生成器。只需输入亲本品系基因型或编号,即可自动推演 P0–F3 各代杂交组合,输出可视化杂交图与可执行实验步骤。无论您是要平衡维持 founder 品系、合并两个元件到同一条染色体,还是做染色体背景纯化,FunCross 都能在 1 分钟内给出方案。

FunCross 围绕「任务参数 + 基因型输入 + 杂交图渲染 + Protocol 输出」四大模块,覆盖 5 类常见果蝇杂交场景。

5 大任务类型

  • 建系 (stock):单品系 founder → 平衡维持或纯合稳定系。
  • 重组 (recombine):将两个元件重组到同一条染色体。
  • 多基因组装 (assemble):合并两条染色体上的不同元件(X+2 / X+3 / 2+3)。
  • 染色体替换 (replace):整条染色体等基因化 / 背景纯化(用平衡子跟踪)。
  • 位点导入 (introgression):仅导入目标位点,靠雌性自由交换削掉侧翼连锁供体片段。

4 大 UI 区域

  • 任务参数面板(左栏顶部):选择任务类型 / 染色体 / 回交代数 / 致死假设。
  • 基因型输入卡(左栏中部):3 种来源(BDSC / FlyBase / VDRC)+ 个体/品系模式 + 实时预览与置信度。
  • 杂交图画布(中栏):自动布局 P0–F3 各代节点 + 缩放 / 平移 + 节点 tooltip。
  • 方案概览 + Protocol(右栏):预计世代、预计周期、警告框、分步步骤、一键复制 Protocol、保存 PDF。

提示:不确定怎么开始?点击参数面板里的「载入任务示例」按钮,自动按当前任务填好示意基因型,点「生成杂交方案」即可看效果。

使用步骤

9 步完成一份杂交方案。每步聚焦一个动作,建议从第 1 步顺序往下走。

1 选择任务类型

在左栏顶部「任务」下拉里挑一个:

  • 单品系维护或纯合 → 建系 (stock)
  • 两元件放同一染色体 → 重组 (recombine)
  • 两染色体元件合并 → 多基因组装 (assemble)
  • 背景纯化 / 染色体替换 → 染色体替换 (replace)
  • 只导入目标位点 → 位点导入 (introgression)

提示:不确定?点「载入任务示例」自动按当前任务填好示意基因型。

2 选择染色体 / 组装类型 / 回交代数

任务确定后,下方联动控件会切换:

  • 单染色体任务:选「染色体」1 (X) / 2 / 3
  • assemble 任务:选「组装类型」X+2 / X+3 / 2+3
  • replace / introgression 任务:还要选「回交代数」(默认 5,最高 10)
  • X 染色体 + 建系任务:多一个「致死假设」下拉(纯合可育 / 雌性致死 / 雄性致死 / 雌雄致死)

3 输入品系 1 基因型

每张「基因型输入卡」支持 3 种输入方式:

  • 方式 A — 品系编号:选 BDSC / FlyBase / VDRC 来源,输入 6FBst0000006v10004,按 Enter 或点「解析」自动载入完整基因型。
  • 方式 B — 直接写基因型字符串:在「基因型字符串」框粘贴 FlyBase compact 串,例如 w[1118]; Tg1/CyO; +/+,实时显示预览与置信度。
  • 方式 C — 逐条染色体手填:在 X / 2 / 3 各两行 homolog A / homolog B 手填元件符号。

提示:「个体模式」可指定性别(♀ / ♂ / 未指定),雄性 X 第二同源自动锁 Y。「品系模式」会自动推导 ♀/♂ 形态并标红致死 / 不育错误。

4 输入品系 2 基因型(双品系任务)

重组 / 组装任务需要填两张卡。品系 1 作母本,品系 2 作父本。

  • 双品系任务在参数面板选完后,页面会自动展开「品系 2」输入卡。
  • 若只需要单亲本(如建系 / replace 任务的母本侧),「品系 2」保持空白即可。

5 设置致死 / 不育

recombine / assemble / replace / introgression 任务会在模式行露出「致死 / 不育」下拉,按元件所在染色体自动切换 4 态(X)或 2 态(常染色体)。

提示:致死 / 不育走任务参数,不走基因型注释。引擎按 params.viabilityA / viabilityB 决定 F1–F3 的存活分支。

6 生成杂交方案

点左栏底部「生成杂交方案」按钮:

  • 按钮颜色由灰转橙(is-dirty)表示参数变更。
  • 中栏立即渲染分代杂交图(节点 + × 连线 + tooltip)。
  • 右栏出现预计世代数、预计周期、警告框(如有)和分步 Protocol。

7 检查警告与调整

右栏警告框里有红线提示时(例如「回交对象必须是受体背景平衡系」「平衡子断点覆盖不足」),优先采纳。

  • 拖动画布平移、用 − / ⤾ / + 缩放看清结构。
  • 修改任何输入后按钮变橙,再次点「生成杂交方案」刷新。

8 复制 Protocol

点右栏「复制 Protocol」按钮:

  • 分步操作被复制成纯文本(步骤1: …)到剪贴板。
  • 粘贴到实验记录本(电子或纸质)即可执行。

9 导出 / 切换语言 / 清空重来

  • 保存 PDF:点右栏「保存 PDF」调用浏览器打印对话框,选「另存为 PDF」(@media print 已隐藏按钮与滚动条)。
  • 切换语言:顶部「中 / EN」切换 i18n;nav 文案切换,已有 canvas 不被覆盖。
  • 清空重来:「清除品系 1 / 清除品系 2 / 全部清除」一键清空,但保留模式、性别、来源与致死下拉。

维持系形态自动识别(X / 2 / 3 号染色体)Maintenance-stock auto-detection (X / chr2 / chr3)

FlyCross Designer 内置形态启发式(INF-A 规则),能在你输入基因型后立即识别「挂在致死平衡子上的元件」形态,把「致死 / 不育」下拉自动调到正确档位,并在警告框里说明依据。FlyCross Designer ships with a shape-based heuristic (INF-A) that immediately recognises "insert over a lethal balancer" shapes when you finish entering a genotype. The "Viability / Sterility" dropdown is auto-set to the right value, and the warn-box carries the rationale.

触发条件Trigger

当一条染色体的两条同源上有跨同源(trans)配对——一边是非野生型元件,另一边是该染色体的致死平衡子——形态识别即触发。The heuristic fires when a chromosome's two homologs carry a trans (across-homolog) pair: one homolog carries a non-wild-type allele, the other carries that chromosome's lethal balancer.

染色体Chromosome
平衡子集合Balancer set
典型形态示例Typical shape
命中后状态Resulting state
X
FM7a / FM7c (FM7 系列)(FM7 series)
Tg1/FM7aP{GAL4}/FM7c
「雌雄致死或不育」"Both-sex lethal / sterile" (bothLethal)
2 号chr2
CyO / TM3 / TM6B / TM2 / Sp / Sco
Tg1/CyOw[*]/CyOUAS-GFP/Sp
「纯合致死或不育」"Homozygous lethal / sterile" (lethal)
3 号chr3
TM3 / TM6B / TM2
Tg1/TM6BGAL4/TM2
「纯合致死或不育」"Homozygous lethal / sterile" (lethal)

X 与常染色体的差别Why X differs from autosomes

  • 常染色体:平衡子(如 CyO)自身纯合致死,所以「挂 CyO」就等于「建不了纯合系」——维持系形态是直接证据。Autosome: balancers such as CyO are homozygous-lethal on their own, so "carrying CyO" already means "you can't make a homozygous line" — the maintenance shape is direct evidence.
  • X 染色体FM7a / FM7c 自身纯合雌可活可育,致死性来自被平衡的那条 X。所以识别依据反过来:「能纯合就不必挂平衡子,挂了就是信号」——元件挂在 FM7 上本身就说明被平衡的 X 有问题。X chromosome: FM7a / FM7c are homozygous-viable-and-fertile in females; the lethality comes from the X they balance. The detection rule inverts: "if it can be homozygous, there's no need for a balancer — so carrying one is the signal" — anything placed over FM7 indicates that the balanced X is the problem.
  • 因此 X 命中后状态取最保守的 bothLethal(无法仅从形态区分雌致死 / 雄致死)。That's why the X result is the most conservative bothLethal — shape alone can't distinguish female- vs male-lethal.

UI 表现UI behaviour

  • 自动覆盖:识别命中后,左栏「致死 / 不育」下拉自动跳到对应档位,旁边显示 🔒 已自动覆盖 提示。Auto-override: on hit, the "Viability / Sterility" dropdown on the left panel jumps to the right value with a 🔒 auto-overridden pill.
  • 警告文案:警告框中给出 [INF-A] 标签与具体说明,例如:Warn-box text: a [INF-A] tag and a concrete explanation, e.g.
    • 常染色体:Autosome: 2 号染色体上检测到同源 Tg1/CyO(lethal 平衡子形态),保守把终点改为 CyO 平衡维持系。 / chr2 detected trans-pair Tg1/CyO (lethal-balancer shape); endpoint forced to a CyO-balanced maintenance line.
    • X:X: X 染色体上检测到同源 Tg1/FM7a(FM7 平衡维持形态),保守把终点改为 FM7a 平衡维持系,并按雌雄均受影响处理。 / X detected trans-pair Tg1/FM7a (FM7 maintenance shape); endpoint forced to an FM7a-balanced line and treated as both-sex affected.
  • 用户覆盖权:手动把下拉改回「雌雄可育」会被识别为「用户已确认」,此时 INF-A 事件仍 emit 但不再覆盖参数——避免启发式与你的实测经验冲突。User override: setting the dropdown back to "viable" is recorded as "user-confirmed"; the INF-A event still fires but no longer overwrites params — your empirical judgement wins.

不触发的几种情况When the heuristic does NOT fire

  • cis 配对(同一同源上同时带元件与平衡子),例如 y[1] w[1118] FM7a/Y(雄性单条 X 上 cis 携带 y[1], w[1118], FM7a):FM7a 雄性半合子天然可活,判维持系。cis pairing (both insert and balancer on the same homolog), e.g. y[1] w[1118] FM7a/Y — a male carrying y[1], w[1118] and FM7a cis on a single X. FM7a hemizygous males are viable, so this is not a maintenance shape.
  • 纯合形态,例如 Tg1/Tg1:不是「挂在平衡子上」的形态,触发。Homozygous shape, e.g. Tg1/Tg1 — not "over a balancer", so no trigger.
  • 雄性半合子,例如 Tg1/Y:另一同源是野生型且无平衡子,触发。Male hemizygous, e.g. Tg1/Y — the other homolog is wild-type and carries no balancer, so no trigger.
  • 用户手敲未走解析(个体模式下无 BDSC/FlyBase/VDRC/example 来源标记):闸门关闭,跳过启发式——避免覆盖你正在手敲的中间态。User-typed without resolution (individual mode, no BDSC / FlyBase / VDRC / example source tag): the gate stays closed, heuristic is skipped — so it doesn't clobber an in-progress typing state.

关闭方式:How to disable: 形态识别是默认开启的。如需关闭,在「载入任务示例」后手动选回「雌雄可育」即可;闸门以槽位(A / B)独立记录你的覆盖决定,不会被其他输入改动冲掉。The heuristic is on by default. To turn it off for a slot, set that slot's dropdown back to "viable" after loading — the gate remembers your override per slot (A / B) and isn't reset by other input edits.

常见问题FAQ

按使用流程分组,覆盖输入、引擎、画布、回交四大常见踩坑点。Grouped by workflow stage: input, engine, canvas, backcross — the four most common stumbling points.

大小写规范与自动补全Case sensitivity & autocomplete

FlyCross 默认按 FlyBase / BDSC 规范大小写解析基因型(TM6BCyOGAL4)。小写或混写也能识别——解析层会自动归一化,无需用户死记硬背。FlyCross parses genotypes using FlyBase / BDSC canonical case (TM6B, CyO, GAL4). Lowercase or mixed-case also works — the parser layer normalises automatically; you don't have to memorise case.

  • 实时提示:输入 tm6bcyogal4 时,下方会弹出候选(如 TM6BCyOGAL4),按 / 选中、Enter/Tab 确认。直接忽略候选也无所谓,解析层会兜底。Live suggestions: when you type tm6b, cyo, gal4, a dropdown shows canonical candidates (e.g. TM6B, CyO, GAL4). Use / to navigate, Enter/Tab to confirm. You can ignore the dropdown entirely — the parser still resolves it.
  • 不会被改写的 token:方括号内(w[1118]y[1])、P{…} / Mi{…} / PBac{…} 构造、用户自定义的 construct 名(如 UAS-GFPAct5C-GAL4)保持原样。这些是 FlyBase / BDSC 的大小写敏感场景。Tokens we never rewrite: square-bracket contents (w[1118], y[1]), P{…} / Mi{…} / PBac{…} constructs, and user-defined construct names (e.g. UAS-GFP, Act5C-GAL4). These are FlyBase / BDSC case-sensitive by convention.
  • 特殊情况Special cases:
    • TM6 是真实存在的独立平衡子,不会被自动映射为 TM6BTM6 is a real, separate balancer — it is never auto-mapped to TM6B.
    • gal4 / Gal4 视为 GAL4(BDSC 默认规范写法大写)。gal4 / Gal4 are treated as GAL4 (BDSC's canonical spelling is uppercase).
    • FM7 / FM7b 由用户填规范名(研究习惯问题,不自动补)。FM7 / FM7b are filled in by the user (research-habit nuance; not auto-completed).

字典维护详见 docs/allele-dictionary-maintenance.md(新增 / 修订 allele 的 SOP)。For dictionary maintenance see docs/allele-dictionary-maintenance.md (SOP for adding / revising alleles).

Q1 输入裸编号「6」是哪个库的品系?

默认走 BDSC。前缀 vVDRC_ 走 VDRC;FBst…FlyBase_ 走 FlyBase。例如 v10004 自动识别为 VDRC v10004。

Q2 在「品系编号」输入框按 Enter 会发生什么?

等价于点「解析」按钮,立即调 /api/stock-lookup 拉取完整基因型并写回。

Q3 雄性 X 的第二同源会自动锁 Y 吗?

是。选个体模式 + 雄性时,X 第二同源框变灰自动写 Y;切回雌性自动重置 +,避免假基因型。

Q4 同染色体的两个元件怎么办?

assemble 任务会自动拒绝并提示 sameChromosomeWarning,请切到「重组 (recombine)」任务先合并到同一条染色体。

Q5 雄性致死或不育的 X 重组能设计吗?

能。引擎会自动切到「母本 = 致死品系」+「FM7a 保护」路径,Protocol 提示「重组染色体在 FM7a 保护下不再发生交换」。

Q6 杂交图上看不到致死个体是 bug 吗?

不是。画布只画活下来的个体(engine/PLAN_PROTOCOL.md 规则 Q7)。致死类按设计意图不出现在图上。

Q7 节点上显示的是完整基因型吗?

不是。节点显示简化名(剥 P{…} 行号),例如 P{w[+mC]=Act5C-GAL4}25F01 在 canvas 上显示为 Act5C-GAL4。悬停节点 tooltip 显示 full 全基因型 + 表型提示。

Q8 画布能缩放吗?

可以。右上角 − / ⤾ / + 三个按钮,缩放范围 0.4× ~ 2×。按住背景左键可拖动平移。

Q9 保存 PDF 是导出图片吗?

当前实现是触发浏览器打印对话框(window.print()@media print 隐藏按钮与滚动条),选「另存为 PDF」即可。后续会换 html2pdf / jsPDF + html2canvas。

Q10 染色体替换的回交对象有什么要求?

必须用「受体背景平衡系」(如 Sp/CyOTM2/TM6B 品系雌性),不是普通 w[1118] 受体。警告框会自动提示。

Q11 位点导入任务为什么禁用平衡子?

平衡子会抑制交换,让侧翼供体片段无法削掉。平衡子只在终点(如纯合致死时)才引入。

Q12 回交 N 代后受体背景占比怎么算?

公式 (2^i − 1) / 2^i(i = 回交代数)。回交 5 代 → 受体背景 ≥ 31/32(≈ 96.9%);回交 10 代 → ≥ 1023/1024(≈ 99.9%)。画布会显示「回交 N 代后受体背景 ≥xx/xx」。

Q13 输入「Tg1/FM7a」后致死 / 不育被自动改成「雌雄致死或不育」,是 bug 吗?I typed "Tg1/FM7a" and the Viability dropdown was auto-set to "both-sex lethal / sterile" — is this a bug?

不是。这是「维持系形态自动识别」(INF-A 规则)命中:X 上 FM7a 是平衡维持形态——元件挂在 FM7a 上就说明被平衡的 X 携带致死 / 不育突变,引擎保守按最严的 bothLethal 处理。如已实测雌雄可育,可在「致死 / 不育」下拉手动改回「雌雄可育」,该选择会被记为「用户已确认」并保留。No. The "maintenance-stock auto-detection" (INF-A) just fired: FM7a on X is a balancer-maintenance shape — anything over FM7a indicates the balanced X carries a lethal / sterile allele, and the engine conservatively forces bothLethal. If you've empirically validated viability, set the dropdown back to "viable" — that gets recorded as "user-confirmed" and sticks.

Q14 输入「y[1] w[1118] FM7a/Y」为什么没被识别成维持系?Why doesn't "y[1] w[1118] FM7a/Y" trigger the heuristic?

因为这是 cis 配对——y[1]w[1118]FM7a 都在同一条 X 上(另一同源是 Y),不是「元件挂在平衡子另一侧」的维持形态。FM7a 雄性半合子天然可活,不该被判维持系;启发式按 trans 配对识别,主动跳过这种情形避免假阳性。Because it's a cis pairing — y[1], w[1118], and FM7a all sit on the same X (the other homolog is Y), which is not the "insert over balancer" maintenance shape. FM7a is hemizygous-viable in males, so it must not be flagged. The heuristic deliberately requires a trans pair, sidestepping this false-positive case.

电话咨询
0513-83281995
微信客服二维码
添加微信客服