目录

1 软件简介

2 软件下载

3 DCU版软件介绍

4 测试运行

5 API简介

​编辑

5.1 cudapoa使用方式:

5.1.1 初始化

5.1.2 POA相关函数列表

5.2 cudaaligner使用方式

5.2.1 初始化

5.2.2 cudaaligner相关函数列表


生物信息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 软件下载

DCU链接

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加速对齐完成,设备同步
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐