導航:首頁 > 編程大全 > bwa資料庫

bwa資料庫

發布時間:2023-01-04 04:10:51

Ⅰ BWT比對演算法

BWT演算法在多款序列比對軟體(BWA,bowtie)中都有涉及,那麼對於RNA-seq的2代數據,一般建庫長度是單端300bp,雙端各150bp左右。

對於兩個序列進行比對,即pairwise alignment,我們可以按比對方式分為全局比對(NW演算法)和局部比對(SW演算法):

比方說SOAP:

它把參考基因組分成一個個小片段,並且將這些小片段建立成hash關系,也就是說我在序列比對的時候,只要我獲取到reads的內容,我就可以match(翻譯為完全比對?)到參考基因組上,並獲得其位置信息。

這里介紹的是BWA,bowtie。而這兩款軟體除了要對基因組建立index以外,還採用的是BWT演算法來實現比對。

step2
之後,「$」符號向後平移一個單位,得到 :

「$」符號再向後平移一個單位:得到:

以此類推,最終得到:

這樣的序列的排序表,接下來按照字母順序進行排序($,A,C,G,T)有:

這個矩陣我們稱之為轉換矩陣
我們根據F列和L列元素的相對位置就可以推導出該序列的全部信息:
首先,我們單獨取出F列和L列

在F列和L列中找到「$」,連接它們,那麼在水平位置對應於的G(藍色箭頭)

這個G就是「$」前面的元素:

接下來在F列中找到元素G:

此時按照上述方法,才F列中找到元素C,由於L列中的元素C為第二個C(上面G後面的C視為第一個C),所以應該對於F列的第二個C

接下來L列第三個A對應F列第三個A,因此以此類推就可以最終還原(最終對應於L列的$):

比方說我現在有一條短序列CAA要比對到ACAACG上,首先說明的是在比對過程中,CAA是反向進行比對的,即A->A->C
由於CAA第一個比對的元素是A,在F列中有三個A,因此我們分類討論
選擇第一個A:

此時比對結果為ACA,不符合
選擇第二個A:

結果為$,不符合

選擇第三個A:

此時比對結果為CAA,符合原序列

在現實中,CAA可以想像為fq文件reads,ACAACG可以想像為參考基因組,並且在比對中會存在mismatch和gap這種情況的發生,因此軟體會對每一種比對的情況進行打分,擇優處理

目前 bowtie 是沒有gap這一項設定的

參考: https://www.bilibili.com/video/av15743137/

劉小樂哈佛大學課程: https://www.bilibili.com/video/BV1De411s71p

https://www.bilibili.com/video/BV1d4411E7uS?from=search&seid=7482313674070699968

Ⅱ 10.12 bwa使用 安裝文件路徑與使用 sh許可權

我們這里將用於流程構建的BWA就是其中最優秀的一個,它將BW(Burrows-Wheeler)壓縮演算法和後綴樹相結合,能夠讓我們以較小的時間和空間代價,獲得准確的序列比對結果。

別人的已安裝文件打包傳遞後使用:

1、連接伺服器

2、家目錄下,Users,ls -all (或者 打開/etc里profile)

3、vim .bashrc

```

export PATH="your path:$PATH"

```

4、source .bashrc 

5、在全局中輸入bwa測試是否可以使用

自己安裝的軟體路徑都已經配置好了,所以不需要這樣操作就可以直接使用。

BWA MEM比對模塊是有一定適用范圍的:它是專門為長read比對設計的,目的是為了解決,第三代測序技術這種能夠產生長達幾十kb甚至幾Mbp的read情況。一般只有當read長度≥70bp的時候,才推薦使用,如果比這個要小,建議使用BWA ALN模塊。

BWA ALN模塊

1: 建立 Index

根據reference genome data(e.g. reference.fa) 建立 Index File

    bwa index -a bwtsw reference.fa

(bwa index 可以查看更多使用方法)

step 2: 尋找 SA coordinates

如果是pair-end 數據(leftRead.fastq和rightRead.fastq)兩個文件分別處理

    bwa aln reference.fa leftRead.fastq > leftRead.sai

    bwa aln reference.fa rightRead.fastq > rightRead.sai

    bwa aln reference.fa singleRead.fastq > singleRead.sai

如果希望多線程運行,在其中加入 -t這個參數,另外-f這個參數可以指定結果輸出文件,如:

    bwa aln -c -t 3 -f leftreads.sai reference.fa leftreads.fastq

step 3:轉換SA coordinates輸出為sam

如果是pair-end數據

    bwa sampe -f pair-end.sam reference.fa leftRead.sai rightRead.sai leftRead.fastq rightread.fastq

如果是single reads數據

    bwa samse -f single.sam reference.fa single.sai single.fastq

https://www.jianshu.com/p/859c0345624c

bwa mem [options] <idxbase> <in1.fq> [in2.fq]

bwa mem -t 4 -R'@RG\tID:foo_lane\tPL:illumina\tLB:library\tSM:sample_name'/path/to/human.fasta read_1.fq.gz read_2.fq.gz > sample_name.sam

-t,線程數,我們在這里使用4個線程;-R 接的是 Read Group的字元串信息,這是一個非常重要的信息 ,以@RG開頭,它是用來將比對的read進行分組的。不同的組之間測序過程被認為是相互獨立的,這個信息對於我們後續對比對數據進行錯誤率分析和Mark plicate時非常重要。在Read Group中,有如下幾個信息非常重要:

(1) ID,這是Read Group的分組ID,一般設置為測序的lane ID(不同lane之間的測序過程認為是獨立的),下機數據中我們都能看到這個信息的,一般都是包含在fastq的文件名中;

(2) PL, 指的是所用的測序平台,這個信息不要隨便寫! 特別是當我們需要使用GATK進行後續分析的時候,更是如此!這是一個很多新手都容易忽視的一個地方,在GATK中,PL只允許被設置為:ILLUMINA,SLX,SOLEXA,SOLID,454,LS454,COMPLETE,PACBIO,IONTORRENT,CAPILLARY,HELICOS或UNKNOWN這幾個信息。基本上就是目前市場上存在著的測序平台,當然,如果實在不知道,那麼必須設置為UNKNOWN,名字方面不區分大小寫。如果你在分析的時候這里沒設置正確,那麼在後續使用GATK過程中可能會碰到類似如下的錯誤。

(3) SM,樣本ID,同樣非常重要,有時候我們測序的數據比較多的時候,那麼可能會分成多個不同的lane分布測出來,這個時候SM名字就是可以用於區分這些樣本。

(4) LB,測序文庫的名字,這個重要性稍微低一些,主要也是為了協助區分不同的group而存在。文庫名字一般可以在下機的fq文件名中找到,如果上面的lane ID足夠用於區分的話,也可以不用設置LB;

除了以上這四個之外,還可以自定義添加其他的信息,不過如無特殊的需要,對於序列比對而言,這4個就足夠了。這些信息設置好之後, 在RG字元串中要用製表符(\t)將它們分開 。

sam轉換bam(sam特殊二進制)

bwa mem -t 4 -R'@RG\tID:foo_lane\tPL:illumina\tLB:library\tSM:sample_name'/path/to/human.fasta read_1.fq.gz read_2.fq.gz | samtools view -S -b - > sample_name.bam

time$bwamem -t 40 -M -Y -R"@RG\tID:$RGID\tPL:ILLUMINA\tSM:$sample"$reference\$outdir/cleanfq/${fq_file_name}.paired.1.fq.gz$outdir/cleanfq/${fq_file_name}.paired.2.fq.gz |$samtoolsview -Sb - >$outdir/bwa/${sample}.bam && \echo"** BWA MEM done **"&& \

-M 將 shorter split hits 標記為次優,以兼容 Picard』s markDuplicates 軟體。

-Y Use soft clipping CIGAR operation for supplementary alignments. By default, BWA-MEM uses soft clipping for the primary alignment and hard clipping for supplementary alignments.

鏈接:https://www.jianshu.com/p/d6cc153be28d

設置許可權 chmod 777 ./*.sh

運行

以上,我們就完成了read比對的步驟。接下來是排序:

-@,用於設定排序時的線程數;-m,每個線程排序時最大的內存消耗;-O 指定輸出為bam格式;-o 是輸出文件的名字.

在排序完成之後我們就可以開始執行去除重復(准確來說是  去除PCR重復序列 )的步驟了。

把參數REMOVE_DUPLICATES設置為ture,那麼重復序列就被刪除掉,不會在結果文件中留存。我比較建議使用第一種做法,只是標記出來,並留存這些序列,以便在你需要的時候還可以對其做分析。

這一步完成之後,我們需要為sample_name.sorted.markp.bam創建索引文件,它的作用能夠讓我們可以隨機訪問這個文件中的任意位置,而且後面的「局部重比對」步驟也要求這個BAM文件一定要有索引,命令如下:

$ samtools index sample_name.sorted.markp.bam

接下來是局部區域重比對,通常也叫Indel局部區域重比對。有時在進行這一步驟之前還有一個merge的操作,將同個樣本的所有比對結果合並成唯一一個大的BAM文件【注】,merge的例子如下:

$ samtools merge <out.bam> <in1.bam> [<in2.bam> ... <inN.bam>]

【注意】之所以會有這種情況,是因為有些樣本測得非常深,其測序結果需要經過多次測序(或者分布在多個不同的測序lane中)才全部獲得,這個時候我們一般會先分別進行比對並去除重復序列後再使用samtools進行合並。

閱讀全文

與bwa資料庫相關的資料

熱點內容
php獲取json數據 瀏覽:21
四葉草引導黑蘋果教程 瀏覽:851
營銷建網站怎麼建 瀏覽:820
秘密的秘密安卓下載 瀏覽:737
數字營銷程序化交易 瀏覽:545
後期app都有哪些 瀏覽:462
ipad蜂巢移動數據怎麼收費 瀏覽:71
青鳥java和傳智的java 瀏覽:42
在微信中打開的dwg文件存在哪裡 瀏覽:667
終極解碼2014設置教程 瀏覽:810
拍照破解手機圖案密碼 瀏覽:885
安卓shell查看進程 瀏覽:158
mysql資料庫longtext 瀏覽:568
嵌入式linux有哪些特點 瀏覽:587
展開收縮代碼 瀏覽:189
archlinuxfn 瀏覽:744
文件檔案管理系統畢業設計 瀏覽:391
網路機頂盒電視沒信號怎麼回事 瀏覽:384
蘋果手機如何下載來玩 瀏覽:826
win10安裝重新啟動 瀏覽:395

友情鏈接