<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[blast c++ toolkit 源码分析和使用]]></title><description><![CDATA[<p dir="auto"><a href="https://ncbi.github.io/cxx-toolkit/pages/ch_intro#ch_intro.intro_time" rel="nofollow ugc">https://ncbi.github.io/cxx-toolkit/pages/ch_intro#ch_intro.intro_time</a><br />
C++toolkit<br />
<a href="https://www.ncbi.nlm.nih.gov/toolkit" rel="nofollow ugc">https://www.ncbi.nlm.nih.gov/toolkit</a><br />
The NCBI C++ Toolkit is a public-domain collection of portable libraries, consisting of a cross-platform application framework and a set of utilities and supporting classes to work with biological data.<br />
C++ 工具箱是一个可移植的基础库，包括跨平台的应用框架和一系列工具，用于处理生物数据。blast+就是基于这个库开发的。</p>
<p dir="auto">包括的模块及其内部结构：<br />
1.Corelib 模块<br />
核心基础模块，包括如下子模块：</p>
<ul>
<li>
<p dir="auto">Application Framework<br />
<img src="/assets/uploads/files/1615354636544-eae3055c-b358-4f8e-967d-17a338f4cfd6-image.png" alt="eae3055c-b358-4f8e-967d-17a338f4cfd6-image.png" class=" img-responsive img-markdown" /><br />
该模块最重要的类是抽象类CNcbiApplication 该类定义了所有应用的生命周期类方法Init(), Run(), and Exit(). 以及AppMain()入口函数。</p>
</li>
<li>
<p dir="auto">Argument processing 参数处理<br />
辅助进行参数校验</p>
</li>
<li>
<p dir="auto">Diagnostics 诊断<br />
提供日志管理功能，日志可以设置 Information, Warning, Error, Critical, Fatal, or Trace.六种级别。</p>
</li>
<li>
<p dir="auto">Environment Interface环境变量<br />
设置和访问环境变量</p>
</li>
<li>
<p dir="auto">Files and Directories 文件和目录<br />
封装文件和目录访问类功能</p>
</li>
<li>
<p dir="auto">MT Test wrappers 对多线程的封装<br />
CThreadedApp 集成自 CNcbiApplication 提供了线程相关的接口。</p>
</li>
<li>
<p dir="auto">Object and Ref classes 对象和引用类</p>
</li>
<li>
<p dir="auto">Portability definitions 可移植的通用定义<br />
Int1, Uint1, Int2, Uint2, Int4, Uint4, Int8, Uint8</p>
</li>
<li>
<p dir="auto">Portable Exception Handling 可移植的异常处理</p>
</li>
<li>
<p dir="auto">Portable Process Pipes 可移植的进程管道</p>
</li>
<li>
<p dir="auto">Registry 配置参数管理</p>
</li>
<li>
<p dir="auto">STL Use Hints 提供各种可移植的宏定义<br />
如命名空间<br />
BEGIN_NAME_SPACE END_NAME_SPACE</p>
</li>
<li>
<p dir="auto">String Manipulations 字符串操作</p>
</li>
<li>
<p dir="auto">Template Utilities 模板工具 像一些数据结构工具<br />
list, vector, set, multiset, map or multimap</p>
</li>
<li>
<p dir="auto">Threads 线程</p>
</li>
<li>
<p dir="auto">Time 日期和时间</p>
</li>
</ul>
<ol start="2">
<li>ALGORITHM  算法模块<br />
主要分三类：<br />
ALIGN:对齐比对算法。A set of global alignment algorithms, including generic <strong>Needleman-Wunsch</strong>, a <strong>linear-space Hirschberg’s algorithm</strong> and a <strong>spliced (cDna/mRna-to-Genomic)</strong> alignment algorithm.<br />
BLAST:Basic局部比对查询算法.(我们重点要用的算法)<br />
SEQUENCE.：不同的关于序列操作的算法 antigenic determinant prediction, CPG-island finder, ORF finder, string matcher and others.<br />
3.CGI(Common Gateway Interface)模块<br />
为编写CGI程序提供支持。主要用来支持HTTP报文的请求和响应。<br />
4.CONNECT 模块<br />
处理网络连接<br />
socket 连接器connector sendmail 线程池<br />
5.ctool模块<br />
为c++ toolkit 和 之前旧的 ctool 模块提供转换和桥接。<br />
6.DBAPI  模块（可以看看这个模块是否可以方便的连接HBase）<br />
为访问 RDBMS 提供封装。<br />
7..GUI 模块<br />
本身不提供GUI模块 可以集成第三方图形库，推荐 wxWidgets<br />
8.HTML模块<br />
动态生成HTML页面<br />
9.OBJECT MANAGER  对象管理器<br />
为访问序列(如GenBank中的序列)提供工具<br />
10.SERIAL 模块<br />
ASN.1 (text or BER encoding), XML, and JSON 格式处理。<br />
11.UTIL 模块<br />
Lightweight Strings<br />
Range Support<br />
Linked Sets<br />
Random Number Generator<br />
Registry based DNS<br />
Regular Expressions<br />
Resizing Iterator<br />
Rotating Log Streams<br />
Stream Support<br />
String Search<br />
Synchronized and blocking queue<br />
Thread Pools<br />
UTF 8 Conversion</li>
</ol>
]]></description><link>http://an.forum.genostack.com/topic/241/blast-c-toolkit-源码分析和使用</link><generator>RSS for Node</generator><lastBuildDate>Sat, 13 Jun 2026 09:38:13 GMT</lastBuildDate><atom:link href="http://an.forum.genostack.com/topic/241.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 10 Mar 2021 06:58:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to blast c++ toolkit 源码分析和使用 on Sat, 13 Mar 2021 11:28:19 GMT]]></title><description><![CDATA[<p dir="auto">toolkit第一次编译的时候就要选择debug或者release 一旦编译一个 切换另一个就会失败 我们先使用debug进行调试</p>
]]></description><link>http://an.forum.genostack.com/post/474</link><guid isPermaLink="true">http://an.forum.genostack.com/post/474</guid><dc:creator><![CDATA[anneng]]></dc:creator><pubDate>Sat, 13 Mar 2021 11:28:19 GMT</pubDate></item><item><title><![CDATA[Reply to blast c++ toolkit 源码分析和使用 on Sat, 13 Mar 2021 08:45:54 GMT]]></title><description><![CDATA[<p dir="auto">如何编译 c++ toolkit?<br />
<a href="https://ncbi.github.io/cxx-toolkit/pages/release_notes#release_notes.MS_Windows" rel="nofollow ugc">https://ncbi.github.io/cxx-toolkit/pages/release_notes#release_notes.MS_Windows</a><br />
安装编译环境<br />
<img src="/assets/uploads/files/1615368995405-15ebd6ea-0770-40bf-8cb8-b38c52f8968a-image.png" alt="15ebd6ea-0770-40bf-8cb8-b38c52f8968a-image.png" class=" img-responsive img-markdown" /><br />
安装过程中一定要选择windows通用CRT SDK<br />
<img src="/assets/uploads/files/1615518115089-570116c9-fa0d-4b78-8aaa-37d3267845fb-image.png" alt="570116c9-fa0d-4b78-8aaa-37d3267845fb-image.png" class=" img-responsive img-markdown" /><br />
选择编译范围：<br />
toolkit预置了5个工程，下面前两个为命令行程序  后三个为图形界面程序。也可以通过svn导入需要的源码来构建需要的项目。<br />
compilers\vs2017\static\build\ncbi_cpp.sln(我们后面使用这个工程)<br />
compilers\vs2017\dll\build\ncbi_cpp.sln<br />
compilers\vs2017\static\build\gui\ncbi_gui.sln<br />
compilers\vs2017\dll\build\gui\ncbi_gui.sln<br />
compilers\vs2017\dll\build\gbench\ncbi_gbench.sln</p>
<p dir="auto">打开 ncib_cpp.sln 右键选择_CONFIGURE_  执行build<br />
<em>CONFIGURE</em> 是一个特殊的project，利用 src....\Makefile.<em>来生成VS项目<br />
Configuring is the process of creating configuration files that define exactly what can be built and what options may be used in the build process. The created configuration files include C headers that define suitable preprocessor macros, as well makefiles (for Unix) or project solutions (for MS Visual C++ or for Xcode) used in the build step.<br />
<img src="/assets/uploads/files/1615454356407-de69bc22-3235-4064-a699-850a0548b185-image.png" alt="de69bc22-3235-4064-a699-850a0548b185-image.png" class=" img-responsive img-markdown" /><br />
配置过程中 会弹出来下面的对话框 选择</em><strong>忽略</strong>*<br />
<img src="/assets/uploads/files/1615454502327-04410dd8-e61a-4639-aa94-3e945cb5aed4-image.png" alt="04410dd8-e61a-4639-aa94-3e945cb5aed4-image.png" class=" img-responsive img-markdown" /></p>
<p dir="auto">配置涉及的文件主要有：<br />
src\build-system\Makefile.mk.in.msvc<br />
src\build-system\project_tree_builder.ini<br />
src\….\Makefile.*.msvc<br />
scripts\projects*.lst</p>
]]></description><link>http://an.forum.genostack.com/post/469</link><guid isPermaLink="true">http://an.forum.genostack.com/post/469</guid><dc:creator><![CDATA[anneng]]></dc:creator><pubDate>Sat, 13 Mar 2021 08:45:54 GMT</pubDate></item></channel></rss>