先介绍一下原始数据:
该数据最开始是一套从NCBI下载的基因芯片数据,数据编号为GSE29272
发表该套数据的文章名字为:Affymetrix gene expression array data for cardia and non-cardia gastric cancer samples
该初始数据的下载网址为:https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE29272
这套数据的基本信息都可以在上面的网址中查看到,小编在下载之后又对这一套数据进行了一定的预处理,然后又对处理过的数据进行了差异表达基因的筛选。从中筛选到的具有明显表达水平差异性的数据作为本次绘图的原始数据。这些数据来自于共168个样本的13个基因探针,在文章的最后会提供给需要的你。

再介绍一下背景:
在做完差异表达基因的筛选之后,小编对样本进行了谱系聚类,但是聚类结果出了一点小问题,

本来应该聚类成为两个大类(Normal、Tumor)的样本,在最右边又单独出现了一个小类。虽然这个小类只有六个样本的大小,而且也是和Tumor分在一支上,但是!但是!身为一个完美主义者,这个根本不能忍啊!我就开始了使用R语言的探索过程……

再介绍一下背景:
在做完差异表达基因的筛选之后,小编对样本进行了谱系聚类,但是聚类结果出了一点小问题,本来应该聚类成为两个大类(Normal、Tumor)的样本,在最右边又单独出现了一个小类。虽然这个小类只有六个样本的大小,而且也是和Tumor分在一支上,但是!但是!身为一个完美主义者,这个根本不能忍啊!我就开始了使用R语言的探索过程…

那一坨坨的是什么东西,那只是样本名重叠在一起了而已,虽然我室友都吐槽说像黑叔叔们的卷发 …

一、代码的读取和简单处理


首先读取原始数据,然后进行简单的数据提取,代码如下:

data<-read.csv(“PATH/差异表达基因t检验60.csv”,header = T)
test<-data[,2:169]

简单解释一下,read.csv()是R语言中读取CSV格式文件的一种方法,后面参数header指的是读入的数据是否带有表头。
我提供数据中只有第2列到第169列是我们需要的,第一列和最后两列并不是我们需要的数据,所以我将其去除。
小贴士:可使用nrow()和ncol()函数,来查看数据的总行数和总列数。当然如果你使用了Rstudio的话在右侧的数据栏中你可以轻易的查看行列数。

二、对数据进行主成分分析以及k-均值聚类
这一步骤不在我们绘图介绍的内容之中,主成分分析只是对数据的一种处理,所以不在此处过多赘述,你只需要知道我们在这一步中获得了一个新的数据pca_data。

而k-均值聚类,也是一种聚类的方法,是对先前的数据pca_data进行聚类分析使用的,它可以生成一个与pca_data中样本一一对应的分类结果。详情咨询百度。代码如下:

pca<-princomp(t(test),cor=T)
summary(pca)
pca_data <- predict(pca)
library(stats)
fit_km1 =kmeans(pca_data,center=2)

三、绘图正式开始
先拿出我们最先讲到的函数plot(),对pca_data进行绘图,代码如下:

plot(pca_data)

(一) kmeans聚类

#读取数据
data<-read.csv("F:/R/test/差异表达基因t检验60.csv",header = T)
#增加基因名称
test<-data[,2:169]pca<-princomp(t(test),cor=T)
summary(pca)
pca_data <- predict(pca)
library(stats)
fit_km1 =kmeans(pca_data,center=2)plot(pca_data)

运行结果如下:

这显然不是我们想要的直观分类结果。

我们在之前的函数中继续添加参数col,这个参数就是控制颜色的参数(color),对于这个函数的赋值,你可以直接赋值为数字(1、2、3、4、5、6…),也可以使用“red”、“green”、“blue” 等来赋值,但是注意这样做的时候,对应的颜色要用双引号括起来。你也可以使用一组对应的颜色向量来对其赋值,举例:col=1、col=“red”、col=1:3、col=c(“red”.“green”,“blue”);修改代码如下:

plot(pca_data,col=(fit_km1$cluster)*2)

(二) fit_km1$cluster是我们聚类的结果

#读取数据
data<-read.csv("F:/R/test/差异表达基因t检验60.csv",header = T)
#增加基因名称
test<-data[,2:169]pca<-princomp(t(test),cor=T)
summary(pca)pca_data <- predict(pca)
library(stats)
fit_km1 =kmeans(pca_data,center=2)plot(pca_data,col=(fit_km1$cluster)*2)

运行结果如下:

简单解释一下,这里赋值的fit_km1$cluster是我们聚类的结果,他的本质是一组数字向量,至于乘2,是因为默认1为黑色,黑色并不是很适合图像的展示,所以用简单的乘2来改变它的颜色

根据赋予了色彩的图像基本上就可直接看的出来他被明显的分为了红色和蓝色两大类。

但是对于展示来说,我们不仅要看到聚类的结果,也要看到什么样的样本被聚在了一起,我们在尝试引入一个参数pch,这个参数是用来修改图中图形元素(plotting character)的,接受的赋值为数字或者数字向量,举例pch=1、pch=c(1,2)。因为我的样本本身就是Normal和Tumor交替出现的,所以修改代码:

plot(pca_data,col=(fit_km1$cluster)*2,pch=c(1,2))

(三)参数pch

#读取数据
data<-read.csv("F:/R/test/差异表达基因t检验60.csv",header = T)
#增加基因名称
test<-data[,2:169]pca<-princomp(t(test),cor=T)
summary(pca)pca_data <- predict(pca)
library(stats)
fit_km1 =kmeans(pca_data,center=2)plot(pca_data,col=(fit_km1$cluster)*2,pch=c(1,2))

可以看出圆圈基本上被分到了红色聚集的地方,而三角则都聚集在另一边。

此时肯定会有人说不喜欢圆圈和三角,那好吧,我只能一抬手——甩给你25个其他选择,总有一款适合你:

此外,我们再次进行修改,在推出两个参数lwd和cex分别是线条宽度和图像元素的大小,只接受数字赋值,例如:lwd=2,cex=2;这些都是指默认参数的两倍。再次修改代码:

plot(pca_data,col=(fit_km1$cluster)*2,lwd=2,cex=1.5,pch=c(1,2))

(四)两个参数lwd和cex

#读取数据
data<-read.csv("F:/R/test/差异表达基因t检验60.csv",header = T)
#增加基因名称
test<-data[,2:169]pca<-princomp(t(test),cor=T)
summary(pca)pca_data <- predict(pca)
library(stats)
fit_km1 =kmeans(pca_data,center=2)plot(pca_data,col=(fit_km1$cluster)*2,lwd=2,cex=1.5,pch=c(1,2))

运行结果如下:

看得出来,效果很明显。哦,对了,我最开始的目的是要看看那六个奇怪的样本在哪,那就再使用一个函数points(),这个函数是用来在已经绘制出来的图像上添加新的元素点的。使用方法和plot()几乎相同,我们尝试找出这几个样本,代码如下:

plot(pca_data,col=(fit_km1$cluster)*2,lwd=2,cex=1.5,pch=c(1,2))
points(pca_data[sp,],col=”blue”,lwd=2,pch=17)

(五)函数points()

#读取数据
data<-read.csv("F:/R/test/差异表达基因t检验60.csv",header = T)
#增加基因名称
test<-data[,2:169]pca<-princomp(t(test),cor=T)
summary(pca)pca_data <- predict(pca)
library(stats)
fit_km1 =kmeans(pca_data,center=2)plot(pca_data,col=(fit_km1$cluster)*2,lwd=2,cex=1.5,pch=c(1,2))points(pca_data[sp,],col="blue",lwd=2,pch=17)

结果如下:

嗯,果然这六个样本点离蓝色区域较远,同时又有靠近红色的趋势,所以这又代表了啥?
管他呢 ,今天就写到这了。

原始数据及所用代码下载:

原始数据及代码

#读取数据
data<-read.csv("F:/R/test/差异表达基因t检验60.csv",header = T)
#增加基因名称
test<-data[,2:169]#谱系聚类
d<-dist(t(test), method = "euclidean")
hc<-hclust(d,"single")
plot(hc)
rect.hclust(hc,k=3)
result=cutree(hc,k=3)
result
which(result==1)
which(result==2)
sp<-which(result==3)
#PCA
pca<-princomp(t(test),cor=T)
summary(pca)
pca_data <- predict(pca)#k-均值聚类
library(stats)
fit_km1 =kmeans(pca_data,center=2)
#绘图
plot(pca_data,col=(fit_km1$cluster)*2,lwd=2,cex=1.5,pch=c(1,2))
points(pca_data[sp,],col="blue",lwd=2,cex=1.5,pch=17)

R语言绘图-常用参数相关推荐

  1. 技巧 | 如何使用R语言的常用工具包绘制双变量填充地图

    之前本号转载了DataCharm公众号的一篇推送: 转载 | 双变量映射地图可视化绘制方法 这篇推送使用了biscale工具包绘制了双变量填充地图.近来,小编发现使用常用的绘图工具包也能很便捷的绘制这 ...

  2. 随笔7:R语言绘图黑白印刷风格芯片包

    R语言绘图黑白印刷风格芯片包 1.基本说明 1.1本包的目标 让使用者将注意力集中在参数设定与调整上,而不是代码使用的细节,类似于一个芯片封装的过程.对几个常用的绘图函数进行了封装,并调整为印刷风格供 ...

  3. r语言t检验输出检验统计量_[转载]R语言:常用统计检验

    R语言:常用统计检验方法 写在前面 R已经成为当前国际学术界最流行的统计和绘图软件之一,该语言较为简单易学,统计分析功能强大,且具有很强的绘图功能,能够绘制学术出版要求的多种图表.R语言在生物信息学, ...

  4. R语言绘图:28个实用程序包

    本文转载自" 阿虎定量笔记",作者郑连虎,转载己获授权.其他人转载请联系原作者,点我跳转原文. 全文注释 # 示例参考帮助文档 # 我用Rstudio重现了所有示例 # 初识R语言 ...

  5. 收藏 | 28个R语言绘图的实用程序包!

    作者:郑连虎 来源:阿虎定量笔记 本文约2500字,建议阅读20+分钟. 本文为大家介绍了关于R语言绘图方面28个实用程序包. cartogram 扭曲的地图,以传达统计信息 开发 Sebastian ...

  6. R语言绘图、数据处理学习记录持续更新

    目录 20220411--基础知识学习 20220412--读写操作和基本函数 20220415--循环语句学习 20220418--数据框的操作 20220419--可视化练习 20230107-- ...

  7. R语言绘图:条形图——barplot

    R语言绘图:大道至简系列--barplot 目录 R语言绘图:大道至简系列--barplot 前言 一.barplot参数简介 二.barplot参数详解 1.height,main,sub 2.wi ...

  8. R极简教程-10:R语言绘图基础

    R语言最强大的一点就是画图,那个无比强大的画图系统,再加上各种各样的神级R包,让我写R语言中最喜欢的一点就是写绘图代码. 简单来说,R语言原生的绘图系统已经非常强大了,根本不需要其他东西的辅助,就可以 ...

  9. R语言绘图——实用篇 ggplot2绘图

    文章目录 R语言绘图--实用篇 ggplot2绘图 绘制等值线图相关 如何绘制等值线图 插值,平滑插值 插值,缺失值插值 色条(色阶)划分 图例的色条(色阶)修改,合理的参数值选用 图例的色条(色阶) ...

最新文章

  1. html 显示不吃,长期不吃晚饭,或有4个变化出现,自查一下,看看你占了几个
  2. 架构无小事:QQ碰微信 贴吧遇微博
  3. ASP.NET Web API自身对CORS的支持: CORS授权检验的实施
  4. ai快捷键常用表_遇到这些办公软件快捷键赶集收藏-mark 视频剪辑|办公软件...
  5. Android 代码中的常见的问题总结
  6. 麻瓜编程python爬虫微专业_麻瓜编程·python实战·1-3作业:爬取租房信息
  7. java 动态给数组赋值_java 中 String 数组怎么动态赋值
  8. 儿童机器人编程入门优先学习什么?
  9. 如何改变iTunes默认备份文件目录
  10. R语言|根据列名提取/筛选列的两种方法
  11. WindowsXP系统安装
  12. Apache Hadoop
  13. rcwa matlab,rcwa-1d_4_6_2014 1维严格耦合波分析matlab程序 适用于一维光栅 可计算多层结构 256万源代码下载- www.pudn.com...
  14. http code码详解
  15. wifi 802.11 kvr 漫游
  16. Android 第三方库AgentWeb的使用
  17. cmmi实践访谈测试ppt_CMMI3级访谈问题(最新)
  18. 《自然语言处理》的相关资源
  19. 等保2.0.第五章.网络安全产品与方案(中)
  20. JS实现点击导航栏鼠标左右滑动 (适用于PC端和移动端)

热门文章

  1. 项目需求|RGBD实时三维重建(项目经费20万)
  2. 基于DoG的特征检测子(SIFT)_学习笔记
  3. Visual Studio视觉编程工具(推荐四个)
  4. 计算机视觉基本原理——RANSAC
  5. php主要算法设计,四种排序算法设计(PHP)
  6. python与mongo_MongoDB与Python的交互
  7. MPB:上海交大肖湘组分享基于基因芯片的海洋微生物转录组学分析技术
  8. 246.三元图的应用与绘图实战
  9. 宏基因组合种树,2-4天领证
  10. Science背靠背: NLR受体介导植物抗病反应新机制