SeqAn3的输入/输出与搜索模块详解
1. SeqAn3输入/输出模块
1.1 基本特性
SeqAn3的输入/输出模块接口与其他模块相似,支持直接遍历文件,默认返回一条记录。同时,也能配置文件仅返回可用字段的子集,这样便于分解记录并仅处理所选字段。相较于Python模块,SeqAn3存在一些“语法开销”,这是C++语言本身的特性。不过,在序列I/O方面,其使用模式与BioPython类似;在比对I/O方面,与PyBam类似。这表明SeqAn3在易用性上有了显著提升。
SeqAn3的格式化文件接口简单易用,且在配置方面具有很大的灵活性。通过视图适配器组合文件提供了一种与基于for循环的迭代不同的风格,这种风格简洁且富有表现力,但对于大多数C++开发者来说比较新颖。这两种风格都是将文件实现为范围的直接结果,而非来自单独的接口。
1.2 集成能力
- 与标准库的集成 :通过使用标准库流并提供接受这些流的公共接口,I/O模块与标准库实现了良好的集成。任何从标准I/O流派生的流都可以使用,例如第三方库提供的不同(解)压缩流。
- 序列化 :SeqAn3的序列化基于Cereal,比SeqAn2更通用,能轻松将SeqAn3类型和第三方类型组合到单个二进制(或文本)存档中。由于Cereal对标准库有广泛支持,大多数标准类型(如容器和元组)都得到了很好的支持。
- 范围特性 :SeqAn3的文件是范围,因此所有适用于范围的标准库算法和视图适配器都可以应用于它们。
超级会员免费看
订阅专栏 解锁全文
36

被折叠的 条评论
为什么被折叠?



