11 个版本 (7 个重大更新)
0.8.0 | 2024年6月28日 |
---|---|
0.7.3 | 2024年6月17日 |
0.6.0 | 2023年12月13日 |
0.5.1 | 2023年8月31日 |
0.1.1 | 2023年5月4日 |
#164 in 生物学
每月下载量710
1.5MB
5K SLoC
🎼🧬 lightmotif
一个轻量级的 平台加速 库,用于使用 生物基序 扫描 位置权重矩阵.
🗺️ 概览
基序 扫描使用 位置权重矩阵(也称为位置特异性得分矩阵)是一种识别生物序列中固定长度基序的稳健方法。它们可以用于识别 转录因子 在DNA中的 结合位点,或者在 蛋白酶 在 多肽 中的 切割位点。位置权重矩阵通常被视为 序列图
lightmotif
库提供了一个 Python 模块,用于运行在位置权重矩阵中编码的基序的高效搜索。位置扫描结合了多种技术,以实现序列的高通量处理
- 编译时定义字母表和矩阵维度。
- 序列符号编码,用于快速表查找,如 HMMER[1] 或 MEME[2] 实现。
- 受 Michael Farrar[3] 启发,采用带条纹的序列矩阵并行处理多个位置。
- 使用 AVX2 的
permute
指令进行矢量化矩阵行查找。
这是 Python 版本,还有一个可用的 Rust 库。
🔧 安装
lightmotif
可以直接从 PyPI 安装,该网站托管了大多数主流平台的预构建轮文件,以及使用 Rust 编译源代码所需的代码。
$ pip install lightmotif
如果您必须从源代码编译此软件包,所有所需的 Rust 库都包含在源代码分发中,如果没有主机机器上的 Rust 编译器,则会自动设置一个。
💡 示例
motif 接口应该与来自 Bio.motifs
的模块兼容,该模块来自 Biopython。值得注意的是,PSSM 对象的 calculate
方法期望一个 striped 序列。
import lightmotif
# Create a count matrix from an iterable of sequences
motif = lightmotif.create(["GTTGACCTTATCAAC", "GTTGATCCAGTCAAC"])
# Create a PSSM with 0.1 pseudocounts and uniform background frequencies
pwm = motif.counts.normalize(0.1)
pssm = pwm.log_odds()
# Encode the target sequence into a striped matrix
seq = "ATGTCCCAACAACGATACCCCGAGCCCATCGCCGTCATCGGCTCGGCATGCAGATTCCCAGGCG"
striped = lightmotif.stripe(seq)
# Compute scores using the fastest backend implementation for the host machine
scores = pssm.calculate(sseq)
⏱️ 基准测试
基准测试使用来自 PRODORIC 的 MX000001 motif,以及 Escherichia coli K12 菌株的完整基因组。基准测试在一个 i7-10710U CPU 上运行,频率为 @1.10GHz,使用 --target-cpu=native
编译。
lightmotif (avx2): 5,479,884 ns/iter (+/- 3,370,523) = 807.8 MiB/s
Bio.motifs: 334,359,765 ns/iter (+/- 11,045,456) = 13.2 MiB/s
MOODS.scan: 182,710,624 ns/iter (+/- 9,459,257) = 24.2 MiB/s
pymemesuite.fimo: 239,694,118 ns/iter (+/- 7,444,620) = 18.5 MiB/s
💭 反馈
⚠️ 问题跟踪器
发现了一个错误?有增强请求吗?如果您需要报告或询问某些内容,请访问 GitHub 问题跟踪器。如果您正在提交错误,请尽可能详细地提供有关问题的信息,并尝试在简单、易于复现的情况下重现相同的错误。
📋 更新日志
该项目遵循 语义版本控制,并提供一个符合 Keep a Changelog 格式的 更新日志。
⚖️ 许可证
此库根据 GNU 通用公共许可证 3.0 或更高版本 提供,因为它包含了 TFM-PVALUE 算法的 GPL 许可代码。可以通过禁用 pvalue
crate 功能来禁用 TFM-PVALUE 依赖项,在这种情况下,代码可以根据 MIT 许可证 的条款使用和重新分发。
该项目由 Martin Larralde 在 欧洲分子生物学实验室 的 Zeller 团队 的博士项目中开发。
📚 参考文献
- Eddy, Sean R. ‘Accelerated Profile HMM Searches’. PLOS Computational Biology 7, no. 10 (20 October 2011): e1002195. doi:10.1371/journal.pcbi.1002195.
- Grant, Charles E., Timothy L. Bailey, and William Stafford Noble. ‘FIMO: Scanning for Occurrences of a given Motif’. Bioinformatics 27, no. 7 (1 April 2011): 1017–18. doi:10.1093/bioinformatics/btr064.
- Farrar, Michael. ‘Striped Smith–Waterman Speeds Database Searches Six Times over Other SIMD Implementations’. Bioinformatics 23, no. 2 (15 January 2007): 156–61. doi:10.1093/bioinformatics/btl582.
- Dudek, Christian-Alexander, and Dieter Jahn. ‘PRODORIC: State-of-the-Art Database of Prokaryotic Gene Regulation’. Nucleic Acids Research 50, no. D1 (7 January 2022): D295–302. doi:10.1093/nar/gkab1110.
依赖关系
~2.5MB
~53K SLoC