19 个版本

0.3.10 2024 年 8 月 19 日
0.3.9 2024 年 7 月 23 日
0.3.7 2024 年 3 月 12 日
0.3.5 2023 年 11 月 23 日
0.2.3 2023 年 2 月 20 日

#50生物学

Download history 8/week @ 2024-06-10 123/week @ 2024-07-08 128/week @ 2024-07-22 30/week @ 2024-07-29

每月 162 次下载

Apache-2.0

200KB
3.5K SLoC

分割 K-mer 分析(版本 2)

Cargo Build & Test docs.rs Clippy check codecov Crates.io GitHub release (latest SemVer)

描述

这是由 Johanna von Wachsmann、Simon Harris 和 John Lees 在 Rust 语言中重新实现的 SKA 软件包。我们还要感谢以下用户对我们的贡献:

  • Romain Derelle
  • Tommi Maklin
  • Joel Hellewell
  • Timothy Russell
  • Nicholas Croucher
  • Dan Lu

分割 k-mer 分析(版本 2)通过精确匹配分割 k-mer 序列来对密切相关序列进行对齐,通常用于细菌和病毒等小型单倍体基因组。

SKA 只能对 k-mer 长度之外的 SNPs 进行对齐,不使用间隙惩罚方法或给出对齐得分。但其优点是速度和灵活性,尤其是能够在无参考模式下运行(即包括辅助基因组变异)在组装和读取中。

文档

可以在 https://docs.rs/ska 找到。我们还有一些教程可供使用

安装

选择以下方式

  1. 发布 下载二进制文件。
  2. 使用 cargo install skacargo add ska
  3. 使用 conda install -c bioconda ska2(注意两个!)。
  4. 从源代码构建

对于 2) 或 4),您必须已安装 rust 工具链

OS X 用户

如果您使用的是M1/M2(arm64)Mac,我们目前还没有自动构建二进制文件,因此建议选择2)或4)以获得最佳性能。

如果您收到一条消息说二进制文件未由Apple签名且无法运行,请使用以下命令绕过此限制:

xattr -d "com.apple.quarantine" ./ska

从源代码构建

  1. 使用以下命令克隆仓库:git clone.
  2. 运行以下命令以优化您的机器:cargo install --path .RUSTFLAGS="-C target-cpu=native" cargo install --path .

与SKA1的不同之处

优化包括

  • 整数DNA编码,优化从FASTA/FASTQ的解析。
  • 更快的字典。
  • 构建阶段的完全并行化。
  • 更小、标准化的输入/输出文件。保存/加载更快。
  • 通过读取过滤减少内存占用并提高速度。

以及其他改进

  • 多拷贝分k-mer的IUPAC不确定性代码。
  • 自我反向互补分k-mer(回文)的不确定性。
  • 完全动态文件(合并、删除样本)。
  • 原生VCF输出映射。
  • 支持已知的链序列(例如RNA病毒)。
  • 将数据流到STDOUT或带有-o的文件。
  • 更简单的命令行结合ska fastaska fastqska allelesska merge到新的ska build
  • 单条命令运行ska alignska map的选项。
  • 针对使用ska cov过滤FASTQ文件的新覆盖率模型。
  • 日志记录。
  • CI测试。

所有这些使ska.rust的运行速度更快,文件大小和内存占用更小。

计划中的功能

  • 稀疏数据结构,将减少空间并使并行化更有效。 问题 #47
  • 'fastcall'模式。 问题 #52

功能想法(尚未确定计划)

  • 在VCF输出中添加对模糊性的支持(ska map)。 问题 #5
  • .skf文件的非序列加载(当它们非常大时)。 问题 #22
  • 读取错误校正的替代混合模型。 问题 #50

您不能再做的事情

  • 使用k > 63(这不是必要的?如果您需要此功能,请告诉我们原因)。
  • ska annotate(使用bedtools)。
  • ska compareska humaniseska infoska summary(已由ska nk --full-info取代)。
  • ska unique(如果您想使用此功能,可以解析ska nk --full-info,但我们认为使用不多)。
  • ska type(使用PopPUNK而不是MLST)
  • Ns始终被忽略,不会出现在任何分k-mer中。
  • .skf文件与版本1不兼容。

依赖关系

~14–24MB
~333K SLoC