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






提示:不确定怎么开始?点击参数面板里的「载入任务示例」按钮,自动按当前任务填好示意基因型,点「生成杂交方案」即可看效果。
9 步完成一份杂交方案。每步聚焦一个动作,建议从第 1 步顺序往下走。
在左栏顶部「任务」下拉里挑一个:
提示:不确定?点「载入任务示例」自动按当前任务填好示意基因型。
任务确定后,下方联动控件会切换:
1 (X) / 2 / 3X+2 / X+3 / 2+3每张「基因型输入卡」支持 3 种输入方式:
6 或 FBst0000006 或 v10004,按 Enter 或点「解析」自动载入完整基因型。w[1118]; Tg1/CyO; +/+,实时显示预览与置信度。
6 + Enter 后完整基因型自动回填到预览区
[TODO image] Mode A — BDSC source tab selected + 6 typed + Enter triggers auto-resolve backfill into the preview

w[1118]; Tg1/CyO; +/+ + 下方实时显示预览与置信度
[TODO image] Mode B — paste w[1118]; Tg1/CyO; +/+ into the "Genotype string" box + live preview + confidence score below

提示:「个体模式」可指定性别(♀ / ♂ / 未指定),雄性 X 第二同源自动锁 Y。「品系模式」会自动推导 ♀/♂ 形态并标红致死 / 不育错误。
重组 / 组装任务需要填两张卡。品系 1 作母本,品系 2 作父本。
重组 / 多基因组装 / 染色体替换 / 位点导入任务会在模式行露出「致死 / 不育」下拉,按元件所在染色体自动切换 4 态(X)或 2 态(常染色体)。
提示:致死 / 不育走任务参数,不走基因型注释。引擎按 params.viabilityA / viabilityB 决定 F1–F3 的存活分支。


点左栏底部「生成杂交方案」按钮:
右栏警告框里有红线提示时(例如「回交对象必须是受体背景平衡系」「平衡子断点覆盖不足」),优先采纳。
− / ⤾ / + 缩放看清结构。点右栏「复制 Protocol」按钮:
步骤1: …)到剪贴板。@media print 已隐藏按钮与滚动条)。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.
当一条染色体的两条同源上有跨同源(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.
FM7a / FM7c (FM7 系列)(FM7 series)Tg1/FM7a、P{GAL4}/FM7cbothLethal)CyO / TM3 / TM6B / TM2 / Sp / ScoTg1/CyO、w[*]/CyO、UAS-GFP/Splethal)TM3 / TM6B / TM2Tg1/TM6B、GAL4/TM2lethal)
Tg1/FM7a(或 P{GAL4}/FM7c)后,致死 / 不育下拉自动跳到「雌雄致死或不育」并显示 🔒 已自动覆盖 pill。
X maintenance shape — X-chromosome input card with Tg1/FM7a (or P{GAL4}/FM7c): "Viability / Sterility" dropdown auto-jumps to "both-sex lethal / sterile" with 🔒 auto-overridden pill.

Tg1/CyO(或 w[*]/CyO / UAS-GFP/Sp)后,致死下拉自动跳到「纯合致死或不育」,警告框出现 [INF-A] 红色标签 + 具体说明。
chr2 maintenance shape — chr2 input card with Tg1/CyO (or w[*]/CyO / UAS-GFP/Sp): viability dropdown auto-jumps to "homozygous lethal / sterile", warn-box shows [INF-A] red tag + concrete explanation.

Tg1/TM6B(或 GAL4/TM2)后,致死下拉自动跳到「纯合致死或不育」,警告框出现 [INF-A] 标签。
chr3 maintenance shape — chr3 input card with Tg1/TM6B (or GAL4/TM2): viability dropdown auto-jumps to "homozygous lethal / sterile", warn-box shows [INF-A] tag.
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.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.bothLethal(无法仅从形态区分雌致死 / 雄致死)。That's why the X result is the most conservative bothLethal — shape alone can't distinguish female- vs male-lethal.[INF-A] 标签与具体说明,例如:Warn-box text: a [INF-A] tag and a concrete explanation, e.g.
2 号染色体上检测到同源 Tg1/CyO(lethal 平衡子形态),保守把终点改为 CyO 平衡维持系。 / chr2 detected trans-pair Tg1/CyO (lethal-balancer shape); endpoint forced to a CyO-balanced maintenance line.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.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.关闭方式: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.
按使用流程分组,覆盖输入、引擎、画布、回交四大常见踩坑点。Grouped by workflow stage: input, engine, canvas, backcross — the four most common stumbling points.
FlyCross 默认按 FlyBase / BDSC 规范大小写解析基因型(TM6B、CyO、GAL4)。小写或混写也能识别——解析层会自动归一化,无需用户死记硬背。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.
tm6b、cyo、gal4 时,下方会弹出候选(如 TM6B、CyO、GAL4),按 ↑/↓ 选中、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.
fm):弹出 FM 系列候选(FM7a / FM7c 等),按 ↑ ↓ 切换、Enter / Tab 确认。
Live suggestions (e.g. typing fm): candidate FM-series entries (FM7a, FM7c, etc.) pop up; ↑ ↓ to navigate, Enter / Tab to confirm.

cyo):候选 CyO 高亮,确认后规范化为 CyO。
Live suggestions (e.g. typing cyo): candidate CyO highlighted; on confirm, normalized to CyO.

tm6):弹出 TM6 / TM6B 等候选,选择实际使用的平衡子。
Live suggestions (e.g. typing tm6): TM6 / TM6B etc. pop up — pick the balancer you actually use.
w[1118]、y[1])、P{…} / Mi{…} / PBac{…} 构造、用户自定义的 construct 名(如 UAS-GFP、Act5C-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.TM6 是真实存在的独立平衡子,不会被自动映射为 TM6B。TM6 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).默认走 BDSC。前缀 v 或 VDRC_ 走 VDRC;FBst… 或 FlyBase_ 走 FlyBase。例如 v10004 自动识别为 VDRC v10004。
等价于点「解析」按钮,立即调 /api/stock-lookup 拉取完整基因型并写回。
是。选个体模式 + 雄性时,X 第二同源框变灰自动写 Y;切回雌性自动重置 +,避免假基因型。
多基因组装任务会自动拒绝并提示 sameChromosomeWarning,请切到「重组 (recombine)」任务先合并到同一条染色体。
能。引擎会自动切到「母本 = 致死品系」+「FM7a 保护」路径,Protocol 提示「重组染色体在 FM7a 保护下不再发生交换」。
不是。画布只画活下来的个体(engine/PLAN_PROTOCOL.md 规则 Q7)。致死类按设计意图不出现在图上。
不是。节点显示简化名(剥 P{…} 行号),例如 P{w[+mC]=Act5C-GAL4}25F01 在 canvas 上显示为 Act5C-GAL4。悬停节点 tooltip 显示 full 全基因型 + 表型提示。
可以。右上角 − / ⤾ / + 三个按钮,缩放范围 0.4× ~ 2×。按住背景左键可拖动平移。
当前实现是触发浏览器打印对话框(window.print(),@media print 隐藏按钮与滚动条),选「另存为 PDF」即可。后续会换 html2pdf / jsPDF + html2canvas。
必须用「受体背景平衡系」(如 Sp/CyO 或 TM2/TM6B 品系雌性),不是普通 w[1118] 受体。警告框会自动提示。
平衡子会抑制交换,让侧翼供体片段无法削掉。平衡子只在终点(如纯合致死时)才引入。
公式 (2^i − 1) / 2^i(i = 回交代数)。回交 5 代 → 受体背景 ≥ 31/32(≈ 96.9%);回交 10 代 → ≥ 1023/1024(≈ 99.9%)。画布会显示「回交 N 代后受体背景 ≥xx/xx」。
不是。这是「维持系形态自动识别」(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 橙色引擎异常横幅 - 建系任务染色体错位示例](images/tasks/7-1.jpg)
#engine-error-banner(⚠ 引擎异常:品系的 2 号染色体上未找到插入元件)+ 右栏 Protocol 显示「生成失败,请检查输入或联系开发者」
[Real screenshot] Q14 orange error-banner example — Stock task + "chr 2" parameter + parsed chr 3 genotype: orange #engine-error-banner below the canvas toolbar and above the canvas root (⚠ Engine error: 品系的 2 号染色体上未找到插入元件) + right-pane Protocol shows "Generation failed, please check inputs or contact the developer"
不是。这是建系任务的新校验——引擎会比对「参数面板选的染色体」与「品系基因型实际所在染色体」是否一致;如果对不上,引擎直接 throw,并在画布工具栏(缩放按钮行)之下、画布根节点之上弹出橙色横幅 #engine-error-banner(前缀 ⚠ 引擎异常: + 错误消息,例如 品系的 2 号染色体上未找到插入元件)。同时右栏 Protocol 显示「生成失败,请检查输入或联系开发者」。No. Stock now validates that the chromosome you selected in the parameter panel matches the chromosome the parsed genotype actually lives on. If they disagree, the engine throws and the UI renders an orange #engine-error-banner just below the canvas toolbar (the row with the zoom buttons) and above the canvas root — prefix ⚠ Engine error: + the error message (e.g. 品系的 2 号染色体上未找到插入元件). The right-pane Protocol simultaneously shows "Generation failed, please check inputs or contact the developer."
常见原因:Common causes:
处理:把参数面板的「染色体」下拉改到与解析结果一致的那一条,再点「生成杂交方案」即可。如果你的本意就是「另一条染色体」,请重新核对品系是否选错——建系任务只支持单条染色体上的插入元件。Fix: change the parameter panel's "Chromosome" dropdown to match the resolved genotype, then click "Generate cross plan" again. If you genuinely meant the other chromosome, double-check whether you picked the wrong strain — Stock tasks only support an insert on a single chromosome.