跳转到主要内容

sourmash插件,用于改进宏基因组中的包含性搜索输出

项目描述

sourmash_plugin_containment_search:改进宏基因组中基因组包含性搜索

此插件提供两个命令 sourmash scripts mgsearchsourmash scripts mgmanysearch,它们提供了在宏基因组中搜索基因组的新颖且更好的输出。它是 sourmash软件 的插件。

背景

报告查询在数据集中的存在并估计其丰度是许多生物信息学分析的核心要求,尤其是宏基因组学。

此插件提供两个命令,使用k-mer来估计查询在数据集中的存在和丰度。用例包括

  • 检测宏基因组中的特定基因组;
  • 估计宏基因组中基因组的丰度;
  • 宏基因组中contig级别的丰度估计用于分类;
  • 宏基因组中基因组的菌株级别分析;

此插件使用基于 FracMinHash估计 来计算k-mer 检测 并根据k-mer多重性估计 覆盖率。这些数字与基于映射的检测和覆盖率非常接近。

此插件使用 Rahman Hera等人在2023年描述的方法 并在sourmash中实现来输出平均核苷酸身份估计。

安装

要安装此插件,请运行

pip install sourmash_plugin_containment_search

(如果您尚未安装sourmash,这将安装sourmash。)

用法

此插件启用两个命令,mgsearchmgmanysearch

mgsearch - 在多个数据集中搜索单个查询

此命令

sourmash scripts mgsearch query.sig metagenome.sig [ metagenome2.sig ...] \
    [ -o output.csv ]

将在一个或多个 metagenome.sig 文件中搜索查询基因组 query.sig,产生可读性良好的人类输出和(可选)有用的CSV输出。

例如,

sourmash scripts mgsearch ../sourmash/podar-ref/0.fa.sig ../sourmash/SRR606249.trim.k31.sig.gz

产生

Loaded query signature: CP001472.1 Acidobacterium capsulatum ATCC 51196, com...

p_genome avg_abund   p_metag   metagenome name
-------- ---------   -------   ---------------
 100.0%    55.4         3.1%   SRR606249

此插件还可以与所有标准sourmash数据库类型一起工作。

请注意,必须使用 -p abund 选项来绘制宏基因组,以启用 avg_abundp_metag 列。

mgmanysearch - 在多个数据集中搜索多个查询

此命令

sourmash scripts mgmanysearch --queries query1.sig [ query2.sig ... ]\
    --against metagenome.sig [ metagenome2.sig ...] \
    [ -o output.csv ]

将在一个或多个 metagenome*.sig 文件中搜索 query*.sig 查询,生成可读性较好的输出,以及(可选)有用的CSV输出。

背景:为什么有这个命令?

sourmash search 支持样本搜索样本搜索,范围很广——也许太广了。 并且输出格式并不那么有帮助。

sourmash prefetch 支持对多个基因组进行宏基因组重叠搜索,这与本用例相反。此外,prefetch 不提供加权结果,其输出也不友好。

sourmash gather 有友好的有用输出,但不能用于计算单个查询基因组与多个目标宏基因组之间的重叠。

也有人对于 反向包含搜索 表示兴趣。

sourmash branchwater 插件的 manysearch 命令也执行类似的包含搜索,但它的输出不友好,也不提供加权结果。(然而,manysearch 的内存使用量要低得多,可能要快得多,因为它主要是用 Rust 编写的。)

高级信息:实现细节

此命令是流式的,即它会加载每个宏基因组,计算匹配,然后丢弃宏基因组。因此,其内存使用量在最大的宏基因组时达到峰值,其最大值应由查询的大小加上最大宏基因组的大小驱动。

CSV输出

每一行包含以下信息。

比较详情

  • intersect_bp - 基因组和宏基因组之间的重叠,通过乘以使用的缩放因子来估计。
  • f_query - 查询(基因组)中找到的比例,即“检测”;大致等于将被映射的宏基因组读数覆盖的碱基数量。
  • f_match - 找到的宏基因组比例,未加权。
  • f_match_weighted - 找到的宏基因组比例,加权。大致等于将映射到该基因组的宏基因组读数的比例。
  • sum_weighted_found - 交集哈希的权重总和。
  • average_abund - 交集哈希的权重平均丰度。
  • median_abund - 交集哈希权重的中位数丰度。
  • std_abund - 交集哈希权重的标准偏差。
  • jaccard - (未加权)sketch之间的Jaccard相似度。
  • genome_containment_ani - 从宏基因组中的基因组包含估计的ANI。用于基因组ANI估计。
  • match_containment_ani - 从基因组中的宏基因组包含估计的ANI。
  • average_containment_ani - 从基因组和宏基因组包含的平均值估计的ANI。
  • max_containment_ani - 从基因组/宏基因组之间的最大包含估计的ANI。
  • potential_false_negative - 如果草图大小太小,无法提供可靠的ANI估计,则为真。如果ANI估计可靠,则为假。

草图信息

  • ksize - 比较的ksize。
  • moltype - 比较的moltype。
  • scaled - 比较的缩放。

查询(基因组)信息

  • query_filename - 从草图中的基因组文件名。
  • query_name - 基因组名称。
  • query_md5 - 基因组md5。
  • query_n_hashes - 基因组中的哈希总数。

匹配(宏基因组)信息

  • match_filename - 从草图中的宏基因组文件名。
  • match_name - 宏基因组名称。
  • match_md5 - 宏基因组md5。
  • match_n_hashes - 宏基因组中的哈希总数。
  • match_n_weighted_hashes - 宏基因组中的加权哈希总数。

支持

我们建议在 主sourmash问题跟踪器 中提交问题,因为那里会得到更多的关注!

开发文档

containment_searchhttps://github.com/ctb/sourmash_plugin_containment_search 开发。

生成发布版本

pyproject.toml 中增加版本号并推送。

在 github 上创建新的发布版本。

然后拉取,并

python -m build

接着执行 twine upload dist/...

项目详情


下载文件

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

源分布

构建分布

支持