当前位置: 首页 > news >正文

数据分析:RT-qPCR分析及R语言绘图

介绍

转录组分析是一种用于研究细胞或组织中所有RNA分子的表达水平的高通量技术。完成转录组分析后,科学家们通常需要通过定量实时聚合酶链式反应(qRT-PCR)来验证二代测序(Next-Generation Sequencing, NGS)结果的可靠性。这是因为qRT-PCR是一种精确的定量方法,可以用来验证特定基因的表达水平。

荧光定量PCR(Quantitative Real-Time PCR)是一种利用荧光信号来实时监测PCR扩增过程的技术。它允许研究者在PCR反应进行时实时检测DNA的累积量,从而实现对基因表达水平的定量分析。

在进行相对定量分析时,常用的方法之一是双标曲线法(也称为标准曲线法或绝对定量法)。这种方法的基本步骤如下:

  1. 标准曲线的构建:首先,需要通过一系列已知浓度的标准品(通常是目标基因的克隆DNA)进行PCR扩增,以获得一系列的Ct值(阈值循环数,即PCR扩增过程中荧光信号首次超过阈值的循环次数)。然后,将这些Ct值对数转换后与相应的DNA浓度绘制成图,形成标准曲线。
  2. 样本的Ct值测定:接下来,对实验样本进行qRT-PCR,记录目标基因的Ct值。
  3. 相对定量计算:利用标准曲线,根据样本的Ct值计算出样本中目标基因的相对浓度。这通常涉及到将样本的Ct值转换为DNA浓度,然后与标准品的浓度进行比较。
  4. 数据归一化:由于qRT-PCR可能会受到实验操作和样本制备的影响,因此需要使用一个或多个内参基因(通常是表达水平相对稳定的基因)来归一化数据,以消除这些潜在的变异。
  5. 结果表达:最终,研究者会以目标基因相对于内参基因的表达水平来表达结果,通常是以2的幂次方来表示倍数变化。

通过这种方法,研究者可以验证NGS结果的准确性,并进一步探索基因表达的调控机制。ΔCt法,2-ΔΔCt法(Livak法),用参照基因的2-ΔΔCt法(Livak法):

在这里插入图片描述

qRT-PCR介绍及计算公式

该部分引用自下方参考链接1

qRT-PCR原理

以基因的cDNA为模板进行PCR扩增,在PCR扩增过程中,通过收集荧光信号,对PCR进程进行实时检测。由于在PCR扩增的指数时期,模板的Ct值和该模板的起始拷贝数存在线性关系,所以可以定量。

Ct值

Ct值的含义是:每个反应管内的荧光信号达到设定的域值时所经历的循环数 (cycle)。 qRT-PCR在扩增的时候都会有平台期,在平台期之前,PCR 扩增就是简单的指数增长,也就是 1 变 2,2 变 4,4 变 8 …扩增。数学形式就是 2 的 ct 次方,到了平台期所有基因扩增的数目是一致的,而唯一有区别的则是 ct 值的不同。所以不难推断出 ct 值越小,反应扩增到达平台期所需循环数越少,目的基因起始含量越高。这里可以得到公式:

计算 -ΔΔCt:内参基因分为对照组和处理组内参基因

  1. 先计算对照组和处理组的内参基因Ct的均值: M e a n 内参基因 = m e a n ( 对照组或处理组内参基因 ) Mean_{内参基因}=mean(对照组或处理组内参基因) Mean内参基因=mean(对照组或处理组内参基因)

  2. 计算对照组待检测目的基因减去对照组内参基因的平均Ct值: Δ C t 对照组目的基因 i = C t 对照组目的基因 i − C t 对照组内参基因的平均值 ΔCt_{对照组目的基因i} = Ct_{对照组目的基因i} - Ct_{对照组内参基因的平均值} ΔCt对照组目的基因i=Ct对照组目的基因iCt对照组内参基因的平均值

  3. 计算处理组待检测目的基因减去处理组内参基因的平均Ct值: Δ C t 处理组目的基因 i = C t 处理组目的基因 i − C t 处理组内参基因的平均值 ΔCt_{处理组目的基因i} = Ct_{处理组目的基因i} - Ct_{处理组内参基因的平均值} ΔCt处理组目的基因i=Ct处理组目的基因iCt处理组内参基因的平均值

  4. 计算基于对照组的-ΔΔCt,处理组待检测目的基因的ΔCt减去对照组待检测基因的ΔCt的平均值: − Δ Δ C t 处理组目的基因 i = Δ C t 处理组目的基因 i − Δ C t 对照组目的基因 i 的平均值 -ΔΔCt_{处理组目的基因i} = ΔCt_{处理组目的基因i} - ΔCt_{对照组目的基因i的平均值} ΔΔCt处理组目的基因i=ΔCt处理组目的基因iΔCt对照组目的基因i的平均值

  5. 相对表达量计算,也就是相对于对照组: 2^-ΔΔct: 2 − ( − Δ Δ C t ) 2^{-(-ΔΔCt)} 2(ΔΔCt)

  6. 条形图或相关性点图可视化结果

R代码

加载R包

knitr::opts_chunk$set(warning = F, message = F)
library(dplyr)
library(tibble)
library(ggplot2)
library(xlsx)
library(Rmisc)

R函数

get_qPCR <- function(dataset=dat,ref_gene="GAPDH",control_group="6H NC",grp=c("6H M1")){# dataset=dat                   # 初始数据# ref_gene="GAPDH"              # 内参基因名字# control_group="6H NC"         # 对照组# grp=c("6H M1")                # 实验组排序if(!any(is.element(colnames(dataset), c("Sample_Name", "Target_Name", "CT")))){stop("Check the sheet's colnames")}sampleid <- c("Sample_Name", "Target_Name", "CT")dat <- dataset %>% select(sampleid)# step1: 计算对照组和处理组的内参基因平均值dat_ref_gene <- dat %>% filter(Target_Name == ref_gene) ref_gene_mean <- dat_ref_gene %>% group_by(Sample_Name) %>%dplyr::summarise(CT_ref_mean = mean(CT))# step2: 计算对照组和处理组待检测目的基因减去对应分组的内参基因的平均Ct值dat_gene <- dat %>% filter(Target_Name != ref_gene) dat_gene_merge <- dat_gene %>% inner_join(ref_gene_mean, by = "Sample_Name")dat_gene_merge$CT_delta <- with(dat_gene_merge, CT - CT_ref_mean) dat_control <- dat_gene_merge %>% filter(Sample_Name == control_group) %>%group_by(Sample_Name, Target_Name) %>%dplyr::summarise(Delta_CT_control_mean=mean(CT_delta)) %>% dplyr::rename(Sample_Name_control=Sample_Name)dat_treat <- dat_gene_merge %>% filter(Sample_Name != control_group) %>%# group_by(Sample_Name, Target_Name) %>%# dplyr::summarise(Delta_CT_treat_mean=mean(CT_delta)) %>% dplyr::rename(Sample_Name_treat=Sample_Name)# step3: 计算对照组检测基因的平均Δ值dat_double_delta <- inner_join(dat_treat, dat_control,by = "Target_Name")dat_double_delta$CT_delta_delta <- with(dat_double_delta, CT_delta - Delta_CT_control_mean)# step4: 基于对照组检测基因的平均Δ值,计算实验组的2-ΔΔCt值dat_double_delta$qPCR <- 2^-(dat_double_delta$CT_delta_delta) # step5: 条形图或相关性散点图可视化dat_plot <- dat_double_delta %>% dplyr::rename(Sample_Name=Sample_Name_treat) %>%dplyr::select(Sample_Name, Target_Name, qPCR) dat_plot_bar <- Rmisc::summarySE(dat_plot, measurevar = "qPCR", groupvars = c("Sample_Name", "Target_Name")) %>%mutate(Sample_Name=factor(Sample_Name, levels = grp),Target_Name=factor(Target_Name)) %>% group_by(Sample_Name, Target_Name) %>%mutate(ylimit=(qPCR+sd)) %>%ungroup()dat_plot_bar_ymax <- dat_plot_bar %>% group_by(Target_Name) %>% summarise_at(vars(ylimit), max)# dat_plot_range <- dat_plot %>% group_by(Sample_Name, Target_Name) %>%#   summarise(ymin=min(qPCR), ymax=max(qPCR))# setting y axis scaley_group <- c()y_scale <- c()for(i in 1:nrow(dat_plot_bar_ymax)){y_group <- c(y_group, rep(as.character(dat_plot_bar_ymax$Target_Name[i]), 2))y_scale <- c(y_scale, c(0, ceiling(dat_plot_bar_ymax$ylimit[i])))}blank_data <- data.frame(Target_Name = y_group, Sample_Name = 1, qPCR = y_scale)# step6: visualizationpl <- ggplot(dat_plot_bar, aes(x=Sample_Name, weight=qPCR))+geom_hline(aes(yintercept = qPCR), color = "gray")+geom_bar(color = "black", width = .4, position = "dodge")+geom_errorbar(aes(ymin = qPCR, ymax = qPCR + se), width = 0.25, size = 0.5, position = position_dodge(0.7))+labs(x="", y=expression(paste(log[2], " fold change in expression")))+ geom_blank(data = blank_data, aes(x = Sample_Name, y = qPCR))+expand_limits(y = 0)+scale_y_continuous(expand = c(0, 0))+facet_wrap(. ~ Target_Name, scales = "free")+theme_bw()+theme(axis.title = element_text(face = "bold", color = "black", size = 14),axis.text = element_text(color = "black", size = 10),axis.text.x = element_text(angle = 60, hjust = 1, face = "bold"),text = element_text(size = 10, color = "black", family="serif"),panel.grid = element_blank(),legend.position = "right",legend.key.height = unit(0.6, "cm"),legend.text = element_text(face = "bold", color = "black", size = 10),strip.text = element_text(face = "bold", size = 14))res <- list(dat=dat_double_delta, plot=pl)return(res)  
}

读取数据

单个样本三个技术重复,检验不同的目的基因扩增效率。数据下载链接:

百度云盘链接: https://pan.baidu.com/s/1W4Uvoy3Z7i9s8dWGOOkKWw
提取码: vh4s

dat <- read.xlsx("qPCR.xlsx", sheetIndex = 1)
head(dat)

计算结果
qPCR_res <- get_qPCR(dataset=dat,ref_gene="GAPDH",control_group="6H NC",grp=c("6H M1"))
DT::datatable(qPCR_res$dat)

可视化结果
qPCR_res$plot

结果: IL-1B 和INOS基因相比NC组而言,其含量越多

在这里插入图片描述

参考

  1. qRT-PCR相对定量计算详解

  2. geom_lines in different facet

相关文章:

数据分析:RT-qPCR分析及R语言绘图

介绍 转录组分析是一种用于研究细胞或组织中所有RNA分子的表达水平的高通量技术。完成转录组分析后&#xff0c;科学家们通常需要通过定量实时聚合酶链式反应&#xff08;qRT-PCR&#xff09;来验证二代测序&#xff08;Next-Generation Sequencing, NGS&#xff09;结果的可靠…...

无线模块通过TCP/IP协议实现与PC端的数据传输解析

在当今的信息时代&#xff0c;无线通信技术的发展日新月异&#xff0c;为我们的工作和生活带来了极大的便利。其中&#xff0c;无线通信模块通过TCP/IP协议向PC端传送数据已经成为了一种常见的通信方式。 无线通信模块是一种能够在无线网络中进行数据传输的设备。它通常集成了…...

嵌入式实验---实验一 通用GPIO实验

一、实验目的 1、掌握STM32F103 GPIO程序设计流程&#xff1b; 2、熟悉STM32固件库的基本使用。 二、实验原理 1、通过按键实现&#xff1a;按键按下&#xff0c;LED点亮&#xff1b;按键释放&#xff0c;LED熄灭。 三、实验设备和器材 电脑、Keil uVision5软件、Proteus…...

中国首例!「DataKit」上架亚马逊云科技 Marketplace add-ons

在 2022 年的 re:Invent 大会上&#xff0c;亚马逊云科技宣布了一项重大更新&#xff1a;亚马逊云科技 Marketplace 为 Amazon Elastic Kubernetes Service&#xff08;Amazon EKS&#xff09;提供了附加组件的支持。这一创新功能极大地丰富了 EKS 的生态系统&#xff0c;使用户…...

【博士每天一篇文献-算法】Progressive Neural Networks

阅读时间&#xff1a;2023-12-12 1 介绍 年份&#xff1a;2016 作者&#xff1a;Andrei A. Rusu,Neil Rabinowitz,Guillaume Desjardins,DeepMind 研究科学家,也都是EWC(Overcoming catastrophic forgetting in neural networks)算法的共同作者。 期刊&#xff1a; 未录用&am…...

深圳中小企业融资攻略,贷款方法大盘点!

中小企业融资这事&#xff0c;可不是一个简单的事情。资金对中小企业来说&#xff0c;就像血液对人体一样重要。企业发展离不开资金支持&#xff0c;特别是在今年这个环境下&#xff0c;政策对中小企业还挺友好的。今天讲解一下中小微企业常用的几种贷款方法。希望能让大家更明…...

Android的自启动

最近要用到这个&#xff0c;所以也花时间看看。 从分层来说&#xff0c;安卓的自启动也分成三种&#xff0c;app的自启动&#xff0c;framework服务的自启动&#xff0c;HAL服务的自启动。现在简单说说这三种吧。当然&#xff0c;我主要关注的还是最后一种。。。 一 App的自启…...

开源VisualFbeditor中文版,vb7 IDE,VB6升级64位跨平台开发安卓APP,Linux程序

吴涛老矣&#xff0c;社区苦无64位易语言&#xff0c;用注入DLL增强菜单&#xff0c;做成VS一样的界面 终归是治标不治本&#xff0c;一来会报毒&#xff0c;二来闭源20年没更新了 开源的VB7&#xff0c;欢迎易语言的铁粉进群&#xff1a;1032313876 【Freebasic编程语言】编绎…...

github安全问题token和sshkeys

文章目录 sshkeys问题问题方法一:方法二:获取密钥添加密钥token问题问题:生成tokens设置tokenssshkeys问题 问题 当我们git clone代码时,会报如下错误,此时有2种解决方法。 git clone git@github.com:gjianw217/xboard-uboot.git Cloning into xboard-uboot... Permissio…...

超详细的selenium使用指南

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 概述 selenium是网页应用中最流行的自动化测试工具&#xff0c;可以用来做自动化测试或者浏览器…...

LogicFlow 学习笔记——1. 初步使用 LogicFlow

什么是 LogicFlow LogicFlow 是一个开源的前端流程图编辑器和工作流引擎&#xff0c;旨在帮助开发者和业务人员在网页端创建、编辑和管理复杂的业务流程和工作流。它提供了一个直观的界面和强大的功能&#xff0c;使得设计和管理工作流变得更加高效和便捷。 官网地址&#xff…...

场外个股期权通道业务是什么意思?

今天带你了解场外个股期权通道业务是什么意思&#xff1f;场外个股期权业务是指在沪深交易所之外进行的个股期权交易。它是一种非标准化的合约&#xff0c;不在交易所内进行交割。 场外个股期权通道业务&#xff0c;是指投资者通过与场外个股期权机构通道签订合约&#xff0c;购…...

分页插件结合collection标签后分页数量不准确的问题

问题1:不使用collection 聚合分页正确 简单列子 T_ATOM_DICT表有 idname1原子12原子23原子34原子45原子56原子6 T_ATOM_DICT_AUDIT_ROUTE表审核记录表有 idaudit1拒绝1通过4拒绝 我要显示那些原子审核了,我把两个表inner join 就是那些原子审核过了 idnameaudit1原子1拒绝…...

git diff 命令

目录标题 [Q&A] git diff 作用常见用法比较工作目录与暂存区比较暂存区与最近一次提交比较工作目录与最近一次提交比较两个具体的提交之间差异 [Q&A] git diff 作用 git diff 用于展示不同版本之间文件内容的变化。 常见用法 比较工作目录与暂存区 显示工作目录中尚…...

Code Review常用术语

CR: Code Review. 请求代码审查。PR&#xff1a; pull request. 拉取请求&#xff0c;给其他项目提交代码。MR&#xff1a; merge request. 合并请求。LGTM&#xff1a; Looks Good To Me.对我来说&#xff0c;还不错。表示认可这次PR&#xff0c;同意merge合并代码到远程仓库。…...

HashMap 源码中的巧妙小技巧

根据容量计算大于容量的最小的哈希表的大小(table的length)&#xff0c;这里的length需要满足length2^n&#xff0c;也就是我们需要根据容量算出最小的n的值 static final int tableSizeFor(int cap) {int n cap - 1;n | n >>> 1;n | n >>> 2;n | n >&g…...

极具吸引力的小程序 UI 风格

极具吸引力的小程序 UI 风格...

数据库 | 试卷五试卷六试卷七

1. 主码不相同&#xff01;相同的话就不能唯一标识非主属性了 2.从关系规范化理论的角度讲&#xff0c;一个只满足 1NF 的关系可能存在的四方面问题 是&#xff1a; 数据冗余度大&#xff0c;插入异常&#xff0c;修改异常&#xff0c;删除异常 3.数据模型的三大要素是什么&…...

网页五子棋对战项目测试(selenium+Junit5)

目录 网页五子棋对战项目介绍 网页五子棋对战测试的思维导图​ 网页五子棋对战的UI自动化测试 测试一&#xff1a;测试注册界面 测试二&#xff1a;测试登陆界面 测试三&#xff1a;测试游戏大厅界面 测试四&#xff1a;测试游戏房间界面以及观战房间界面 测试五&#…...

stable diffusion 局部重绘 reference-only api 接口调试

webUI api payload 插件生成的接口参数不准确&#xff0c;reference-only 的image不是对象&#xff0c;就是不同字符串字段&#xff0c;直接传&#xff0c;不是套image。 综上&#xff0c;那个插件参数不确定&#xff0c;应直接看插件的源码&#xff0c;看它接受什么参数 错误…...

浪潮信息内存故障预警技术再升级 服务器稳定性再获提升

浪潮信息近日对其内存故障智能预警修复技术进行了全面升级&#xff0c;再次取得技术突破。此次升级后&#xff0c;公司服务器的宕机率实现了80%锐降&#xff0c;再次彰显了浪潮信息在服务器技术领域的卓越能力。 浪潮信息全新升级服务器内存故障智能预警修复技术MUPR (Memory …...

JWT整合Gateway实现鉴权(RSA与公私密钥工具类)

一.业务流程 1.使用RSA生成公钥和私钥。私钥保存在授权中心&#xff0c;公钥保存在网关(gateway)和各个信任微服务中。 2.用户请求登录。 3.授权中心进行校验&#xff0c;通过后使用私钥对JWT进行签名加密。并将JWT返回给用户 4.用户携带JWT访问 5.gateway直接通过公钥解密JWT进…...

vue实现全屏screenfull-封装组件

1. 安装依赖 npm install --save screenfull 2. 引用 import screenfull from "screenfull" 3.封装fullScreen/index: <template><div><el-tooltip v-if"!content" effect"dark" :content"fullscreenTips" placement&…...

【LinkedList与链表】

目录 1&#xff0c;ArrayList的缺陷 2&#xff0c;链表 2.1 链表的概念及结构 2.2 链表的实现 2.2.1 无头单向非循环链表实现 3&#xff0c;LinkedList的模拟实现 3.1 无头双向链表实现 4&#xff0c;LinkedList的使用 4.1 什么是LinkedList 4.2 LinkedList的使用 5…...

为数据安全护航,袋鼠云在数据分类分级上的探索实践

在大数据时代&#xff0c;数据具有多源异构的特性&#xff0c;且价值各异&#xff0c;企业需依据数据的重要性、价值指数等予以区分&#xff0c;以利采取不同的数据保护举措&#xff0c;避免数据泄露。故而&#xff0c;数据分类分级管理属于数据安全保护中极为重要的环节之一。…...

Spring 循环依赖详解

Spring 循环依赖详解 1. 引言 在Spring框架中&#xff0c;依赖注入&#xff08;Dependency Injection, DI&#xff09;是其核心功能之一&#xff0c;它通过配置来管理对象的创建和它们之间的依赖关系。然而&#xff0c;在复杂的应用程序中&#xff0c;开发人员有时会遇到循环…...

项目经理真的不能太“拧巴”

前期的项目经理经常是“拧巴”的&#xff0c;就是心里纠结、思路混乱、行动迟缓。对于每天需要面对各种挑战、协调各方资源、确保项目顺利进行的项目经理来说&#xff0c;这种“拧巴”不仅会让自己陷入内耗中&#xff0c;还会让项目出大问题。 项目计划总是改来改去&#xff0…...

企业如何选择合适的CRM工具?除Salesforce之外的10大主流选择

对比salesforce&#xff0c;其他10款优秀CRM&#xff1a;纷享销客CRM、Zoho CRM、腾讯企点、销售易、企业微信 (WeCom)、Odoo CR、OroCRM、金蝶、用友CRM、EspoCRM 虽然Salesforce以其全面的功能和强大的市场占有率在海外收获了许多客户&#xff0c;但Salesforce在国内市场的接…...

每年1-1.2万人毕业,男女比例约3:1,测绘工程的就业率如何

测绘工程&#xff0c;一个让人闻风丧胆的理科专业&#xff0c;虎扑评分4.2&#xff1a; 干过测绘的&#xff0c;苦不苦只有大家心里知道&#xff0c;带大家来感受一下&#xff0c;兄弟们的精神状态都十分美妙&#xff1a; 测绘专业到底是什么情况&#xff1f; PS.测绘分为本科…...

JimuReport 积木报表 v1.7.6 版本发布,免费的低代码报表

项目介绍 一款免费的数据可视化报表工具&#xff0c;含报表和大屏设计&#xff0c;像搭建积木一样在线设计报表&#xff01;功能涵盖&#xff0c;数据报表、打印设计、图表报表、大屏设计等&#xff01; Web 版报表设计器&#xff0c;类似于excel操作风格&#xff0c;通过拖拽完…...

网站分析软件/网站seo方案案例

计算机名(完整的计算机名称)和用户名是不同的,你要是想用自己的名字上登陆,打开控制面版里的用户帐号,就可以改了,要改administrator名称开始&#xff0d;&#xff0d;控制面板&#xff0d;&#xff0d;管理工具&#xff0d;&#xff0d;本地安全策略&#xff0c;在其中的本地策…...

网站制作小常识/百度云网盘资源链接

前言程序员平时和mysql打交道一定不少&#xff0c;可以说每天都有接触到&#xff0c;但是mysql一张表到底能存多少数据呢&#xff1f;计算根据是什么呢&#xff1f;接下来咱们逐一探讨知识准备数据页在操作系统中&#xff0c;我们知道为了跟磁盘交互&#xff0c;内存也是分页的…...

网络公司网站建设服务/网站设计制作

阅读目录 vue2 broadcast和dispatch的理解回到顶部vue2 broadcast和dispatch的理解 /*broadcast 事件广播param {componentName} 组件名称param {eventName} 事件名param {params} 参数遍历寻找所有子孙组件&#xff0c;假如子孙组件和componentName组件名称相同的话&#xff0…...

b2c网站密码不能为空/百度 seo 工具

Shinobu loves trip 题意&#xff1a; 就是有p个城市&#xff0c;编号0~p-1。然后有n个旅行计划&#xff0c;每个旅行计划有个初始点&#xff0c;和旅行的天数。然后小A旅行的的点顺序是&#xff0c;每次乘以a&#xff0c;当然同时对p取模。然后有m次查询&#xff0c;每次问你…...

江西省建设协会网站/湖南网站推广

Windows Server 2008这十大亮点是&#xff1a; 1、虚拟化 尽管在Server 2008正式发布之前不会出现虚拟化&#xff0c;但微软Hyper-V的虚拟化技术绝对是一个亮点&#xff0c;大型企业中已经有75%应用了虚拟化技术&#xff0c;用户利用虚拟化技术可以在完全不影响工作的前提下--一…...

密云住房和城乡建设委员会门户网站/日本shopify独立站

1、线程池简介&#xff1a; 多线程技术主要解决处理器单元内多个线程执行的问题&#xff0c;它可以显著减少处理器单元的闲置时间&#xff0c;增加处理器单元的吞吐能力。 假设一个服务器完成一项任务所需时间为&#xff1a;T1 创建线程时间&#xff0c;T2 在线程中执…...