基于微服务的COX-2抑制剂识别
环氧化酶‐2抑制剂识别器应用的微服务架构实现
1. 引言
在制药领域,识别与人体细胞发生反应的药物化合物是药物发现中的一个重要初始阶段。为了解决这一问题,制药行业会对各种药物化合物进行筛选过程。最初,这一过程是在实验室中进行的,因此成本高昂且耗时较长。目前,已存在许多基于计算机或基于计算的筛选过程,称为基于结构的虚拟筛选(SBVS) [1]。
该虚拟筛选过程由Istyastono针对环氧化酶‐2(COX‐2)开展,并成功发现了经过测试的筛选基本规则 [2]3。环氧化酶‐2(COX‐2)酶一直是抗炎药物开发中的首选靶标4。已开展的筛选过程需要被记录,以便研究人员可用于后续研究,而网页是最合适的文档工具。目前存在多种网页开发架构,我们选择微服务架构作为开发框架,因为它能提供更快的开发速度。微服务架构最近作为一种新的编程范式出现,通过组合小型服务来构建应用程序,每个服务独立运行自身进程,并通过轻量级机制进行通信。该方法基于面向服务的架构(SOA)的概念,将跨边界的工作流扩展到应用层面并融入应用程序架构中,即其从大型到小型的面向服务的架构与编程 [5]。进行微服务架构迁移的主要动机是解决按需能力问题,同时满足可重用性、去中心化数据治理、自动化部署和内置可扩展性的需求 [6]。许多组织,如亚马逊、易贝和奈飞,已通过采用微服务架构模式解决了复杂性问题。其理念不是构建一个庞大的单体应用,而是将应用程序拆分为一组更小的互连服务 [7]。
本研究将开发一个能够执行筛选过程并记录结果的应用程序。该研究面临的挑战是将两种类型的应用程序结合起来,即Web应用程序和Linux bash脚本。另一个挑战是如何为不同的酶构建相同的应用程序,并能够在将来快速构建。该应用程序的迫切需求是提高应用程序开发速度,并集中针对一种酶。因此,当我们需要添加新的酶筛选过程时,可以在不干扰现有系统的情况下更快地完成开发。
2. 方法
该应用程序的基本算法如图1所示。该算法用于基于Web的应用程序,与移动应用程序相比并无太大差异。应用程序的输入为化合物分子式,输出为该化合物的激活状态。
图2描述了由简单应用程序组成的COX‐2筛选微服务部署图。最初,用户通过浏览器或手机应用程序发送化合物分子式,应用程序将生成该化合物的激活状态。浏览器应用是内置的应用程序,如Chrome、Firefox、Explorer等。手机应用程序是通过REST服务访问筛选API网关的定制应用程序。筛选网页界面和筛选API网关将访问筛选REST服务。我们使用Tomcat Web服务来部署筛选REST服务和筛选API网关。该服务是非常重要的服务,因为它用于访问化合物表和筛选Linux Shell脚本。对于访问化合物表,该应用使用Hibernate框架。对于化合物筛选本身,该应用将执行Linux Shell脚本以分析化合物的激活状态。该Linux Shell脚本基于Istyastono研究 [2,3] 开发。我们使用的软件包括:OpenBabel 8, SPORES1.3 9, PLANTS1.2 [10], PyPLIF 11。
3. 结果与讨论
图3 是一个类图,它是 图2 中设计的实现。每个类在不同的服务器/环境中实现。
Ide.h
类是一个使用 HTML 和 JavaScript 开发的网页用户界面,在 Apache Web服务器 上运行。
Ide.h
类以表单形式调用
eCdSece.java
类,即 Web服务,地址为 http://url/getCompoundService。该 Web服务 使用 Java 开发,并在 Apache Tomcat服务器 上运行。该 Web服务 以 JSON 形式接收数据,并以 JSON 形式返回输出。该服务将检查该化合物是否存在于化合物表中。如果存在,则该服务将读取属性/列 result 并将读取结果返回给
Ide.h
。如果不存在,该服务将调用
cdScceg.sh
类。
图4 显示了COX‐2筛选的结果,文本区域将接收化合物结构文本并发送邮件给用户。筛选结果展示在底部的文本区域中,并以JSON格式呈现。
根据我们的经验,尽管该应用程序尚未完成,特别是移动应用程序部分,但该应用程序能够提供预期的结果。所开发的应用程序在shell程序部分仍存在缺陷,程序员目前仅专注于完成该部分。这一事实也证明了微服务架构非常有帮助。此应用程序可通过 http://it‐projects.usd.ac.id/sbvs/index.html 访问。
4. 结论
根据实现和讨论的结果,微服务架构为应用程序的开发提供了指导,使得应用程序能够快速构建,并且易于维护和扩展。这一结果尚无法量化,因为应用程序尚未完成。然而,从开发角度来看,应用程序的主框架已经完成,只需完成一个部分而无需更改主框架。这之所以能够实现,是因为各个应用是独立开发的。
进一步研究与开发可以进行多重筛选中的处理时间,以便衡量性能。还需尝试添加待筛选的酶,以观察应用程序的主框架是否发生变化。
更多推荐
所有评论(0)