本文主要是介绍qRT-PCR计算器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
实时荧光定量PCR技术(Real-time Quantitative PCR,qRT-PCR)是指在PCR反应体系中加入可与DNA产物特异性结合的荧光基团,利用荧光信号积累实时监测整个PCR进程,最终通过相对定量或绝对定量的方法确定各个样本的本底表达量。但是计算各个基因的相对表达量(Relative expression)较为繁琐,虽然Bio-Rad软件可以自动算出相对表达量,但是一次只能算出一个plate内的表达量,若要一次性算出多个plate的表达量还实现不了,因此我用Python写了一个用于计算相对表达量的一个小程序。
1.Plate的设计
想要后续快速的计算出相对表达量,必须从plate的设计开始。
首先打开BioRadCFXManager这款做qRT-PCR的软件,在选择好自己的PCR程序后,需要在Plate下,点击Edit selected对plate按照预先设计好的方案进行输入(图1)。
图1 进行plate的设计
在的点击Edit selected后,按照图2的顺序输入基因名称,就可以把所选好的区域的基因名称都改为自己输入的基因名称了;按照图3的顺序输入所选区域每个孔所属于的样本,就可以修改样本的名称了。
图2 如何进行板的基因名称的输入
图3 如何进行板的样本名称的输入
在完成所有孔的基因名称和样本名称输入后,点击右下角的“OK”,然后运行整个qRT-PCR的程序。
2.Ct值的导出
在完成qRT-PCR程序后,会生成一个prcd的文件(图4)。
图4 prcd文件
打开后点击"Export"(图5),然后点击"Export All Data Sheets",最后点击“Excel 2007(*.xlsx)”,对数据进行导出。
图5 导出数据
导出数据后,会生成多个文件,选择导出第4个,含有Cq的这个文件,然后打开(图6)。
图6 导出数据中文件的选择
打开后如图7所示,确保Target这一列为基因名称,Sample这列为样本名称,Cq这列为Ct值。如果有多个plate的数据,只需要将数据复制粘贴到文件末尾即可。但需要注意的是合并好后的第一行一定要有像图7一样的行名,名称不能改变。
图7 记录Ct值文件的样式
3.输入比较文件(contrast.xlsx)
qRT-PCR计算某个基因的相对表达量时,肯定需要4个数据,一是以哪个样本为对照,将样本名称输入在第一列的Control_sample这列;二是内参基因的名称,输入在Control_gene_name这列;三是处理组名称,输入在Treatment_sample这列;四是目的基因的名称,输入在Treatment_gene_name这列(图8)。
图8 比较文件的样式
4.qRT-PCR的代码展示
代码需要用到pandas、numpy以及openpyxl模块,需要自己用pip安装。下面的代码我会放在relative_expression_calculation_for_qPCR.py文件中,大家可滑到本推送的最下面进行下载。
import pandas as pd
import numpy as np
import openpyxl as op
import csv
import argparseargs = argparse.ArgumentParser(usage="relative_expression_calculation_for_qPCR.py Ct contrast [options] output")args.add_argument('Ct',type=str,help="input file in excel")args.add_argument('Contrast',type=str,help="input file in excel")args.add_argument('-o', '--output',type=str,help="input filename in csv including absolute path")args = args.parse_args()#读取想要比较的表格
contrast = pd.read_excel(args.Contrast)
#读取Ct值
df = pd.read_excel(args.Ct)# 1. 创建文件对象
f = open(args.output, 'w', encoding='utf-8')# 2. 基于文件对象构建 csv写入对象
csv_writer = csv.writer(f)#提取比较信息
nrow = contrast.shape[0]
for x in range(nrow):Control_sample = contrast.loc[x][0]Control_gene_name = contrast.loc[x][1]Treatment_sample = contrast.loc[x][2]Treatment_gene_name = contrast.loc[x][3]print("=============Reading the {} group===========".format(x+1))control_reference_gene = []control_target_gene = []treatment_reference_gene = []treatment_target_gene = []for (m,n,i) in zip(df["Target"],df["Sample"],df["Cq"]):if m == Control_gene_name and n == Control_sample:control_reference_gene.append(i)for (m, n, i) in zip(df["Target"], df["Sample"], df["Cq"]):if m == Treatment_gene_name and n == Control_sample:control_target_gene.append(i)for (m, n, i) in zip(df["Target"], df["Sample"], df["Cq"]):if m == Control_gene_name and n == Treatment_sample:treatment_reference_gene.append(i)for (m, n, i) in zip(df["Target"], df["Sample"], df["Cq"]):if m == Treatment_gene_name and n == Treatment_sample:treatment_target_gene.append(i)#计算对照和处理Ct的平均值control_reference_gene_mean = np.mean(control_reference_gene)treatment_reference_gene_mean = np.mean(treatment_reference_gene)#计算▲Ctcontrol_cCt = []treatment_cCt = []for i in control_target_gene:control_cCt.append(i-control_reference_gene_mean)for i in treatment_target_gene:treatment_cCt.append(i-treatment_reference_gene_mean)control_cCt_mean = np.mean(control_cCt)#计算▲▲Ct,并且计算相对表达量control_ccCt_expression = []treatment_ccCt_expression = []for i in control_cCt:control_ccCt_expression.append(pow(2,-(i-control_cCt_mean)))csv_writer.writerow([Control_sample, Control_gene_name, pow(2,-(i-control_cCt_mean))])for i in treatment_cCt:treatment_ccCt_expression.append(pow(2,-(i-control_cCt_mean)))csv_writer.writerow([Treatment_sample, Treatment_gene_name, pow(2,-(i-control_cCt_mean))])print("==========The program has finished running=============")
5.小程序的使用
5.1. 查看帮助文档
在window终端,输入如下命令查看帮助文档,箭头所指的蓝色文字就是py文件的绝对路径(图9)。有帮助文档可知,首先我们需要输入记录Ct值的excel所在的位置,然后输入比较文件所在的位置,最后-o参数,指定输出文件的位置,注意一定是CSV文件。
python "D:\自己写的小程序\qRT-PCR计算\relative_expression_calculation_for_qPCR.py" -h
图9 查看帮助文档
5.2. 运行小程序
运行如下命令,就可以进行相对表达量的计算,如图10所示,没有报错就说明程序运行成功,图中一下子计算了63组基因的相对表达量。
python "D:\自己写的小程序\qRT-PCR计算\relative_expression_calculation_for_qPCR.py" "D:\浙江大学实验\自己写的小程序\qRT-PCR计算\Ct_result.xlsx" "D:\自己写的小程序\qRT-PCR计算\contrast.xlsx" -o "D:\自己写的小程序\qRT-PCR计算\final_result.csv"
图10 程序运行成功
所有的相对表达量都在刚刚-o参数指定的CSV文件中,一列文样本,第二列为基因,第三列为相对表达量(图 11)。
图11 输出文件的结果
附件
链接: https://pan.baidu.com/s/1-SMOb7BuY_rgTz8dvNXBXw
提取码: a1hr
这篇关于qRT-PCR计算器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!