日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

UMI 的原理分析带有 UMI 的数据

發(fā)布時間:2023/12/13 综合教程 27 生活家
生活随笔 收集整理的這篇文章主要介紹了 UMI 的原理分析带有 UMI 的数据 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

循環(huán)腫瘤DNA,即 ctDNA(circulating tumor DNA),是指腫瘤細胞經(jīng)外泌體、細胞壞死或凋亡釋放進入循環(huán)系統(tǒng)中的DNA。ctDNA 可作為腫瘤生物標記物,我們通過檢測血液中的 ctDNA,就能夠追蹤到腫瘤在血液中的蹤跡。

目前ctDNA的分析方法主要有三種:以 ARMS 為代表的定量 PCR 技術;以 ddPCR 為代表的數(shù)字 PCR 技術;基于下一代測序 (NGS) 的高通量檢測技術。NGS 能同時檢測多個基因的多種不同變異形式,是應用最廣泛的的基因檢測技術。然而,基于 NGS 的 ctDNA 分析方法還存在兩個技術障礙:

血漿中的ctDNA含量極低;

二代測序背景噪聲很高,用常規(guī)建庫測序方法腫瘤信號將會完全淹沒在背景噪聲中。

所以為了在保證檢測準確性和測序深度的基礎上降低價格,目前越來越多的新技術先對ctDNA目的片段進行富集,再將富集后的目的序列進行深度測序。此外,分子標簽技術(Unique Molecular indentifier,UMI)也被廣泛應用以提高檢測的靈敏度和特異性。它的原理就是給每一條原始DNA片段加上一段特有的標簽序列,經(jīng)文庫構建及PCR擴增后一起進行測序。這樣,根據(jù)不同的標簽序列我們就可以區(qū)分不同來源的DNA模板,分辨哪些是PCR擴增及測序過程中的隨機錯誤造成的假陽性突變,哪些是患者真正的攜帶的突變。

UMI 的原理

如圖中所示,α 和 β 均是連接到 DNA 模板上的隨機序列,不同的模板連接的序列不同,即為 ctDNA 加上了獨特的標記。經(jīng) PCR 擴增后通過 α 和 β 的序列就可以識別出同一模板來源的片段,再根據(jù) α 和 β 互補識別同一模板的正反鏈。

i 圖中一個錯誤僅影響了擴增出的少數(shù)序列,統(tǒng)一分析同一模板來源的片段可以將這個錯誤過濾;

ii 圖中出現(xiàn)的錯誤影響了所有正鏈序列,但反鏈正常,根據(jù)堿基互補原則,可將此種錯誤校正;

iii 圖中則顯示了排除了一些引入錯誤和系統(tǒng)錯誤后得到真正的突變。

分析帶有 UMI 的數(shù)據(jù)

所需軟件

Picard:https://github.com/broadinstitute/picard

bwa:https://github.com/lh3/bwa

fgbio:https://github.com/fulcrumgenomics/fgbio

VarDict:https://github.com/AstraZeneca-NGS/VarDictJava

流程

1. 得到帶有 UMI 標簽信息的 BAM 文件

先用picard FastqToSam將質(zhì)控后的fastq數(shù)據(jù)轉(zhuǎn)化為bam格式:

java-Xmx8G-jar/usr/local/bin/picard.jarFastqToSam
F1=/data1/zwbao/ctDNA/sample/s1-1.fq.gz
F2=/data1/zwbao/ctDNA/sample/s1-2.fq.gz
O=S1.unmapped.bam
SAMPLE_NAME=S1pwd

bam文件中提取 UMI 標簽信息的bam文件,并生成帶有 UMI 標簽信息的未比對的bam文件:

java-Xmx8G-jar/data/zwbao/biosoft/ctDNA/fgbio/target/scala-2.12/fgbio-0.7.0-69c80dd-SNAPSHOT.jarExtractUmisFromBam
--input=S1.unmapped.bam--output=S1.unmapped.withUMI.bam
--read-structure=3M2S146T3M2S146T--molecular-index-tags=ZAZB
--single-tag=RX

bam文件中 RX 標簽記錄著 UMI 的信息,3M2S146T 表示前三個堿基是UMI分子標簽,接著兩個堿基需要被跳過(因為我的數(shù)據(jù)還插入了兩個隨機堿基),146個堿基是測序序列。

將未比對的bam文件轉(zhuǎn)為fastq格式,并進行比對,得到比對后的bam文件:

java-Xmx8G-jar/usr/local/bin/picard.jarSamToFastqI=S1.unmapped.withUMI.bamF=S1.SamToFastqINTERLEAVE=true

bwamem-p-t35/data1/zwbao/shared/hg19/hg19.faS1.SamToFastq>S1.mapped.bam

通過合并,得到一個包含各種信息包括 RX 標簽等的bam文件,該文件用于下一步 call consensus read,因為會將來源于同一個分子的read合并成一個consensus read,所以在得到bam文件之后,沒有進行mark duplication

java-Xmx8G-jar/usr/local/bin/picard.jarMergeBamAlignmentUNMAPPED=S1.unmapped.withUMI.bamALIGNED=S1.mapped.bamO=S1.mapped.withUMI.bamR=/data1/zwbao/shared/hg19/hg19.faSO=coordinateALIGNER_PROPER_PAIR_FLAGS=trueMAX_GAPS=-1ORIENTATIONS=FRVALIDATION_STRINGENCY=SILENTCREATE_INDEX=true

2. Map BAM to consensus reads

該步會生成一個包含 UMI 的文件,存儲每個 read 的 ID,低質(zhì)量的 read 應被過濾:

java-Xmx8G-jar/data/zwbao/softwares/ctDNA/fgbio/target/scala-2.12/fgbio-0.7.0-69c80dd-SNAPSHOT.jarGroupReadsByUmi
--input=S1.mapped.withUMI.bam--output=S1.GroupedReads.bam
--strategy=paired--edits=1--min-map-q=20

此步操作通過識別 UMI,找到來自同一片段的數(shù)據(jù)
根據(jù) UMI 分子標簽的信息和 Read1、Read2 的位置,從一組read中識別出最初的 molecular 分子序列。此時生成的文件是未比對的bam文件,需要進一步比對。

java-Djava.io.tmpdir=tmpDir-Xmx8G-jar/data/zwbao/softwares/ctDNA/fgbio/target/scala-2.12/fgbio-0.7.0-69c80dd-SNAPSHOT.jarCallDuplexConsensusReads
--input=S1.GroupedReads.bam--output=S1.consensus.unmapped.bam
--error-rate-pre-umi=45--error-rate-post-umi=30
--min-input-base-quality=30

對得到的consensus reads進行過濾:

java-Djava.io.tmpdir=tmpDir-Xmx8G-jar/data/zwbao/softwares/ctDNA/fgbio/target/scala-2.12/fgbio-0.7.0-69c80dd-SNAPSHOT.jarFilterConsensusReads
--input=S1.consensus.unmapped.bam
--output=S1.consensus.filtered.unmapped.bam
--ref=/data1/zwbao/shared/hg19/hg19.fa
--min-reads=211
--max-read-error-rate=0.05
--max-base-error-rate=0.1
--min-base-quality=50
--max-no-call-fraction=0.05

進行比對,合并bam文件:

java-Xmx8G-jar/usr/local/bin/picard.jarSamToFastqI=S1.consensus.filtered.unmapped.bamF=S1.consensus.filtered.unmapped.FastqINTERLEAVE=true

bwamem-p-t30/data1/zwbao/shared/hg19/hg19.faS1.consensus.filtered.unmapped.Fastq>S1.consensus.filtered.mapped.bam

java-Xmx8G-jar/usr/local/bin/SortSam.jarINPUT=S1.consensus.filtered.mapped.bamOUTPUT=S1.consensus.filtered.mapped.sorted.bamSORT_ORDER=queryname

java-Xmx8G-jar/usr/local/bin/SortSam.jarINPUT=S1.consensus.filtered.unmapped.bamOUTPUT=S1.consensus.filtered.unmapped.sorted.bamSORT_ORDER=queryname

java-Xmx8G-jar/usr/local/bin/picard.jarMergeBamAlignmentUNMAPPED=S1.consensus.filtered.unmapped.sorted.bamALIGNED=S1.consensus.filtered.mapped.sorted.bamO=S1.consensus.filtered.mapped.withUMI.bamR=/data1/zwbao/shared/hg19/hg19.faSO=coordinateALIGNER_PROPER_PAIR_FLAGS=trueMAX_GAPS=-1ORIENTATIONS=FRVALIDATION_STRINGENCY=SILENTCREATE_INDEX=true

來源于同一段序列的read,若果有重疊,重疊部分的突變其實應該只計一次,所以要clip一下read

java-Djava.io.tmpdir=tmpDir-Xmx8G-jar/data/zwbao/softwares/ctDNA/fgbio/target/scala-2.12/fgbio-0.7.0-69c80dd-SNAPSHOT.jarClipBam
--input=S1.consensus.filtered.mapped.withUMI.bam--output=S1.consensus.filtered.mapped.withUMI.clipped.bam
--ref=/data1/zwbao/shared/hg19/hg19.fa--soft-clip=false--clip-overlapping-reads=true

3. Produce variant calls from consensus reads

/data/zwbao/softwares/ctDNA/VarDictJava/build/install/VarDict/bin/VarDict
-G/data1/zwbao/shared/hg19/hg19.fa
-NS1
-f0.01#0.02
-bS1.consensus.filtered.mapped.withUMI.clipped.bam
-z-c1-S2-E3-g4-th4
SampleID_probes.bed>S1.vcf

總結

以上是生活随笔為你收集整理的UMI 的原理分析带有 UMI 的数据的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。