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

目录

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【复刻】数字化转型是否赋能企业新质生产力发展?(2015-2023年)

参照赵国庆(2024)的做法,对来自产业经济评论《企业数字化转型是否赋能企业新质生产力发展——基于中国上市企业的微观证据》一文中的基准回归部分进行复刻基于2015-2023年中国A股上市公司数据,实证分析企业数字化转型对新质生产力…

在线免费批量生成 Word 文档工具

为了方便的批量生成 Word 文档,写了个在线 Word 文档批量生成工具,可以根据 Excel 数据和 Word 模板批量生成大量个性化的 Word 文档。适用于需要批量生成格式统一但内容不同的文档场景。比如: 批量生成证书、奖状批量生成合同、协议批量生成…

3D数学基础2

矩阵的行列式 在任意方阵中都存在至少一个标量,称作该方阵的行列式。在线性代数中,行列式有很多有用的性质 线性运算法则 方阵 M M M的行列式记作 ∣ M ∣ |M| ∣M∣或“det M”。非方阵矩阵的行列式是未定义的。 注意,在书写行列式时&…

2024国产化信创产品名录

文章目录 一、JDK/OpenJDK替代品1、龙芯JDK2、阿里巴巴Dragonwell3、毕昇JDK4、腾讯 Kona 二、Tomcat替代品1、东方通TongWeb2、宝兰德Web服务器软件3、普元信息Primeton AppServer4、金蝶天燕AAS应用服务器 三、Nginx替代品1、宝兰德WebServer2、东方通TongHttpServer3、Tengi…

OpenCV-Python实战(11)——边缘检测

一、Sobel 算子 通过 X 梯度核与 Y 梯度核求得图像在,水平与垂直方向的梯度。 img cv2.Sobel(src*,ddepth*,dx*,dy*,ksize*,scale*,delta*,borderType*)img:目标图像。 src:原始图像。 ddepth:目标图像深度,-1 代表…

基于微博热搜评论的情感分析与热点主题挖掘研究

目录 1、绪论 1.1 研究背景与研究意义 1.2 数据来源 1.3 技术路线 2、数据预处理 2.1 数据清洗与准备 2.2 导入必要库与加载数据 2.3 加载停用词表与分词处理 2.4 统计词频与高频词分析 3、情感分析与主题建模 3.1 情感分析 3.2 主题建模 3.3 热点主题识别 4、数据可视…

【毕业设计选题】目标检测方向毕业设计选题推荐 2025

目录 前言 毕设选题 开题指导建议 更多精选选题 选题帮助 最后 前言 大家好,这里是海浪学长毕设专题! 大四是整个大学期间最忙碌的时光,一边要忙着准备考研、考公、考教资或者实习为毕业后面临的升学就业做准备,一边要为毕业设计耗费大量精力。学长给大家整…

Windows onnxruntime编译openvino

理论上来说,可以直接访问 ONNXRuntime Releases 下载 dll 文件,然后从官方文档中下载缺少的头文件以直接调用,但我没有尝试过。 1. 下载 OpenVINO 包 从官网下载 OpenVINO 的安装包并放置在 C:\Program Files (x86) 路径下,例如…

PCB设计检查助手——焊盘中间丝印检查

焊盘中间丝印检查功能用于检查双引脚元件中间是否有垂直两个焊盘连线的元件,由于较大双贴片引脚不用考虑中间的丝印,在检查时会自动过滤两个引脚大于1mm以上的元件,此功能在检查时,两个引脚的间距小于等于1mm,且元件的…

LiteFlow 流程引擎引入Spring boot项目集成pg数据库

文章目录 官网地址简要项目引入maven 所需jar包配置 PostgreSQL 数据库表使用LiteFlow配置 yml 文件通过 代码方式使用 liteflow数据库sql 数据在流程中周转 官网地址 https://liteflow.cc/ 简要 如果你要对复杂业务逻辑进行新写或者重构,用LiteFlow最合适不过。…

MATLAB学习-1 蚁群算法解决TSP问题

matlab安装可以在网上找一个安装教程,我安装的是R2020a版本的。 学习解决该问题 利用蚁群算法对给定的TSP问题进行求解,求出一条最短路径。 用的是194个城市的TSPLIB数据集,如果需要TSPLIB数据集可点击 tsp、添加了可视化,迭代400次,目前最短路径为10576.5454,实现效果如…

IP寻址映射与网络通信互联

IP寻址映射 IP寻址映射能够让数据准确传输的重要部分。在网络之中,所有联网的设备都具有一个IP地址,而IP寻址映射就是负责将IP地址与设备位置或其他相关标识相联系起来,确保数据找到正确的路径传输,保障网络能够畅通。 动态主机配…

IO Virtualization with Virtio.part 1 [十二]

久等了各位! 本篇开始讲解 IO 虚拟化中的 virtio,我会以 Linux 的 IIC 驱动为例,从 IIC 驱动的非虚拟化实现,到 IIC 驱动的半虚拟化实现,再到最后 X-Hyper 中如何通过 virtio 来实现前后端联系,一步步把 v…

ITOM系统在IT运维中的作用

在企业IT运维中,ITOM系统(IT运营管理)通过整合、自动化和监控,能够帮助企业有效管理IT基础设施,提高运维效率和系统的可靠性。本文将从多个角度探讨ITOM系统在IT运维中的作用及其功能。 提升运维效率:统一平…

水上救命稻草,充气救生板的关键救援效能|深圳鼎跃

当今社会,突发事件如影随形,其诱因常隐匿于生活细微之处。就像我们在户外游玩时,水域周边看似风平浪静,实则暗藏危机,稍有疏忽便可能失足落水。此类意外的发生毫无征兆,往往令人在瞬间陷入危险境地&#xf…

Mac M2 Pro安装MySQL 8.4.3

絮絮叨叨 MacBook Pro,芯片:Apple M2 Pro, macOS: Sonoma 14.0一直知道很多软件对Mac M1或M2的支持不好,但没想到在安装MySQL 8.x上也让我吃尽了苦头本文除了介绍如何安装MySQL 8.4.3外,还会记录笔者遇到的一些问题以及解决方法 …

Leecode刷题C语言之切蛋糕的最小总开销②

执行结果:通过 执行用时和内存消耗如下: int compare(const void* a, const void* b) {return (*(int*)b - *(int*)a); }long long minimumCost(int m, int n, int* horizontalCut, int horizontalCutSize, int* verticalCut, int verticalCutSize) {qsort(horizon…

FreeRTOS的内存管理(选择heap4.c文件的理由)

目录 1. 了解FreeRTOS内存管理 2. 了解内存碎片 3.了解各个heap.c的内存分配方法 1.heap1.c 2.heap2.c 3.heap3.c 4.heap4.c 5.heap5.c 总结: 内存管理是一个系统基本组成部分,FreeRTOS 中大量使用到了内存管理,比如创建任务、信号量…

[服务器][教程]Ubuntu24.04 Server开机自动挂载硬盘教程

1. 查看硬盘ID ls -l /dev/disk/by-uuid可以看到对应的UUID所对应的分区 2. 创建挂载文件夹 创建好文件夹即可 3. 修改配置文件 sudo vim /etc/fstab把对应的UUID和创建的挂载目录对应即可 其中# Personal mount points下面的是自己新添加的 :分区定位&#xff…

Python用K-Means均值聚类、LRFMC模型对航空公司客户数据价值可视化分析指标应用|数据分享...

全文链接:https://tecdat.cn/?p38708 分析师:Yuling Fang 信息时代的来临使得企业营销焦点从产品中心转向客户中心,客户关系管理成为企业的核心问题(点击文末“阅读原文”获取完整代码数据)。 客户关系管理的关键是客…