Sentieon应用之自闭症万人基因组
 
 

         Sentieon致力于解决生物信息数据分析中的速度与准确度瓶颈,通过算法的深度优化和企业级的软件工程,大幅度提升NGS数据处理的效率,准确度,和可靠性。自2015年的初始版本开始,Sentieon推出了包括比对到变异检测在内的完整二次分析的解决方案,可用于肿瘤与遗传病突变检测。    

      多年来,Sentieon软件被业内的制药企业、科研院所、临床医学、农业基因组等领域的用户广泛采用。为了让更多用户了解Sentieon在自己工作的领域的应用案例,INSVAST从已发表的项目中精选一些有代表性案例分享给大家。

     本文通过分享《MSSNG项目--自闭症万人基因组实战》经验,让科研工作者更好的了解大型群组项目分析过程及经验。 

项目介绍 

 

      由美国最大的自闭症公益组织“自闭症之声“(Autism Speaks) 领导的MSSNG项目构建了目前全球最大的自闭症基因组数据库。这个项目旨在为自闭症研究提供最好最全面的资源,促进大量自闭症亚型的发现和甄别,帮助更好的临床诊断,以及个性化的精准治疗。

         该项目在第一期已经完成了对10,000个受到自闭症困扰的个人与家庭的全基因组测序,以探索自闭症在基因层面上的根源。在准备的后续项目中,测序人群将增加到10万人。

         2018年6月,MSSNG项目开始与DNAstack合作,重新梳理项目基因组数据,整合优秀的生信分析工具,搭建数据分析、挖掘和分享的平台,帮助全世界的自闭症研究者与临床医生更好的应用这批数据。DNAstack在2019年10月发表了一篇blog,分享了这一年来他们在处理这一万份基因组数据过程中遇到的挑战和积累的经验。随着全球更大规模的人群队列项目陆续完成测序,进入数据分析阶段,希望这篇分享会给后来者提供借鉴。

 

项目挑战 

      我们都知道, GATK最佳实践流程推荐的joint-calling是人群队列变异检测的重要工具。基于单个样本的变异检测往往产生难以避免的错误,包括由于覆盖度不足导致的假阴性,建库测序错误导致的假阳性,以及难以区分阴性位点和不确定(no-call)位点,这些都会导致最终人群变异频率计算的错误。相比之下,joint-calling利用群体的统计背景,有效矫正每个样本检出变异的置信度,从而提高检测的敏感性和特异性。这对发现和确认队列中罕见变异位点尤其重要。

      但是,当全基因组数据规模上升到万人或十万人规模的时候,如何高效使用计算存储资源来快速准确分析大规模样本,不可避免成为了一个巨大的挑战。在应对挑战搭建数据分析流程的时候,我们应该始终关注以下四个因素:效率、精度、成本、灵活性。单个样本数据的分析处理虽然流程上相对简单,但是,在队列项目大样本量的背景下,如何保证分析精度,提高分析效率,降低整体分析成本,对项目的成本控制和完成进度都是至关重要的问题。在Joint-calling方面,虽然GATK有现成方案,但其运行效率较为低下,可扩展性也较差,每次仅能处理100个左右的样本,然后需要逐步一次次合并,这样会造成精度损失,而且效率低下,容易出错。队列项目需要新的高效的可扩展的joint-calling解决方案。

 

      大型队列研究另一个特别需要关注的方面是流程和生信工具的标准化,以方便不同队列之间的数据交换、对比和交叉使用,避免重新处理。因此,数据分析流程的搭建和工具的选择至关重要,一定要符合业界公认的标准。MSSNG项目选择了CCDG (Centers for Common Disease Genomics) 发布的分析流程标准。CCDG流程规定了参考基因组版本,从FASTQ到CRAM文件的各步骤分析工具和参数选择,以产生功能等效 (functionally equivalent) 的变异检测结果,能被广泛应用于多个人群队列项目。

分析工具 

      MSSNG项目经过广泛的方案测试,综合考虑到一致性、成本和速度等因素,最终选择了Sentieon软件来处理项目的全基因组样本。Sentieon基因分析软件套装提供了一系列高性能、高准确性的基因组分析工具,在匹配GATK结果的基础上提速15倍以上,能很好的满足前面提到的队列研究需要关注的四个因素。MSSNG尤其感兴趣的是Sentieon joint-calling模块,它完全匹配GATK的结果,而且在执行效率和可扩展性方面有质的飞跃,可以一步处理上十万样本的joint-callling,特别适合队列研究使用。队列中每个样本只需要2核时的运算量,每一千个样本只需要2G的内存需求。

        同时,Sentieon模块非常容易构建CCDG等效流程(functional equivalent)。Sentieon提供了完善的文档说明和脚本,详细解释了流程的构建及各个模块的配置。使用Sentieon CCDG标准流程,从每个样本FASTQ文件开始,进行比对,去重等步骤产生利于长期保存的CRAM文件后,进一步生成gVCF文件。接下来,Sentieon的joint-calling可以一次性将所有样本的gVCF文件作为输入,完成所有样本的变异检测,然后经过VQSR矫正产生最终VCF文件。

 

  • 上游流程:Fastq -> CRAM -> gVCF
  •  

      在上游流程中,每个样本的原始FASTQ文件被处理为CRAM和gVCF文件。Sentieon软件运行这一部分非常顺利,使用Google的preemptible(抢占式)虚拟机,并行处理500个样本。在64核55GB内存的节点上平均每4小时可以处理一个样本(CCDG流程相比一般流程多了额外的运算内容),平均计算成本为2.43美元/样本。为了缓解I/O瓶颈,这些虚拟机均采用本地SSD。

 

下游流程:Joint-calling

 

      不同于上游流程可以并行调用多个节点,下游joint-calling要求把所有的gVCF文件输入到一台机器分析,这会导致两个难题:1)超大的文件存储空间;2)超长的流程运行时间。

      在存储空间方面,每一个压缩后gVCF文件大小是15-25GB,全部10000个文件就是200TB左右,这超出了Google限制的每个虚拟机64TB的存储上限。流程运行时间也有超长的问题。尽管Sentieon软件大大加快了处理速度,但zip/unzip过程(默认单线程)和文件IO将成为整个流程的瓶颈。

实施方案 

      Sentieon软件提供了高效的分布式运算的模式,支持任意粒度细分,并保证结果完全一致。首先,基因组被均匀切分成长度为50M碱基对的长度的片段(shard),每个片段被分配给一个joint-calling子任务。然后,每个子任务的进程只需要读取所有输入gVCF文件的相关片段区域,在不同虚拟机上独立运算。这里也利用了bcftools直接从Google Cloud Storage读取gVCF中的特定区域。这样,通过增加虚机数量并行计算大大缩短计算时间,另一方面,每个子任务也不用把完整的gVCF文件全部读入。最终,每个joint-calling子任务会产生覆盖各自区域的局部VCF文件。Sentieon的joint-calling模块效率远高于GATK,分布式处理1万个样本的joint-calling只需要不到2万个核时。

 

         

      接下来,将这些局部VCF文件合并为一个完整的包含全部基因组的VCF文件依然是非常有挑战性的。经过如此大样本量的joint-calling,所有局部VCF文件加起来仍然有好几TB。受限于大量的数据IO操作、解压和压缩的速度,无论是合并还是后续的进一步分析处理这么大的文件都是非常困难的。DNAstack估算,如果要把所有的局部VCF合并起来,需要一个多月的时间才能完成。即使这样完成了合并,后续要对上TB的VCF文件进行分析也是几乎不可能完成的任务。

      这里,DNAstack和Sentieon经过反复尝试,采用了按染色体合并和按样本组合并的两套方案。第一套方案,相对简单,DNAstack按照染色体把局部VCF文件合并为26个VCF文件(22 autosomes, chrX, chrY, chrM, and contig regions),每个VCF文件包含了所有的样本。如此一来,每个VCF文件可操作性大大加强,而且可以分染色体并行合并,大约耗时一周左右完成。

      另一个方案,是使用Sentieon软件包提供的“split_by_sample”功能来按样本组生成一系列VCF文件。每个VCF文件仅仅包含了指定的一组样本,但是覆盖了完整的基因组区间。使用这个方法生成的VCF文件中,首先是一个“基本”VCF文件(下图中的Main File),只显示9列变异的基本信息(CHROM, START, STOP, etc.);随后是多个“样本”VCF文件(下图中的Sample文件),包含了每个样本组的变异信息(每组样本可以包含100,500,1000等样本数量)。

         在接下来的VQSR步骤中,“基本”VCF文件发挥了重要的作用。VQSR需要读入基因组全部区域,而不能单独使用分染色体的VCF。这里通过”split_by_sample”功能,产生了上述的“基本”文件,只包含了染色体VCF文件的前9列,然后合并输入VQSR处理,可以将处理时间从之前预估的几周降为一天以内。VQSR处理之后,这个VCF文件再被重新拆分为26个染色体文件,然后利用Sentieon提供的脚本将每个染色体的“基本”文件与“样本”文件合并为最终的分染色体VCF文件。

 

 

Sentieon软件参与的大型队列项目

 

  • MSSNG自闭症项目,已完成1万人基因组分析,后续10万人队列分析。
  • Genomics Medicine Ireland爱尔兰国家基因组项目,4万5千人队列分析。
  • Healthy Nevada美国健康内华达项目,已完成1万人全外显子组分析,后续4万人队列析。
  • 美国一线制药公司按照CCDG流程重新joint-calling2万个全基因组。
  • WholeMe美国佛罗里达州高胆固醇项目,1万人队列分析。
  • BD2K约翰霍普金斯大学队列项目,2500人基因组分析。

 

总结

         

MSSNG队列的joint-calling分析离不开DNAstack, Sentieon和MSSNG研究团队的密切合作。Sentieon的CCDG等效流程生成了快速、可重复、可扩展的分析结果。Sentieon和DNAstack团队的通力合作,在分析流程搭建中,使用了一系列创新的解决方案来克服分析速度、大文件IO操作等性能瓶颈,大大缩短了处理时间,提高了后续分析的效率。我们将持续优化这个流程,为将来更大规模的人群队列分析打下基础。