-
2020-12-31 14:00:38
参考文章
我的R语言版本是3.6.1
安装分析过程需要用的的R包DESeq2 差异表达分析
BiocManager::install("DESeq2")
使用library(DESeq2)加载的时候遇到报错 :载入了名字空间‘rlang’ 0.4.0,但需要的是>= 0.4.2 解决办法:将rlang包手动删除,rlang所在的路径是\R-3.6.1\library\rlang。然后使用命令install.packages("rlang")重新安装就可以了 - pasilla 使用这个R包中的数据
BiocManager::install("pasilla")
读入数据
library(pasilla)
pasCts
"pasilla_gene_counts.tsv",
package="pasilla",
mustWork = T)
pasCts
pasAnno
"pasilla_sample_annotation.csv",
package="pasilla",
mustWork=T)
pasAnno
df
cts
head(cts)
coldata
head(coldata)
coldata
rownames(coldata)
all(rownames(coldata) %in% colnames(cts))
cts
all(rownames(coldata) == colnames(cts))
获得了两个数据集
> coldata
condition type
treated1 treated single-read
treated2 treated paired-end
treated3 treated paired-end
untreated1 untreated single-read
untreated2 untreated single-read
untreated3 untreated paired-end
untreated4 untreated paired-end
> head(cts)
treated1 treated2 treated3 untreated1 untreated2 untreated3
FBgn0000003 0 0 1 0 0 0
FBgn0000008 140 88 70 92 161 76
FBgn0000014 4 0 0 5 1 0
FBgn0000015 1 0 0 0 2 1
FBgn0000017 6205 3072 3334 4664 8714 3564
FBgn0000018 722 299 308 583 761 245
untreated4
FBgn0000003 0
FBgn0000008 70
FBgn0000014 0
FBgn0000015 2
FBgn0000017 3150
FBgn0000018 310cts是表达矩阵
coldata是用来指定样本分组的数据集
DESeq2差异表达分析
library(DESeq2)
dds
colData = coldata,
design= ~ condition)
dds
keep=10
dds
dds
res
火山图
resdata
as.data.frame(counts(dds,normalized=T)),
by="row.names",sort=F)
DEG
logFC_cutoff
logFC_cutoff
DEG$changelogFC_cutoff,
ifelse(DEG$log2FoldChange>logFC_cutoff,"UP","DOWN"),
"NOT"))
this_title
'\nThe number of up gene is ',nrow(DEG[DEG$change =='UP',]) ,
'\nThe number of down gene is ',nrow(DEG[DEG$change =='DOWN',]))
DEG
library(ggplot2)
ggplot(data=DEG,aes(x=log2FoldChange,y=-log10(pvalue),color=change))+
geom_point(alpha=0.4,size=1.75)+
labs(x="log2 fold change")+ ylab("-log10 pvalue")+
ggtitle(this_title)+theme_bw(base_size = 20)+
theme(plot.title = element_text(size=15,hjust=0.5))+
scale_color_manual(values=c('blue','black','red'))
绘制火山图学到的新的ggplot2知识点
theme_bw(base_size=20)改变了图片中整体字体的大小
theme(plot.title = element_text(size=15,hjust=0.5))将绘图标题调整到了中间
中国加油!武汉加油!
更多相关内容 -
哈佛大学——差异表达分析(九)DESeq2步骤描述
2020-11-06 14:59:32理解使用DESeq2差异表达分析过程中的不同步骤 探讨离散度在差异表达分析中的重要性,并利用离散度值的图来探讨NB模型的假设 DESeq2差异基因表达分析流程 之前,我们使用适当的设计公式创建了DESeq2对象,并使用两行...文章目录
学习目标
- 理解使用DESeq2差异表达分析过程中的不同步骤
- 探讨离散度在差异表达分析中的重要性,并利用离散度值的图来探讨NB模型的假设
DESeq2差异基因表达分析流程
之前,我们使用适当的设计公式创建了DESeq2对象,并使用两行代码运行DESeq2:
# DO NOT RUN ## Create DESeq2Dataset object dds <- DESeqDataSetFromTximport(txi, colData = meta, design = ~ sampletype) ## Run analysis dds <- DESeq(dds)
我们用DESeq2完成了差异基因表达分析的整个工作流程。分析中的步骤输出如下:
我们将详细查看每一个步骤,以更好地理解DESeq2是如何执行统计分析的,以及我们应该检查哪些度量来探究我们的分析质量。第一步:估计大小因子
差异表达分析的第一步是估计大小因子,这正是我们已经对原始计数进行归一化所做的。
当执行差异表达分析时,DESeq2将自动估计大小因子。但是,如果你已经使用estimateSizeFactors()
生成了大小因子,就像我们前面所做的那样,那么DESeq2将使用这些值。
为了归一化计数数据,DESeq2使用先前在“计数归一化”课上讨论的比值中位数方法计算每个样本的大小因子。
MOV10 DE分析:检查大小因子
让我们快速看一下每个样本的大小因子值:## Check the size factors sizeFactors(dds) Irrel_kd_1 Irrel_kd_2 Irrel_kd_3 1.1150371 0.9606366 0.7493552 Mov10_kd_2 Mov10_kd_3 Mov10_oe_1 1.5634128 0.9359082 1.2257749 Mov10_oe_2 Mov10_oe_3 1.1406863 0.6541689
这些数字应该与我们在运行函数
estimateSizeFactors(dds)
时最初生成的数字相同。看看每个样本的读段总数:## Total number of raw counts per sample colSums(counts(dds)) Irrel_kd_1 Irrel_kd_2 Irrel_kd_3 31160785 26504972 20498243 Mov10_kd_2 Mov10_kd_3 Mov10_oe_1 45300696 26745860 32062221 Mov10_oe_2 Mov10_oe_3 30025690 17285401
这些数字与大小因子的关系是什么?
我们看到较大的大小因子对应于序列深度较高的样本,这是有意义的,因为要生成归一化的计数,我们需要将计数除以尺寸因子。这就解释了样品间测序深度的差异。
现在看一看归一化后的总深度,使用以下代码:
## Total number of normalized counts per sample colSums(counts(dds, normalized = TRUE)) Irrel_kd_1 Irrel_kd_2 Irrel_kd_3 27945962 27591050 27354509 Mov10_kd_2 Mov10_kd_3 Mov10_oe_1 28975519 28577441 26156696 Mov10_oe_2 Mov10_oe_3 26322477 26423452
样本间的值如何与每个样本的总计数进行比较?
你可能期望经过归一化后,各个样本的计数是完全相同的。然而,在归一化过程中,DESeq2也解释了RNA的组成。通过使用大小因子的中位数比值,DESeq2不应该偏向于由几个DE基因吸收的大量计数;然而,这可能导致大小因子与仅仅根据测序深度预期的大小因子有很大的不同。第二步:估计基因离散(gene-wise dispersion)
差异表达分析的下一步是对基因离散的估计。在讨论细节之前,我们应该对DESeq2中离散指的是什么有一个很好的概念。
在RNA-seq计数数据中,我们知道:- 为了确定差异表达基因,考虑到组内(重复样本之间)的差异,我们需要识别组间平均表达显著不同的基因。
- 组内(重复样本之间)的变异需要考虑到方差随平均表达值增加的事实,如下图所示(每个黑点是一个基因)。
为了准确地识别DE基因,DESeq2需要解释方差与均值之间的关系。 我们不希望所有的DE基因都是低计数的基因,因为低表达基因的方差更低。
DESeq2没有使用方差作为数据中变异的度量衡(因为变异与基因表达水平相关),而是使用离散度(dispersion) 作为变异度量衡,它解释了基因的变异和平均表达水平。离散度的计算方法为Var = μ + α*μ^2
,其中:α
= dispersion,Var
= variance, 和μ
= mean,有以下关系:对离散的影响 方差增加 离散增加 平均表达增加 离散减少 对于具有中等到高计数值的基因,离散度的平方根将等于变异系数( \sqrtα=\frac{σ}{μ} )。因此,0.01的离散度意味着在生物重复中围绕平均数预期的10%的变异。具有相同平均数的基因的离散度估计将仅基于其方差而有所不同。因此,离散度估计(dispersion estimates)反映了给定平均值的基因表达的方差。在下面的图中,每个黑点都是一个基因,离散度与每个基因的平均表达量(组内重复)作对比。
离散和我们的模型有什么关系?
为了精确地建立测序计数模型,我们需要对每个基因的组内变异(同一样本组重复之间的变异)做出准确的估计。由于每组只有少量(3-6)重复,对每个基因变异的估计往往是不可靠的。
为了解决这个问题,DESeq2共享基因间的信息,通过一种叫做“收缩(shrinkage)”的方法,基于基因的平均表达水平,产生更准确的变异估计。DESeq2假设具有相似表达水平的基因应该具有相似的离散度。分别估计每个基因的离散度:
DESeq2根据基因的表达水平(组内重复的平均计数)和方差估计每个基因的离散度。第三步:拟合曲线到基因的分散估计
工作流程的下一步是拟合曲线到基因分散估计。拟合数据曲线背后的想法是,不同的基因会有不同程度的生物变异,但是,在所有的基因中,会有一个合理的分散估计分布。
下图中这条曲线以红线表示,它绘制了给定表达强度基因的预期离散的估计值。每个黑点都是一个基因,具有相关的平均表达水平和离散度的最大似然估计(MLE)(步骤1)。
第四步:将基因离散估计值向曲线预测值收缩
工作流程的下一步是将基因离散估计值向曲线预测值收缩。
当样本量较小时,曲线可以更准确地识别差异表达的基因,每个基因的收缩强度取决于:- 基因的离散度距离红色曲线的距离
- 样本量(样本量越大,则收缩的越少)
这种收缩方法对于减少差异表达分析中的假阳性尤其重要。 具有低离散度估计数的基因向曲线收缩,并且更精确、更大的收缩值被输出用于模型拟合和差异表达检验。这些缩小后的估计值代表了组内的变异,需要确定是否组间的基因表达有显著差异。
稍微高于曲线的离散估计也向曲线收缩,以便更好地估计离散;然而,具有极高离散值的基因则不收缩。这是由于该基因可能没有遵循建模假设,并且由于生物学或技术原因比其他基因具有更高的变异性[1]。向曲线方向收缩估计值可能会导致假阳性,所以这些值不会被收缩。这些基因被下面的蓝色圆圈所包围。
这是一个很好的绘图,可以确保你的数据很好的拟合DESeq2模型。你希望你的数据通常散布在曲线周围,随着平均表达水平的增加,离散度逐渐减小。如果你看到一片云(cloud)或不同的形状,那么你可能想要更深入探索你的数据,看看你是否有污染(线粒体等)或离群样本。请注意,对于任何低自由度的实验,在plotdispest()
图中整个平均值范围的收缩程度。
令人不安的离散曲线(worrisome dispersion plots) 的例子如下:
下面的图显示了分散值的云,它们通常不遵循曲线。这将令人担忧,并表明数据与模型不符。
下一张图显示,离散度值先减小,然后随着表达值的增大而增大。根据我们的预期,较大的平均表达式值不应该有较大的离散度——我们希望离散度随着均值的增加而减少。这表明高表达基因的变异比预期的要少。这也表明在我们的分析中可能存在一个离群样本或污染。
MOV10 DE分析:探讨离散估计和评估模型拟合
让我们来看看我们的MOV10数据的离散估计:
## Plot dispersion estimates plotDispEsts(dds)
由于我们的样本量较小,对于许多基因我们看到了相当大的收缩。你认为我们的数据能很好地拟合这个模型吗?
我们看到随着平均表达的增加离散度很好地降低了,这很好。我们还可以看到离散估计通常围绕曲线,这也是预期的。总的来说,这个图看起来不错。我们确实看到了强烈的收缩,这可能是由于我们的一个样本组只有两个重复的事实。我们拥有的重复越多,应用于离散估计的收缩就越少,可以识别的DE基因就越多。为了更好地估计变异,我们一般建议每个条件至少有4个生物重复。
Exercise
Given the dispersion plot below, would you have any concerns regarding the fit of your data to the model?
- If not, what aspects of the plot makes you feel confident about your data?
- If so, what are your concerns? What would you do to address them?
Answer
# Ans: Yes, there are some concerns. The data does not scatter around the fitted curve, and the distribution of normalized counts are restricted in a small range. I would double check QC of my samples to make sure that there are no contamination or outliers.
-
生信入门(一)——DESeq2差异基因分析
2021-09-17 10:10:36文章目录生信(一)——DESeq2差异基因分析一、差异基因分析原理二、代码实现1、前提:安装DESeq2包2.代码实现三、小结 记录学习过程,共勉。 一、差异基因分析原理 详见 二、代码实现 1、前提:安装DESeq2包 2....生信(一)——DESeq2差异基因分析
记录学习过程,共勉。一、差异基因分析原理
二、代码实现
1、前提:安装DESeq2包
2.代码实现
setwd("D:\\RData");#设置编码位置 rt<-read.table("GSE149549_mRNA_Expression_Summary.txt",head=TRUE,row.names = 1) head(rt) #准备 rt<-as.matrix(rt) #将数据转换为矩阵格式 condition<-factor(c(rep("case",2),rep("control",3)),levels = c("case","control")) ## 设置分组信息,建立环境(5个样本,2组处理) condition coldata<-data.frame(row.names=colnames(rt),condition) #剔除无意义数据(不存在的基因read) #nrow(rt) i=1 while(i<=nrow(rt)){ if(mean(rt[i,])<10) rt<-rt[-i,] i<-i+1; }; #nrow(rt) coldata #展示coldata内容 condition #展示环境 #构建dds矩阵 dds<-DESeqDataSetFromMatrix(rt,coldata,design=~condition) #标准化,对原始数据进行normalize dds<-DESeq(dds) dds resultsNames(dds) #使用deseq2包中的result()函数提取deseq2差异分析结果 res=results(dds,contrast = c("condition","case","control")) head(res) summary(res) write.csv(res,file = "results.csv") #分析结果可视化与导出 table(res$padj<0.05) plotMA(res,ylim=c(-2,2)) mcols(res,use.names = TRUE) #提取差异基因 res <- res[order(res$padj),] resdata <-merge(as.data.frame(res),as.data.frame(counts(dds,normalize=TRUE)),by="row.names",sort=FALSE) deseq_res<-data.frame(resdata) up_diff_result<-subset(deseq_res,padj < 0.05 & (log2FoldChange > 1)) #提取上调差异表达基因 down_diff_result<-subset(deseq_res,padj < 0.05 & (log2FoldChange < -1)) #提取下调差异表达基因 write.csv(up_diff_result,"up_case_VS_control_diff_results.csv") #输出上调基因 write.csv(down_diff_result,"down_case_VS_control_diff_results.csv") #输出下调基因 #plot(res$log2FoldChange,res$padj)#绘制火山图
注:DESeq2的表达数据必须是read counts,不能使用标准化后的FPKM 或TPM
由图可见,表达量(基因的样本平均count)数值越大,离散度越小,差异基因倍数越少#提取两种算法标准化后的表达量(VST和rlog,大样本通常使用VST,推荐使用) vsd<-vst(dds,blind = FALSE) rld<-rlog(dds,blind = FALSE) #对照使用 log 2(n+1)的标准化方法 ntd<-normTransform(dds) head(assay(vsd),3) head(assay(rld),3) head(assay(ntd),3)
#导出标准化后的数据(可用于GSEA等下游分析) write.csv(as.data.frame(assay(vsd)),file="count_transformation_VST.csv") write.csv(as.data.frame(assay(rld)),file="count_transformation_rlog.csv") #绘制离散度散点图,离群值未做收缩 plotDispEsts(dds)
#对标准化后的数据进行可视化处理 #安装vsn包 #library(BiocManager) #BiocManager::install("vsn") #load package #library("vsn") #library(ggplot2) #library(cowplot) ntdl<-meanSdPlot(assay(ntd)) vsdl<-meanSdPlot(assay(vsd)) rldl<-meanSdPlot(assay(rld)) p1<-ntdl$gg+ggtitle("log2(n+1)") p2<-vsdl$gg+ggtitle("VST") p3<-rldl$gg+ggtitle("rlog") plot_grid(p1,p2,p3,ncol = 3)
可见使用log2(n+1)标准化方法在低counts区域标准差较大,相反,rlog算法较大;而使用VST标准化后数据的标准差比较稳定;注意,虽然VST方法看起来效果最好,但图中的纵轴为方差的平方根(标准差),需要注意可能为由实验处理产生的真实方差。#使用标准化后平均表达量top100的基因绘制热图 library("pheatmap") select<-order(rowMeans(counts(dds,normalized=TRUE)),decreasing = TRUE)[1:100] colData(dds) df<-as.data.frame(colData(dds)[,c("condition","sizeFactor")]) mycolors=colorRampPalette(c("orange","white","purple"))(100) pheatmap(assay(vsd)[select,],cluster_rows=FALSE,show_rownames=FALSE,border_color=NA,color=mycolors,cluster_cols=FALSE,annotation_col=df)
#绘制样本距离聚类热图 #计算样本距离矩阵 sampleDists<-dist(t(assay(vsd))) #由向量转成矩阵 sampleDistMatrix<-as.matrix(sampleDists) rownames(sampleDistMatrix)<-paste(vsd$condition,vsd$sizeFactor,seq="-") colnames(sampleDistMatrix)<-NULL library("RColorBrewer") colors<-colorRampPalette(rev(brewer.pal(8,"YlGnBu")))(255) pheatmap(sampleDistMatrix,clustering_distance_rows = sampleDists,clustering_distance_cols = sampleDists,col=colors)
三、小结
刚入门,继续学习,加油!
-
DEseq2 差异分析基本原理
2022-05-22 18:02:33DEseq简介 寻找组间显著表达变化的基因,以解释基因表达水平的变化对生物功能的变化最直接的办法就行进行转录...2. DEseq2的差异分析原理 2.1 统计模型:负二项分布 所谓的差异分析实际上是指通过假设检验来判断两组数DEseq简介
寻找组间显著表达变化的基因,以解释基因表达水平的变化对生物功能的变化最直接的办法就行进行转录组测序和定量。那如何从不同组定量的转录组寻找到那些显著差异的基因呢?DESeq 就是来解决这个问题的,它主要使用负二项分布的模型来进行差异分析。DESeq2是DEseq的升级版,但是DEseq2只适用于有生物学重复的试验,而DEseq既可以做有生物学重复也可以做无重复(或部分重复的)试验。
2. DEseq2的差异分析原理
2.1 统计模型:负二项分布
所谓的差异分析实际上是指通过假设检验来判断两组数据是否存在显著差异,有参数检验(总体分布已知)和非参数检验(总体分布未知)两种方式,显然,对于分布已知的数据,运用参数检验的结果会更准确些。因此在进行表达差异分析的时候,我们会假定表达数据符合某一个特定的分布,然后在使用参数检验的方式进行假设检验。
那么,表达数据(read counts)应该是一个什么样的分布呢?首先read counts本质是数目值,是一个离散的非零整数,其分布应该是离散型分布,其次,对于测序数据往往是n很大,p很小的分布,因此学术界常用泊松分布和负二项分布来描述。事实上,早期确实有人使用泊松分布来进行差异分析,不过后续发现基因的read counts的均值和方差并不是相等的(如下图示),这并不符合泊松分布均值和方差是相等的规律,因此发展至今,负二项分布成为差异分析的主要分布模型。2.2 数据标准化
理论上知道了数据的已知分布(负二项分布),就可以直接进行差异分析了。但对于测序分析得到的read counts需要事先标准化处理,才能用于差异分析。标准化处理主要为了解决两个问题。
1) 文库大小造成的两组数据之间存在差异。
2) 文库组成造成的两组数据基因的比例存在差异具体的标准化过程如下:
1)计算所有样本的同一基因的对数均值,然后去除对数均值为Inf的值(read count为0的)。取对数的目的是减弱异常值的影响,使得数据分布更加平滑; 剔除reads数为0的基因是为了留下稳定表达的基因。
2) 使用对数矩阵分别减去对应基因的对数均值,得到一个新的矩阵。
3) 对于上个步骤得到的新的矩阵,计算每个样本的中位数(均值比较容易受异常值的影响,但中位数对异常值则不敏感) ,然后使用该中位数取真数,得到的结果作为该样本的标准化因子。
4) 原始reads数矩阵分别除以标准化因子得到最终标准化的矩阵
得到的标准化的表达矩阵就可以使用负二项分布的统计模型进行假设检验了。 -
bulk-rnaseq:使用kallisto和DESeq2处理大量RNASeq样品的工作流程
2021-02-24 02:42:03简单的工作流程即可量化基因水平的RNA丰度并检测大量RNAseq样品中的差异表达基因(DEG)。 管道使用kallisto量化笔录级别的丰度,并使用DESeq2标准化计数和检测DEG。 安装 安装Anaconda或Miniconda,然后conda ... -
edgeR-DESeq2分析RNA-seq差异表达
2020-12-19 11:23:23,"CC_1","CC_2","CC_3")>names(mydata)[7:12]sampleNames>head(mydata)GeneidChrStartEndStrandLengthCA_1CA_2CA_3CC_1CC_2CC_31gene1314NW_139421.112571745+4890000002gene1315NW_139421.121153452+13380000... -
DESeq2:检测差异表达基因
2020-01-05 18:43:25分析来自RNA-seq的计数数据,基因任务是检测差异表达基因。 也适用于其他分析:ChIP-Seq、HiC、shRNA筛选。 快速开始 dds = DESeqDataFromMatrix(countData = cts, colData = colData, design = ... -
R语言 DESeq2 基因差异分析 简单备注版 火山图
2021-09-15 09:46:092)) #提取下调差异表达基因 down_diff_result(deseq_res,padj (log2FoldChange < -2)) #输出上调基因 write.csv(up_diff_result,"linbaUP.csv") #输出下调基因 write.csv(down_diff_result,"linbaDOWN.csv") #输出总... -
第二次RNA-seq实战总结(3)-用DESeq2进行基因表达差异分析
2021-02-11 08:54:47DESeq2是一个用于分析基因表达差异的R包,具体操作要在R语言中运行1.R语言安装DESeq2>source("https://bioconductor.org/biocLite.R")>biocLite("DESeq2")2.载入基因表达量文件,添加列名>setwd("C:\\Users... -
利用DESeq2包及clusterProfiler包进行差异表达分析及GO分析
2021-08-27 13:59:13DESeq2包进行差异分析 a<-read.table(file ="GEO13067.txt", sep="\t", header = T) ##读入表达矩阵 a<-a[,-1] rownames(a)<-a[,1] a<-as.data.frame(a) a<-t(a) a[1:3,1:3] ##整理成数据框,行名... -
简单使用DESeq2/EdgeR做差异分析
2018-11-09 21:33:00简单使用DESeq2/EdgeR做差异...DESeq2和EdgeR都可用于做基因差异表达分析,主要也是用于RNA-Seq数据,同样也可以处理类似的ChIP-Seq,shRNA以及质谱数据。 这两个都属于R包,其相同点在于都是对count data数据进行处... -
使用DESeq2进行两组间的差异分析
2018-09-26 19:58:00欢迎关注”生信修炼手册”!DESeq2 接受raw count的定量表格,然后根据样本分组进行差异分析,具体步骤如下1. 读取数据读取基因的表达量表格和样本的分组信息两个文件,其中表达量... -
miRNA seq差异表达分析练习(二)——DESeq差异表达分析
2020-04-05 21:02:06接上一篇《miRNA seq差异表达分析练习(一)——GEO样本数据下载》,下载的数据保存在文件夹miRNA_seq中 有60个txt.gz文件 从后缀名可以看出,这些都是压缩文件,直接打开是乱码的,解压后打开就可以看到具体... -
基因差异表达分析——基于RSEM对比,DESeq2操作实例
2020-02-18 22:30:46使用DESeq2的两点要求: DEseq2要求输入数据是由整数组成的矩阵。 DESeq2要求矩阵是没有标准化的。 下面是基本流程: 一、准备工作: 确定工作路径,以确保上传文件时无误 getwd() #显示当前工作目录 setwd() #... -
采用DESeq2对表达量进行PCA和聚类分析
2018-09-25 19:12:00欢迎关注”生信修炼手册”!得到基因/转录本的表达量之后,通常会通过以下三种类型的图表来检验和分析生物学样本和实验设计间关系。1. 样本的聚类树利用所有样本的表达量数据,对样本进行聚类。... -
RNA-seq流程学习笔记(15)-使用DESeq2进行差异基因分析
2020-06-23 14:15:54转录组入门7-用DESeq2进行差异表达分析 Analyzing RNA-seq data with DESeq2 1.关于DESeq2的概述 A basic task in the analysis of count data from RNA-seq is the detection of differentially expressed genes. ... -
DESeq2包分析差异表达基因
2021-10-20 16:38:55DESeq2:基于负二项式模型的高通量测序数据基因差异表达分析。 1. 读入基因表达谱数据 # if (!requireNamespace("BiocManager", quietly = TRUE)) # install.packages("BiocManager") # # BiocManager::install(... -
差异分析流程(四)DESeq2
2019-12-19 16:40:30提取差异分析结果 参考链接:https://www.plob.org/article/9971.html #加载包和数据 if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager") if (!require("DESeq2", quietly = ... -
哈佛大学——差异表达分析(二)R语言复习
2020-10-29 15:30:57使用DESeq2对计数数据进行差异表达分析,获得差异显著的基因列表 分析结果可视化 对差异表达基因列表进行功能分析 R语言复习Q&A 学习目标 描述R使用的各种数据类型和数据结构(包括tibbles) 使用R中的函数并... -
哈佛大学——差异表达分析(十二)可视化
2020-11-07 20:02:18文章目录学习目标结果可视化绘制显著DE基因使用DESeq2 `plotCounts()`绘制单个基因的表达利用ggplot2绘制单个基因的表达使用ggplot2绘制多个基因(例如前20个)热图火山图 学习目标 使用数据可视化探索表达数据 使用... -
edgeR/limma/DESeq2差异基因分析→ggplot2作火山图→biomaRt转换ID并注释
2021-02-26 15:32:282 标准化(normalization):DESeq、TMM等 为什么要标准化? 消除文库大小不同,测序深度对差异分析结果的影响 怎样标准化? 找到一个能反映文库大小的因子,利用这个因子对rawdata进行标准化 3 根据模型检验求p ... -
DESeq2差异基因分析和批次效应移除
2018-07-26 15:40:35这种计算方式的缺点是容易受到极高表达且在不同样品中存在差异表达的基因的影响;这些基因的打开或关闭会影响到细胞中总的分子数目,可能导致这些基因标准化之后就不存在表达差异了,而原本没有差异... -
转录组差异表达分析和火山图可视化
2020-07-30 13:44:33利用R包DEseq2进行差异表达分析和可视化 count数矩阵 在Linux下,通过HISAT2 对下载的GSE数据进行比对,FeatureCounts软件进行基因水平定量,得到count数矩阵。之后便可以载入R语言中进行差异分析。 差异分析 第... -
RNA 3. SCI 文章中基于TCGA 差异表达基因之 DESeq2
2022-02-16 21:59:56前言上期我们介绍了基于 limma 来做差异表达基因,那么这期来讲一下 DESeq2,那么这两款软件有什么区别吗?区别主要在于一个是计算芯片探针给出来的结果,而 DESeq2 是基于NGS 测序结果中 Read counts 来计算差异... -
RNA_seq(1)植物转录组实战(下)之DESeq2进行差异基因分析
2018-08-22 23:58:07四、DESeq2差异基因分析 获得reads-counts之后,我们就可以开展差异基因分析了。我们以subread中的featureCounts工具得到的counts_id.txt为例,来进行后续的差异基因分析。 目前常见的差异基因分析工具有DESeq2、... -
基因差异表达分析 cummeRbund 和DESeq, edgeR, limma的区别是什么?
2020-12-22 11:08:03我看这个回答没什么赞,更新一下。...2)结果不一样也很自然。分析方法不一样,结果不可能完全一致。四款软件都是R bioconductor的包。=====cummeRbund,有参转录组tuxedo组件之一。tuxedo=tophat+cufflinks+cummeRbu...