<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Genet.</journal-id>
<journal-title>Frontiers in Genetics</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Genet.</abbrev-journal-title>
<issn pub-type="epub">1664-8021</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3389/fgene.2020.630923</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Genetics</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>Research on Components Assembly Platform of Biological Sequences Alignment Algorithm</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes">
<name><surname>Shi</surname> <given-names>Haihe</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<xref ref-type="corresp" rid="c001"><sup>&#x0002A;</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/769886/overview"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Wu</surname> <given-names>Gang</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
</contrib>
<contrib contrib-type="author">
<name><surname>Zhang</surname> <given-names>Xuchu</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
</contrib>
<contrib contrib-type="author">
<name><surname>Wang</surname> <given-names>Jun</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
</contrib>
<contrib contrib-type="author">
<name><surname>Shi</surname> <given-names>Haipeng</given-names></name>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
<xref ref-type="aff" rid="aff3"><sup>3</sup></xref>
</contrib>
<contrib contrib-type="author">
<name><surname>Xu</surname> <given-names>Shenghua</given-names></name>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
</contrib>
</contrib-group>
<aff id="aff1"><sup>1</sup><institution>School of Computer and Information Engineering, Jiangxi Normal University</institution>, <addr-line>Nanchang</addr-line>, <country>China</country></aff>
<aff id="aff2"><sup>2</sup><institution>School of Information Management, Jiangxi University of Finance and Economics</institution>, <addr-line>Nanchang</addr-line>, <country>China</country></aff>
<aff id="aff3"><sup>3</sup><institution>School of Software, Jiangxi Normal University</institution>, <addr-line>Nanchang</addr-line>, <country>China</country></aff>
<author-notes>
<fn fn-type="edited-by"><p>Edited by: Fa Zhang, Chinese Academy of Sciences (CAS), China</p></fn>
<fn fn-type="edited-by"><p>Reviewed by: Yushan Qiu, Shenzhen University, China; Taolue Chen, Birkbeck, University of London, United Kingdom; Yanjie Wei, Chinese Academy of Sciences (CAS), China</p></fn>
<corresp id="c001">&#x0002A;Correspondence: Haihe Shi <email>haiheshi&#x00040;jxnu.edu.cn</email></corresp>
<fn fn-type="other" id="fn001"><p>This article was submitted to Computational Genomics, a section of the journal Frontiers in Genetics</p></fn></author-notes>
<pub-date pub-type="epub">
<day>21</day>
<month>01</month>
<year>2021</year>
</pub-date>
<pub-date pub-type="collection">
<year>2020</year>
</pub-date>
<volume>11</volume>
<elocation-id>630923</elocation-id>
<history>
<date date-type="received">
<day>18</day>
<month>11</month>
<year>2020</year>
</date>
<date date-type="accepted">
<day>21</day>
<month>12</month>
<year>2020</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#x000A9; 2021 Shi, Wu, Zhang, Wang, Shi and Xu.</copyright-statement>
<copyright-year>2021</copyright-year>
<copyright-holder>Shi, Wu, Zhang, Wang, Shi and Xu</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/"><p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</p></license> </permissions>
<abstract><p>After years of development, the complexity of the biological sequence alignment algorithm is gradually increasing, and the lack of high abstract level domain research leads to the complexity of its algorithm development and improvement. By applying the idea of software components to the design and development of algorithms, the development efficiency and reliability of biological sequence alignment algorithms can be effectively improved. The component assembly platform applies related assembly technology, which simplifies the operation difficulty of component assembly and facilitates the maintenance and optimization of the algorithm. At the same time, a friendly visual interface is used to intuitively complete the assembly of algorithm components, and an executable sequence alignment algorithm program is obtained, which can directly carry out alignment computing.</p></abstract>
<kwd-group>
<kwd>biological sequence alignment algorithm</kwd>
<kwd>component</kwd>
<kwd>component model</kwd>
<kwd>component assembly platform</kwd>
<kwd>B/S architecture</kwd>
</kwd-group>
<counts>
<fig-count count="7"/>
<table-count count="0"/>
<equation-count count="0"/>
<ref-count count="33"/>
<page-count count="8"/>
<word-count count="4063"/>
</counts>
</article-meta>
</front>
<body>
<sec sec-type="intro" id="s1">
<title>Introduction</title>
<p>Bioinformatics is an interdisciplinary subject involving life sciences, mathematics, and computer science. Its main research work lies in the acquisition, processing, and storage of biological information, and further includes distribution, analysis, and interpretation. Its research methods are to use various technologies and tools of computer, biology and mathematics to mine and understand the biological significance contained in the massive data (Wang et al., <xref ref-type="bibr" rid="B13">2015</xref>; Liu, <xref ref-type="bibr" rid="B7">2018</xref>). After years of development, bioinformatics has shaped big data of biological information. As a basic method of mining biological sequence information, sequence alignment algorithms have received extensive attention from researchers in recent years.</p>
<p>Sequence alignment algorithms can be divided into pairwise sequence alignment algorithms and multiple-sequence alignment algorithms(Zhan et al., <xref ref-type="bibr" rid="B26">2019</xref>, <xref ref-type="bibr" rid="B25">2020</xref>). The most classic solution of the pairwise sequence alignment algorithm is the dynamic programming algorithm, and the multiple-sequence alignment algorithm is due to its NP completeness (Wang and Jiang, <xref ref-type="bibr" rid="B14">1994</xref>), the current research is dedicated to finding the best approximate solution, but there is a lack of research on the level of algorithm domain. In recent years, the complexity and development difficulty of the newly proposed sequence alignment algorithm program have been increasing, and the efficiency of algorithm development and maintenance cannot be guaranteed. The idea of Component-Based Software Development (CBSD) (Yin, <xref ref-type="bibr" rid="B24">2017</xref>) is viewed as an effective means to solve the &#x0201C;software crisis.&#x0201D; It is also one of the current development trends of software development. Its greatest advantage is that it can reuse the existing development results and improve software development efficiency. Algorithm is the core of software, which embodies the wisdom of software developers. The development efficiency and running efficiency of the algorithm have a crucial impact on the final quality of software. Therefore, the development idea of CBSD can be applied to algorithm development to further improve the development activities of algorithm programs.</p>
<p>Don Batory proposed an algorithmic component development method, connecting the feature model, grammar, and proposition formula to achieve the purpose of defining arbitrary constraints and using satisfiability solvers to debug feature models. In addition, a logical truth maintenance system is introduced to propagate the constraint characteristics of feature selection. Finally, based on these theoretical foundations, a product line development tool set that supports feature modularization and its combination is developed, and the combination development of graph algorithm is described (Batory, <xref ref-type="bibr" rid="B2">2005</xref>).</p>
<p>Through in-depth study, we found that the first step of component-based algorithm development is to complete the domain analysis of algorithm family in a certain domain, and obtain a domain feature model that can guide component design and implementation. Next step is the structural design and interaction design of the components according to the requirements shown in the feature model. Finally it is to implement models using a suitable development language and provide corresponding component assembly services. Under the guidance of generative programming (Czarnecki and Eisenecker, <xref ref-type="bibr" rid="B5">2000</xref>), FODM (Zhang and Mei, <xref ref-type="bibr" rid="B30">2003</xref>) domain modeling method and PAR (Xue, <xref ref-type="bibr" rid="B19">1993</xref>, <xref ref-type="bibr" rid="B20">1997</xref>, <xref ref-type="bibr" rid="B21">1998</xref>, <xref ref-type="bibr" rid="B22">2016</xref>; Wang and Xue, <xref ref-type="bibr" rid="B12">2009</xref>; Xue et al., <xref ref-type="bibr" rid="B23">2018</xref>), domain modeling activities, component design activities and component implementation activities for common sequence alignment algorithms are almost done by our research team. Based on the existing results, the paper presents the assembly platform of sequence alignment algorithm components. The platform mainly provides the assembly services for the developed algorithm components, which greatly improves the automation of the algorithm component assembly, and further reduces the complexity of the algorithm development.</p>
</sec>
<sec id="s2">
<title>Platform Construction</title>
<sec>
<title>Preliminaries</title>
<sec>
<title>Software Reuse</title>
<p>With the development of computer technology, its influence in human society is gradually improved. While the complexity and security of software are becoming increasingly prominent. Researchers are difficult to grasp the efficiency, cost, quality and future maintenance of software development. As early as 1968, the North Atlantic Treaty Organization (NATO) has put forward the definition of software crisis. And then the research of software engineering (Wang et al., <xref ref-type="bibr" rid="B15">2018</xref>) also develops rapidly. Software reuse (Zhang and Mei, <xref ref-type="bibr" rid="B30">2003</xref>, <xref ref-type="bibr" rid="B31">2014</xref>; Zhang et al., <xref ref-type="bibr" rid="B29">2005</xref>; Barros-Justo et al., <xref ref-type="bibr" rid="B1">2019</xref>; Feng et al., <xref ref-type="bibr" rid="B6">2019</xref>) is considered to be a feasible technology to improve the level of software industrial production and effectively solve the software crisis.</p>
<p>The idea of software reuse is to reuse the existing software in accordance with the specifications in the development process. When developing other systems in the same field, it is not necessary to develop from scratch, but on the basis of reusable resources to carry out efficient reuse development. In this process, abstraction is the basic element (Zhu, <xref ref-type="bibr" rid="B33">2017</xref>), and efficient reuse cannot lack high-abstraction modeling of related reuse fields. The scope of reusable resources covers various forms of products, including software design documents, domain models, software patterns, code components, software architecture, software implementation documents, application generators and so on.</p>
</sec>
<sec>
<title>Component Technology</title>
<p>Component assembly technology (Zhang, <xref ref-type="bibr" rid="B27">2018</xref>; Wu, <xref ref-type="bibr" rid="B17">2019</xref>) is the core part of realizing CBSD. After completing a series of component design and development work, the final goal of CBSD is to assemble the components. From the current research (Xu et al., <xref ref-type="bibr" rid="B18">2006</xref>; Chen et al., <xref ref-type="bibr" rid="B4">2012</xref>; Zhen et al., <xref ref-type="bibr" rid="B32">2014</xref>), the technology has achieved some research results.</p>
<p>The component assembly forms mainly include black box assembly, white box assembly and gray box assembly. The main difference is whether the components need to be modified before assembly. Black box assembly is the most suitable assembly method for component encapsulation, but it also reduces the adaptability of components. White box assembly emphasizes the adaptability of components. The assembly is flexible and can achieve greater composability. However, due to too many implementation details exposed, the ease of use of components will be reduced, and improper modifications will occur, so that the final assembly cannot achieve the expected. Gray box assembly is the most widely used assembly method currently. It combines black box assembly and white box assembly and can be adapted to a variety of application scenarios.</p>
<p>The difference between sequence alignment algorithm component and software component is that the former often has higher coupling degree, and the algorithm component often needs to be modified to adapt to the relevant application scenarios. However, the idea of sequence alignment algorithm is complex. If the assembler does not have a good understanding of the algorithm, new errors will be made when modifying it. Therefore, before assembling algorithm components, it is necessary to conduct a detailed domain analysis, formally describe the algorithm component, and form a structure framework to guide the algorithm component assembly. Finally, the gray box assembly of sequence alignment algorithm components is completed under the guidance of domain model, formal specification and algorithm framework.</p>
</sec>
</sec>
<sec>
<title>Platform Design</title>
<sec>
<title>Requirement Analysis</title>
<p>The goal of CBSD is that the software system can be automatically generated from a series of software components according to the system requirements supported by the generator. The purpose of developing the component assembly platform for sequence alignment algorithm is also to reduce the manual assembly workload as much as possible and improve the automation level of the whole component system.</p>
<p>The platform mainly includes component transformation, component assembly and code running. By means of C&#x0002B;&#x0002B; program generation system of PAR, the component transformation module can transform Apla components into C&#x0002B;&#x0002B; components, see details in Xue et al. (<xref ref-type="bibr" rid="B23">2018</xref>). The component assembly function and code running function are composed of four modules, i.e., component library, component selection, code assembly, and code running. The interactive relationship among the modules is shown in <xref ref-type="fig" rid="F1">Figure 1</xref>.</p>
<fig id="F1" position="float">
<label>Figure 1</label>
<caption><p>Interactions among component assembly modules.</p></caption>
<graphic xlink:href="fgene-11-630923-g0001.tif"/>
</fig>
<p>Component library module includes two parts, one is the source code of algorithm components that have been transformed and stored in the files, and the other is the Apla component assembly code that needs to be manually developed or modified in the database. In addition, the component library module also plays a management role, such as adding, deleting, modifying, and checking components, supporting further component expansion and modification in the future.</p>
<p>Component selection module reads the components in the component library and displays them on the platform interface according to their required and optional features and the type characteristics of their affiliation. After selecting the components, the validity of component composition is checked. According to the multi-choice one or multi-choice relationship of feature dimension and the dependency relationship between components, the component composition is constrained accordingly to prevent illegal combination from the subsequent process.</p>
<p>After completing the component selection, code assembly module obtains the required Apla assembly code from the database, and the user can make appropriate modifications to correctly call the selected component in the component library. After the assembly code is developed, the Apla code is converted into the corresponding C&#x0002B;&#x0002B; code through the transformation system of PAR platform. Finally, the assembly and compilation of executable codes is completed in the sever of platform to generate executable algorithmic programs.</p>
<p>After the user inputs the alignment data, the code running module executes the corresponding executable alignment algorithm program. It enables the user to directly perform sequence alignment operations on the platform, and displays the final algorithm running results on the page.</p>
</sec>
<sec>
<title>System Design</title>
<p>The platform is developed using B/S architecture following J2EE specifications, the Java language is used, and the Spring Boot (Wang et al., <xref ref-type="bibr" rid="B16">2016</xref>) and MyBatis (Rong, <xref ref-type="bibr" rid="B9">2015</xref>) as well as Thymeleaf framework, which are currently popular in web development, are adopted, and the stability of their architecture has been tested by practical applications.</p>
<p>The overall architecture of the assembly platform is shown in <xref ref-type="fig" rid="F2">Figure 2</xref>, including the data layer, service layer, and interface layer. The data layer mainly uses MySQL and files to store the Apla program and component source code required by the platform. The service layer mainly includes component assembly service, component transformation service, and program run service. The application layer mainly uses HTML to display the platform, uses JS to implement the relevant interaction logic.</p>
<fig id="F2" position="float">
<label>Figure 2</label>
<caption><p>Overall platform architecture.</p></caption>
<graphic xlink:href="fgene-11-630923-g0002.tif"/>
</fig>
<p>According to the requirement analysis, the functional architecture of the platform is shown in <xref ref-type="fig" rid="F3">Figure 3</xref>. Component transformation module includes the functions of Apla development, Apla transformation, Apla code storage and maintenance, and C&#x0002B;&#x0002B; code storage and maintenance. As the core of the platform, component assembly module consists of the functions of component display, component selection, component combination verification, assembly code generation, compiling code generation, component compilation and component maintenance. Program running module is composed of the functions of sequence input, parameter input, code execution and result display.</p>
<fig id="F3" position="float">
<label>Figure 3</label>
<caption><p>Platform functional architecture.</p></caption>
<graphic xlink:href="fgene-11-630923-g0003.tif"/>
</fig>
</sec>
<sec>
<title>Detailed Platform Design</title>
<p>Through system function requirement analysis, overall architecture design, and functional architecture design, the sequence alignment algorithm component assembly platform is outlined. Next is to give a detailed design of the platform system based on the operating sequence of each module. The platform mainly includes component conversion process, component selection process, component assembly process and algorithm execution process. This section mainly describes the process of component assembly, as shown in <xref ref-type="fig" rid="F4">Figure 4</xref>.</p>
<fig id="F4" position="float">
<label>Figure 4</label>
<caption><p>Component assembly process.</p></caption>
<graphic xlink:href="fgene-11-630923-g0004.tif"/>
</fig>
</sec>
</sec>
<sec>
<title>Analysis of Key Platform Algorithms</title>
<p>The pairwise sequence alignment algorithm and heuristic multiple sequence alignment algorithm based on dynamic programming have been implemented in the platform, and the most critical one is the progressive multiple sequence alignment algorithm based on phylogenetic tree. The most classic ClustalW (Thompson et al., <xref ref-type="bibr" rid="B11">1994</xref>) algorithm in the algorithm thought is implemented in 1994 by Thompson and Higgins. Its operation steps are described as follows, and the algorithm diagram is shown in <xref ref-type="fig" rid="F5">Figure 5</xref>.</p>
<list list-type="order">
<list-item><p>Pairwise sequence alignment. The sequence group is aligned between two pairs, and the distance matrix is established by the pairwise sequence alignment score to indicate the distance between the sequences.</p></list-item>
<list-item><p>Generate a phylogenetic tree. Using the information in the distance matrix, a phylogenetic tree is established through the corresponding clustering algorithm to guide the subsequent multiple sequence alignment operations.</p></list-item>
<list-item><p>Progressive alignment. The previous operation has generated a guide tree, and the last step is to gradually complete the alignment of all sequences in the form of keeping gaps, starting from the close evolutionary relationship according to the alignment sequence reflected by the guide tree.</p></list-item>
</list>
<fig id="F5" position="float">
<label>Figure 5</label>
<caption><p>Steps of ClustalW.</p></caption>
<graphic xlink:href="fgene-11-630923-g0005.tif"/>
</fig>
<p>The components involved in the algorithm are sequence validity check component, pairwise sequence alignment component, distance matrix component, phylogenetic tree component, progressive alignment component, and alignment result output component. Since the distance matrix component and the pairwise sequence alignment component are highly coupled, the pairwise sequence alignment component is designed as a generic operation parameter of the distance matrix, and the corresponding distance matrix can be generated by instantiating different pairwise sequence alignment algorithms. The phylogenetic tree component also includes a clustering algorithm selection sub-component, which is also designed as a generic operation parameter. The commonly used instantiation algorithms are the NJ algorithm (Saitou and Nei, <xref ref-type="bibr" rid="B10">1987</xref>) and the UPGMA algorithm (Zhang et al., <xref ref-type="bibr" rid="B28">2018</xref>). The objective function (Carrillo and Lipman, <xref ref-type="bibr" rid="B3">1988</xref>; Notredame et al., <xref ref-type="bibr" rid="B8">1998</xref>) is also designed as a generic operation parameter while performing a progressive alignment, here we aims to expand the scope of algorithm components assembly.</p>
</sec>
</sec>
<sec id="s3">
<title>Assembly Example</title>
<p>We will carry out an example of the assembly for the progressive alignment algorithm based on phylogenetic tree to demonstrate how the modules of the platform work together and how they interact with each other.</p>
<list list-type="order">
<list-item><p>Transform Apla components except those for assembling. The transformation system of PAR platform is used to convert the developed Apla components into C&#x0002B;&#x0002B; components and store them to the platform&#x00027;s local files.</p></list-item>
<list-item><p>Visually select several existing components satisfying the composable constraints according to the established domain feature model and component interaction model. The components are grouped by the required or optional attribute. In order to prevent the selection of illegal combinations from the subsequent assembly, the distinction between multi-choice-one or multi-choice-multi is carried out in the optional components group. The component selection interface is shown in <xref ref-type="fig" rid="F6">Figure 6</xref>.</p></list-item>
<list-item><p>Based on the interaction relationship between the components, read the corresponding Apla assembly code in the database and display it on the page following the selection of component combination. The user can check and modify the component assembly code, and then submit an Apla conversion request and store the converted C&#x0002B;&#x0002B; assembly code as the local file.</p></list-item>
<list-item><p>After all the Apla component conversion and assembly code conversion, the <italic>makefile</italic> script file for compilation is generated automatically, and is executed to compile and link the C&#x0002B;&#x0002B; components. The parameter input interface of sequence the <xref ref-type="supplementary-material" rid="SM1">Presentation 1</xref> for details.</p></list-item>
<list-item><p>After the user inputs the sequence data, and the replacement matrix as well as the penalty model required by the multiple sequence alignment, the algorithm program generated will be executed, and the alignment output displayed in the user interface. As shown in <xref ref-type="fig" rid="F7">Figure 7</xref>.</p>
</list-item></list>
<fig id="F6" position="float">
<label>Figure 6</label>
<caption><p>Component selection interface.</p></caption>
<graphic xlink:href="fgene-11-630923-g0006.tif"/>
</fig>
<fig id="F7" position="float">
<label>Figure 7</label>
<caption><p>Alignment result interface.</p></caption>
<graphic xlink:href="fgene-11-630923-g0007.tif"/>
</fig>
</sec>
<sec id="s4">
<title>Summary</title>
<p>With the development of CBSD, component-based development technology has been verified in many practical applications. It can exactly improve the development efficiency and maintenance of software. In this paper, the component development technology is applied to the development of biological sequence alignment algorithms. Under the guidance of domain modeling, generative programming and PAR, the formal transformation of sequence alignment algorithm components is carried out, and a B/S-based visual assembly platform for the gray box assembly of algorithm components is constructed. On top of our previous study results, the components required by the sequence alignment algorithm are classified and displayed, and the corresponding combination constraints are designed and implemented. After the legal component combination is selected, the assembly code can be modified and compiled to form an executable algorithm program. In addition, the algorithm can run directly on the platform to facilitate users to conveniently conduct sequence alignment studies.</p>
<p>Next, we will release out codes in GitHub. Future work also includes the improvement of the biological sequence alignment algorithm component assembly platform from the following aspects.</p>
<list list-type="order">
<list-item><p>The algorithm components of this platform will be further expanded to enlarge the scope of algorithms generated from component assembly.</p></list-item>
<list-item><p>The combination constraints in the platform have not been explicitly implemented. We will restrict the combination constraints of algorithm components to XML files, and shape the corresponding combination constraint documents to make it easier for users to assemble.</p></list-item>
<list-item><p>With the richer component library, the algorithm component library needs to have an efficient component search function. Recent years, the recommendation algorithm based on artificial intelligence has developed rapidly. The feasibility of introducing this technology into the platform to improve the ease and automation level of algorithm assembly platform will be carefully studied.</p></list-item>
</list>
</sec>
<sec sec-type="data-availability-statement" id="s5">
<title>Data Availability Statement</title>
<p>The original contributions presented in the study are included in the article/<xref ref-type="supplementary-material" rid="SM1">Supplementary Material</xref>, further inquiries can be directed to the corresponding author/s.</p>
</sec>
<sec id="s6">
<title>Author Contributions</title>
<p>HS instructed the whole research work and revised the paper. GW, XZ, and JW did the codes work and the experiments. HS did the experiments. SX proofread the full text. All authors read and approved the final manuscript and were agreed to be accountable for all aspects of the work.</p>
</sec>
<sec sec-type="COI-statement" id="conf1">
<title>Conflict of Interest</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
</body>
<back>
<ack><p>We thank the reviewers of CBC2020 for their helpful comments and recommendation for publication in the Journal of Frontiers in Genetics.</p>
</ack>
<sec sec-type="supplementary-material" id="s7">
<title>Supplementary Material</title>
<p>The Supplementary Material for this article can be found online at: <ext-link ext-link-type="uri" xlink:href="https://www.frontiersin.org/articles/10.3389/fgene.2020.630923/full#supplementary-material">https://www.frontiersin.org/articles/10.3389/fgene.2020.630923/full#supplementary-material</ext-link></p>
<supplementary-material xlink:href="Presentation_1.pdf" id="SM1" mimetype="application/pdf" xmlns:xlink="http://www.w3.org/1999/xlink"/>
</sec>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Barros-Justo</surname> <given-names>J. L.</given-names></name> <name><surname>Benitti</surname> <given-names>F. B. V.</given-names></name> <name><surname>Matalonga</surname> <given-names>S.</given-names></name></person-group> (<year>2019</year>). <article-title>Trends in software reuse research: a tertiary study</article-title>. <source>Comput. Standards Interf.</source> <volume>66</volume>:<fpage>103352</fpage>. <pub-id pub-id-type="doi">10.1016/j.csi.2019.04.011</pub-id></citation></ref>
<ref id="B2">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Batory</surname> <given-names>D.</given-names></name></person-group> (<year>2005</year>). <article-title>Feature models, grammars, and propositional formulas</article-title>, in <source>Proceedings of the Software Product Lines: 9th International Conference</source>, eds H. Obbink, and K. Pohl (<publisher-loc>Berlin, Heidelberg: Springer</publisher-loc>), <fpage>7</fpage>&#x02013;<lpage>20</lpage>. <pub-id pub-id-type="doi">10.1007/11554844_3</pub-id></citation></ref>
<ref id="B3">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Carrillo</surname> <given-names>H.</given-names></name> <name><surname>Lipman</surname> <given-names>D.</given-names></name></person-group> (<year>1988</year>). <article-title>The multiple sequence alignment problem in biology</article-title>. <source>SIAM J. Appl. Math</source>. <volume>48</volume>, <fpage>1073</fpage>&#x02013;<lpage>1082</lpage>. <pub-id pub-id-type="doi">10.1137/0148063</pub-id></citation></ref>
<ref id="B4">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Chen</surname> <given-names>X.</given-names></name> <name><surname>Wu</surname> <given-names>Y. J.</given-names></name> <name><surname>Peng</surname> <given-names>X.</given-names></name> <name><surname>Zhao</surname> <given-names>W. Y.</given-names></name></person-group> (<year>2012</year>). <article-title>A collaborative approach for web application development by using component composition</article-title>. <source>J. Front. Comput. Sci. Technol</source>. <volume>7</volume>, <fpage>114</fpage>&#x02013;<lpage>125</lpage>. <pub-id pub-id-type="doi">10.3778/j.issn.1673-9418.1209002</pub-id></citation></ref>
<ref id="B5">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Czarnecki</surname> <given-names>K.</given-names></name> <name><surname>Eisenecker</surname> <given-names>U.</given-names></name></person-group> (<year>2000</year>). <source>Generative Programming: Methods, Tools, and Applications</source>. <publisher-loc>New Jersey</publisher-loc>: <publisher-name>Addison-Wesley</publisher-name>.</citation></ref>
<ref id="B6">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Feng</surname> <given-names>H. W.</given-names></name> <name><surname>Du</surname> <given-names>P. Y.</given-names></name> <name><surname>Liu</surname> <given-names>Y.</given-names></name></person-group> (<year>2019</year>). <article-title>Software reuse technology and its application in software development</article-title>. <source>Electronic Technol. Softw. Eng.</source> <volume>6</volume>:<fpage>51</fpage>.</citation></ref>
<ref id="B7">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Liu</surname> <given-names>Z.</given-names></name></person-group> (<year>2018</year>). <article-title>Application of computer technology in bioinformatics</article-title>. <source>Sci. Technol. Innov.</source> <volume>10</volume>, <fpage>67</fpage>&#x02013;<lpage>68</lpage>.</citation></ref>
<ref id="B8">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Notredame</surname> <given-names>C.</given-names></name> <name><surname>Holm</surname> <given-names>L.</given-names></name> <name><surname>Higgins</surname> <given-names>D. G.</given-names></name></person-group> (<year>1998</year>). <article-title>COFFEE: an objective function for multiple sequence alignments</article-title>. <source>Bioinformatics</source> <volume>14</volume>, <fpage>407</fpage>&#x02013;<lpage>422</lpage>. <pub-id pub-id-type="doi">10.1093/bioinformatics/14.5.407</pub-id><pub-id pub-id-type="pmid">9682054</pub-id></citation></ref>
<ref id="B9">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Rong</surname> <given-names>Y. D.</given-names></name></person-group> (<year>2015</year>). <article-title>Application research of mybatis persistence layer framework</article-title>. <source>Inf. Security Technol</source>. <volume>6</volume>, <fpage>86</fpage>&#x02013;<lpage>88</lpage>. <pub-id pub-id-type="doi">10.3969/j.issn.1674-9456.2015.12.031</pub-id></citation></ref>
<ref id="B10">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Saitou</surname> <given-names>N.</given-names></name> <name><surname>Nei</surname> <given-names>M.</given-names></name></person-group> (<year>1987</year>). <article-title>The neighbor-joining method: a new method for reconstructing phylogenetic trees</article-title>. <source>Mol. Biol. Evol</source>. <volume>4</volume>, <fpage>406</fpage>&#x02013;<lpage>425</lpage>.</citation></ref>
<ref id="B11">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Thompson</surname> <given-names>J. D.</given-names></name> <name><surname>Higgins</surname> <given-names>D. G.</given-names></name> <name><surname>Gibson</surname> <given-names>T. J.</given-names></name></person-group> (<year>1994</year>). <article-title>CLUSTAL W: improving the sensitivity of progressive multiple sequence alignment through sequence weighting, position-specific gap penalties and weight matrix choice</article-title>. <source>Nucleic Acids Res</source>. <volume>22</volume>, <fpage>4673</fpage>&#x02013;<lpage>4680</lpage>. <pub-id pub-id-type="doi">10.1093/nar/22.22.4673</pub-id><pub-id pub-id-type="pmid">7984417</pub-id></citation></ref>
<ref id="B12">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Wang</surname> <given-names>C. J.</given-names></name> <name><surname>Xue</surname> <given-names>J. Y.</given-names></name></person-group> (<year>2009</year>). <article-title>Formal derivation of a generic algorithmic program for solving a class of extremum problems</article-title>, in <source>2009 10th ACIS International Conference on Software Engineering, Artificial Intelligences, Networking and Parallel/Distributed Computing</source> (<publisher-loc>Daegu</publisher-loc>), <fpage>100</fpage>&#x02013;<lpage>105</lpage>. <pub-id pub-id-type="doi">10.1109/SNPD.2009.46</pub-id></citation></ref>
<ref id="B13">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Wang</surname> <given-names>G.</given-names></name> <name><surname>Liu</surname> <given-names>Y.</given-names></name> <name><surname>Zhu</surname> <given-names>D.</given-names></name> <name><surname>Klau</surname> <given-names>G. W.</given-names></name> <name><surname>Feng</surname> <given-names>W.</given-names></name></person-group> (<year>2015</year>). <article-title>Bioinformatics methods and biological interpretation for next-generation sequencing data</article-title>. <source>Biomed Res. Int</source>. <volume>2015</volume>:<fpage>690873</fpage>. <pub-id pub-id-type="doi">10.1155/2015/690873</pub-id><pub-id pub-id-type="pmid">26436095</pub-id></citation></ref>
<ref id="B14">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Wang</surname> <given-names>L.</given-names></name> <name><surname>Jiang</surname> <given-names>T.</given-names></name></person-group> (<year>1994</year>). <article-title>On the complexity of multiple sequence alignment</article-title>. <source>J. Comput. Biol</source>. <volume>1</volume>, <fpage>337</fpage>&#x02013;<lpage>348</lpage>. <pub-id pub-id-type="doi">10.1089/cmb.1994.1.337</pub-id><pub-id pub-id-type="pmid">8790475</pub-id></citation></ref>
<ref id="B15">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Wang</surname> <given-names>Q.</given-names></name> <name><surname>Ping</surname> <given-names>J.</given-names></name> <name><surname>Ban</surname> <given-names>Y.</given-names></name></person-group> (<year>2018</year>). <article-title>Application of software engineering technology in system software development process</article-title>. <source>China N. Telecommun</source>. <volume>21</volume>, <fpage>96</fpage>&#x02013;<lpage>97</lpage>. <pub-id pub-id-type="doi">10.3969/j.issn.1673-4866.2019.09.080</pub-id></citation></ref>
<ref id="B16">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Wang</surname> <given-names>Y. H.</given-names></name> <name><surname>Zhang</surname> <given-names>J. S.</given-names></name> <name><surname>Deng</surname> <given-names>A. M.</given-names></name></person-group> (<year>2016</year>). <article-title>Spring boot research and application</article-title>. <source>Inf. Commun</source>. <volume>10</volume>, <fpage>91</fpage>&#x02013;<lpage>94</lpage>. <pub-id pub-id-type="doi">10.3969/j.issn.1673-1131.2016.10.045</pub-id></citation></ref>
<ref id="B17">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Wu</surname> <given-names>M.</given-names></name></person-group> (<year>2019</year>). <source>Instantiated Component Assembly Platform</source>. Jilin university.</citation></ref>
<ref id="B18">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Xu</surname> <given-names>F.</given-names></name> <name><surname>Liu</surname> <given-names>Y.</given-names></name> <name><surname>Huang</surname> <given-names>H.</given-names></name></person-group> (<year>2006</year>). <article-title>Research of component composition technology based on software architecture connector</article-title>. <source>Comput. Appl.</source> <volume>26</volume>, <fpage>836</fpage>&#x02013;<lpage>839</lpage>.</citation></ref>
<ref id="B19">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Xue</surname> <given-names>J.</given-names></name></person-group> (<year>1993</year>). <article-title>Two new strategies for developing loop in variants and their applications</article-title>. <source>J. Comput. Sci. Technol</source>. <volume>8</volume>, <fpage>147</fpage>&#x02013;<lpage>154</lpage>. <pub-id pub-id-type="doi">10.1007/BF02939477</pub-id></citation></ref>
<ref id="B20">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Xue</surname> <given-names>J.</given-names></name></person-group> (<year>1997</year>). <article-title>A unified approach for developing efficient algorithmic programs</article-title>. <source>J. Comput. Sci. Technol</source>. <volume>12</volume>, <fpage>314</fpage>&#x02013;<lpage>329</lpage>. <pub-id pub-id-type="doi">10.1007/BF02943151</pub-id></citation></ref>
<ref id="B21">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Xue</surname> <given-names>J.</given-names></name></person-group> (<year>1998</year>). <article-title>Formal derivation of graph algorithmic programs using partition-and-recur</article-title>. <source>J. Comput. Sci. Technol</source>. <volume>13</volume>, <fpage>553</fpage>&#x02013;<lpage>561</lpage>. <pub-id pub-id-type="doi">10.1007/BF02946498</pub-id></citation></ref>
<ref id="B22">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Xue</surname> <given-names>J.</given-names></name></person-group> (<year>2016</year>). <article-title>Genericity in PAR Platform</article-title>, in <source>International Workshop on Structured Object-Oriented Formal Language and Method</source> (<publisher-loc>Cham</publisher-loc>: <publisher-name>Springer</publisher-name>), <fpage>3</fpage>&#x02013;<lpage>14</lpage>. <pub-id pub-id-type="doi">10.1007/978-3-319-31220-0_1</pub-id><pub-id pub-id-type="pmid">26799652</pub-id></citation></ref>
<ref id="B23">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Xue</surname> <given-names>J.</given-names></name> <name><surname>Zheng</surname> <given-names>Y.</given-names></name> <name><surname>Hu</surname> <given-names>Q.</given-names></name> <name><surname>You</surname> <given-names>Z.</given-names></name> <name><surname>Xie</surname> <given-names>W.</given-names></name> <name><surname>Cheng</surname> <given-names>Z.</given-names></name></person-group> (<year>2018</year>). <article-title>PAR: a practicable formal method and its supporting platform</article-title>, in <source>Formal Methods and Software Engineering</source>, eds J. Sun, and M. Sun (<publisher-loc>Gold Coast, QLD: ICFEM</publisher-loc>) 70&#x02013;86. <pub-id pub-id-type="doi">10.1007/978-3-030-02450-5_5</pub-id></citation></ref>
<ref id="B24">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Yin</surname> <given-names>H. G.</given-names></name></person-group> (<year>2017</year>). <source>Component-Based Software Development</source>. Jiangsu University of Science and Technology.<pub-id pub-id-type="pmid">12449146</pub-id></citation></ref>
<ref id="B25">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Zhan</surname> <given-names>Q.</given-names></name> <name><surname>Fu</surname> <given-names>Y.</given-names></name> <name><surname>Jiang</surname> <given-names>Q. H.</given-names></name> <name><surname>Liu</surname> <given-names>B.</given-names></name> <name><surname>Peng</surname> <given-names>J.</given-names></name> <name><surname>Wang</surname> <given-names>Y. D.</given-names></name></person-group> (<year>2020</year>). <article-title>SpliVert: a protein multiple sequence alignment refinement method based on splitting-splicing vertically</article-title>. <source>Protein Pept. Lett.</source> <volume>27</volume>, <fpage>295</fpage>&#x02013;<lpage>302</lpage>. <pub-id pub-id-type="doi">10.2174/0929866526666190806143959</pub-id><pub-id pub-id-type="pmid">31385760</pub-id></citation></ref>
<ref id="B26">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Zhan</surname> <given-names>Q.</given-names></name> <name><surname>Wang</surname> <given-names>N.</given-names></name> <name><surname>Jin</surname> <given-names>S.</given-names></name> <name><surname>Tan</surname> <given-names>R.</given-names></name> <name><surname>Jiang</surname> <given-names>Q. H.</given-names></name> <name><surname>Wang</surname> <given-names>Y. D.</given-names></name></person-group> (<year>2019</year>). <article-title>ProbPFP: a multiple sequence alignment algorithm combining hidden Markov model optimized by particle swarm optimization with partition function</article-title>. <source>BMC Bioinformatics.</source> <volume>20</volume>(<supplement>Suppl. 18</supplement>):573. <pub-id pub-id-type="doi">10.1186/s12859-019-3132-7</pub-id><pub-id pub-id-type="pmid">31760933</pub-id></citation></ref>
<ref id="B27">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Zhang</surname> <given-names>F. W.</given-names></name></person-group> (<year>2018</year>). <source>Research and Application of Component-Based Software Reuse Technology</source>. University of north.</citation></ref>
<ref id="B28">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Zhang</surname> <given-names>R.</given-names></name> <name><surname>Wang</surname> <given-names>Y.</given-names></name> <name><surname>Zhu</surname> <given-names>X.</given-names></name> <name><surname>Yin</surname> <given-names>J.</given-names></name> <name><surname>Han</surname> <given-names>C.</given-names></name> <name><surname>Yang</surname> <given-names>Y.</given-names></name></person-group> (<year>2018</year>). <article-title>Study on optimization initial center K-Means Algorithm based on UPGMA</article-title>. <source>Comput. Technol. Dev</source>. <volume>28</volume>, <fpage>50</fpage>&#x02013;<lpage>58</lpage>. <pub-id pub-id-type="doi">10.19720/j.cnki.issn.1005-9369.2005.05.027</pub-id></citation></ref>
<ref id="B29">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Zhang</surname> <given-names>S.</given-names></name> <name><surname>Li</surname> <given-names>H.</given-names></name> <name><surname>Gu</surname> <given-names>Z. G.</given-names></name></person-group> (<year>2005</year>). <article-title>A powerful tool for functional genomics research&#x02212;Comparative genomics</article-title>. <source>J. Northeast Agric. Univ</source>. <volume>36</volume>, <fpage>664</fpage>&#x02013;<lpage>668</lpage>.</citation></ref>
<ref id="B30">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Zhang</surname> <given-names>W.</given-names></name> <name><surname>Mei</surname> <given-names>H.</given-names></name></person-group> (<year>2003</year>). <article-title>A feature-oriented domain model and its modeling process</article-title>. <source>Softw. J</source>. <volume>14</volume>, <fpage>1345</fpage>&#x02013;<lpage>1356</lpage>. <pub-id pub-id-type="doi">10.13328/j.cnki.jos.2003.08.001</pub-id></citation></ref>
<ref id="B31">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Zhang</surname> <given-names>W.</given-names></name> <name><surname>Mei</surname> <given-names>H.</given-names></name></person-group> (<year>2014</year>). <article-title>Feature-oriented software reuse technology-state of the art (in Chinese). Chin. Sci. Bull</article-title>. <volume>59</volume>, <fpage>21</fpage>&#x02013;<lpage>42</lpage>. <pub-id pub-id-type="doi">10.1360/972013-341</pub-id></citation></ref>
<ref id="B32">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Zhen</surname> <given-names>D. W.</given-names></name> <name><surname>Shen</surname> <given-names>L. W.</given-names></name> <name><surname>Peng</surname> <given-names>X.</given-names></name> <name><surname>Zhao</surname> <given-names>W. Y.</given-names></name></person-group> (<year>2014</year>). <article-title>Conponent composition technology and tool based on AJAX for web application</article-title>. <source>Comput. Sci</source>. <volume>41</volume>, <fpage>152</fpage>&#x02013;<lpage>156</lpage>. <pub-id pub-id-type="doi">10.11896/j.issn.1002-137X.2014.11.030</pub-id></citation></ref>
<ref id="B33">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Zhu</surname> <given-names>H. Q.</given-names></name></person-group> (<year>2017</year>). <article-title>Discussion on computer software reuse technology</article-title>. <source>The Digital World</source> <volume>12</volume>:<fpage>425</fpage>.</citation></ref>
</ref-list>
<fn-group>
<fn fn-type="financial-disclosure"><p><bold>Funding.</bold> This work was supported by the National Natural Science Foundation of China under Grant Nos. 61662035, 62062039, and 71561010, the Natural Science Foundation of Jiangxi Province under Grand No. 20202BAB202024, and the Post-graduate Innovation Project of Jiangxi Province under Grand No. YC2016-B061.</p>
</fn>
</fn-group>
</back>
</article> 