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

news2025/1/4 4:22:52

目录

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

②轻量级 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

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

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

相关文章

哈夫曼编码(Huffman Coding)与哈夫曼树(Huffman Tree)

已知字符集{a,b,c,d,e,f},若各字符出现的次数分别为6,3,8,2,10,4,则对应字符集中各字符的哈夫曼编码可能是( )。 A.00,1011,01&#xff0…

Eureka 介绍与原理详解

在微服务架构中,服务发现(Service Discovery)是一个至关重要的组件。随着服务数量的增加,手动管理服务的地址和端口变得不切实际。Eureka 是 Netflix 开源的一款服务发现工具,旨在解决微服务架构中的服务注册与发现问题…

C++和OpenGL实现3D游戏编程【连载19】——着色器光照初步(平行光和光照贴图)(附源码)

1、本节要实现的内容 我们在前期的教程中,讨论了在即时渲染模式下的光照内容。但在我们后期使用着色器的核心模式下,会经常在着色器中使光照,我们这里就讨论一下着色器光照效果,以及光照贴图效果,同时这里知识会为后期的更多光照效果做一些铺垫。本节我们首先讨论冯氏光照…

RedisDesktopManager新版本不再支持SSH连接远程redis后

背景 RedisDesktopManager(又名RDM)是一个用于Windows、Linux和MacOS的快速开源Redis数据库管理应用程序。这几天从新下载RedisDesktopManager最新版本,结果发现新版本开始不支持SSH连接远程redis了。 解决方案 第一种 根据网上有效的信息,可以回退版…

【图像处理lec10】图像压缩

目录 一、图像压缩基础 1、图像压缩的基本概念 2、数据冗余与压缩比 3、三种主要的数据冗余类型 4、保真度评估标准(Fidelity Criteria) 5、应用与实践 二、图像压缩模型 1、图像压缩模型概述 (1)压缩系统的结构 &#…

Python-网络爬虫

随着网络的迅速发展,如何有效地提取并利用信息已经成为一个巨大的挑战。为了更高效地获取指定信息,需定向抓取并分析网页资源,从而促进了网络爬虫的发展。本章将介绍使用Python编写网络爬虫的方法。 学习目标: 理解网络爬虫的基本…

curl+openssl 踩坑笔记

curl编译:点击跳转 踩坑一 * SSL certificate problem: unable to get local issuer certificate * closing connection #0 curl: (60) SSL certificate problem: unable to get local issuer certificate More details here: https://curl.se/docs/sslcerts.html …

mysql-二进制安装方式

目录 1. 安装组件即依赖包 2. 创建用户 3. 关闭防火墙 4. 解压mysql二进制源码包 5. 创建文件夹并赋予权限 6. 编译安装mysql,安装完成最后面,会有一串英文,那是登录数据库的密码 7. 设置配置文件 8. 将mysql添加进环境变量 9. 复制…

【MySQL】深度学习数据库开发技术:使用CC++语言访问数据库

**前言:**本节内容介绍使用C/C访问数据库, 包括对数据库的增删查改操作。 主要是学习一些接口的调用, 废话不多说, 开始我们的学习吧! ps:本节内容比较容易, 友友们放心观看哦! 目录 准备mysql…

Vscode左大括号不另起一行、注释自动换行

参考大佬的博客VSCode 格式化 cpp 文件时配置左大括号不换行_vscode大括号不换行-CSDN博客 Clang_format_style {BasedOnStyle: Chromium, IndentWidth: 4}

1、Jmeter、jdk下载与安装

1、访问官网,点击下载Jmeter http://jmeter.apache.org/ 2、在等待期间,下载对应的Java https://www.oracle.com/cn/java/technologies/downloads/#jdk23-windows 3、全部下载好,先安装JDK ![在这里插入图片描述](https://i-blog.csdnimg…

【Vim Masterclass 笔记02】第3章:Vim 核心知识 + L08:Vim 核心浏览命令 + L09:Vim 核心浏览命令同步练习

文章目录 Section 3:Vim Essentials(Vim 核心知识)S03L08 Essential Navigation Commands1 光标的上下左右移动2 上 / 下翻页3 基于单词前移4 基于单词后移5 重新定位视图中的文本(页面重绘)6 定位到所在行的行首7 光标…

docker学习记录-部署若依springcloud项目

使用docker compse部署RuoYi v3.6.4 一、打包代码 Java代码 打包前需要将127.0.0.1改成宿主机ip, 使用docker部署的nacos,应该是要改成ruoyi-nacos(docker中的服务容器名)。 使用idea window系统可能没有sh命令,不能…

Unity 实现Canvas显示3D物体

新建一个UI相机,选择渲染层为UI 将主相机的渲染层去掉UI层 、 将Canvas的RenderMode设置为Screen Space - Camera,将RenderCamera设置为UI相机 新建3D物体的UI父物体,并将3D物体的层级设置为UI层 适当的放缩3DObjParent,让3D物体能显示出来…

【spring】参数校验Validation

前言 在实际开发中,我们无法保证客户端传来的请求都是合法的。比如一些要求必传的参数没有传递,传来的参数长度不符合要求等,这种时候如果放任不管,继续执行后续业务逻辑,很有可能就会出现意想不到的bug。 有人可能会…

STM32 SPI读取SD卡

七个响应类型: R1 Response (Normal Response): R1响应是最基本的响应,包含一个字节的状态位,用于指示命令是否成功执行。常用。最高位为0。最低位为1表示是空闲状态。其他位是各种错误提示。 R1b Response (Normal with Busy): 类似于R1&a…

【Solidity】入门指南:智能合约开发基础

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 Solidity入门指南:智能合约开发基础引言1. 开发环境搭建1.1 Remix I…

EasyExcel(读取操作和填充操作)

文章目录 1.准备Read.xlsx(具有两个sheet)2.读取第一个sheet中的数据1.模板2.方法3.结果 3.读取所有sheet中的数据1.模板2.方法3.结果 EasyExcel填充1.简单填充1.准备 Fill01.xlsx2.无模版3.方法4.结果 2.列表填充1.准备 Fill02.xlsx2.模板3.方法4.结果 …

OCR实践-问卷表格统计

前言 书接上文 OCR实践—PaddleOCROCR实践-Table-Transformer 本项目代码已开源 放在 Github上,欢迎参考使用,Star https://github.com/caibucai22/TableAnalysisTool 主要功能说明:对手动拍照的问卷图片进行统计分数(对应分数…

BOE(京东方)“向新2025”年终媒体智享会落地深圳

12月27日,BOE(京东方)“向新 2025”年终媒体智享会的收官之站在创新之都深圳圆满举行,为这场为期两周、横跨三地的年度科技盛会画上了完美句号。活动期间,全面回顾了 BOE(京东方)2024年在多个关键领域取得的卓越成绩,深入剖析其在六大维度构建的“向新”发展格局,精彩呈现了以“…