qRT-PCR计算器

2023-10-19 06:30
文章标签 计算器 pcr qrt

本文主要是介绍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计算器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/237947

相关文章

用Java打造简易计算器的实现步骤

《用Java打造简易计算器的实现步骤》:本文主要介绍如何设计和实现一个简单的Java命令行计算器程序,该程序能够执行基本的数学运算(加、减、乘、除),文中通过代码介绍的非常详细,需要的朋友可以参考... 目录目标:一、项目概述与功能规划二、代码实现步骤三、测试与优化四、总结与收获总结目标:简单计算器,设计

QT学习之计算器

网格布局初尝试,快速构建计算器 项目结构: wident.h拖动建立界面,20个button,一个lineedit 布局好后整体网格布局调整,依次给每个案件输入文本,并改objectname方便后期辨识 为了在lineedit显示数字,转到槽,编辑点击事件,如显示“1” void Widget::on_pushButton1_clicked(){expression += "1";u

Arcgis字段计算器:随机生成规定范围内的数字

选择字段计算器在显示的字段计算器对话框内,解析程序选择Python,勾选上显示代码块, 半部分输入: import random; 可修改下半部分输入: random.randrange(3, 28) 表示生成3-28之间的随机数 字段计算器设置点击确定完成随机数的生成,生成的随机数如下图所示。

Vue初学-简易计算器

最近在学习Vue的指令,做了一个简易计算器,比较适合刚入门的人参考学习。用到的知识点有: 1.插值表达式 2.v-model,双向绑定+、-、*、/、**等操作符 3.v-show,控制操作数2是否显示,乘方时不显示操作数2 4.methods选项,定义了calculate ()方法,实现各种运算 5.watch选项,监听selected的值的变化。 下面是程序的执行效果: 如果选择的是**乘

每日OJ_牛客_Emacs计算器(逆波兰表达式)

目录 牛客_Emacs计算器(逆波兰表达式) 解析代码 牛客_Emacs计算器(逆波兰表达式) Emacs计算器__牛客网 解析代码 逆波兰表达式(后缀表达式)求值,需要借助栈,思路: 循环输入,获取逆波兰表达式,然后进行以下补助,直到测试完所有的测试用例: 遇到数字字符串,将该数字字符串转化为数字然后入栈。遇到操作符时,从栈顶取两个数字,然后进行该运算符所对应运算

Django 中的用户界面 - 创建速度计算器

在 Django 中创建一个用户界面来计算速度,可以通过以下步骤完成。这个速度计算器将允许用户输入距离和时间,计算并显示速度。 一、问题背景 一位 Django 新手希望使用 Django 构建一个用户界面,以便能够计算速度(速度 = 距离/时间)。用户创建了一个名为 “speed” 的 Django 项目。但是,在运行服务器时遇到了错误,无法获取速度的用户界面。 二、解决方案 1、检

多少次幂的计算器,指数计算器

https://miniwebtool.com/zh-cn/exponents-calculator/?n1=0.95&n2=100&prec=10

Python习题 159:设计一个工资计算器

(编码题)编写一个 Python 函数,设计一个工资计算器,用来计算每周的工资。参数有: hours_worked:工作小时数hourly_rate:时薪overtime_rate:超出40小时的工资率,默认为 1.5,仅限关键字参数 def calculate_payment(hours_worked, hourly_rate, *, overtime_rate=1.5):regul

数据结构实验:栈实现计算器(表达式计算)

原创作品转载请注明出处http://blog.csdn.net/acvcla/article/details/41732447 欢迎抄袭,造福各位伸手党 /*************************************************************************> 转载请注明出处http://blog.csdn.net/acvcla/artic

AWS-亚马逊网络服务(基础服务)-AWS 定价计算器-概述与动手部署:

让我们来概述并亲身实践如何使用 AWS 定价计算器来计算 概述: AWS 定价计算器是 Amazon Web Services (AWS) 提供的基于 Web 的工具,可帮助用户估算其特定用例的 AWS 服务成本。欢迎来到雲闪世界。 它允许客户建模他们的基础设施并根据他们打算使用的服务和资源预测每月的成本。 AWS 定价计算器的主要功能: 用户可以选择单个 AWS 服务,如 EC2