




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Upset:集合交集的可视化1集合和交集在科学的数据分析中,集合是一个普遍性的概念。土壤样本中发现的细菌,生物通路中发现的酶,染色体中发现的变异,通过光谱测定法在血清样本中发现的蛋白质,或者在癌症病人中发现的基因变异,都可以被当作集合处理。即使有很多的研究仅限于不同集合的识别,但是我们通常仍需要通过集合之间的交集研究多种集合的相同与不同之处。集合和他们之间的交集如果直接的表示出来,最多只能有3到4种集合,一旦超过可这个阈值,可视化集合之间的关系就很困难了,比如说3个集合可能有8种交集,10个集合可能有1024种交集,n个集合最多有2n交集。本篇文章用例为:多形性成胶质细胞瘤癌症病人群体,此数据集代表了100个在多形性成胶质细胞瘤最容易突变的基因,283个癌症样本。其中:第一行为基因标识符(基因名称),第一列为样本编号,数字1:表示此样本中对应的基因发生突变,数字0: 表示此样本中对应的基因不发生突变。此样本中,集合:是一列样本,这些样本中这种基因都发生突变,集合的交集:表示这些样本中都有这几种相同的突变。2文氏图和欧拉图A4B 13我们最常用的表示集合交集的方法就是文氏图和欧拉图,欧拉图和文氏图都有由圆形或椭圆型组成,面积可表示为集合的大小,两种图区别很小,(文氏图和欧拉图的区别)不同的是文氏图包含所有可能的集合,包括空集,但是在欧拉图上不会表示出空集。1 1 C3 4 1 3 1 30A B C欧拉图 文氏图欧拉图(文氏图)很适合表示两个或三个集合的交集的大小,集合的大小与图形的面积成正比,重合部分的面积就是表示交集,虽然面积的表示方式没有长度和位置表示来的精确,但是小数量集合很受大家欢迎,我们可以用R包:venneuler package来画欧拉图。Venneuler包:根据集合的参数画出文氏图用法:venneuler(combinations, weights, .)参数:combinations:可以是以下的任何一个: 一组字符向量,集合连接部分用&号 e.g.c(A,B,A&B) 已命名的数字向量,说明了交集部分的权重, e.g.c(A=1, B=2, A&B=0.5) 一个字符矩阵包含两列,元素对应集合的表示方式,第一列是元素,第二列集合的名字,weights忽略权重。 逻辑或数字矩阵,每一列代表一个集合,而每一行的非0部分表示集合共同出现的部分值,每一行用非0值(或TRUE)表示共同出现;权重,逻辑矩阵:存在为1,数值矩阵:每一行的加和。为了方便起见,一般用data frames数据框代替矩阵模型,之后强制转化为矩阵: as.matrix().weights如果combinations是一个字符向量,那么这个参数就表示交集部分的权重。其他情况的时候可以忽略不写。.额外参数,通常不同Value:centers圆的中心位置,列x,y的坐标diameters圆的直径colors圆的颜色值,在0.1之间labels圆的标签个人认为:上面的四项比较具有实际意义,可以调整图像,下面的四个部分一般是对图像效果和精确度的评估,实际意义不大。residuals残差,输入的交集面积和最后调整的交集面积区别的的百分比stress应力值stress01基于随机数据的0.01的临界应力值stress05基于随机数据的0.05的临界应力值例:library(rJava) library(venneuler, lib.loc=D:/Program Files/R/R-3.2.1/library)#下面的例子是第二种情况,已命名的数字向量:以A,B,C命名的三个集合,A#B交集为0.1,AC交集为0.2,BC交集为0.1,ABC交集为0.1, vd plot(vd)#下面是第三种情况,字符矩阵,第一列为元素,第二列为元素所在的字符m - data.frame(elements=c(1,2,2,2,3), sets=c(A,A,B,C,C)v - venneuler(m)plot(v)#下面的例子是第四种情况,数字矩阵,先用数据框表示,后转换为矩阵。注意,个人认为,矩阵中的数字不是集合中的元素。第一行表示A集合(不包含任何其他集合)为1.5,第二行只有AB非0,表示AB的交集,#由下面的例子可以看出,矩阵每一行表示图的一个部分,非0的集合参与其中,每一行分别表示:A,A&B,A&C,B,C,每一行加和为权重。m v plot(v)#新增了B&Cm - as.matrix(data.frame(A=c(1.5, 0.2, 0.3, 0 ,0,0), B=c(0 , 0.2, 0 ,0.1,1,0), C=c(0 , 0 , 0.3,0.1,0,1) v mutations venn venn venneuler(venn)$centers x yPTEN 0.5524349 0.5864998TP53 0.3695089 0.4903111TTN 0.5780562 0.4231891$diameters PTEN TP53 TTN 0.5003373 0.4678013 0.5003373 $colorsPTEN TP53 TTN 0.25 0.50 0.75 $labels1 PTEN TP53 TTN $residuals TTN TP53 TP53&TTN PTEN 2.999709 3.468399 -5.183191 2.683469 PTEN&TTN PTEN&TP53 PTEN&TP53&TTN -4.161779 -4.866951 3.867067 $stress1 0.06769964$stress011 0.05612327$stress051 0.1282971attr(,class)1 VennDiagram muta_venn plot(muta_venn)此文氏图表示了三个基因集合的交集。二、热图如果要一次性画出10个或者更多集合的交集是很难的,然而我们也可以借助热图表示两两集合的交集,可以用条形图在热图旁标注出集合的大小,但是热图只能显示出交集的程度,无法知道具体的大小,而且,仅限于两两集合交集的情况。文献中的热图:例:多形性成胶质细胞瘤突变基因(本人做的热图,但是heatmap 函数无法表示条形图,且图例不完善,可以用HeatMap包)library(graphics)library(grDevices)#导入数据,选用数据的前15个基因。mutations-read.table(D:/Rtest/mutations.csv,header=TRUE,sep=,)mutation-mutations2:16mut_matrix-as.matrix(mutation)#创建一个交集数目的矩阵,行列名字为基因的名字muta_heat-matrix(,nrow=15,ncol=15)rownames(muta_heat)-colnames(mutation)colnames(mutat_heat)-colnames(mutation)#计算距离矩阵,矩阵行名和列名都为基因集合for(i in 1:15) for(j in 1:15) if(i=j) muta_heati,j-0 else muta_heati,j-(sum(mutationi*mutationj) #画热图,对称热图rc - rainbow(nrow(muta_heat), start=0, end=.3)cc - rainbow(ncol(muta_heat), start=0, end=.3)muta_heatmap 3”att.pos :属性图的位置,如果是NULL或者“bottom“,此图就会在UpSert的下方,如果时”top”, 就会出现在UpSert的上方。att.color :未查询数据的属性直方图或者散点图的颜色,默认颜色与主直方图相同。order.matrix :交集矩阵是如何排序的。可以选择”freq”,”degree”,或者两者都选。show.numbers :在直方图上方表示交集数目的数字的的型号。number.angles :在表示交集大小的直方图顶上的数字的角度。aggregate.by :数据如何分组, (degree 或者 sets)。cutoff : 当按照集合sets分组时每组交集数目的阈值queries :交集,元素,和函数的统一的查询,输入一个查询的列表, query 是一种查询方式,params:. Color:代表查询的点的颜色;如果没有选择颜色,会自动提供。active:逻辑值 TRUE 或 FALSE, 如果是 TRUE, it will overlay the bars present with the results from the query. If FALSE a tick mark will indicate the intersection size. See examples section on how to do this.query.legend :查询图例的位置,在UpSet plot的上方top,还是下方bottomshade.color : 矩阵阴影的颜色。shade.alpha :矩阵阴影的透明度。ersections :交集中额外显示空集。color.pal :属性图的调色板boxplot.summary :箱式图表示每一个交集的选择的属性,参数选择,NULL,或者onattribute.plots :Create custom ggplot using intersection data represented in the main bar plot.Prior to adding custom plots, the UpSet plot is set up in a 100 by 100 grid. Theattribute.plots parameter takes a list that contains the number of rows that should be allocated for the custom plot, and a list of plots with specified positions. nrows is the number of rows the custom plots should take up. There is already 100 allocated for the custom plot. plots takes a list that contains a function that returns a custom ggplots and the x and y aesthetics for the function. ncols is the number of columns that your ggplots should take up. See examples for how to add custom ggplots.例子:library(UpSetR)#mutations是UpSetR中的一个案例样本mutation-read.csv(system.file(extdata,mutations.csv,package=UpSetR),header=T,sep=,)#Example 1 当没有特定的选择集合时,选择最大的集合 #nsets从数据中选择前n个最大的集合。#number.angles决定表示交集大小的数字的角度。 #point.size 表示矩阵中圆圈的大小。#name.size改变集合名字的大小。#line.size 改变连接圆圈连线的大小。upset(mutation,nsets=8,number.angles=30, point.size = 5, name.size = 12, line.size=2)#Example 2: 选择特定的集合,和矩阵的顺序。#sets:包含一组特定集合名字的向量。#mb.ratio:圆点的高度和宽度的比例分配。#order.by:按.排序。如果没有特定指明,那么默认是先按度(degree集合的排序,由多到少)分配,然后是频率(frequency,集合的大小)。upset(mutation,sets=c(TTN,PTEN,TP53,EGFR,MUC16,FLG,RYR2,PCLO),mb.ratio=c(0.55,0.45),order.by=freq)upset(mutation,sets=c(TTN,PTEN,TP53,EGFR,MUC16,FLG,RYR2,PCLO),mb.ratio=c(0.55,0.45),order.by=degree)upset(mutation,sets=c(TTN,PTEN,TP53,EGFR,MUC16,FLG,RYR2,PCLO),mb.ratio=c(0.55,0.45),order.by=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河北省保定市唐县第一中学2025-2026学年高三上学期9月月考历史试题(含答案)
- Unit 1 The king's new clothes单元试卷(含答案含听力原文无听力音频)
- 学生课外培训安全协议课件
- 智能传感器技术在大规模生产中的应用研究-洞察及研究
- 学生消防安全培训及演练课件
- 智能化交互系统-洞察及研究
- 专利双方转让协议模板6篇
- 专升本中文题库及答案
- 中医院综合能力测试题及答案
- 运输安全培训试卷及答案
- 围手术期病人的疼痛护理
- 生成式AI在动画短片场景设计中的创新应用
- 2025年全国高校辅导员素质能力大赛基础知识测试题及答案(共3套)
- 艾青的诗歌《火把》赏析
- 口腔外科手术引流管护理
- 《铁路路基施工与维护》高职高速铁路施工与维护全套教学课件
- 公路汛期安全培训
- mdt护理管理制度
- 麻醉科常用设备
- 2025-2030年中国手持三维激光扫描仪行业市场深度分析及发展趋势与投资前景研究报告
- 潍坊市公安局招录警务辅助人员笔试真题2024
评论
0/150
提交评论