目录
生物信息DCU加速库genomeworks
1 软件简介
Genomeworks生物信息分析软件是一个开源的基因比对加速库,该项目原生由NVIDIA维护仅支持cuda,目前已经做了DCU适配。该基因比对库利用GPU资源加速基因序列比对过程。目前有两个模块可供使用: 1)cudaaligner 用于双序列的全局比对 2)cudapoa 多序列比对的偏序比对,主要有两个功能:(1)生成公有序列、(2)多序列比对(MSA)的生成
由于原项目cudamapper在此版本中还处于测试阶段,所以在该版本中没有对其做DCU适配。 genomeworks不是一款完整意义上的生物信息软件,它是将主流生物信息算法并行化,封装为SDK,给生物信息领域的开发者使用。例如主流生物信息算法采用的都是"seed_extend"范式,genomeworks将这个过程拆解,封装到不同的模块中。其包含算法主要有: 1) Smith-Waterman 2) Needleman-Wunsch 3)
2 软件下载
3 DCU版软件介绍
cmake 该库的cmake配置文件,其他项目需要与该库一起编译时候可以使用cmake查找库 include 库的头文件 lib 链接库 samples 测试程序
4 测试运行
测试采用googletest测试框架,编译出的测试程序在build/install
cd build/install
./sample_cudaaligner
./sample_cudapoa
5 API简介
详细项目的开发文档可以参考项目根目录下的docs文件夹。
5.1 cudapoa使用方式:
5.1.1 初始化
首先调用create_batch初始化一个batch,通过该函数设置待比对的序列以及空位罚分等信息。该函数会返回一个Batch object,通过该对象可以调用poa相关的函数,POA的相关函数参考5.1.2。
std::unique_ptr<Batch> claragenomics::cudapoa::create_batch (
int32_t max_sequences_per_poa,
int32_t device_id,
cudaStream_t stream,
size_t max_mem,
int8_t output_mask,
int16_t gap_score,
int16_t mismatch_score,
int16_t match_score,
bool cuda_banded_alignment
)
5.1.2 POA相关函数列表
函数名 | 功能 |
---|---|
add_poa_group | 将新组添加到批处理中以运行POA算法 |
get_consensus | 获得基因片段的公共区域 |
get_graphs | 获取每个POA的图形表示形式 |
get_msa | 从多组序列中获取每个POA的多个序列比对 |
get_total_poas | 批量获取局部序列比对的总数 |
5.2 cudaaligner使用方式
5.2.1 初始化
create_aligner是cudaaligner的初始化函数,与create_batch类似,该函数也是作为设置参数使用,如空位罚分参数以及最长匹配长度等。
std::unique_ptr<Aligner> claragenomics::cudaaligner::create_aligner (
int32_t max_query_length,
int32_t max_target_length,
int32_t max_alignments,
AlignmentType type,
cudaStream_t stream,
int32_t device_id
)
AlignmentType是一个结构体,用来设置比对算法
enum class AlignmentType {
kSW, // Smith Waterman
kNW, // Needleman Wunsch
kOV // Overlap
};
create_aligner会返回一个aligner对象,该对象可以调用cudaaligner相关函数
5.2.2 cudaaligner相关函数列表
函数名 | 功能 |
---|---|
add_alignment | 添加新的对齐对象,只有带有字母[ACGT]的字符的字符串才能保证提供正确的结果 |
align_all | 启动DCU加速对齐 |
get_alignments | 返回计算的比对结果 |
sync_alignments | 等待DCU加速对齐完成,设备同步 |