哪套 SNP 面板更合适?Which SNP panel is the better choice?
用同一批 80 个模拟性状比较 r² 0.2 和 r² 0.5 · 8 题,约 40–55 分钟 · 答案只保存在你的浏览器里 · 背景见 Step 2 第 4 节Compare r² 0.2 and r² 0.5 on the same 80 simulated traits · 8 tasks, about 40–55 minutes · answers stay in your browser · background in Step 2, section 4
比较 B 的两个面板(r² 0.2 和 r² 0.5)时,哪些必须固定?Comparing B on two panels (r² 0.2 and r² 0.5): what must be held fixed?
勾选你认为应该做的,然后点击"检查"。Tick what you think should be done, then press Check.
根据 80 个性状的逐个结果计算覆盖率、条件检出率和总体找回率Compute coverage, conditional detection and overall recovery from the 80 trait-level results
下表是每个模拟性状在两个面板上的结果。"覆盖"表示面板里有合格的标签对;"检出"表示最后有标签对越过该面板的门槛。The table lists each simulated trait's outcome on both panels. "Covered" means the panel holds an eligible tag pair; "detected" means a tag pair finally clears that panel's bar.
- 覆盖率 = 覆盖数 ÷ 80Coverage = covered ÷ 80
- 条件检出率 = 检出数 ÷ 覆盖数(覆盖数为 0 时不适用)Conditional detection = detected ÷ covered (not applicable if nothing is covered)
- 总体找回率 = 检出数 ÷ 80Overall recovery = detected ÷ 80
计数填整数;百分数保留一位小数,可以带 %,允许 ±0.5 的误差。条件检出率在覆盖数为 0 时不适用,可以留空。Counts are whole numbers; percentages to one decimal, with or without %, within ±0.5. Conditional detection does not apply when nothing is covered and may be left empty.
选做:想在自己的电脑上用脚本核算,见本页末尾的动手包。Optional: to check the counts with a script on your own computer, see the hands-on pack at the end of this page.
25/67 和 25/80 各回答什么问题?What do 25/67 and 25/80 each answer?
25/67(条件检出率)回答的是哪个问题?Which question does 25/67 (conditional detection) answer?
如果只报告条件检出率,会发生什么?What happens if only conditional detection is reported?
r² 0.5 上的 40 个弱互作:33 → 31 → 17 → 540 weak interactions on r² 0.5: 33 → 31 → 17 → 5
四关依次是:覆盖 → 初筛写出(p < 10⁻⁴)→ 资格过滤与预算(四格 ≥ 10、秩检查、只复检前 1,000 对)→ 越过门槛。The four gates are: covered → written by the screen (p < 10⁻⁴) → eligibility and budget (cells ≥ 10, rank check, re-test only the top 1,000) → over the bar.
从 31 到 17 少了 14 个。能否说它们是因为预算不足而漏检的?14 are lost between 31 and 17. Can we say they were lost because the budget was too small?
门槛从 2.87 × 10⁻¹¹ 收紧到 3.04 × 10⁻¹² 后,多漏检了几个?Tightening the bar from 2.87 × 10⁻¹¹ to 3.04 × 10⁻¹² caused how many extra misses?
下面是进入复检的 17 个弱互作性状,以及它们最好的标签对在复检中的 p 值。固定这 17 个和它们的 p,分别数一数有几个小于新门槛、几个小于旧门槛。Below are the 17 weak-interaction traits that reached re-testing, with the re-test p of their best tag pair. Holding these 17 and their p-values fixed, count how many fall below the new bar and how many below the old one.
C1 的 19/80 为什么不能和 B 的 25/80 排名?Why can C1's 19/80 not be ranked against B's 25/80?
可以多选。Tick all that apply.
检出更多的代价:误报和计算量The cost of detecting more: false positives and computing
| 设置Setting | 无互作性状中出现假发现(95% 区间)Null traits with a false hit (95% interval) | 成本Cost | 来源Source |
|---|---|---|---|
| A1 / A2 | 0/50 (0–7.1%) | 约 0.03 核·小时 / 性状(两者合计,全流程)~0.03 core-h per trait (both, full pipeline) | 2.6, 2.10a, 2.19b |
| B · r² 0.2 | 8/200 (1.7–7.7%) | 约 0.9 核·小时 / 性状(全流程);约 56 GB~0.9 core-h per trait (full pipeline); ~56 GB | 2.16 |
| B · r² 0.5 | 8/200 (1.7–7.7%) | 约 6.2 核·小时 / 性状(只算 PLINK 初筛);约 49 GB~6.2 core-h per trait (PLINK screen only); ~49 GB | 2.25, 2.27d–f |
A1/A2 的 0/50 来自另一批 S0,B 的 8/200 来自 200 个 S0;两种成本的口径也不同(全流程对只算初筛),不能直接相除。A1/A2's 0/50 comes from a different S0 batch than B's 8/200, and the two costs are measured differently (full pipeline vs screen only), so they cannot simply be divided.
B 在 r² 0.5 上是 8/200(1.7%–7.7%),说明什么?B on r² 0.5 scored 8/200 (1.7%–7.7%). What does that show?
写下你的暂定选择和尚缺的证据Write down your provisional choice and the missing evidence
这一题没有标准答案。请写:你的暂定选择;支持这个选择的两三个数字;做最终决定前还缺哪些证据。写完后再展开下面的参考要点对照。There is no model answer. Write your provisional choice, the two or three numbers that support it, and the evidence still missing before a final decision. Then open the reference points below to compare.
写完后自评Assess your answer after writing
对照下面五项,看你的答案是否交代清楚。量表只检查有没有写到这五样,不判断选择本身对不对;不同的选择都可以合理,只要理由和边界写清楚。自评只保存在你的浏览器里,会进入总览页的学习记录。Check your answer against the five items below. The scale only asks whether each item is covered; it does not judge the choice itself, and different choices can all be reasonable if the reasons and limits are clear. The assessment stays in your browser and appears in the learning record on the overview page.
| 项目Item | 要看什么What to look for | 我的答案My answer |
|---|---|---|
| 研究目标Goal | 写明这个选择服务于哪个目标,例如找回更多植入的互作,或者控制计算量Says which aim the choice serves, for example recovering more planted interactions or keeping computing cost down | |
| 数字Numbers | 引用的数字正确,并写出分母,例如 25/80,而不只是 31%The figures are right and come with their denominators, e.g. 25/80 rather than 31% alone | |
| 代价Costs | 写到误报和计算量Mentions false positives and computing cost | |
| 限定Qualifiers | 写明结论只适用于哪些情景和设置,例如第一轮试跑、S2 和 S3 情景Says which scenarios and settings the conclusion holds for, e.g. the round-1 trial run and scenarios S2 and S3 | |
| 下一条证据Next evidence | 写出做决定前最需要补上的一项证据Names the one piece of evidence most needed before deciding |
第 7 题没有标准答案,所以不自动判对错,状态由你自己标。Task 7 has no single right answer, so it is not marked automatically; set the status yourself. 在总览页导出全部学习记录Export your whole learning record on the overview page
参考要点(写完后展开)Reference points (open after writing)
结果Results
- 覆盖:4/80 → 67/80Coverage: 4/80 → 67/80
- 总体找回:0/80 → 25/80Overall recovery: 0/80 → 25/80
- S0 误报:两个面板都是 8/200(1.7%–7.7%)S0 false positives: 8/200 on both panels (1.7%–7.7%)
代价Costs
- 初筛约慢 7 倍(只算 PLINK 墙钟时间)Screen about 7× slower (PLINK wall time only)
- 门槛约严 10 倍Bar about 10× stricter
证据缺口Gaps
- r² 0.5 没有在真实 DTF1 和预测(Step 3)中运行r² 0.5 not run on real DTF1 or in prediction (Step 3)
- 只有 S2、S3 两个情景;主效 QTN、S1、S4 未生成Only scenarios S2 and S3; main-effect QTN, S1 and S4 not generated
- 资格过滤与预算无法拆开Eligibility and budget cannot be separated
- 稳健性是否作为发现的附加条件未定Whether robustness is a condition for a finding is undecided
- 8/200 的区间上界高于 5%The 8/200 upper bound is above 5%
最终选择在第 48 周由用户和导师决定,这个练习不代替那次决定。The final choice is made by the student and supervisor in week 48; this exercise does not replace it.
把第 1–7 题的判断用到一组教学合成数据上Apply the reasoning of tasks 1–7 to a set of teaching-synthetic numbers
教学合成数据Teaching-synthetic data 本题的研究、方法、性状和全部数字都是为练习编写的,不来自任何运行,与本项目的结果无关。The study, methods, traits and every number in this task were written for practice. They come from no analysis and are unrelated to this project's results.
一项虚构的研究在 60 个模拟性状里各植入一对互作位点,比较三种做法。P 在一个较密的 SNP 面板上检验所有位点对;Q 只检验一份候选基因清单里的位点对;R 在知道植入位置之后直接检验那一对。另外用 100 个无互作的模拟性状估计误报。覆盖和检出的含义与第 2 题相同。A fictional study plants one interacting pair in each of 60 simulated traits and compares three approaches. P tests all pairs on a fairly dense SNP panel; Q tests only pairs within a list of candidate genes; R tests the planted pair directly once its position is known. A further 100 simulated traits without interactions are used to estimate false positives. Covered and detected mean the same as in task 2.
| 做法Approach | 覆盖Covered | 检出Detected | 无互作性状中出现假发现Null traits with a false hit |
|---|---|---|---|
| P · 全部位点对P · all pairs | 48/60 | 12 | 3/100 |
| Q · 候选基因清单Q · candidate-gene list | 15/60 | 9 | 未运行not run |
| R · 已知答案后直接检验(oracle)R · direct test once the answer is known (oracle) | 不涉及not addressed | 21 | 不涉及not addressed |
8a · P 和 Q 的总体找回率各是多少?8a · What is the overall recovery of P and of Q?
8b · Q 的报告写道:Q 的检出率是 60%,P 只有 25%,所以 Q 更好。这句话的问题在哪里?8b · Q's report says: Q's detection rate is 60% and P's only 25%, so Q is better. What is wrong with this?
8c · Q 的误报一栏是未运行。下面哪种写法合适?8c · Q's false-positive entry is not run. Which statement fits?
8d · R 找回 21/60,P 找回 12/60。能否据此说 R 比 P 好?8d · R recovers 21/60 and P 12/60. Does that make R better than P?
8e · 下面哪些结论有恰当的边界?可以多选。8e · Which conclusions are properly bounded? Tick all that apply.
在自己的电脑上核算第 2 题和第 8 题Check tasks 2 and 8 on your own computer
动手包有四个小文件:第 2 题 80 个性状的逐个结果(traits.tsv)、第 8 题的教学合成数据(transfer_synthetic.tsv)、一个核算脚本(count_recovery.py)和一份说明(README.txt)。脚本只用 Python 3 的标准库,不需要安装别的软件。The pack holds four small files: the per-trait results of the 80 traits in task 2 (traits.tsv), the teaching-synthetic data of task 8 (transfer_synthetic.tsv), a counting script (count_recovery.py) and a README (README.txt). The script uses only the Python 3 standard library; nothing else needs installing.
脚本只把已有的逐个结果重新数一遍,不重跑任何 GWAS 或模拟,文件里也没有基因型和表型。重跑真实分析需要原始数据和服务器上的完整流程,不在这个包里。The script only re-counts existing per-trait results; it does not re-run any GWAS or simulation, and the files contain no genotypes or phenotypes. Re-running the real analysis needs the raw data and the full pipeline on the server, which are not part of the pack.
1. 取得文件1. Get the files
macOS 或 Linux:点“复制安装命令”,打开 Terminal,粘贴后按回车。命令会在当前目录新建文件夹 efg-pack-v21,写入四个文件,进入这个文件夹并运行一次脚本。Windows 可以在 WSL 里粘贴;也可以用“显示”按钮逐个打开文件,另存为同名文件。macOS or Linux: press “Copy the setup command”, open Terminal, paste and press Return. The command creates the folder efg-pack-v21 in the current directory, writes the four files, moves into the folder and runs the script once. On Windows, paste it into WSL, or open each file with the “Show” buttons and save it under the same name.
2. 运行2. Run
安装命令结束时已经运行过一次。以后再运行,先进入这个文件夹,然后:The setup command has already run it once. To run it again, move into the folder, then:
python3 count_recovery.py traits.tsv transfer_synthetic.tsv3. 预期输出3. Expected output
file setting traits covered detected coverage conditional overall
traits.tsv r2_0.2 80 4 0 5.0% 0.0% 0.0%
traits.tsv r2_0.5 80 67 25 83.8% 37.3% 31.2%
transfer_synthetic.tsv P 60 48 12 80.0% 25.0% 20.0%
transfer_synthetic.tsv Q 60 15 9 25.0% 60.0% 15.0%4. 怎样读4. How to read it
- 每一行是一个文件里的一种设置。traits 是性状数,covered 和 detected 是计数;后面三列依次是覆盖率、条件检出率和总体找回率,分母分别是性状数、覆盖数和性状数。Each line is one setting in one file. traits is the number of traits; covered and detected are counts; the last three columns are coverage, conditional detection and overall recovery, over the traits, the covered traits and the traits respectively.
- traits.tsv 的两行应与第 2 题的答案一致:r² 0.2 覆盖 4/80、检出 0;r² 0.5 覆盖 67/80、检出 25。r² 0.2 的条件检出率只建立在 4 个性状上,很不稳定。The two traits.tsv lines should match task 2: r² 0.2 covers 4/80 and detects 0; r² 0.5 covers 67/80 and detects 25. The r² 0.2 conditional detection rests on only 4 traits and is very unstable.
- transfer_synthetic.tsv 的两行对应第 8 题的 P 和 Q。表里没有 R:R 没有走搜索,不能和 P、Q 放进同一张计数表。The two transfer_synthetic.tsv lines are P and Q from task 8. R is not in the file: it did not go through a search and does not belong in the same count table as P and Q.
- 输出和上面不同时,先确认两个文件分别有 80 行和 60 行数据(以 # 开头的说明行不算)。If your output differs, first check that the two files hold 80 and 60 data rows (lines starting with # are notes and do not count).
展开完整核算表Show the full reference table
| 设置Setting | 覆盖Covered | 条件检出Conditional | 总体找回Overall |
|---|---|---|---|
| A1 / A2 (筛选版,各自)(screened, each) | 4/80 | 0/4 | 0/80 |
| B · r² 0.2 | 4/80 | 0/4 | 0/80 |
| B · r² 0.5 | 67/80 | 25/67 | 25/80 |
| 旧 C1 oracle(单列参照,不排名)Old C1 oracle (reference only, not ranked) | 55/80 | 19/55 | 19/80 |
同一批 80 个 S2/S3 性状,标签规则 ± 20 kb 且 r² ≥ 0.5。Same 80 S2/S3 traits, tag rule ± 20 kb and r² ≥ 0.5.
Step 5 试填表的结构Structure of the Step 5 trial table
试填表分三块:A 是 SNP 对策略的完整流程(可以逐个性状配对比较);B 是旧 C1 的分散证据(oracle、35 基因小例子、全规模成本外推,各自范围不同);C 是新规格的 C(还没运行)。空白格表示没有运行,不表示结果为零。它是一份证据与缺口清单,不能用来给策略排名。全局方差分量(Step 3 的 3a)单独报告,不进这张表。The trial table has three blocks: A, the SNP-pair strategies as full pipelines (comparable trait by trait); B, the scattered evidence for the old C1 (oracle, 35-gene example, full-scale cost extrapolation, each with its own scope); C, the new C (not run). Blank cells mean not run, not zero. It is a list of evidence and gaps, not a ranking. The genome-wide variance component (Step 3, 3a) is reported separately.
完整的证据矩阵The full evidence matrix
下表把试填表里能量化的五列放在一起。每一格后面的标签说明这个数是怎么来的。“0”是跑过之后得到的结果;“未运行”是没有数据;“不涉及”是这一块证据按设计就回答不了这一列。虚线以下的 C1 三行范围各不相同,不能合成一行,也不能和上面四行排名。The table puts the five quantitative columns of the trial table side by side. The label after each value says where it comes from. “0” is a result obtained by running the analysis; “not run” means there is no data; “not addressed” means this block of evidence cannot answer that column by design. The three C1 rows below the dashed line have different scopes, cannot be merged into one row, and cannot be ranked against the four rows above.
| 设置Setting | 证据范围Scope of the evidence | 覆盖;条件检出;总体找回(80 个性状)Coverage; conditional detection; overall recovery (80 traits) | 误报:S0 中有 ≥ 1 对过门槛的性状False positives: S0 traits with ≥ 1 pair over the bar | DTF1 上校正后的发现Corrected findings on DTF1 | 折外平均 Δr(M2 − M1)Out-of-fold mean Δr (M2 − M1) | 计算成本(每个表型)Compute cost (per trait) |
|---|---|---|---|---|---|---|
| A1A1 | 完整流程full pipeline | 4/80;0/4;0/804/80; 0/4; 0/80 实测measured | 0/50(0–7.1%)0/50 (0–7.1%) 实测measured | 0(最小 p 3.1 × 10⁻⁵)0 (smallest p 3.1 × 10⁻⁵) 实测measured | −0.014,5 折都为负−0.014, all 5 folds negative 实测measured | 约 0.03 核·小时(A1、A2 合计,全流程)about 0.03 core-hours (A1 and A2 together, full pipeline) 实测measured |
| A2A2 | 完整流程full pipeline | 4/80;0/4;0/804/80; 0/4; 0/80 实测measured | 0/50(0–7.1%)0/50 (0–7.1%) 实测measured | 0(只检验了 54 对,最小 p 5.7 × 10⁻³)0 (only 54 pairs tested, smallest p 5.7 × 10⁻³) 实测measured | −0.002,1 折为正;随机组匹配不完整−0.002, 1 fold positive; random groups incompletely matched 实测measured | 同 A1as A1 实测measured |
| B · r² 0.2B · r² 0.2 | 完整流程full pipeline | 4/80;0/4;0/804/80; 0/4; 0/80 实测measured | 8/200 = 4.0%(1.7–7.7%)8/200 = 4.0% (1.7–7.7%) 实测measured | 0(工作口径最小 p 5.2 × 10⁻¹¹)0 (smallest working p 5.2 × 10⁻¹¹) 实测measured | −0.023,5 折都为负−0.023, all 5 folds negative 实测measured | 约 0.9 核·小时(全流程),每个进程约 56 GBabout 0.9 core-hours (full pipeline), about 56 GB per process 实测measured |
| B · r² 0.5B · r² 0.5 | 完整流程,只在模拟上运行full pipeline, simulations only | 67/80;25/67;25/8067/80; 25/67; 25/80 实测measured | 8/200 = 4.0%(1.7–7.7%)8/200 = 4.0% (1.7–7.7%) 实测measured | 未运行not run | 未运行not run | 约 6.2 核·小时,约 49 GBabout 6.2 core-hours, about 49 GB 实测,只算初筛measured, screen only |
| C1 · oracleC1 · oracle | 已知答案后直接检验真实的基因对,没有搜索the true gene pair tested directly with the answer in hand, no search | 55/80;19/55;19/8055/80; 19/55; 19/80 oracleoracle | 未运行not run | 不涉及not addressed | 不涉及not addressed | 不涉及not addressed |
| C1 · 35 基因C1 · 35 genes | 15 个开花相关基因 + 20 个随机基因,594 个可检验的基因对15 flowering-related + 20 random genes, 594 testable gene pairs | 不涉及not addressed | 未运行not run | 0(最小 p 0.0022)0 (smallest p 0.0022) 小例子small example | −0.003,1 折为正;主效应列数与随机组不同−0.003, 1 fold positive; main-effect columns differ from the random groups 小例子small example | 不涉及not addressed |
| C1 · 全规模C1 · full scale | 约 3.68 × 10⁸ 个基因对,按单对耗时外推about 3.68 × 10⁸ gene pairs, extrapolated from per-pair time | 不涉及not addressed | 未运行not run | 未运行not run | 未运行not run | 约 116 核·小时,32 个进程共约 80 GBabout 116 core-hours; 32 processes, about 80 GB in total 外推extrapolated |
| 新 CNew C | 294 个开花基因、基因 ± 500 bp,暂定规格,导师未确认294 flowering genes, gene ± 500 bp; provisional spec not confirmed by the supervisor | 未运行not run | 未运行not run | 未运行not run | 未运行not run | 约 50 核·秒的热扫描,不含初始化,不是端到端实测about 50 core-seconds of warm scanning, without set-up; not an end-to-end measurement 换算converted |
读表时注意四点。误报的区间重叠很多,0/50 的上界仍可达 7.1%,不能只看点估计说 A1、A2 误报更低。Δr 来自单次 5 折和固定惩罚,A2 的随机组匹配不完整。成本的口径不同:A1、A2 和 B r² 0.2 是全流程,B r² 0.5 只算初筛,C1 是外推,新 C 是换算。生物学合理性和 FRI×FLC 两列只能文字描述,见 Step 4 和试填表。Four points when reading the table. The false-positive intervals overlap widely, and the upper bound of 0/50 is still 7.1%, so the point estimates alone do not show that A1 and A2 have fewer false positives. Δr comes from one 5-fold split with a fixed penalty, and A2's random groups are incompletely matched. Costs are on different footings: full pipeline for A1, A2 and B r² 0.2, screen only for B r² 0.5, extrapolated for C1, converted for the new C. Biological plausibility and FRI×FLC can only be described in words; see Step 4 and the trial table.