← Back to skills
extension
Category: Data & AnalyticsNo API key required

qPCR ΔΔCt 相对表达量分析

Perform ΔΔCt relative quantification on qPCR / RT-qPCR data. Takes instrument export files (QuantStudio / 7500 / CFX / LightCycler .xls/.xlsx/.csv) or a plain Sample Name / Target Name / CT table, together with the reference gene and target gene(s), and computes ΔCt, ΔΔCt, relative expression RQ = 2^(-ΔΔCt), fold change, per-replicate RQ, fold-change magnitude, confidence intervals, and Welch t-test significance per sample group. Auto-detects the header row and the Sample / Target / Ct columns, flags instrument QC failures (Amp Status, HIGHSD, Ct SD) and plate-to-plate drift, and exports an Excel workbook plus GraphPad Prism-ready CSVs. Use this skill when the user wants qPCR relative expression analysis, ΔΔCt / ddCt calculation, Ct to fold-change conversion, reference-gene normalization, RQ values per technical replicate, or asks to analyze qPCR export data (Results sheet) from QuantStudio / 7500 / CFX / LightCycler. Triggers: qPCR analysis, ΔΔCt, ddCt, Ct 值分析, 相对表达量, 内参基因, 目标基因, fold change, RQ, 2^-ddCt, 扩增数据, Results 工作表, potency / expression verification of edited lines.

personAuthor: user_26bbdea0hubcommunity

qPCR ΔΔCt 相对定量分析

用途

把仪器导出的 qPCR 原始 Ct 数据,变成可直接写进论文/汇报的相对表达量结果: ΔCt → ΔΔCt → RQ = 2^(-ΔΔCt),并给出每个技术重复的个体 RQ、fold change、 置信区间与显著性,同时自动做仪器层面的质控体检。

何时使用

  • 需要计算相对表达量 / fold change(RQ、2^-ΔΔCt)
  • 有 QuantStudio / 7500 / CFX / LightCycler 导出的 .xls/.xlsx/.csv, 或已整理成 Sample Name / Target Name / CT 三列表
  • 需要按"内参基因 + 目标基因"归一化,并按样品分组、以组内对照(N/WT/CK)为 calibrator
  • 需要每个技术重复的个体 RQ 值(用于 Prism / Origin 重绘,而不是只给均值)
  • 需要顺带检查扩增异常孔(Amp Status / HIGHSD / Ct SD)与板间漂移

输入

三种任选其一:

  1. 仪器导出文件(推荐):.xls / .xlsx / .xlsm / .csv / .tsv。 脚本自动挑工作表(优先名字含 Results 的表)、自动定位表头行与 Sample / Target / Ct 三列,不依赖固定行号。
  2. 三列表 CSV:列名 Sample Name,Target Name,CT
  3. 配置文件:JSON,含 reference / target / groups / alpha / outdir / tag, 适合批量或固定流程复用

必须提供的实验信息:内参基因名(如 UBQ、Actin、GAPDH)、目标基因名、 分组与组内对照样品(如 a组:对照 a-N:样品 a-N,a-2,a-14)。

快速开始

# 1) 直接分析仪器导出文件
python scripts/ddct_run.py --input 2026-09-11_ab.xls --ref UBQ --target POT \
    --groups "a组:a-N:a-N,a-2,a-14;b组:b-N:b-N,b-1,b-5" --tag ab

# 2) 分析已整理好的三列表
python scripts/ddct_run.py --input ct.csv --ref UBQ --target POT \
    --groups "GroupA:A-N:A-N,A-1;GroupB:B-N:B-N,B-1" --tag example

# 3) 用配置文件(等价写法)
python scripts/ddct_run.py --input ct.csv --config example_config.json

# 4) 命名规范时自动分组(对照 = 后缀 N / WT / CK / NC / MOCK)
python scripts/ddct_run.py --input raw.xls --ref UBQ --target POT --groups auto --tag ab

# 5) 只抽取三列、先看列定位是否正确
python scripts/extract_ct.py raw.xls --qc -o ct.csv

--groups 语法:组名:对照样品:样品1,样品2;组名2:对照2:样品1,样品2。 每组必须有各自的对照,不做跨组比较(不同板的 Ct 基线不同)。

分析流程

ΔCt      = mean(Ct_目标) − mean(Ct_内参)          同一样品内计算
ΔΔCt     = ΔCt(样品) − ΔCt(组内对照)               对照自身 ΔΔCt = 0
相对表达量 = RQ = 2^(−ΔΔCt)                         对照自身 RQ = 1
Fold change = RQ;RQ<1 时同时给出下调倍数 = 1/RQ
逐重复RQ  = 2^(−(Ct目标_i − Ct内参_i − ΔCt_对照均值))   每个技术重复一个点
SE(ΔΔCt)  = sqrt(SE_目标² + SE_内参² + SE_对照目标² + SE_对照内参²)
RQ 区间   = 2^(−(ΔΔCt ± k·SE))   k=1 给 1SE 误差棒,k=t(1−α/2, df) 给 95% CI
显著性    = Welch 近似 t 检验(自由度 Welch–Satterthwaite 合成)

完整的误差传播推导、统计假设、扩增效率校正与常见错误,见 references/method.md。

输出

| 文件 | 内容 | |---|---| | <tag>_DDCt分析结果.xlsx | 结果汇总(含 Fold change、CI95、p 值、显著性)、逐重复RQ、Prism列格式_<目标基因>、原始Ct明细、QC检查、方法说明(含柱状图) | | <tag>_结果汇总.csv | 结果汇总表 | | <tag>_逐重复RQ_宽格式.csv | 每列一个样品、每行一个技术重复 → 直接粘入 Prism / Origin 画散点或带散点柱状图 | | <tag>_逐重复RQ_长表.csv | 每个重复的 Ct目标 / Ct内参 / ΔCt / ΔΔCt / RQ,便于复核 |

结果汇总表列:分组、目标基因、样品、对照、n目标、n内参、Ct目标均值、目标SD、 Ct内参均值、内参SD、dCt、dCt_SE、ddCt、ddCt_SE、相对表达量RQ、RQ下限_1SE、RQ上限_1SE、 RQ_CI95低、RQ_CI95高、FoldChange、变化方向、下调倍数、t值、df、p值、显著性、备注。

参数

| 参数 | 默认 | 说明 | |---|---|---| | --input | 必填 | 仪器导出文件或三列表 CSV | | --ref | UBQ | 内参基因名 | | --target | POT | 目标基因名,多个用逗号分隔 | | --groups | 必填 | 组名:对照:样品1,样品2;...;填 auto 自动推断 | | --config | — | JSON 配置,命令行参数优先 | | --tag | 输入文件名 | 输出文件前缀 | | --outdir | 当前目录 | 输出目录 | | --sheet | 自动 | 指定工作表名 | | --alpha | 0.05 | 显著性水平(影响 CI 与显著性标记) | | --no-chart / --no-qc / --keep-extract | — | 关掉图表、关掉 QC 表、额外保留三列中间 CSV |

依赖

  • Python 3.7+,标准库即可完成 .xls / .csv 的读取与全部计算
  • 写出 Excel 需要 openpyxl(pip install openpyxl);缺失时自动跳过 xlsx 输出, CSV 结果照常生成
  • 读取 .xlsx 同样依赖 openpyxl

质控清单(分析后必看)

  1. QC检查工作表:非Amp孔数 > 0 → 该孔扩增异常;HIGHSD标记孔数 > 0 → 该样品(尤其出现在内参上时)结果不可靠;仪器CtSD均值 > 0.3 → 孔间差异大
  2. 板间一致性:板间一致性 行给出前后两半的 ΔCt 差,> 0.5 说明两块板不一致, 该样品结论需谨慎或分板重算
  3. 逐重复 RQ 离散度:跨度过大(如 0.35–1.19)通常是内参不稳,而非真实生物学差异
  4. 技术重复 vs 生物学重复:仅技术重复时 p 值只反映孔间加样误差, 不能作为生物学结论的证据;结论需要 ≥3 次独立生物学重复
  5. 扩增效率:2^(-ΔΔCt) 假定效率 100%;标准曲线斜率偏离 −3.32 较多时应做效率校正

常见问题

| 症状 | 处理 | |---|---| | 找不到表头行 | 用 --sheet 指定工作表;或先用 extract_ct.py 看定位结果;必要时手工整理三列表 | | 选错工作表 / 列 | --sheet 明确指定;extract_ct.py 会打印定位到的工作表、表头行与列字母 | | 分组报错 | 报错信息会列出数据中真实存在的样品名,据此修正 --groups | | .xls 读不了 | 用 Excel/WPS 另存为 .xlsx,或先导出三列表 CSV | | 中文样品名乱码 | 另存为 .xlsx 或 UTF-8 CSV |

各仪器(QuantStudio / 7500 / CFX / LightCycler)的列名差异、别名表、QC 列含义与 排错清单,见 references/instrument-formats.md。

参考文件

结果呈现建议

向用户报告时:先给结论(哪些样品显著上下调、倍数),再给结果表, 并始终附上每条重复的原始 RQ 值与质控提示(异常孔、板间漂移、样本量类型)。 不要只给均值,也不要把技术重复的 p 值说成生物学差异。