生物信息学软件开发综述学习

目录

①编程语言和开源工具和库

②轻量级 R 包开发

③大规模组学软件开发

④示例

1.轻量级 R 包开发示例及数据

2.大规模组学软件开发


文献:Bioinformatics software development: Principles and future directions

①编程语言和开源工具和库

在生物信息学中,编程语言和工具的选择肯定是至关重要的,因为它会显着影响数据分析的效率。

Python 因其简单性、可读性和广泛的库支持而成为生物信息学领域的主要编程语言。Biopython 是一个全面的生物信息学工具的 Python 库,有助于基因组和蛋白质序列数据的操作和分析。Pandas、NumPy 和 scikit-learn 等库进一步增强了 Python 的功能,支持复杂的数据分析和机器学习任务。42-44此外,为了便于最终用户轻松安装的方式打包或使用软件和库,开发人员可以考虑利用 pip 和 conda。

②轻量级 R 包开发

R 是一种用于数据管理、统计、分析和可视化的编程语言,拥有丰富的生态系统,迄今为止,综合 R 存档网络 (CRAN) 上提供了 20000 多个 R 软件包。这些套餐涵盖生态学、流行病学、金融学、农业各个学科。Bioconductor 基于 R 语言,是最大的开源生物信息学项目 (https://bioconductor.org/),拥有 2000 多个软件包,专门用于组学数据的处理和可视化。27值得注意的是,R 语言有一个活跃的社区,该社区不断创建新的 R 包,将其应用程序扩展到各种条件和情况。在此方案中,了解如何创建 R 包非常有用。至于个人需求,将代码组织成 R 包、增强文档、测试代码和提高用户友好性,可以极大地促进未来的工作。例如,创建 clusterProfiler 最初旨在比较各种细胞周期蛋白质组学数据的富集分析结果。53,54当时,没有工具支持在多种条件下对结果进行聚合和比较。同样,ggtree 的开发旨在整合和可视化系统发育树和相关数据,以便从进化的角度联合呈现。55最终的应用场景超出了作者最初的预期,这也有利于其他人的研究。

要开始 R 包开发,需要几个必要的包,包括 usethisroxygen2testthat 和 devtools(表 1).其中,usethis 自动化了创建 R 包的一系列设置;Roxygen2 支持文学编程,从而可以在代码中直接嵌入文档语言;testthat 包用于编写测试脚本,保证函数的正确性;devtools 是一个用于 R 开发和管理的工具包,可以简化许多开发任务。

Table 1.  Useful packages for R package development

PackageDescription
covrTrack and report code coverage
devtoolsCollection of package development tools
lintrChecks adherence to a given style, syntax errors and possible semantic issues
rappdirsDetermine which directories on the user's computer you should use to save data, caches and logs
roxygen2Generate your Rd documentation, 'NAMESPACE' file, and collation field using specially formatted comments
stylerPretty-prints R code without changing the user's formatting intent
testthatUnit testing for R
usethisAutomate package and project setup tasks
③大规模组学软件开发

在开发生物信息学软件之前,必须彻底理解软件的预期目的,通常侧重于解决满足研究界需求的科学问题。这个过程不仅有助于定义软件的目标,还可以保证最终结果有效地满足所需的需求。当明确定义目标时,就可以有条不紊地设计和开发软件,为研究项目的圆满结束做出贡献。

④示例
1.轻量级 R 包开发示例及数据

我们可以使用 devtools::create(“package name”) 创建 R 包的框架,这将生成 DESCRIPTION 和 NAMESPACE 文件以及 R 文件夹。DESCRIPTION 是 R 包的核心部分,其中包括包的关键元数据。NAMESPACE 文件包含有关导出和导入的函数的信息。R 文件夹用于存储软件开发过程中函数的源代码,通常根据 R 代码的逻辑将函数存储在不同的文件中。R 代码是最关键的,因为 R 包的主要目的是编写函数来解决特定问题或要求。除此之外,R 包还将包括一个用于存储文档的 man 文件夹,其中包含包文档、函数文档和数据文档。

https://github.com/YuLab-SMU/simpleGO/blob/main/tests/testthat/test-simpleGO.r

R 包可以通过 GitHub、Gitee、GitLab、Bitbucket 和 SourceForge 等代码托管平台发布。例如,simpleGO 包发布在 GitHub (https://github.com/YuLab-SMU/simpleGO) 上。在 CRAN 上发布需要一些额外的工作,但这是值得的,并且是推荐的。最终,它将增加包对更大用户群的可访问性,因为 CRAN 平台会测试包是否可以在不同的操作系统上运行,将其编译成二进制包,并允许通过 install.packages() 函数进行安装。向 CRAN 提交 R 包非常简单,只需运行 devtools::submit_cran() 函数即可创建包包,并使用 DESCRIPTION 文件中的作者信息(姓名和电子邮件)将其提交给 CRAN,并在提交成功后通知开发人员检查确认电子邮件。

2.大规模组学软件开发

在这里,选择 CIRCexplorer2 来举例说明 NGS 数据分析的软件开发过程。CIRCexplorer2 最初开发用于从下一代测序数据中鉴定和定量 circRNA。58为了识别 circRNA 特征的反向剪接位点,CIRCexplorer2 采用 TopHat-Fusion 或 STAR 等现有工具进行 RNA-seq 比对,以识别反向映射到反向剪接连接位点的读数,60,61由 Python 编程语言编写脚本。从 GEO 数据库中选择并下载基准数据集。对 CIRCexplorer2 的性能和准确性进行了测试 (图 5C) 并根据评估结果对脚本进行了多次迭代。最后,CIRCexplorer2 被部署在 GitHub 上 (https://github.com/YangLab/CIRCexplorer2) 并详细记录 (http://circexplorer2.readthedocs.org)。有关 CIRCexplorer2 的问题和疑问可以通过 GitHub 和电子邮件询问。CIRCexplorer 系列经历了三次重大更新。每个主要更新都用于扩展软件的功能,如从 CIRCexplorer 到 CIRCexplorer2 的过渡所示,或者解决早期版本中未解决的独特问题,例如从 CIRCexplorer2 升级到 CIRCexplorer3/CLEAR。

文献:

1:Bioinformatics software development: Principles and future directions

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值