一、qPCR简介
qPCR全称quantitative polymerase chain reaction,又称为实时荧光定量PCR。其在PCR技术的基础上,通过合适的探针和荧光染料,能够实时监测PCR扩增过程中特定DNA序列的数量,从而达到定量的目的。与传统的末端定量PCR不同,qPCR可以将扩增产物和核酸浓度呈线性关系表示出来,因此qPCR在病原体检测、基因表达分析、药物筛选等领域有着广泛的应用。
二、qPCR工作原理
qPCR首先进行反转录转录,将RNA保留信息在cDNA中。随后qPCR利用特定引物和探针选择性扩增和检测靶标DNA序列,通过荧光染料和荧光信号检测仪器实时监测扩增曲线。PCR扩增曲线反映了反应混合物中特定DNA序列的数目随时的变化情况。荧光信号数目与PCR反应混合物中目标DNA的浓度呈正相关,当达到特定阈值时,计算机软件自动计算出模板的初始数量。
三、qPCR流程
qPCR 反应分为三个主要步骤 – 初始变性、循环扩增、终止扩增。
1. 初始变性
PCR反应需要一个很高的起始温度,以使DNA变性并解开双链使其成为单链以便配对。该步骤常常需要95°C的高温,时间通常为30-60秒。
2. 循环扩增
循环扩增过程包括了两个步骤:试剂的退火和DNA合成。在第一个循环开始之前,qPCR反应中添加了起始量的引物和探针。然后,PCR仪会将反应混合物混合热过冷,引物和探针在此温度下与靶标DNA互相配对。该反应通常需要65-72°C的温度,时间通常为15-60秒。此后,PCR温度会升高至72°C,此时聚合酶将扩增法定DNA区段。
3. 终止扩增
一旦PCR扩增达到了自己规定的扩增周期数,PCR反应就会停止。因此,通常需要实时监测PCR反应飞行,并计算其浓度。在PCR反应结束时,荧光信号数达到特定水平,检测器会确定靶标DNA区段的扩增程度。如果荧光信号超过设定的阈值,PCR扩增被认为是成功的,并且相应的数据便会在设备显示屏幕上读取。
四、示例代码
1. PCR反应参数设置
denature_temp = 95 # 初始变性 anneal_temp = 60 # 退火 extension_temp = 72 # 延伸 cycle_number = 30 # PCR扩增周期
2. 引物和探针设计
# 引物 forward_primer = 'ACCTCCAACAGGGTCAGAGCG' # 正向引物 reverse_primer = 'ATTGCCACAGGATTCCAACGA' # 反向引物 # 探针 probe_seq = 'FAM-CCGAAGTTTCTTGTGCCCGTCCTCAGGT-TAMRA' # 双探针标记
3. 反转录转录
# 制备反转录反应体系
def prepare_rt_reaction(rna, rt_enzyme, rt_buffer, rt_primer, dntp_mix):
reaction = "" # 反转录反应品体系
# 添加RNA
reaction += f"RNA: {rna}
"
# 添加rt酶
reaction += f"RT Enzyme: {rt_enzyme}
"
# 添加rt缓冲液
reaction += f"RT Buffer: {rt_buffer}
"
# 添加rt引物
reaction += f"RT Primer: {rt_primer}
"
# 添加dntp混合物
reaction += f"dNTP Mix: {dntp_mix}
"
return reaction
# 制备反转录反应体系
rt_reaction = prepare_rt_reaction('RNA Sample', 'RT Enzyme',
'RT Buffer', 'RT Primer',
'dNTP Mix')
4. qPCR实时监测
# 制备qPCR反应体系
def prepare_pcr_reaction(template, forward_primer,
reverse_primer, probe,
pcr_enzyme, pcr_buffer):
reaction = "" # PCR反应体系
# 添加模板
reaction += f"Template: {template}
"
# 添加pcr缓冲液
reaction += f"PCR Buffer: {pcr_buffer}
"
# 添加pcr酶
reaction += f"PCR Enzyme: {pcr_enzyme}
"
# 添加引物
reaction += f"Forward Primer: {forward_primer}
"
reaction += f"Reverse Primer: {reverse_primer}
"
# 添加探针
reaction += f"Probe: {probe}
"
return reaction
# 制备qPCR反应体系
pcr_reaction = prepare_pcr_reaction('cDNA Sample', forward_primer,
reverse_primer, probe_seq,
'PCR Enzyme', 'PCR Buffer')
# 实时监测qPCR
def run_qpcr(reaction, denature_temp,
anneal_temp, extension_temp,
cycle_number):
reaction = f"{reaction}
" # qPCR反应体系
reaction += f"
PCR Cycle数: {cycle_number}
" # 反应周期数
for i in range(cycle_number):
# 初始变性
reaction += f"
Denature {i + 1}: {denature_temp}°C, 30s
"
# 退火
reaction += f"Anneal{i + 1}: {anneal_temp}°C, 15s
"
# 延伸
reaction += f"Extension{i + 1}: {extension_temp}°C, 45s
"
return reaction
# 执行qPCR反应
pcr_results = run_qpcr(pcr_reaction, denature_temp,
anneal_temp, extension_temp,
cycle_number)
