跳转到主要内容

基于语义搜索的真菌DNA条形码

项目描述

TaxoTagger

pypi badge Static Badge

TaxoTagger是一个由语义搜索驱动的Python库,用于DNA条形码识别。

功能

  • 🚀 无需努力即可从DNA序列(FASTA文件)构建向量数据库
  • ⚡ 实现高度高效和准确的语义搜索
  • 🔥 易于扩展对各种嵌入模型的支撑

安装

TaxoTagger需要Python 3.10或更高版本。

# create an virtual environment
conda create -n venv-3.10 python=3.10
conda activate venv-3.10

# install the `taxotagger` package
pip install --pre taxotagger

用法

从FASTA文件构建向量数据库

from taxotagger import ProjectConfig
from taxotagger import TaxoTagger

config = ProjectConfig()
tt = TaxoTagger(config)

# creating the database will take ~30s
tt.create_db('data/database.fasta')

默认情况下,~/.cache/mycoai文件夹用于存储向量数据库和嵌入模型。如果不存在,将自动将MycoAI-CNN.pt模型下载到该文件夹,并创建以模型命名的向量数据库。

使用FASTA文件进行语义搜索

from taxotagger import ProjectConfig
from taxotagger import TaxoTagger

config = ProjectConfig()
tt = TaxoTagger(config)

# semantic search and return the top 1 result for each query sequence
res = tt.search('data/query.fasta', limit = 1)

data/query.fasta文件包含两个查询序列:KY106088KY106087

搜索结果res将是一个字典,键为分类级别名称,值为每个查询序列的匹配结果。例如,res['phylum']将类似于

[
    [{"id": "KY106088", "distance": 1.0, "entity": {"phylum": "Ascomycota"}}],
    [{"id": "KY106087", "distance": 0.9999998807907104, "entity": {"phylum": "Ascomycota"}}]
]

第一个内部列表是第一个查询序列的前几个结果,第二个内部列表是第二个查询序列的前几个结果。

我们可以看到,对于两个查询序列,前1个结果都是完全相同的。这是因为查询序列也存在于数据库中。您可以用不同的查询序列尝试,看看搜索结果。

文档

请访问官方文档获取更多详细信息。

问题和反馈

如果您有任何问题或反馈,请提交问题

引用

如果您在您的作品中使用了TaxoTagger,请通过点击此页面上方的“引用此存储库”来引用它。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪一个,请了解有关安装包的更多信息。

源分布

taxotagger-0.0.1a2.tar.gz (18.2 kB 查看散列)

上传时间

构建分布

taxotagger-0.0.1a2-py3-none-any.whl (19.1 kB 查看散列)

上传时间 Python 3

由以下支持