本节内容属于思农数据工程产物,欢迎大家批评指正。
本次学习笔记主要涉及内容为本周工作过程中所遇到的一些数据处理和可视化的函数,主要内容如下:
p_load函数
install.packages("pacman")
library(pacman)
p_load(package1,package2,....)
pacman是一个管理R包的工具,其可以简化r包的安装和加载,这一功能可通过p_load函数实现。其主要特点有以下两点:
1、对于已安装r包,其等同于library(package1),对于需载入但并未安装的r包,其会自动进行下载所需包并且在下载完成后载入,一键式实现install.packages("package1");library(package1)
2、不论是加载已安装还是未安装r包时,其均不需加"",简化了包的安装和提高了工作效率。
聚类热图pheatmap
pheatmap包是热图可视化的工具之一,其为封装好的函数,可实现一键出图,具有众多可设置的参数,对于一些重要参数进行了学习,进而实现个性可视化的需求。
#该包可视化时行和列取决于输入数据框的行和列,两者会保持一致,即列名为横轴,可视化时标签显示在图片下方,行名为纵轴,可视化时标签显示在图片右方
#标签设置参数
show_rownames = T/F, show_colnames = T/F#是否展示行列标签
fontsize = 10, fontsize_row = fontsize, fontsize_col = fontsize#字体大小设置
angle_col = c("270", "0", "45", "90", "315")#列名即x轴标签旋转角度,常在标签过多或过长时使用
#是否标准化对于可视化具有重大影响,对于一般数据为了更好的展示差异,一般需要对其标准化。若想要更好地展示同一物种在不同样品间的差异,对于行名为物种列名为样品的数据来说,设置scale=row,此时样品内部不同物种之间的丰度比较无意义;
参数:scale=c("row", "column" and "none")
#基于样品组成数据和丰度组成数据,分别对其进行聚类,样品间的聚类远近表示样品间物种组成的差异包括丰度和丰富度;物种间的聚类远近表示其在不同样品间分类模式的差异,距离越近表明其分布模式差异越小,与聚类树相关的主要参数如下:
cluster_cols = FALSE/TRUE,cluster_rows=TRUE/FALSE#是否对行和列进行聚类
treeheight_row=num,treeheight_col=num#设置聚类树的高度
clustering_distance_rows,clustering_distance_cols#行列聚类距离计算方法选择, 皮尔逊相关性或者欧氏距离等 ,函数默认为"euclidean"
clustering_method = "complete"#聚类方法选择,默认为complete
#整体布局,包括尺寸,标题,颜色,是否显示数值标签,图例设置等
cellwidth=num,cellheight=num#设置单元格大小,初步发现当cellwidth<3时,为条带显示;当cellwidth>=3时,显示为矩形
main="title"#设置标题
color = colorRampPalette(c('red', 'white', 'blue'))(100)) #颜色设置,可根据需求对括号内变量进行设置
border_color = NA#单元格边框颜色设置,NA为不设置,默认为grey30,可根据需求自行调整
display_numbers = T/F#是否显示单元格数值信息
legend = TRUE, legend_breaks = NA,legend_labels = NA#标签设置,是否显示标签,刻度显示位置,刻度处显示标签
#分组信息添加,即在图片的上方或者左方添加分组信息,具体呈现形式为不同颜色的矩形,同一分组为同一颜色,若想要连续分组展示,则需将初始数据调整至同一分组连续,另外不对需要分组的信息进行聚类。分组信息储存在数据框中,行名要与想要分组的行或列其名称保持一致。
annotation_row = NA, annotation_col = NA,
annotation = NA, annotation_colors = NA, annotation_legend = TRUE,
annotation_names_row = TRUE, annotation_names_col = TRUE
#特殊的,对图片进行分割,通过分组分割,或者聚类分割
cutree_rows = num,cutree_cols=num#按照聚类结果,对可视化结果进行分割
gaps_col = breaks,gaps_row=breaks#按照指定顺序对结果进行分割
#以按列分组信息进行举例
library(dplyr)
group<-unique(sample.name$V3)Gnum<-length(group)
number <- sample.name %>% group_by(V3) %>% count(V3)
breaks <- c()k <- 1for(i in 1:(Gnum-1)){ breaks[k] <- sum(number[1:i,2]) k <- k+1}
简要绘图展示
pheatmap(test, cellwidth = 15, cellheight = 12, main = "Example heatmap")
distinct函数是干嘛的
distinct() 函数是用来从数据框中筛选出唯一的行
tax1 %>% distinct(id,.keep_all = TRUE) %>%
column_to_rownames("id")
left_join
left_join
是 dplyr
包中的函数,用于执行左连接(left join)操作,将两个数据框按照某个共同的列连接起来。具体来说,left_join
函数会保留左侧数据框的所有行,并将右侧数据框中与左侧数据框匹配的行合并到一起,如果右侧数据框中没有匹配的行,则对应的列填充为缺失值(NA)。
str*_to_lower*
stringr包中调整字母大小写函数,lower,所有字母小写,upper,所有字母大写,title,所有字母首字母大写,sentence仅第一个单词大写
str_to_upper()
converts to upper case.str_to_lower()
converts to lower case.str_to_title()
converts to title case, where only the first letter of each word is capitalized.str_to_sentence()
convert to sentence case, where only the first letter of sentence is capitalized.
作者:思农生信团队