从单细胞数据分析的最佳实践看R与Python两个阵营的博弈

R与Python,在生物信息学领域的博弈异常激烈。许多生信分析,两个阵营都发展出了自己的方法,比如单细胞数据分析,R有Seurat,Python就有Scanpy。这些层出不穷的方法不断地吸引着吃瓜群众的眼球,同时也让人患上了选择困难症。

到底谁优谁劣?一时竟难分高下。今天我们就以吃瓜的心态来看看两个阵营在单细胞数据分析方面的博弈。

R语言单细胞分析最佳实践

首先出场的是 Orchestrating Single-Cell Analysis with Bioconductor (Bioconductor OSCA)。由 Bioconductor 出品,旨在传授基于 R 的 Bioconductor 生态系统分析单细胞 RNA-Seq 的常见工作流程。其电子书网址是:https://bioconductor.org/books/release/OSCA/。

f92d5a51d2d3c3dd887979dbb8fa79cb.png

一篇同名论文[Amezquitaet al., 2020] 概述了使用 Bioconductor 进行单细胞分析。但在线的电子书含有大量示例代码,更详细。不过,OSCA 不包括其他单细胞组学,例如 scATAC-seq。空间转录组学在补充的 Orchestrating Spatially-Resolved Transcriptomics Analysis with Bioconductor (Bioconductor OSTA) 一书 (https://lmweber.org/OSTA-book/) 中进行了介绍。由于这些书籍是为 Bioconductor 生态系统设计的,因此它们仅使用 Bioconductor 上可用的工具。这些并不一定能得出书中所描述的最佳分析结果。Bioconductor 书籍对具有基本 R 和更强生物学背景的人特别有用,他们有兴趣学习如何使用 Bioconductor 分析单细胞和空间转录组学数据。

Python单细胞分析最佳实践

Python也不遑多让,好事者也推出了基于 Python 的单细胞分析最佳实践。电子书网址:

https://www.sc-best-practices.org/preamble.html,该书详细介绍了单细胞数据分析。有理论讲解和大量示例代码,并且一直处于更新当中。

b774d0005e915bf272aeb2e6b7bfc813.png

作者团队先是在 2019 年发表了一篇论文:Current best practices in single‐cell RNA‐seq analysis: a tutorial,介绍了单细胞 RNA-Seq 分析的最佳实践。与Bioconductor OSCA 相比,这篇论文和示例分析没有受到其展示的工具的偏见,并且在涵盖主题的广度方面内容更加完整。

2023年,同一团队发表了新的论文:Best practices for single-cell analysis across modalities。提出了最新的最佳实践。其示例代码以 Python 为主,可以说是与 Bioconductor OSCA 针锋相对了。大家该如何选择呢?

545919909ecea3e6b029dbfb59191458.png

海纳百川

正所谓海纳百川,有容乃大。我们在选择工具的时候,可以有偏见,但不能固执。Galaxy生信云平台(UseGalaxy.CN)就汇聚了大量生物信息学工具,不管是 R,Python 抑或是其他语言开发的,只要足够优秀,平台都做了整合,供大家自由选择。单细胞方面,就整合了基于 Seurat 和 Scanpy 的最佳分析实践,欢迎大家使用。

0af409f29397f6211e5272dc0c3d44c8.png

参考文献

  • Orchestrating single-cell analysis with bioconductor. https://bioconductor.org/books/release/OSCA/, 2022.

  • Orchestrating single-cell analysis with bioconductor. Nature Methods, 2022

  • A single-cell survey of the small intestinal epithelium. Nature, 2017

  • Orchestrating high-throughput genomic analysis with bioconductor. Nature Methods, 2015

  • Current best practices in single-cell term`rna`-seq analysis: a tutorial. Molecular Systems Biology, 2019

关于简说基因

  • 生信平台

    Galaxy中国(UseGalaxy.cn)致力于打造中国人的云上生物信息基础设施。大量在线工具免费使用。无需安装,用完即走。活跃的用户社区,随时交流使用心得。

  • 生信培训

    简说基因的生信培训班,荣获学员的一致好评。如果你也对生物信息学感兴趣,欢迎来跟简说基因,学真生信

  • 生信分析

    我们能够承接所有 NGS 组学数据分析业务,包括但不限于 WGS / WES / RNA-seq 等。基因组组装、注释,以及各种重测序业务都可以与简说基因合作。

07d749cb8b5eb1bcfcd500dfd259f9f6.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/612064.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt 6之六:Qt Designer介绍

Qt 6之六:Qt Designer介绍 Qt Designer是一个可视化的用户界面设计工具,用于创建Qt应用程序的用户界面,允许开发人员通过拖放和布局来设计和创建GUI界面。 Qt 6之一:简介、安装与简单使用 https://blog.csdn.net/cnds123/articl…

Windows系统Copilot使用方案

在Windows环境中启用和使用Copilot的一般步骤和方案概述: 启用Windows Copilot 确保系统更新: 首先,您的设备需要运行最新的Windows 11版本,因为Copilot可能作为系统更新的一部分推出。 安装与激活: 如果Copilot是通过…

Linux 文件(夹)权限查看

命令 : ls -al ls -al 是一个用于列出指定目录下所有文件和子目录的命令,包括隐藏文件和详细信息。其中,-a 选项表示显示所有文件,包括以 . 开头的隐藏文件,-l 选项表示以列表的形式显示文件的详细信息。 本例中:drwxrwxr-x 为权限细节。 权限细节(Permission detail…

【UML】第18篇 组件图

目录 一、组件图的定义 二、组件图的作用 三、应用场景 四、构成 五、语法 一、组件图的定义 组件图(Component Diagram)是一种UML结构图,它展示了系统中组件、接口以及它们之间的关系。组件是代码的物理模块,如文件、库、可…

Vue3-47-Pinia-修改全局状态变量值的方式

说明 修改全局状态变量的值,是一个比较常规而且常见的操作。 本文就介绍四种常见的操作。 由于Option Store 和Setup Store 在修改的时候略有不同,所以本文也会将不同点体现一下。 全局状态变量的定义 包含了 Option Store 和Setup Store 两种定义方式&a…

设备树常用的其他 OF操作函数

一. 简介 前面几篇学习了设备树常用的 OF操作函数,文章地址如下: 设备树常用 OF 操作函数说明一-CSDN博客 设备树常用 OF 操作函数说明二-CSDN博客 本文继续学习设备树 常用的一些其他的 OF操作函数。 二. 设备树常用的其他 OF操作函数 下面学习设…

DePIN:重塑物理资源网络的未来

点击查看TechubNews更多相关推荐 一、DePIN:物理资源的新整合方式 Depin赛道的项目如雨后春笋般涌现,为市场注入了新的活力。作为先行者,Coinmanlabs已经深入布局Depin赛道,其中最引人注目的项目当属Grass。 什么是DePIN DePIN…

uniapp在web端怎么使用svg图标呢

在图标库中添加好项目用到的图标,点击symbol点击生成在线链接 点击生成的在线链接,此时会跳转到一个新窗口,是一个js文件 复制这个js文件的内容 然后在uniapp中新建svg.js文件,把从上面复制的代码粘贴到这个svg.js中 在main.js中引…

JAVA基础学习笔记-day16-网络编程

JAVA基础学习笔记-day16-网络编程 1. 网络编程概述1.1 软件架构1.2 网络基础 2. 网络通信要素2.1 如何实现网络中的主机互相通信2.2 通信要素一:IP地址和域名2.2.1 IP地址2.2.2 域名 2.3 通信要素二:端口号2.4 通信要素三:网络通信协议 3. 谈…

go 中的 fmt 占位符

通用占位符 %v 值的默认格式表示 fmt.Printf("%v\n", 100)}//100%v 类似%v,但输出结构体时会添加字段名 o : struct{ name string }{"tim"} fmt.Printf("%v\n", o)}} //{name:tim}%#v 值的 Go 语法表示 o : struct{ name stri…

0110qt

完善对话框,点击登录对话框,如果账号和密码匹配,则弹出信息对话框,给出提示"登录成功",提供一个Ok按钮,用户点击Ok后,关闭登录界面,跳转到其他界面 如果账号和密码不匹配&…

RK3568平台 平台总线模型Platform

一.平台总线模型介绍 编写了一个独立的驱动程序,但这样编写出来的驱动程序在重用性和可移植性上是很低的,无论之后要编写一个同类型的驱动还是将该驱动更换一个平台,都要花费时间重新修改驱动代码,而驱动的分离和分层这一软件思路…

Pytorch基础:数据读取与预处理——图像读取与存储

Pytorch基础:数据读取与预处理——图像读取与存储 1.读取图片2. 使用 matplotlib 库显示和保存图像 1.读取图片 图像库 opencv-python、imageio、PIL 等都具有图像读取的功能。 (base) PS C:\Users\阳> conda activate yang (yang) PS C:\Users\阳> python …

【angular教程240109】06 Angular父子组件以及非父子组件之间通讯

【angular教程240109】06 Angular父子组件以及组件之间通讯 目录: 【angular教程240109】06 Angular父子组件以及组件之间通讯一、子组件获取父组件的数据、执行子组件的方法 父组件给子组件传值-input1子组件 二、子组件通过Output 结合事件驱动实现组件通讯1 子组…

onlyOffice实践-在线协同word、ppt、excel编辑

一、x86 安装docker 18.09.0版本及以上(我的版本是18.09.0)配置docker阿里源,下载国外的镜像加速(参考docker的常规使用总结-CSDN博客)docker search 186184848/documentserver选择对应的破解版本下载(这个…

脚本编程游戏引擎会遇到哪些问题

在游戏开发中,脚本编程已经成为了一种非常常见的方式,用来实现游戏逻辑和功能。但是脚本编程游戏引擎也可能会面临一些挑战和问题。下面简单的探讨一下都会遇到哪些问题,并且该如果做。 性能问题 脚本语言通常需要运行时解释执行&#xff0…

Android 自动滚动的RecyclerView,手动滑动和自动滑动无缝斜街,手动滑动时数据不重复

概要 做一个自动滑动的列表,用于展示聊天记录或者通知栏信息等,还是使用主流的RecyclerView来做。网上有很多案例,但当手动滑动时会一直无限循环,数据重复的出现,如果想要自动滑动时能无限循环,手动滑动时又…

端到端自动驾驶

自动驾驶主要流程:感知->预测->规划 预测是预测周围目标(车、行人、动物等)的轨迹,规划是规划自车的运动轨迹。 UniAD[CVPR 2023]: 使用transformer架构,统一自动驾驶流程,完成所有检测&#xff0c…

Springboot对接ceph集群以及java利用s3对象网关接口与ceph集群交互

springboot中引入相关依赖 <dependency><groupId>software.amazon.awssdk</groupId><artifactId>regions</artifactId><version>2.22.13</version></dependency><dependency><groupId>software.amazon.awssdk<…

【Kafka-3.x-教程】-【六】Kafka 外部系统集成 【Flume、Flink、SpringBoot、Spark】

【Kafka-3.x-教程】专栏&#xff1a; 【Kafka-3.x-教程】-【一】Kafka 概述、Kafka 快速入门 【Kafka-3.x-教程】-【二】Kafka-生产者-Producer 【Kafka-3.x-教程】-【三】Kafka-Broker、Kafka-Kraft 【Kafka-3.x-教程】-【四】Kafka-消费者-Consumer 【Kafka-3.x-教程】-【五…