从这期开始,大猫课堂将会推出一个新的系列:R练习50题,目的是使用50道练习题让大家掌握常用的数据操作,例如寻找每组最大的N个观测等。本练习题来源于Renkun (github.com/renkun-ken/r-data-practice) 在Github上的共享,我们认为它包括了绝大多数实践中会遇到的问题,特别具有代表性。只可惜Renkun并没有提供答案,所以我们在这里提供我们的版本。
第一次看到这么多分组头都大了。首先要考虑如何分组得到grouplist,其次考虑如何在limma包中分组分析。
本文介绍了如何使用dplyr和data.table两个R包进行数据清洗、数据加工和数据分析,通过几个实际案例展示了dplyr和data.table的常用功能和高效操作。
data.table包提供了一个加强版的data.frame,它运行效率极高,而且能够处理适合内存的大数据集,它使用[]实现了一种自然地数据操作语法。使用下面命令进行安装:
数据处理在数据分析流程中的地位相信大家都有目共睹,也是每一个数据从业者面临的最为繁重的工作任务。 在实际应用场景下,虽然SQL(SQL类专业的etl语言)是数据处理的首选明星语言,性能佳、效率高、容易培养数据思维,但是SQL没法处理构建全流程的数据任务,之后仍然需要借助其他数据分析工具来对接更为深入的分析任务。 R语言作为专业的统计计算语言,数据处理是其一大特色功能,事实上每一个处理任务在R语言中都有着不止一套解决方案(这通常也是初学者在入门R语言时,感觉内容太多无从下手的原因),当然这些不同方案确实存在
大型数据集通常是高度结构化的,结构使得我们可以按不同的方式分组,有时候我们需要关注单个组的数据片断,有时需要聚合不同组内的信息,并相互比较。
R语言data.table包是自带包data.frame的升级版,用于数据框格式数据的处理,最大的特点快。包括两个方面,一方面是写的快,代码简洁,只要一行命令就可以完成诸多任务,另一方面是处理快,内部处理的步骤进行了程序上的优化,使用多线程,甚至很多函数是使用C写的,大大加快数据运行速度。因此,在对大数据处理上,使用data.table无疑具有极高的效率。这里我们主要讲的是它对数据框结构的快捷处理。
由于业务中接触的数据量很大,于是不得不转战开始寻求数据操作的效率。于是,data.table这个包就可以很好的满足对大数据量的数据操作的需求。
今天我们继续做题,由于整个题目按照从易到难排列,所以今天的题目并不会很难。先看一下预览:
在对单细胞数据进行注释后,通常会使用柱形图比较 不同分组 之间的cluster/celltype差异 scRNA分析|单细胞文献Fig1中的分组umap图和细胞比例柱形图,本文介绍张老师2021年发表于SCIENCE的Pan-cancer single-cell landscape of tumor-infiltrating T cells 文献中OR比值的方法(OR>1.5标示倾向在该分组中分布,OR<0.5标示不倾向在该分组中分布,详见文献methods),来比较不同分组(正常组织,肿瘤组织,PBMC,用药前后等)间cluster/celltype之间的分布差异 。该方法在越来越多的文献中出现。
对于data.frame大家应该很熟悉,它可以存储不同数据类型的向量数据。今天给大家介绍一个升级版的data.frame,其不仅可以存储不同数据类型还可以进行多列的并行运算。包的安装我们就不再赘述了(install.packages(“data.table”))。
传统KEGG(通路富集分析)和GO(功能富集)分析时,如果富集到的同一通路下,既有上调差异基因,也有下调差异基因,那么这条通路总体的表现形式究竟是怎样?是被抑制还是激活?或者更直观点说,这条通路下的基因表达水平在实验处理后是上升了呢,还是下降了呢?由于没有采用有效的统计学手段去分析某条通路下的差异基因的总体变化趋势,这使得传统的富集分析结果无法回答这些问题。
我们以一篇2019年的CELL杂志的文章为例,标题:《Stress-Induced Metabolic Disorder in Peripheral CD4+ T Cells Leads to Anxiety-like Behavior》,链接是:https://pubmed.ncbi.nlm.nih.gov/31675497/
tidyverse作为R语言数据分析中的瑞士军刀,非常好用,一个小小的缺点就是速度慢,data.table速度快,所以他们团队又开发了dtplyr,加快运行速度。
使用c("<name of col1>", "<name of col2>")和.(col1, col2)效果一样
也许很多小伙伴都注意到了,这一期的文章和往期的排版有所不同,因为从这一期开始,大猫将使用markdown来进行写作,并在最后用css来进行渲染输出。原来大猫使用的是秀米等富文本编辑器,最然可以实现很花哨的效果,但是每次编辑的时间可能都比写作的时间长,而且富文本编辑器对于代码块的支持极弱,语法高亮没有就算了,但是代码块无法水平滚动就不能忍。相比之下,markdown不仅对于代码有着先天的支持,而且只要在第一次设定好css,以后每次编辑的时间几乎为零,直接复制粘贴到公众号平台就可以渲染出非常漂亮的网页,简直美滋滋!
连续两次求贤令:曾经我给你带来了十万用户,但现在祝你倒闭,以及 生信技能树知识整理实习生招募,让我走大运结识了几位优秀小伙伴!大家开始根据我的ngs组学视频进行一系列公共数据集分析实战,其中几个小伙伴让我非常惊喜,不需要怎么沟通和指导,就默默的完成了一个实战!
在目前为止所有小伙伴们向大猫请教过的R问题中,大猫总结了最常遇见同时也是比较难的三个问题,分别是(1)事件研究法;(2)分组回归;(3)滚动回归。事件研究法在第一期中已经讲述,本期我们就来瞧瞧如何做分组回归~
这样的话图表会非常多,但是数据分析的终极目标是发文章,而文章就必须要有故事性有落脚点。接下来我们就系统性梳理一下使用生存分析来辅助判定关键单细胞亚群。这里我们采用的仍然是2022的肺腺癌相关的文章,标题是:《Delineating the dynamic evolution from preneoplasia to invasive lung adenocarcinoma by integrating single-cell RNA sequencing and spatial transcriptomics》,肺癌单细胞数据集也有好几十个了,拿到表达量矩阵后的第一层次降维聚类分群通常是:
DataFrame DataFrame 是一个表格或者类似二维数组的结构,它的各行表示一个实例,各列表示一个变量。 一. DataFrame数据流编程 二. 数据读取 readr/httr/DBI 1
本期“大猫的R语言公众号”由“村长”供稿。村长,数据科学、指弹吉他及录音工程爱好者,浙大金融学博士在读,在data.table包和MongoDB的使用上有较多经验。
最近安排学徒做文献图表复现,其中一个表达量芯片和测序项目都是同样的处理和对照,所以让学徒做一下这两个表达矩阵的差异分析,比较一下不同技术是否有比较好的吻合。 其中测序是:https://www.ncb
如何找到somatic的突变信息的maf文件,仍然是从UCSC的XENA浏览器里面选择NSCLC的里面的LUAD数据集即可,这个是网页里面的鼠标点击操作。值得注意的是网页里面关于同一个癌症有两个跳转链接哦(其中一个带有GDC的前缀):
文章标题:《Single-cell RNA sequencing reveals the epithelial cell heterogeneity and invasive subpopulation in human bladder cancer》
本期大猫课堂将会开始一个新的系列:你不知道的R Tricks。这个系列将搬运stackoverflow.com(以后简称SO)上关于R数据处理的一些经典问答。大猫除了翻译原文,还会从初学者的角度为代码补充详细的解释。其实这些问题基本上都是大猫自己在数据处理过程中实际遇到的,看了SO上的答案不禁拍案叫绝,忍不住和大家分享。
在处理数据的时候,我们常常需要按照日期对数据进行分类汇总,例如每周、每月、每年汇总等。常见的做法是建立一个用于分类的变量,然后再按照这个变量进行汇总。然而这种做法特别麻烦,因为我们常常要尝试多种不同的分类长度,很难事先就一次性创建好用于分类的变量。
ggplot(data=dat1,aes(x=variable,y=value)) +geom_boxplot()
同理,我们会问另外一个问题,就是癌基因都是肿瘤的风险因子吗,它高表达会导致癌症比如死的越来越快吗?反之,抑癌基因一定是肿瘤的保护因子吗,它表达量越高癌症病人越受到保护吗,因为想当然的我们会认为抑癌基因能抑制癌症嘛,所以它表达量越高越好。
有时eSet里面有两个对象,可以到网页看一下,可能是因为测了两种芯片,我们分开分析就好。
定性资料比如等级,毒性,应答等,可以以具有分级的因子的形式表示,比如(+ ++, +++),分别对应因子的1,2,3种水平,这样不同组样本只要看这些数据的等级的排列是否一致就可以判断这两个群体的分布是否有差异(秩和检验)。
【导读】工具包 datatable 的功能特征与 Pandas 非常类似,但更侧重于速度以及对大数据的支持。此外,datatable 还致力于实现更好的用户体验,提供有用的错误提示消息和强大的 API 功能。通过本文的介绍,你将学习到如何在大型数据集中使用 datatable 包进行数据处理,特别在数据量特别大的时候你可以发现它可能比 Pandas 更加强大。
注意默认nThread=getDTthreads(),即使用所有能用的核心,但并不是核心用的越多越好,本人亲自测试的情况下,其实单核具有较强的性能,只有在数据大于3Gb的情况下,开启10核(我的机器全部核心30多核)效率才比一个核心更高,而默认使用全部的核心效率一直非常低。因此对于不是非常巨大的文件,建议设置为1,不要使用全部核心
读取CSV文件最好的方法是使用read.table函数,许多人喜欢使用read.csv函数,该函数其实是封装的read.table函数,同时设置read.table函数的sep参数为逗号(",")。read.table函数返回的结果为data.frame。
本期还是由村长来为大家供稿,这期讲一个村长遇到的关于data.table比较有趣的问题,希望大家支持!!
研究者们在GEO数据库是有数据分享:https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE182923
比如GSE162325这个数据集,它比较新:https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE162325,所以如果你使用我的AnnoProb
data.table包提供了一个加强版的data.frame。它运行效率极高,而且能够处理适合内存的大数据集。它通过[ ]实现了一种自然的数据操作语法。
Hello亲爱的小伙伴们,大猫课堂又回来啦。从今天开始大猫会选择一些Stackoverflow.com上有关R数据处理的问答摘录给大家。这些问题都是在平日的工作中有很高可能性出现并且看似容易实则让人抓狂的问题,在Stackoverflow上他们有着很高的人气。事实上,这些问题也就是你在“看懂一本R的教材”和“成为R大神”之间的距离。大猫除了进行翻译,也会在其中增加一些相关知识点,相信掌握了这些问题,一定会对你的研究工作大有裨益。
都是依据肿瘤病人的转录组测序表达量矩阵进行的分析,也有几百篇类似的数据挖掘文章了,它们总是喜欢落脚到estimate或者CIBERSORT结果的预后意义。但是实际上我们也代码演示了:estimate或者CIBERSORT结果真的是很好的临床预后指标吗,这样做风险很大,后面留了一个思考题,就是CIBERSORT的22种免疫细胞比例的生存意义的全部癌症的探索,呼应我们的主题《泛癌水平的批量生存分析》。
本期“大猫R语言公众号”仍由“村长”供稿。村长继续为大家奉上data.table使用案例心得,希望大家能够继续支持村长!!
然后很多粉丝留言说,如果并不是按照表达量中位值或者平均值分组,而是取巧使用了surv_cutpoint这样的函数,得到的结果并不好解释,认为这样的的数据处理方式简直是黑白颠倒!
1写在前面 不知道大家都是怎么完成qPCR的计算的,在不会R的时候,我是用一个祖传的Excel表进行计算的。🤣 但是,一直有个缺点,如果需要计算的量比较大时,就不方便了,去搜了一下文献,发现了一个最近发表的R包,不仅可以计算反转录的RNA体积,还可以帮助选择定量方法,简直是神仙R包,本期就介绍一下它的使用吧。🥰 感谢原作者的开发,嘿嘿,文末有引用方法。👀 2用到的包 rm(list = ls()) library(tidyverse) library(ggsci) library(qPCRtools) li
在23年3月份的时候(下意识想说今年了hhh,恍然发现已经24年),菜鸟团作者就整理过不同格式的单细胞数据读取的方法,是基于V4版本的。
对单细胞数据进行亚群注释之后,我们往往想比较某亚群,例如CD8Tex,是倾向于分布在实验组还是对照组,例如癌组织,癌旁组织,转移癌组织,淋巴组织?这时候有很多策略去做这种多组间的比较。
27. 每个行业每天成交额超过该行业中股票成交额80%分位数的股票的平均收益率是多少?
https://mp.weixin.qq.com/s/_DtkxSfLGQHcRju66J4yTQ
因为代码是收费的,所以需要简单的回复一下读者的提问,就是大家感兴趣这个代码到底该如何移植到转录组测序数据分析,而且读者给出来了一个案例,就是2020的文章《Transcriptomic profiling across the nonalcoholic fatty liver disease spectrum reveals gene signatures for steatohepatitis and fibrosis》,它对应的数据集是:GSE135251,在其页面可以看到是216 snap frozen liver biopsies, comprising 206 NAFLD cases with different fibrosis stages and 10 controls were studied.
我在简书和公众号上已经分享了很多之前学习的数据分析笔记和文章,覆盖了各方面的内容,数据分析方面以后不会再个人分享特别基础的东西了。接下来我会让师弟师妹们定期分享自己的学习过程。
领取专属 10元无门槛券
手把手带您无忧上云