本篇的内容是用一个案例对Circos进行学习和实践,并对一些基本信息文件和配置文件进行解读。提供的数据和要求与之前一期推送R语言系列2:如何用R绘制复杂且美观的热图完全相同,即表格里是一个90*90的矩阵,即90个脑区之间的功能连接矩阵,具体要求有:(1)将其中功能连接值大于0.8的正连接和小于-0.2的负连接进行可视化,要求正负连接可以区分,连接强度可以区分,左右半球可以区分;(2)按照额-顶-枕-颞-边缘系统-皮层下核团将脑区归类成6个系统,每一个系统用一种颜色;(3)只显示有连接的脑区,没有任何连接的脑区不显示;(4)做三幅图拼成一个大图,图1为左侧大脑半球的半球内连接,图2为右侧大脑半球的半球内连接,图3为半球间连接;(5)系统内的脑区按照连接数目由大到小排序。
上一次推送重点讲解了Circos作图所需文件及其格式(Circos系列2:用最简的方式呈现脑区之间的功能连接(一)),这一次主要针对我们的实践要求用R语言对数据进行处理,并整理成Circos作图需要的文件格式。
首先,在Circos文件夹根目录新建一个文件夹D:\circos-0.69-9\my_circos_FC,将原始表格FC.xlsx置于该文件夹下,并在该文件夹新建三个子文件夹L、R、LR。还是先以半球间的连接LR为例,在LR文件夹中创建子文件夹data及etc,分别用于存放本次绘图所需的所有数据和配置文件。
一、按要求处理和准备数据(在LR文件夹创建以下R脚本文件并运行)
#清空工作环境rm(list=ls())#选择工作路径setwd('D:/circos-0.69-9/my_circos_FC/LR')#安装并调用gdata包install.packages('gdata') library(gdata)#读取功能连接文件FC'../FC.xlsx',header = #将不再要求范围内的功能连接值置零FC[FC<=0.8&FC>=-0.2]<-0#提取L结尾的行及R结尾的列FC_LR'L$',row.names(FC)),grep(#为了最终显示效果,将每个脑区都给定一个缩写,并替换原有的行、列名称region'PreCG',rownames(FC_LR)colnames(FC_LR)#识别每个脑区所在系统system'Fro',#FC_LR数据框增加一列sum_L,为每一行非零数值的个数,即每个脑区的连接数FC_LR$sum_Lapply(FC_LR, #FC_LR数据框增加一列system,为每个脑区所在的系统FC_LR$systemsystem#去掉连接数为零的脑区FC_LR0),]#将所有行按两个条件排序,第一条件为脑区所在系统,第二条件为脑区连接数降序FC_LRorder