“数据处理大师”tidyverse,教你快速上手单细胞数据分析






“数据处理大师”tidyverse,教你快速上手单细胞数据分析

小果  生信果  2023-12-21 19:00:11

亲爱的果粉儿们,你们好,小果又和大家见面啦!今天,我要给大家介绍的是一个能让你的单细胞数据分析变得井井有条的神器,它就是tidyverse!这是一个R语言的包集合,可以帮助我们轻松地处理和分析数据。那么,就让我们一起来看看如何使用它吧!

认识tidyverse

tidyverse是由Rstudio首席科学家Hadley Wickham和他的团队引入的R编程语言的开源软件包的集合,在他看来,这些软件包是共享高级设计理念和低级语法和数据结构的R包的集合,因此学习一个包可以更容易地学习下一个包。tidyverse包含了每个数据科学项目的核心重复任务:数据导入、整理、操作、可视化和编程。它的主要目标是促进人与计算机之间关于数据的对话。它与Bioconductor类似,提供了一个支持高通量基因组数据分析的软件包生态系统。Hadley Wickham也为此写了一本书《R for Data Science》,这本书里面详细介绍了tidyverse的用法。第一版丛书已经在2017年出版了,而且永久免费,有兴趣的小伙伴可以去看看。    

 

上链~接https://r4ds.had.co.nz/

Tidyverse安装

tidyverse的安装非常简单,它是用R编写的,并且依赖于R作为其基础设施。

##安装install.packages("tidyverse")##使用时要提前载入library(tidyverse)

第一次载入时会生成一个简短的报告,告诉我们正在使用哪些软件包及其版本,并简洁地告知我们与其他哪些软件包有冲突,不同的用户出现的报告也是不一样的。    

##下面的命令会告诉你后面加载的包会产生哪些新的冲突tidyverse_conflicts()##检查所有tidyverse的软件包是否都是最新的tidyverse_update()

Tidyverse的数据处理流程

tidyverse的软件包是如何组合在一起进行工作的?来自《R for Data Science》的数据科学工具模型告诉了我们答案。

所有的数据分析都从数据导入开始:如果不能将你的数据放入R中,你就不能对它开展数据科学!    

简单来说,可以分为三步:1. 导入数据 2.探索数据 3. 结果沟通

一、导入数据 (Import):

这一步主要涉及readr、 readxl 、haven等包,基本可以帮助我们导入所有类型的数据文件。

readr包为例,可用于导入csv,tsv和txt文件

Data <- readcsv ("our_input.csv")Data <- readtsv("our_input.tsv")Data <- readtable("our_input.txt")

同样的readxl可以导入xls和xlsx等Excel 数据,haven可打开SAS 、SPSS、Stata等数据。

二、探索数据 (Explore):

这一步除了tidyr和dplyr之外,还有包括stringr和forcats在内的多个工具包,旨在帮助我们处理特定类型的数据。如stringr用于字符串的处理,forcats用于因子类的处理以及lubridate包处理日期和时间。值得注意的是管道函数%>%在这里也发挥巨大作用,它由magrittr包提供,管道是功能组合的工具,通过将大问题分解成小块,可以更容易地解决大问题。
以dplyr包为例,它是一个快速、简洁的数据处理工具,提供了一整套一致的动词(filterselectarrangemutatesummarise),基本包含了我们整理数据的所有功能,帮助我们解决最常见的数据操作挑战,我们用其内置的星球大战(Starwars)数据集做代码演示。
##根据现有变量添加新变量,用select函数来筛选出starwars数据中姓名、体重和物种的列,再用mutate函数来计算体重的标准化值”。starwars %>%  select(name, mass, species) %>%  mutate(mass_norm = mass / mean(mass, na.rm = TRUE))##根据案例的值选取案例,这里筛选出物种为Droid的行。starwars %>%  filter(species == "Droid")##更改行的顺序,这里按照体重降序排列所有的角色starwars %>%arrange(desc(mass))##概述数据的统计特征,用summarise函数来计算角色体重的平均值和角色的数量,并把结果命名为mean和n”starwars %>%summarise(mean = mean(mass), n = n())

在这一部分,ggplot2用于实现数据的可视化,他的存在已经有 10 多年的历史了,具有非常丰富的扩展生态系统,这是咱们单细胞领域内的常驻嘉宾,具体有多强大就不用小果做多余的介绍了吧。

三、结果沟通(Communicate):   

数据科学的最后一步都是沟通,我们需要将分析结果传达给其他人,这是任何数据分析项目的绝对关键部分。它不一定包含在 Tidyverse包中。这里我们可以使用其他R包,如rmarkdown和shiny等,他们都提供高效的输入界面,让我们能够与数据和分析进行交互,并生成格式优雅的输出,也便于其他学习者进行结果复现。

到此为止,你已经完成了使用Tidyverse的基础教程。但这只是冰山一角,Tidyverse的强大功能远不止于此。我相信,当你深入探索Tidyverse时,你会发现它的无尽可能性。

今天,小果就带大家探索到这里啦!希望你已经掌握了如何使用tidyverse来让你的单细胞数据分析变得井井有条。如果有什么问题或者疑问,欢迎在评论区留言,小果有问必答。如果你觉得今天的内容有用,别忘了点赞和分享哦,这是对小果的最大支持!我们下次再见!    


往期推荐

1.搭建生信分析流水线,如工厂一样24小时运转Snakemake——进阶命令
2.比blast还优秀的序列比对工具?HMMER来了
3.对单细胞分析毫无头绪?让popsicleR领你入门
4.小果带你绘制ROC曲线评估生存预测能力
5.软件包安装、打怪快又好,1024G存储的生信服务器;还有比这更省钱的嘛!!!