论文部分内容阅读
随着第三代测序技术的普及,生物数据呈指数增长。各种生物数据库如NCBI、EBI、DDBJ等被建立和不断丰富,标志着生物数据也迈入了“大数据”时代。大量的生物数据对人们处理和操纵数据的能力提出了巨大挑战。在这些生物数据中最值得关注的就是生物序列,它不仅包括存储遗传信息的DNA序列、RNA序列,还有承担生命活动的蛋白质序列及基因表达过程中出现的密码子序列。现代技术的发展使得多核、多线程的并行高性能计算设备可以有效的应对大量数据和大量计算带来的挑战。其中,支持统一设备架构(Compute Unified Device Architecture,CUDA)的图形处理器(Graphics Processing Unit,GPU)在并行处理大量计算的任务中表现良好,被广泛应用于科学计算、生物计算、物理模拟、天文预测等多个领域。支持CUDA的GPU拥有数以千计的计算单元,可通过并行处理大量计算任务来节省可观的运算时间。CUDA的这个优势对于动辄数十小时甚至数天的生物计算任务来说,具有十分重要的实践意义。基于此优点,我们可利用支持CUDA的GPU来对生物信息学算法进行并行化改进,以此来降低算法的运算时间。之后,我们搭建了一个可集成并行化架构的生物信息学平台,通过使用平台集成的并行化工具和其他常用生物信息学软件可提高生物信息学研究的效率。本文所做的两项主要工作具体阐述如下:(1)本文提出并实现了基于支持CUDA的GPU的密码子偏差系数模型并行化方法。密码子使用偏性(Codon Usage Bias,CUB)是广泛存在于生物界的特性。对于密码子使用偏性有多个评价指数,现存的一些指数由于考察方面不同而存在不同的局限性,如依赖参考集、缺乏统计重要性估计或缺乏考虑有效背景核苷酸组分等。密码子偏差系数模型(Codon Deviation Coefficient,CDC)弥补了上述不足,但其在对大量的序列数据分析密码子使用偏性时耗时较长。本文在CDC的基础上将其进行并行化改进,通过对CDC算法流程分析将算法划分为各个子模块,并在子模块上进行数据依赖性分析、时间分析,筛选出适合并行的子模块对其进行并行化改进。同时,我们对原算法中使用的一些数据结构做相应修改,并使用了CURAND API来解决并行随机数问题,这些改进和措施很好的解决了并行化和串行化间的差异,使得算法使用的数据能被GPU更快速更容易的访问。之后,我们用CUDA-C语言实现了并行化的CDC算法。通过并行方法和串行方法的时间对比,我们观察到并行方法在不同数据量大小的数据上获得了约为38~398倍的加速比,且在一定范围内数据量越大加速比越高。最后,通过加速比分析,验证了现有加速比的正确性。(2)支持并行化的生物信息学平台的搭建。当今生物信息处理软件和工具比比皆是,各种生物数据和生物信息数据库都可以轻松的借助于互联网访问。集成化的生物信息学平台可提高生物信息学研究效率。目前多数生物信息学平台都采用可视化的web界面来调用生物信息学工具,避免了工具复杂的命令行使用方式。但大多平台只集成了普通的串行化工具,且不具备中文界面,借助平台的生物信息学研究仍需花费大量时间,且这些平台不利于国内用户使用。因此,我们使用python和XML语言对开源项目galaxy进行修改和二次开发,搭建了一个开放易用的本地化的生物信息学平台,并将平台与并行化架构结合起来。通过改写源代码、编写配置文件等方式使生物信息学平台可以调用之前实现的并行化CDC算法程序和其他并行化工具,从而用户可以直接通过web界面来使用支持CUDA的GPU进行并行计算。使用平台的并行化工具可提升研究效率,用户也能方便的利用平台集成的各种工具如数据获取、格式转换、数据处理、结果分析等来构建自己的生物信息学处理流程。