全基因组 - 人类基因组变异分析(PacBio) (5)-- pbsv

以Pacific Biosciences (PacBio)公司为代表的第三代单分子实时荧光测序平台为以测序为基础的科学研究带来了革命性的突破。目前该技术广泛应用于基因组Denovo组装、全长转录本检测、宏基因组,基因组重测序等多个方向,并且在染色体结构变异(Structure Variation, SV)的检测中有着不可替代的优势。前面我们讲了PacBio三代测序数据的类型、预处理、比对和SNPs/INDELs变异检测等基本内容。本期我们就继续沿着分析流程图一起看看基于比对结果检测染色体结构变异(SV)分析方法。

一、染色体结构变异

染色体结构变异(Structure Variation, SV),指基因组上发生的长度大于50bp的大片段插入(Insertion, INS)、缺失(Deletion, DEL)、倒位(Inversion, INV)、易位(Translocation)、重复(Duplication, DUP)等类型的变异,其中占比最大的就是大片段的插入和缺失(图1)。插入缺失很好理解就是,多了一段或者少了一段DNA序列;重复就是有一段区域的序列重复出现;倒位就是序列翻转了一下,如本来那个位置该是AATTG的,结果变成了GTTAA;易位的话就是序列位置的变化,又进一步分为染色体内易位和染色体间易位。据统计,基因组结构变异可能导致的遗传性疾病已经超过1,000种,对于每个人来讲其基因组都有至少20,000个的结构变异,这些变异带来的影响或许比SNVs或InDels带来的影响更大。

图1. 结构变异的类型

二、三代测序在结构变异检测上的优势

如果是仅仅研究像SNPs/INDELs一样的很小的变异,二代测序就能够胜任;但是如果要研究很大的结构变异(>50bp),则二代测序的短读长很难识别变异位点,尤其是复杂的高CG含量的区域,而且仅仅依靠算法很难克服技术上的缺陷。三代测序的长读长能够很有效的跨越覆盖识别出结构变异位点,得到结构变异的全貌,轻松测通基因组上的复杂重复区域。通过三代测序技术,在人类基因组中发现了数万个结构变异,而这些变异通常无法通过二代测序技术进行识别(图2)。

图2. 三代测序之于二代测序的优势

从Medhat Mahmoud等人 (5) 的研究中可以看出(图3B),在人类中,三代长度长测序比二代短读长测序在结构变异检测数量平均高2-4倍

图3. 三代测序技术在结构变异检测方面明显优于二代测序

三、SV检测相关软件

目前,对于PacBio三代测序平台结构变异检测的软件有PBSV, Sniffles, cuteSVPAVPBHoneySMRT-SVSVIM 等 (图4,图5,图6)。

图4. 适合于PacBio数据的结构变异检测软件

  1. PBHoney,文章表于2014年 (7),软件最后的更新停留在了2017年,所以已经不推荐了。

  2. SMRT-SV, 第一个版本由Chaisson et al. 发表于2015年 (8),早已经不再更新。SMRT-SV2由Audano et al.发表于2019年 (9),替代SMRT-SV。现在SMRT-SV2也已经停止更新了,并在其github网站上推荐以下工具:

  1. DeBreak,文章于2023年发表在Nature Communication上,github上更新到 2022年12月1号(version 1.2)。从文章中的数据看来,DeBreak 在模拟数据(图5)和实测数据HG002(图6)中recall, precision和 F1 score上优于同类软件。
图5. DeBreak在模拟数据上的表现

图6. DeBreak在HG002数据上的表现
  1. PAV,Phased Assembly Variant Caller,文章于2021年发表于Science (11),github更新到2023年10月13号(version 2.3.4)。
  2. PBSV,PacBio官方开发的结构变异软件,github上更新至2023年3月14日(version 2.9.0)。
  3. Sniffles2,版本一于2018年发表于Nature methods(12),Sniffles2于2022年发表于BioRxiv(13),github更新到2023年7月14号(version 2.2)
  4. cuteSV,文章于2020年发表于Genome Biology (14), github上更新至2023年11月14号(version 2.1)。

综上所述,现在常用以及保持更新的有以下这些,PacBio官方的PBSV、Sniffles2、cuteSV,DeBreak 和 PAV了 (此处可能总结的不全面,欢迎留言补充)。

前面咱们是用PacBio官方的比对软件pbmm2,由于pbmm2生成的 .bam文件MD tag 格式有些特别,无法用于后续的sniffles进行SV检测。所以这里我们使用pbsv进行后续SV检测。后面我会针对minimap2+Sniffles2组合 以及minimap2+cuteSV再出一期教程,有时间也会尝试一下PAVDeBreak

四、pbsv具体安装和使用

主页网址https://github.com/PacificBiosciences/pbsv

  • pbsv is a suite of tools to call and analyze structural variants in diploid genomes from PacBio single molecule real-time sequencing (SMRT) reads.
  • pbsv calls insertions, deletions, inversions, duplications, and translocations. Both single-sample calling and joint (multi-sample) calling are provided.
  • 软件安装
#pvsv v.2.9.0, conda 安装
$ conda install -c bioconda pbsv
  • 工作流程

整个工作流程从序列比对到获得结构变异一共分三步(图7):

  1. PacBio reads和参考基因组进行比对,从.subreads.bam / .ccs.fastq到比对排序后的.bam文件。
  2. 寻找结构变异的特征,.bam.svsig.gz
  3. 获得单个或者所有样本的结构变异和基因型,.svsig.gz.vcf
图7.pbsv软件工作流程
  • 具体分析命令

数据我们还是使用德系犹太人家系:HG002(子)、HG003(父)、HG004(母),具体参考全基因组 - 人类基因组变异分析(PacBio) (3)-- pbmm2

1. Align PacBio reads to a reference genome 序列比对。

# 以CCS bam input为示例
$ pbmm2 align ref.fa movie1.ccs.bam ref.movie1.bam --sort --preset CCS --sample sample1

#实际运行
#HG002_1
$ pbmm2 align --preset CCS --sort -j 24 -J 4 \
 --log-level INFO --log-file pbmm2.HG002_1.log --sample HG002_1 \
Human_ref/GRCh38.mmi m84011_220902_175841_s1.hifi_reads.bam HG002_1.align.bam 

#HG003
$ pbmm2 align --preset CCS --sort -j 24 -J 4 \
 --log-level INFO --log-file pbmm2.HG003.log --sample HG003 \
Human_ref/GRCh38.mmi m84010_220919_235306_s2.hifi_reads.bam HG003.align.bam 

#HG004
$ pbmm2 align --preset CCS --sort -j 24 -J 4 \
 --log-level INFO --log-file pbmm2.HG004.log --sample HG004 \
Human_ref/GRCh38.mmi m84010_220919_232145_s1.hifi_reads.bam HG004.align.bam 

2. Discover signatures of structural variation 寻找结构变异的特征。

举例:

$ pbsv discover ref.movie1.bam ref.sample1.svsig.gz
$ pbsv discover ref.movie2.bam ref.sample2.svsig.gz

# optionally index svsig.gz to allow random access via `pbsv call -r`
tabix -c '#' -s 3 -b 4 -e 4 ref.sample1.svsig.gz
tabix -c '#' -s 3 -b 4 -e 4 ref.sample2.svsig.gz

It is highly recommended to provide one tandem repeat annotation .bed file of your reference to pbsv discover via --tandem-repeats. This increases sensitivity and recall. Feel free to use the following for human SV calling: GRCh38 or hs37d5/hg19. 加上提供的重复串联序列区域注释文件可以提高敏感度和召回率。

实际运行:

#HG002_1
$ nohup pbsv discover --tandem-repeats Human_ref/human_GRCh38_no_alt_analysis_set.trf.bed HG002_1.align.bam HG002_1.svsig.gz &

#HG003
$ nohup pbsv discover --tandem-repeats Human_ref/human_GRCh38_no_alt_analysis_set.trf.bed HG003.align.bam HG003.svsig.gz &

#HG004
$ nohup pbsv discover --tandem-repeats Human_ref/human_GRCh38_no_alt_analysis_set.trf.bed HG004.align.bam HG004.svsig.gz &

3. Call structural variants and assign genotypes 获得单个或者所有样本的结构变异和基因型。

#示例,如果输入序列是CCS序列,加上--ccs选项
$ pbsv call ref.fa ref.sample1.svsig.gz ref.sample2.svsig.gz ref.var.vcf

#实际运行,Joint calling

nohup pbsv call -j 24 --ccs Human_ref/GRCh38.fa HG002_1.svsig.gz HG003.svsig.gz HG004.svsig.gz HG.SV.vcf &

至此,我们已经获得了三个样本包含结构变异信息的vcf格式文件了。

pbsv call 帮助文档, 除上述示例中的参数,PBSV还有诸多筛选参数,包括输出的SV类型、长度、基因型等等,需要大家根据自己的实际项目情况,进行探索,选择合适参数。比如用 -t 可以指定特定结构变异类型,-r 可以指定基因组区域。全部参数说明如下图所示:

pbsv call - Call structural variants from SV signatures and assign genotypes (SVSIG to VCF).

Usage:
  pbsv call [options] <ref.fa|xml> <ref.in.svsig.gz|fofn> <ref.out.vcf>

  ref.fa|xml                                  STR   Reference genome assembly against which to call variants.
  ref.in.svsig.gz|fofn                        STR   SV signatures from one or more samples.
  ref.out.vcf                                 STR   Variant call format (VCF) output.

Basic Options:
  -r,--region                                 STR   Limit discovery to this reference region: CHR|CHR:START-END.
  --hifi,--ccs                                      Use options optimized for HiFi reads: -S 0 -P 10.

Variant Options:
  -t,--types                                  STR   Call these SV types: "DEL", "INS", "INV", "DUP", "BND".
                                                    [DEL,INS,INV,DUP,BND]
  -m,--min-sv-length                          STR   Ignore variants with length < N bp. [20]
  --max-ins-length                            STR   Ignore insertions with length > N bp. [15K]
  --max-dup-length                            STR   Ignore duplications with length > N bp. [1M]

SV Signature Cluster Options:
  --cluster-max-length-perc-diff              INT   Do not cluster signatures with difference in length > P%. [25]
  --cluster-max-ref-pos-diff                  STR   Do not cluster signatures > N bp apart in reference. [200]
  --cluster-min-basepair-perc-id              INT   Do not cluster signatures with basepair identity < P%. [10]

Consensus Options:
  -x,--max-consensus-coverage                 INT   Limit to N reads for variant consensus. [20]
  -s,--poa-scores                             STR   Score POA alignment with triplet match,mismatch,gap. [1,-2,-2]
  --min-realign-length                        STR   Consider segments with > N length for re-alignment. [100]

Call Options:
  -A,--call-min-reads-all-samples             INT   Ignore calls supported by < N reads total across samples. [3]
  -O,--call-min-reads-one-sample              INT   Ignore calls supported by < N reads in every sample. [3]
  -S,--call-min-reads-per-strand-all-samples  INT   Ignore calls supported by < N reads per strand total across samples
                                                    [1]
  -B,--call-min-bnd-reads-all-samples         INT   Ignore BND calls supported by < N reads total across samples [2]
  -P,--call-min-read-perc-one-sample          INT   Ignore calls supported by < P% of reads in every sample. [20]
  --preserve-non-acgt                               Preserve non-ACGT in REF allele instead of replacing with N.

Genotyping:
  --gt-min-reads                              INT   Minimum supporting reads to assign a sample a non-reference
                                                    genotype. [1]

Annotations:
  --annotations                               FILE  Annotate variants by comparing with sequences in fasta.Default
                                                    annotations are ALU, L1, SVA.
  --annotation-min-perc-sim                   INT   Annotate variant if sequence similarity > P%. [60]

Variant Filtering Options:
  --min-N-in-gap                              STR   Consider >= N consecutive "N" bp as a reference gap. [50]
  --filter-near-reference-gap                 STR   Flag variants < N bp from a gap as "NearReferenceGap". [1K]
  --filter-near-contig-end                    STR   Flag variants < N bp from a contig end as "NearContigEnd". [1K]

  -h,--help                                         Show this help and exit.
  --version                                         Show application version and exit.
  -j,--num-threads                            INT   Number of threads to use, 0 means autodetection. [0]
  --log-level                                 STR   Set log level. Valid choices: (TRACE, DEBUG, INFO, WARN, FATAL).
                                                    [WARN]
  --log-file                                  FILE  Log to a file, instead of stderr.

Copyright (C) 2004-2023     Pacific Biosciences of California, Inc.
This program comes with ABSOLUTELY NO WARRANTY; it is intended for
Research Use Only and not for use in diagnostic procedures.

五、结构变异结果说明

以50bp为临界,不论是小突变(SNV/INDEL)还是大的染色体结构变异(SV),通常情况下生成的结果文件均为.vcf文件格式,也是信息分析中比较常见的一种格式,百度里也有详尽的结果文件格式说明。图8为HG002,HG003和HG004三个样本joint calling结构变异后的部分结果展示。

图8. vcf文件展示

参考文献

  1. 神灯宝典之PB三代重测序分析实录(一)
  2. 神灯宝典之三代重测序分析实录(二)
  3. 三代测序时代的临床科研
  4. 三代重测序到底能干什么?
  5. Mahmoud, M., Gobet, N., Cruz-Dávalos, D. I., Mounier, N., Dessimoz, C., & Sedlazeck, F. J. (2019). Structural variant calling: the long and the short of it. Genome Biology.
  6. giab_tools_methods
  7. English, Adam C., William J. Salerno, and Jeffrey G. Reid. "PBHoney: identifying genomic variants via long-read discordance and interrupted mapping." BMC Bioinformatics 15 (2014).
  8. Chaisson, Mark JP, John Huddleston, Megan Y. Dennis, Peter H. Sudmant, Maika Malig, Fereydoun Hormozdiari, Francesca Antonacci et al. "Resolving the complexity of the human genome using single-molecule sequencing." Nature (2015). SMRT-sv
  9. Audano, P. A., Sulovari, A., Graves-Lindsay, T. A., Cantsilieris, S., Sorensen, M., Welch, A. E.,
    Dougherty, M. L., Nelson, B. J., Shah, A., Dutcher, S. K., et al. (2019). Characterizing the major structural variant alleles of the human genome. Cell.
  10. Chen, Yu, Amy Y. Wang, Courtney A. Barkley, Yixin Zhang, Xinyang Zhao, Min Gao, Mick D. Edmonds, and Zechen Chong. "Deciphering the exact breakpoints of structural variations using long sequencing reads with DeBreak." Nature Communications (2023).
  11. Ebert et al., “Haplotype-Resolved Diverse Human Genomes and Integrated Analysis of Structural Variation,” Science. 2021.
  12. Sedlazeck, Fritz J., Philipp Rescheneder, Moritz Smolka, Han Fang, Maria Nattestad, Arndt Von Haeseler, and Michael C. Schatz. "Accurate detection of complex structural variations using single-molecule sequencing." Nature methods (2018).
  13. Smolka, Moritz, Luis F. Paulin, Christopher M. Grochowski, Dominic W. Horner, Medhat Mahmoud, Sairam Behera, Ester Kalef-Ezra et al. "Comprehensive structural variant detection: from mosaic to population-level." BioRxiv (2022).
  14. Jiang, Tao, Yongzhuang Liu, Yue Jiang, Junyi Li, Yan Gao, Zhe Cui, Yadong Liu, Bo Liu, and Yadong Wang. "Long-read-based human genomic structural variation detection with cuteSV." Genome biology (2020).
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345