分享一篇Y叔(余光创)联合同行老师近期在The Innovation Life上发表的综述文章:Bioinformatics software development: Principles and future directions。文章主要讨论了生物信息学软件开发的原则和未来的发展方向,强调了人工智能(AI)在加速和增强生物信息学软件开发过程中的重要性,并展望了AI增强的云计算如何为自主研究铺平道路。
生物信息学软件的发展对于处理日益增长的生物医学数据至关重要。尽管现有的软件工具如BLAST和MEGA在生物学研究中发挥了重要作用,但软件工具的使用也面临着挑战,如软件问题可能导致结果难以复现或得出错误结论。因此,有必要指导如何构建用户友好、可互操作和可靠的生物信息学软件。
NCBI数据增长。
软件开发的核心资源
生信软件的开发是一个多学科领域,涉及生物学、计算机科学和软件工程。开发过程依赖于包括公共数据存储库(如NCBI、EBI和CNCB)在内的一系列核心资源。此外,掌握编程语言(如Python、R或C++)对于数据处理、统计分析和高性能计算至关重要。开源工具和库(如BLAST、Biopython和Bioconductor)促进了协作和快速软件开发。社区和协作平台(如GitHub)在生物信息学软件开发中发挥着重要作用。
Pip和conda的包管理比较。
Github流程图。
轻量级R包开发
文章详细介绍了如何创建R包,包括使用usethis、roxygen2、testthat和devtools等必要的R包。通过simpleGO R包的例子,展示了如何组织代码、增强文档、测试代码以及提高用户友好性。文章还讨论了如何使用roxygen2进行文档生成、如何编写测试以确保函数的正确性,以及如何通过GitHub等平台发布R包。
R包开发工具。
simpleGO R包开发。
大规模组学软件开发
在开发生物信息学软件时,明确软件目标的重要性,并提出了软件开发的设计和实现阶段。以CIRCexplorer2为例,说明了如何选择合适的数据集、进行测试和评估、编写文档、部署和维护软件。CIRCexplorer2是一个用于从下一代测序数据中识别和量化环状RNA的工具。
NGS数据分析软件开发。
AI时代的开放科学架构
讨论了云计算如何改变科学研究的各个方面,包括生物信息学研究。提出了在设计大规模生命科学架构时应遵循的原则,包括在软件开发之前建立与用户期望一致的规则和标准,以及在云中启用群体智能。还强调了在平台中集成AI的重要性,并提出了创建开放生态系统的原则。
开放科学的大规模平台架构。
展望
最后讨论了未来大规模平台可能的发展方向,包括提供图形编程语言、通过AI助手降低编程技能门槛、共享物理资源等。作者设想了一个未来的场景,用户可以通过手机应用设计实验协议,通过AI模拟验证,然后远程监督机器人在实验室中执行实验,并通过云平台访问原始数据。
Github源码:https://github.com/YuLab-SMU/simpleGO
官方解读参考:The Innovation Life | 生物信息学软件开发的基本原则与未来发展趋势
编辑:郭小野
标签:信息学,软件开发,原则,AI,如何,生物,软件,生信 From: https://www.cnblogs.com/miyuanbiotech/p/18449476