差异基因散点图绘制教程 | 今天画图,再一次翻出以前的教程代码,也许这就是记录的意义吧!

文摘   2024-11-01 17:07   云南  

「一边学习,一边总结,一边分享!」

由于微信改版,一直有同学反映。存在长时间接收不到公众号的推文。那么请跟随以下步骤,将「小杜的生信筆記」设置为「星标」,不错过每一条推文教程。

欢迎关注《小杜的生信笔记》!!

如何加入社群

小杜的生信笔记「仅有微信社群」

「1. QQ群」:思来想去、不再成立QQ群。

「2. 微信群」:付费社群。添加小杜好友,加友请知:加友须知!!,加入社群请查看小杜生笔记付费加友入群声明

入群声明

「3. 小杜个人微信」:若你有好的教程或想法,可添加小杜个人微信。值得注意的是,「小杜个人微信并不支持免费咨询长时间咨询」,但支持小问题2-3个免费咨询。

本期教程

「小杜的生信笔记」,自2021年11月开始做的知识分享,主要内容是「R语言绘图教程」「转录组上游分析」「转录组下游分析」等内容。凡事在社群同学,可免费获得自2021年11月份至今全部教程,教程配备事例数据和相关代码,我们会持续更新中。

往期教程部分内容

绘图教程

导入所需R包

if (!require('ggplot2')) install.packages('ggplot2'); library('ggplot2')
if (!require('DESeq2')) install.packages('DESeq2'); library('DESeq2')
if (!require('biomaRt')) install.packages('biomaRt'); library('biomaRt')
if (!require('GEOquery')) install.packages('GEOquery'); library('GEOquery')
if (!require('vsn')) install.packages('vsn'); library('vsn')
if (!require('pheatmap')) install.packages('pheatmap'); library('pheatmap')

导入数据

cts <- read.csv("Input.data.csv",header = T, row.names = 1)

差异分析

##'@分组
sample_type = gsub(".*P7ma","Quiescent",gsub(".*P6ma","Cycling",colnames(cts)));
coldata = data.frame(row.names=colnames(cts), phenotype = sample_type );

#'@DESeq2差异分析
ddsMF <- DESeqDataSetFromMatrix(countData = cts, colData = coldata, design = ~ phenotype)
ddsMF <- DESeq(ddsMF)
resultsNames(ddsMF)

#'get normalized counts'@标准化数据
nds <- DESeqTransform( SummarizedExperiment(log2(counts(ddsMF, normalized=TRUE) + 1), colData=colData(ddsMF)) ) # this gives log2(norm_cts + 1)
vsd <- vst(ddsMF, blind=FALSE) # variance stabilization

创建data.frame数据矩阵

quiescent = rownames(coldata)[coldata$phenotype=="Quiescent"]
cycling = rownames(coldata)[coldata$phenotype=="Cycling"]
data_cts_mets_avg = data.frame("quiescent"=rowMeans(assay(vsd)[, quiescent],na.rm=T),
"cycling"=rowMeans(assay(vsd)[, cycling],na.rm=T))

绘图

##'@显著性差异基因
upCQ = resCQ[!is.na(resCQ$padj) & resCQ$padj < 0.1 & resCQ$log2FoldChange > 1,]
dwCQ = resCQ[!is.na(resCQ$padj) & resCQ$padj < 0.1 & resCQ$log2FoldChange < -1,]
dim(upCQ)
dim(dwCQ)

plot(data_cts_mets_avg$quiescent, data_cts_mets_avg$cycling, pch=20,
xlab="mRNA expression quiescent cells (Normalized counts)",
ylab="mRNA expression cycling cells (Normalized counts)",
cex.lab=1.3,col=rgb(0.6,0.6,0.6,0.5));
abline(0,1,lty=2,col="black");
points(data_cts_mets_avg[rownames(upCQ),"quiescent"], data_cts_mets_avg[rownames(upCQ),"cycling"],pch=20,col=colors()[c(35)])
points(data_cts_mets_avg[rownames(dwCQ),"quiescent"], data_cts_mets_avg[rownames(dwCQ),"cycling"],pch=20,col=colors()[c(125)])
legend("topleft",legend=c("Up in Cycling","Down in Cycling"),col=colors()[c(35,125)],pch=20,inset=0.01,bty="n",cex=1.2)

若我们的教程对你有所帮助,请点赞+收藏+转发,这是对我们最大的支持。

往期部分文章

「1. 最全WGCNA教程(替换数据即可出全部结果与图形)」


「2. 精美图形绘制教程」

「3. 转录组分析教程」

「4. 转录组下游分析」

「小杜的生信筆記」 ,主要发表或收录生物信息学教程,以及基于R分析和可视化(包括数据分析,图形绘制等);分享感兴趣的文献和学习资料!!

小杜的生信筆記
小杜的生信筆記,生信小白,初来乍到请多指教。 主要学习分享,转录组数据分析,基于R语言数据分析和绘制图片等,以及相关文献的分享。
 最新文章