一、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)