1 个不稳定版本
0.2.2 | 2024 年 7 月 28 日 |
---|
#76 在 生物学
每月 133 次下载
115KB
2.5K SLoC
HyperGen:使用超维度向量进行紧凑高效的基因组草图绘制
HyperGen 是一个用于绘制基因组文件并实现快速平均核苷酸身份 (ANI) 近似的 Rust 库。 HyperGen 利用以下两种先进算法:1. FracMinHash 和 2. 超维度计算 (HDC) 以及随机索引,如下图所示
HyperGen 首先使用 FracMinHash 采样 kmer 集合。然后使用 HDC 编码将 kmer 哈希值编码为超维度向量 (HV),以获得更好的 ANI 估计质量、草图大小和计算速度之间的权衡。由 HyperGen 生成的草图大小比 Mash 和 Dashing 2 小 1.8 到 2.7 倍。在 HyperGen 中,可以使用高度向量化的向量乘法实现 ANI 估计。在大型数据集上,HyperGen 的数据库搜索速度比 Dashing 2 快 4.3 倍。
快速入门
安装
基本安装
HyperGen 需要 Rust
语言和 Cargo
。我们建议使用以下命令安装 HyperGen
git clone https://github.com/wh-xu/Hyper-Gen.git
cd Hyper-Gen
# Without GPU acceleration for sketching
cargo install --path .
安装带 GPU 支持的版本
HyperGen 支持GPU加速。使用GPU模式将需要安装NVIDIA GPU驱动程序。使用 nvidia-smi
或 nvcc -V
检查是否已安装驱动程序。然后运行以下命令以安装带GPU支持的版本
# With GPU acceleration for sketching
cargo install --features cuda-sketch --path .
目前仅支持Nvidia GPU。我们在具有CUDA版本 RTX4090
的桌面和具有CUDA版本 RTX4060
的笔记本电脑上测试了兼容性。
用法
当前版本支持以下功能
1. 对 .fa/.fna/.fasta 文件的基因组草图绘制
Example:
hyper-gen sketch -p ./data -o ./fna.sketch
Positional arguments:
-p, --path <PATH> Input folder path to sketch
-o, --out <OUT> Output path
-t, --thread <THREAD> Threads used for computation [default: 16]
-C, --canonical <CANONICAL> If use canonical kmer [default: true]
-k, --ksize <KSIZE> k-mer size for sketching [default: 21]
-s, --scaled <SCALED> Scaled factor for FracMinHash [default: 1500]
-d, --hv_d <HD_D> Dimension for hypervector [default: 4096]
-D, --device <DEVICE> Device to run [default: cpu] [possible values: cpu, gpu]
2. ANI 估计和数据库搜索
Example:
hyper-gen dist -r fna1.sketch -q fna2.sketch -o output.ani
Positional arguments:
-r, --path_r <PATH_R> Path to ref sketch file
-q, --path_q <PATH_Q> Path to query sketch file
-o, --out <OUT> Output path
-t, --thread <THREAD> Threads used for computation [default: 16]
-a, --ani_th <ANI_TH> ANI threshold [default: 85.0]
3. 在 GPU 上更快地绘制草图
HyperGen 支持将 kmer 哈希和采样步骤卸载到 GPU,以加快草图绘制过程。使用以下命令在 GPU 设备上运行
hyper-gen sketch -D gpu -p ./data -o ./fna.sketch
Mash 和 HyperGen 之间的区别
- (a) Mash 使用 MinHash 采样 kmer 哈希集,并将离散的哈希值存储为基因组草图。
- (b) HyperGen 使用 FracMinHash 对 kmer 哈希集进行采样,并将离散的哈希值编码为连续的 sketch 超向量。
出版物
- 魏宏旭,许伯凯,尼米亚·莫什里,余世盟,塔亚娜·罗辛。"HyperGen: 使用超维度向量进行紧凑和高效的基因组草图绘制。" 生物信息学,2024。
联系方式
如需更多信息,请发布问题或发送电子邮件至 [email protected]。
依赖项
~9-24MB
~391K SLoC