紧凑位切片签名索引 (COBS)
项目描述
紧凑位切片签名索引 (COBS)
COBS(压缩位切片签名索引)是倒排索引和布隆过滤器之间的交叉。我们的目标应用是从文本文档中索引 DNA 样本或 q-gram 的 k-mers,并在具有用户选择的覆盖阈值的语料库上处理近似模式匹配查询。查询结果可能包含一些误报,这些误报随着查询长度和构建时确定的索引的误报率呈指数下降。COBS 紧凑而简单的数据结构在构建时间和查询性能方面优于 Pandey 等人的 Mantis 的其他索引。位居第二。但是,与 Mantis 和其他先前的工作不同,COBS 不需要 RAM 中的完整索引,因此旨在扩展到更大的文档集。
COBS 有两个接口:
- 在 C++ 中调用的命令行工具
cobs(见下文) - C++ 库的 Python 接口(参见https://bingmann.github.io/cobs-python-docs/)
有关 COBS 的更多信息,请参阅我们当前的研究论文:Timo Bingmann、Phelim Bradley、Florian Gauger 和 Zamin Iqbal。“COBS:紧凑的位切片签名索引”。在:第 26 届字符串处理和信息检索 (SPIRE) 国际研讨会上。第 285-303 页。斯宾格。2019 年 10 月。预印本 arXiv:1905.09624。
安装和第一步
安装
COBS 需要 CMake、C++17 编译器或 Boost.Filesystem 库。
要下载并安装 COBS,请运行:
git clone --recursive https://github.com/bingmann/cobs.git
mkdir cobs/build
cd cobs/build
cmake ..
make -j4
并可选择运行make test以检查构建。
建立索引
COBS 可以读取 FASTA 文件 ( *.fa, *.fasta, *.fa.gz, *.fasta.gz)、FASTQ 文件 ( *.fq, *.fastq, *.fq.gz., *.fastq.gz)、McCortex 文件 ( *.ctx) 或文本文件 ( *.txt)。
您可以递归地扫描目录以查找与这些文件中的任何一个匹配的所有文件,或者传递一个*.list列出 COBS 应索引的所有路径的文件。
要检查要索引的文档列表,例如运行
src/cobs doc-list tests/data/fasta/
要从这七个示例文档构建一个紧凑的 COBS 索引,请运行
src/cobs compact-construct tests/data/fasta/ example.cobs_compact
检查--help许多选项。
查询索引
COBS 有一个简单的命令行查询工具:
src/cobs query -i example.cobs_compact AGTCAACGCTAAGGCATTTCCCCCCTGCCTCCTGCCTGCTGCCAAGCCCT
或查询的fasta文件
src/cobs query -i example.cobs_compact -f query.fa
Python 接口
COBS 还有一个 Python 前端接口,可用于构建和查询索引。有关教程,请参阅https://bingmann.github.io/cobs-python-docs/。
实验结果
在我们的论文中,我们将 COBS 与其他七个 k-mer 索引软件包进行了比较。这些是主要结果,按索引中的文档数量缩放,并且在每个文档显示的第二个图表中。
项目详情
cobs_index -0.1.2.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 3767b0c42ed1902dc9fdff7b98efb849ec87f7086638a16f1316e37c102e7b1b |
|
| MD5 | 597cc7f0f5e4664798fabbd584c6ada2 |
|
| 布莱克2-256 | 016f187f5e6214d5217a0cb93acd96b30a576f55fcebcccb1f5dc00ca952f5a8 |
cobs_index -0.1.2-cp38-cp38-manylinux2010_x86_64.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 736753e494dbcaaaf88ca2f9c3eb5e87c3bca0355dec4bbd536724b4e0f130eb |
|
| MD5 | 56954b9113ab545b2d876abd1d5ee828 |
|
| 布莱克2-256 | b93b57250988b681679f70caaeb38faa4d5b67ab054b7cf08dd1cad4309d5c49 |
cobs_index -0.1.2-cp37-cp37m-manylinux2010_x86_64.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | a87315eabd4dce723a3ecf781a665be3ca4ea0195f6be11abc13f00c855e58b7 |
|
| MD5 | 724bd83cf95ad8e37070d31bbf78e7d0 |
|
| 布莱克2-256 | 95ff742c296fd36663f80445c96aa325c2e8a28f9f83ca188c4f016e9f35ab0b |
cobs_index -0.1.2-cp36-cp36m-manylinux2010_x86_64.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | f439fb0cf0af6f37361d27c29acd5d1c880c24706fcfbc5dbdccfc190ac000c1 |
|
| MD5 | 64ce109c29ae58620811e9eb36b06e57 |
|
| 布莱克2-256 | 0bd070eab004eb1114449e75d5213538b4e78c3c113552b96f65c7bbfafc3e3c |
cobs_index -0.1.2-cp35-cp35m-manylinux2010_x86_64.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 373c03e4b0940d6c5a1d729ff0e19208bc64042e4d69cc2d094a5549ebee1f6a |
|
| MD5 | 445d725e4e51f91f4f3a9af9b9440744 |
|
| 布莱克2-256 | 5c2da3d30440ef0441e90508ea60995306f05a8e487dcfcd11268bf3b5d4e957 |
cobs_index -0.1.2-cp34-cp34m-manylinux2010_x86_64.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 5cff12d75321ba5a1b76bc9053cb678605ea786354a1c6842dd49ba5bb3b4654 |
|
| MD5 | 7a7ca55f4e89088c9da311fc556639d3 |
|
| 布莱克2-256 | feec567b1fef709483eccee677db7674a3523686693dbcc1c8c371e4ee984473 |
cobs_index -0.1.2-cp27-cp27mu-manylinux2010_x86_64.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 2cb0c18cd49d0b375ee869dac951469bcc96a81ef93f0a2b505b9c5823b644f8 |
|
| MD5 | c866e9b2308d17aa624198ac35a6727a |
|
| 布莱克2-256 | 7b74701f80ac48d2f75f15950345bea393097ec604f52e48a1c5a2f36674a11b |
cobs_index -0.1.2-cp27-cp27m-manylinux2010_x86_64.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 8171c3bc0820d3f2996787dc2e082d0ac750ec759a4aa61c162547870f7416a6 |
|
| MD5 | de72451136c646c2d2195e4ddfc8b897 |
|
| 布莱克2-256 | 5e55b6ff9611d823fe1f749f1f59af69c9310ea64561da2c32fd09af73746bea |