作者,Evil Genius~~~
美國人不按照套路出牌啊,外顯子CNV分析原理及各種注意事項剛給下面的人培訓完,結果今天考核的基因融合,真是出事了。
讓我想起了剛入職參加工作的時候,也是培訓天天考核,考核是隨機并且沒有目的性的,所有內容都在考核范圍,有一次我也考核沒過,心里那種害怕還記憶猶新。只不過現在站在臺上的是我,培訓臺下一群5年前的“我”。
關于外顯子基因融合一般采用factora或者genefuse,我們這里采用factora,感興趣的可以查閱genefuse。factora文章在FACTERA: a practical method for the discovery of genomic rearrangements at breakpoint resolution
基因融合常見的三種發生機制:
1)Chromosomal Translocation,染色體易位。
2)Interstitial deletion,中間缺失。
3)Chromosomal Inversion,染色體倒位。
知識背景
- 一般來說,基因融合是指基因組層面的融合。但轉錄組層面也可能發生融合,主要是由于兩個不同基因轉錄產生的RNA,由于某種原因融合在了一起,形成新的融合RNA,該RNA可能編碼蛋白,也可能為非編碼。而基因組層面產生的融合基因,根據融合的情況,可能表達,也可能不表達(如破壞了啟動子區域或其他原因)。
- 導致基因融合的DNA重排是人類惡性腫瘤中獲得性結構變異的主要原因。
- 許多結構重排是致癌驅動突變,并且越來越具有治療靶向性
- 由于其獨特的連接序列,融合產物也可以作為cell-free DNA中腫瘤負荷的非常敏感的生物標志物,這些cell-free DNA不斷地脫落到各種體液中。
- FACTERA,一個軟件工具,用于發現基因組重排,包括易位,倒位和缺失。
METHODS
- 作為輸入,FACTERA需要(i)由能夠“soft clipping”的比對工具繪制的paired reads的BAM文件(BWA); (ii)基因組坐標,用于通過基因、外顯子或其他基因組信息的位置控制融合發現的分辨率;(iii) hg19.2bit參考基因組,以實現快速序列檢索。
①序列比對軟件(如BWA)在將序列比對至參考基因組時,會對異常序列進行處理,如果某段序列左右兩端能同時匹配到基因組的不同位置,軟件會對序列進行切割。通過遍歷bam文件中的異常序列,識別出一些有著明顯斷層的異常序列簇。
②找到這些異常序列簇并對異常序列的左右兩段序列分別進行處理,左端序列以10堿基為滑窗,并對滑窗內序列做K-mer(K = 4)處理,結果存入HASH表中,右端序列以4堿基為滑窗,得到短序列集合,若HASH表和短序列集合之間是否存在相似性,那么這就是一個潛在的融合位點。
③序列中出現的重復堿基為斷點的判定增加了一定的難度,FACTERA默認選擇最左側的位點作為斷點。考慮到反向互補序列的存在,融合基因序列在識別過程中,會出現4種方向,但最終呈現時,只有兩種方向(GENE1-GENE2,GENE2-GENE1)。在對斷點校正之后,FACTERA會使用BLASTN將異常序列簇以及比對至參考基因組失敗的序列與生成的融合基因序列進行比對,從而驗證該融合位點的準確性。 - 截斷(或“soft clipping”)reads的clipped boundaries代表潛在的融合斷點。
- R1和R2有四種可能的取向,然而,只有上圖D所示的1a和2a病例可以產生有效的融合,因為它們的reads具有面向相反方向的soft-clipped sequences。
- 最后,為了在read comparison和斷點調整后驗證候選融合,FACTERA使用BLASTN將所有 soft-clipped a和未映射的reads與每個候選融合序列(在斷點上下填充500 bp)對齊。保留至少具有95%標識且超過90% input reads length(默認情況下)的reads,and reads that span or flank the breakpoint are enumerated。
-
除了基本算法之外,還實現了幾種算法來提高性能。
融合的表示方法
一、斷點方式(SVTYPE=BND)
在描述SV的VCF規范中,其中之一就是詳細的描述SV的斷點,并在INFO列標明SVTYPE=BND,這時,SV的具體發生情況就有四種類型:
如上圖所示,VCF的BND表示法遵守以下的規則:
- 首先列出染色體和第一個斷點的位置,第二個斷點的染色體和位置在ALT列標出(如上圖的1:800)
- 第二個斷點的方向由
[
的方向決定,[1:800[
表示從給定位置向右延伸,]1:800]
表示從左邊開始延伸并在指定位置結束 - REF 列
N
相對于[1:800[
和]1:800]
的位置即為第一個斷點1:500相對于第二個斷點的位置 -
N
可能是某一個特定序列,這取決于REF列
符號表示法的易位(<TRA>)
VCF中描述SV的另一種方式是“符號表示法”。在VCF的ALT列中相應的標簽,如<INV>表示倒位,<DUP>表示重復。
由于易位相對復雜,因此這里的<TRA>表示的也比較模糊,僅有標簽是不夠的。所以就有了在INFO列增加相應的標簽(CHR2表示第二個斷點的染色體,END表示具體位置)表示第二個斷點的位置和方向。最后還需要的一個信息就是兩個斷點間的相鄰關系,這里用CT表示。
所以,兩種表示方法間的對應關系就有了:
BND | <TRA> with CT INFO field |
---|---|
1 500 . N N[1:800[ | 1 500 . N <TRA> ... CHR2=1;END=800;CT='3to5' |
1 500 . N ]1:800]N | 1 500 . N <TRA> ... CHR2=1;END=800;CT='5to3' |
1 500 . N [1:800[N | 1 500 . N <TRA> ... CHR2=1;END=800;CT='5to5' |
1 500 . N N]1:800] | 1 500 . N <TRA> ... CHR2=1;END=800;CT='3to3' |
其他類型的符號標簽(<DEL>, <INV>, <DUP>)
下圖展示了刪除,倒位和重復的幾種情況:
由此可見,刪除和重復只有一種相鄰關系,而易位則會存在兩種情況,兩種表示法的對應關系如下:
Symbolic Call | As BND call(s) |
---|---|
1 10 . N <DEL> ... END=20; | 1 10 . N N[1:21[ |
1 10 . N <INV> ... END=20; | 1 10 . N N]1:20] |
1 1 . N <DUP> ... END=10; | 1 1 . N ]1:10]N |
在合并多個樣本或工具生成的SV VCF時,mergevcf 和 SURVIVOR 均會將符號表示法轉為BND表示法,因此,很有必要搞清楚它們之間的對應關系。
基因融合鑒定的一些常見術語(A) Intact exon (IE) type andbroken exon (BE) type fusion transcripts; (B) spanning read, split readand anchor length; (C) short and long insert size of DNA fragment forsequencing.
這些常見的術語有:
1)Intact exon (IE) type fusion,是指融合后完整的保留了原來的外顯子,未影響原來的外顯子結構。如上圖A中Gene A的Exon2和Gene B的Exon1融合后完整的保留了兩個外顯子的序列;
2)Broken exon (BE) type fusion,是指融合后沒有保留原來完整的外顯子序列。如上圖A中 Gene A的Exon3的部分序列和Gene B的Exon2融合在一起,融合后的新基因中,來自Gene A的Exon3丟失了部分序列;
3)Breakpoint,是指兩個融合基因在基因組上發生融合的位置,如上圖B中Gene A(藍色)和Gene B(綠色)融合的位點;
4)Spanning read,是指跨越融合位點分別匹配到兩個融合基因的paired-end read,比如上圖B中的匹配到Gene A(藍色)和Gene B(綠色)的一對read;
5)Split read,是指恰好匹配到融合位點上的read,具體如上圖B中右側圖所示;
6)Anchor length,是指跨越融合位點的read左端和右端的長度,具體如上圖B中右側圖所示;
7)short insert size,一般是指雙端測序paired-end sequencing中,兩個read中間間隔的較短距離,一般為幾百bp;
8)long insert size,一般是指雙端測序mate-pair sequencing中,兩個read中間間隔的較長距離,一般為幾kb甚至更長;
FACTERA的輸出文件(這塊兒不翻譯了,翻譯了感覺表示不出來真實的意思)
Each FACTERA run produces 9 main output files, each of which is described below:
parameters.txt = all input files and parameter values.
discordantpair.depth.txt = ranked list of discordant read clusters.
disordantpair.details.txt = discordant read positions.
fusiontargets.bed = bed coordinates of candidate fusions – used to restrict search space for soft-clipped reads.
blastreads.fa = used to build blast database of soft-clipped, improperly paired, and unmapped reads.
blastquery.fa = file used to search individual candidate fusion sequences (query) for hits in blastreads.fa (target database).
fusionseqs.fa = all detected breakpoints with 500bp of additional flanking sequences.
fusions.bed = bed output for detected fusions. Useful for comparing runs or somatic vs germline (column 4 is fusion ID).
fusions.txt = all detected fusion events, including details, described below:
Field | Description |
---|---|
Est_Type | Estimated structural variant type: TRA = translocation; INV = inversion; DEL = deletion; '-' = not determined |
Region1 | Name of genomic region closest to breakpoint 1 (e.g., gene 1, exon 1, etc.) |
Region2 | Name of genomic region closest to breakpoint 2 (e.g., gene 2, exon 2, etc.) |
Break1 | Chromosomal breakpoint 1 |
Break2 | Chromosomal breakpoint 2 |
Break_support1 | Number of reads supporting breakpoint 1 |
Break_support2 | Number of reads supporting breakpoint 2 |
Break_Offset | Breakpoint adjustment in bases (e.g., owing to microhomology) |
Order1 | Orientation of read clipping with respect to breakpoint 1: CN, clipped followed by not clipped; NC, vice versa |
Order2 | Same as Order1, but for breakpoint 2 |
Break_depth | Number of breakpoint-spanning reads |
Proper_pair_support | Number of properly paired and previously soft-clipped reads that map to fusion |
Unmapped_support | Number of previously unmapped reads that map to fusion |
Improper_pair_support | Number of previously discordantly paired reads that map to fusion |
Paired_end_depth | Total number of paired-end reads that flank breakpoint |
Total_depth | Mean total depth for regions flanking both breakpoints (+/-500bp by default) |
Fusion_seq | Estimated fusion sequence (50 bases flanking breakpoint by default) |
Non-templated_seq | Non-templated (i.e., non-reference) sequence segment (if any) enclosed in brackets |