构建可重复的单细胞数据分析流程

男,

一个长大了才会遇到的帅哥,

稳健,潇洒,大方,靠谱。

一段生信缘,一棵技能树。

生信技能树核心成员,单细胞天地特约撰稿人,简书创作者,单细胞数据科学家。

科学研究的过程可重复性可以说是一件不言而喻的事情:如果你提出一观点或发现一个现象,在别人那里完全重复不出来,谁知道是不是臆想呢?但是有时候重复人家的研究结论又会显得不可理喻:分析的环境,软件的版本,试剂的保质期,甚至是历史条件都会成为不可重复的原因。然而,我们仍然做着这样的努力,至少我们看到数据科学家在做着这样的努力。

分析可重复也是对数据科学家的基本要求之一,你不能给出资方一个不可重复的结果。在这方面R语言和Python都有相应的工程技术来保证数据科学的可重复性,今天我们主要讲一讲R语言生态的单细胞数据分析可重复性流程构建方法。其实大家会看到讲的主要是R语言里面的项目管理,或者换句话说:Rmarkdown 在单细胞数据分析中的应用。

本文既来自不才的单细胞数据分析经验,也来自下面这个报告的启发。

R语言在数据可重复上做的努力,集中地体现在一个项目上:http://ropensci.github.io/reproducibility-guide/。在这个项目中我们可以看到一些可用的R包和原则。

构建可重复的单细胞数据分析流程另一个需求是现在的期刊的编辑也学会阅读代码了:

  • Top Ten Reasons to Not Share Your Code(washington,2012)
  • Does your code stand up to scrutiny?(nature,2018)
  • As a reviewer, can I justify requesting data and code be made available even if the journal does not?
  • Should You Publish Your Research Data? The New Trend of Data Journals

很多有规模的学术期刊都有专门的提交原始数据的数据库和储存代码的代码池,尽管还有很多是利用公共的数据和github,但是这个趋势已经很明显了:需要提供code and data。这对一个行业当然是有加速作用的,降低了行业入门的门槛。

以上,要求构建可重复的单细胞数据分析流程,而且在技术上已经成为可能。这对做科技服务的公司也有一点启发:交付代码也许会成为常态。

那我们就看看有哪些需要考虑的:

  • 分析环境(conda,Docker)
  • 软件版本(git)
  • 随机种子(seed)
  • 团队写作(git)
  • 流程管理(Snakemake )
  • 文档材料(Rmarkdown)

整个数据分析流程的环境可以用conda来创建和维护,分析流程可以用Snakemake 来定义各个分析规则,版本管理和团队协作可以用git来实现,而Rmarkdown可以用来集成代码/输出结果和文本注释。这几种工具本身都是可复用的,并支持绝大部分的单细胞数据分析。那么,总结下来,我们可以:

  • R/Bioconductor package for clustering of scRNA-seq data scalable to millions of cells.
  • Snakemake workflow to demultiplex scRNA-seq data.
  • Book written in R Markdown teaching readers how to analyze scRNA-seq data.

如果一个数据科学项目没有很好的项目管理,随着脚本量的增加往往变得十分凌乱,以至于第二天到办公室都不知道该从何处下手了,这一点写过学术论文的朋友应该很清楚。

好在我们可以在RStudio用Projects来管理我们数据和代码,在需要反复调试和可视化的时候,用RProjects来组织git和Rmark down是一个最佳实战。

为了保证数据科学项目的可持续和可重复,一个RProjects是值得拥有的。

  • 用Rmark down组织脚本和结果
  • 重要结果(算法)的脚本执行代码审查
  • 同一个数据分析项目建一个单独的文件夹(Projects)
  • 文件和变量命名有规可循(代码做好时间线注释)
  • 为每个数据科学里程碑写一个Readme
  • 为项目建立rawdata以及过程数据文件夹
  • 建议使用相对路径
  • 为经常用到的脚本写模板

在Linux下,写好一个Rmd之后,如想批量可视化某个基因集,可以用下面的代码来执行。

rmarkdown:: render(input=rmd,output_format='html_document',output_file=outfile)}

如果是bookdown来组织项目,那就更方便了,写好各个章节的Rmd之后,直接sh _build.sh,这样跑完之后结题报告就以一本书的形式呈现出来了。

以上,其实用到的核心技术并不多,主要是R语言生态的:

怎么样?对构建可重复的单细胞数据分析流程有信心了吗?

References

[1] As a reviewer, can I justify requesting data and code be made available even if the journal does not?: https://stats.stackexchange.com/questions/14416/as-a-reviewer-can-i-justify-requesting-data-and-code-be-made-available-even-if
[2] http://ropensci.github.io/reproducibility-guide/
[3] https://peerj.com/preprints/3159v2/

(0)

相关推荐

  • 好代码是管出来的——Git的分支工作流与Pull Request

    上一篇文章介绍了常用的版本控制工具以及git的基本用法,从基本用法来看git与其它的版本控制工具好像区别不大,都是对代码新增.提交进行管理,可以查看提交历史.代码差异等功能.但实际上git有一个重量级 ...

  • “逃离”单体,GitHub的微服务架构实践

    作者 | Sha Ma 出品 | http://03ozy.cn/QhFuJ 本文介绍 GitHub 如何从单体架构迁移到微服务架构,并对其中一些最佳实践做了详细说明. 1旅程开启 GitHub 创建 ...

  • 跟着crossin学,能写出什么代码?来看看他们的答卷

    上个月开启的编程擂台活动(参见 码上行动的同学,你有一个机会等待签收),最终参赛作品出炉啦! 这次活动的参与者都是编程教室的学员,学习 python 的时间有短有长,学习方向也不尽相同.因此最终提交的 ...

  • git的基本工作流程

    通过git管理GitHub托管项目代码,是分布式版本控制系统(之前用过的SVN是集中式版本控制系统).虽然GitHub也可以管理代码,但实际过程中是通过git来操作.(在本地用的版本控制一般用的是gi ...

  • 单细胞转录组数据分析流程的每一个步骤都值得一个综述

    四年前我做了一个单细胞课程,就是对scRNAseq包里面的数据示例的一些处理. 不过那个时候的R包的很多函数代码现在都过时了,现在没有学习的价值了哈,但是思路是可取的, 比如我把单细胞转录组数据分析流 ...

  • 单细胞级别的ChIP-seq和传统bulk数据分析流程差异大吗

    很早以前我就在<生信技能树>的推文:新的ngs流程该如何学习(以CUT&Tag 数据处理为例子),提到了我自己是不太可能去把所有的ngs流程全部录制视频的,只能说是更好的传达学习方 ...

  • 数据分析|从0-1构建用户画像数据分析流程

    导读:大数据经过近几年的迅速发展,从基础设施建设到应用层面,主要有数据平台搭建及运维管理.数据仓库开发.上层应用的统计分析.报表生成及可视化.用户画像建模.个性化推荐与精准营销等方向."用户 ...

  • 一张图解读清楚:最完整的数据分析流程

    典型的大数据分析包含以下几个步骤: 一.明确分析目的和思路 明确数据分析目的以及确定分析思路,是确保数据分析过程有效进行的先决条件,它可以为数据的收集.处理及分析提供清晰的指引方向. 目的是整个分析流 ...

  • 【直播】我的基因组 43:简单粗糙的WGS数据分析流程

    前面我们扯到bam文件的各种操作,vcf文件的各种操作,基础知识不牢固的同学可能已经云里雾里了.这次我们来讲一个简单的.就是拿到了fastq的测序数据,如何把全基因组分析给跑一遍.(不谈细节!) 首先 ...

  • 肿瘤全外显子测序数据分析流程大放送

    这个一个肿瘤外显子项目的文章发表并且公布的公共数据,我这里给出全套分析流程代码.只需要你肯实践,就可以运行成功. PS:有些后起之秀自己运营公众号或者博客喜欢批评我们这些老人,一味的堆砌代码不给解释, ...

  • 单细胞系列停更通知及组建单细胞数据分析交流小组

    跟单细胞结缘已久,早在三年前我还是药厂生信工程师的时候就接触过一些前沿团队,听了他们的讲座后我就下意识的搜索了相关资料,了解到了欧洲的EMBL-EBI在组建十几个单细胞研究中心,也在全球范围内招聘RA ...

  • 想仅报名单细胞数据分析学习班,请先独立完成一个R考核题

    最近我们生信技能树发布了一年一度的单细胞线下5天学习班 一年一度的生信技能树单细胞线下培训班火热招生 报名者众多,有趣的是大部分人对前面的3天生物信息学基础知识课不感兴趣,想直接报名2天的单细胞学习班 ...

  • 分享你的NGS数据分析流程也能发文章哦

    我看到今年(2020)3月发表在:BMC Bioinformatics 的文章:<RASflow: an RNA-Seq analysis workflow with Snakemake> ...