Bioinformatic Data Skills 學習專題(7) 比對數據的小實操

2021-01-18 生信菜鳥團
CHAPTER 12: Working with Alignment Data前言

真是好久不見啦!在本該撰寫專題內容的整個八月和九月前半部分,小編經歷了離職、旅遊以及西湖到復旦的開學典禮、寢室大掃除搬遷、生病養病、選課搶課等等諸多磨難終於在中秋節來臨之前又完成了一章的內容(「一把辛酸淚」TnT),目測即將進入持續產出和攝入的狀態。

這講內容主要涉及常用常見的一些測序相關知識:測序數據比對結果的解讀和量化分析,其實也是分析NGS數據的基礎步驟了。

由於長時間沒有更新此專題,先回顧一下這個專題已經講了什麼吧(從五月開始到現在了嗯~ o( ̄▽ ̄)o):

1. 常見的linux操作:指令、文本(正則表達式)、git協作

Bioinformatic Data Skills 學習專題(4) git

Bioinformatic Data Skills 學習專題(3) 文本操作

Bioinformatic Data Skills 學習專題(2):一些基礎的shell腳本和伺服器指令


2. 常見生物數據,genomic range

Bioinformatic Data Skills 學習專題(6) Genomic Range之三

Bioinformatic Data Skills 學習專題(6) Genomic Range之二

Bioinformatic Data Skills 學習專題(6) Genomic Range之一

Bioinformatic Data Skills 學習專題(5) Bioinformatics Data



本章主要內容

SAM/BAM的數據格式組成:header/section/flags/CIGAR/Mapping quality

SAM/BAM文件處理的命令行工具: samtools

用IGV可視化

用Pysam自己做SAM/BAM處理工具(難度較大,日後再講)

這些內容集中回答了如下幾個問題……Q1: 比對後的文件格式:多了什麼?

從上一章我們講到的原始測序數據用軟體進比對和回帖(主流比對軟體如bowtie, hisat,以及最近流行的超快轉錄組比對軟體salmon和kallisto),接下來就要解釋比對結果,它是以BAM/SAM文件格式呈現的,主要包括:

1. 頭信息(Header),以@開頭

@SQ, reference sequences,通常是染色體名,主要欄位為SN(sequence name ),後面跟著染色體號;LN是則是sequnce length

@RG, 樣本名和組名(read group and sample metadata), ID必須是唯一的,作者建議the name of the sequencing run and lane,可以用於後期區分batch effect;同時SM號碼可以用於存儲樣本的metadata信息(individual, treatment group, replicate);PL 這個域可以存儲測序平臺信息,比如ILLUMINA,PACBIO等等。

@PG,存儲比對軟體的信息,ID是必須的;VN為版本號;CL則是command line的縮寫。通常比對軟體會自動加上這些信息

第一行的比對信息不以@開頭

2. 每個reads的具體信息(Alignmet Section)

1    QNAME   Query template/pair NAME

2    FLAG    bitwise FLAG

3    RNAME   Reference sequence NAME

4    POS 1-based leftmost POSition/coordinate of clipped sequence 位置信息

5    MAPQ    MAPping Quality (Phred-scaled) 比對鹼基質量,詳見上一節

6    CIGAR   extended CIGAR string, matching bases, insertions/deletions, clipping

7    MRNM    Mate Reference sequence NaMe (`=' if same as RNAME)  MPOS   1-based Mate POSistion,下一個信息?

8 TLEN    inferred Template LENgth (insert size), template length for paired-end read

9 SEQ    query SEQuence on the same strand as the reference

10 QUAL    query QUALity (ASCII-33 gives the Phred base quality)

我們需要的信息主要從下面三個欄位獲得:

CIGAR string: matches/mismatches, insertions, deletions, soft or hard clipped, and so on.根據描述,就是看看reads是否有前面這些特徵

Mapping qualities: Q = -10 log10P(incorrect mapping position). 鹼基質量,於30就可以了。

相關代碼

看SAM文件的header信息

samtools view -H celegans.sam

@SQ SN:I LN:15072434

@SQ SN:II LN:15279421

@SQ SN:III LN:13783801

看bitwise flag信息

$ samtools flags 147

0x93 147 PAIRED,PROPER_PAIR,REVERSE,READ2

$ samtools flags 0x93

0x93 147 PAIRED,PROPER_PAIR,REVERSE,READ2

Q2: 了解了數據格式。處理這些比對好的文件?換一種說法就是,怎麼分析SAM文件以得到所需要的特定reads(正確的比對結果)?1. 格式轉換

可以參考samtools的詳細說明書(詳見http://www.htslib.org/)sam到bam文件格式轉化: samtools view-b celegans.sam>celegans_copy.bam包含header信息的轉換: samtools view-h celegans.bam>celegans_copy.sam對map好的文件進行排序: samtools sort celegans_unsorted.bam celegans_sorted由於體積小,一般sort好的bam文件被用於後續的分析,這樣我們用 samtools view的速度就會快很多,一般情況下,sort好的文件分析都需要以fai結尾的index文件: samtools index celegans_sorted.bam

2. reads挑選實例1:使用 samtools view找特定區域上的比對情況

作者再github項目上分享了1000 Genomes Project Consortium的數據來實戰,具體可以到https://github.com/vsbuffalo/bds-files/tree/master/chapter-11-alignment 下載

samtools index NA12891_CEU_sample.bam

# 看一下 chromosome 1, 215,906,469-215,906,652上的比對reads情況

samtools view NA12891_CEU_sample.bam 1:215906469-215906652 | head -n 3

SRR003212.5855757 147 1 215906433 60 33S43M = 215906402 [...]

SRR003206.18432241 163 1 215906434 60 43M8S = 215906468 [...]

SRR014595.5642583 16 1 215906435 37 8S43M * 0 [...]

# 我們可以把獲得的信息重定向到別的文本

$ samtools view -b NA12891_CEU_sample.bam 1:215906469-215906652 >

USH2A_sample_alns.bam

# 如果你想獲得多個區域的比對情況,就需要用這些區域的BED文件,同時加上參數 -L

$ samtools view -L USH2A_exons.bed NA12891_CEU_sample.bam | head -n 3

SRR003214.11652876 163 1 215796180 60 76M = 215796224 92 [...]

SRR010927.6484300 163 1 215796188 60 51M = 215796213 76 [...]

SRR005667.2049283 163 1 215796190 60 51M = 215796340 201 [...]

3. reads挑選實例2:使用 samtools view-f篩選特定的比對結果

比如我們想看看那些reads沒有比對上哪~ samtools flags unmap告訴我們:0x4 4 UNMAP,4就是沒有map上的bitflag,接下來就要用view -f的參數篩選出這些reads:

$ samtools view -f 4 NA12891_CEU_sample.bam | head -n 3

SRR003208.1496374 69 1 215623168 0 35M16S = 215623168 0 [...]

SRR002141.16953736 181 1 215623191 0 40M11S = 215623191 0 [...]

SRR002143.2512308 181 1 215623216 0 * = 215623216 0 [...]

參數 view-F的含義剛好相反,就是map好的reads信息了

samtools view -F 4 NA12891_CEU_sample.bam | head -n 3

SRR005672.8895 99 1 215622850 60 51M = 215623041 227 [...]

SRR010927.10846964 163 1 215622860 60 35M16S = 215622892 83 [...]

SRR005674.4317449 99 1 215622863 37 51M = 215622987 175 [...]

可以注意到這些bitflag有很多別的數字,想看69含義,如下:

$ samtools flags 69

0x45 69 PAIRED,UNMAP,READ1

同時我們也可以發過來用 samtools flags

$ samtools flags READ1,PROPER_PAIR

0x42 66 PROPER_PAIR,READ1

最後上一個-f -F的組合使用,需要paired且mapped的reads(有沒有像邏輯學的感覺)

0x1 1 PAIRED

$ samtools flags unmap,proper_pair

0x6 6 PROPER_PAIR,UNMAP

$ samtools view -F 6 -f 1 NA12891_CEU_sample.bam | head -n 3

SRR003208.1496374 137 1 215623168 0 35M16S = 215623168 [...]

ERR002297.5178166 177 1 215623174 0 36M = 215582813 [...]

SRR002141.16953736 121 1 215623191 0 7S44M = 215623191 [...]`

不能盲目使用,需要檢驗:

$ samtools view -F 6 NA12891_CEU_sample.bam | wc -l # total mapped and paired

233628

$ samtools view -F 7 NA12891_CEU_sample.bam | wc -l # total mapped, paired,

201101 # proper paired

$ samtools view -F 6 -f 1 NA12891_CEU_sample.bam | wc -l # total mapped, paired,

32527 # and not proper paired

$ echo "201101 + 32527" | bc

233628

Q3: 用samtools過濾得到正確的比對結果,然後?

直接看fasta文件和bam/sam文件的關係可以用samtools的功能實現:

samtools tview -p 1:215906469-215906652 NA12891_CEU_sample.bam \

human_g1k_v37.fasta

到了這一步,我們已經能夠保證獲得的結果都是通過質量控制的,所以技術上的問題已經解決,接下來就要檢驗數據在生物學意義上是不是靠譜的。比如看看reads的分布是不是合理,一般都需要結合已有的生物學背景知識來進行檢驗,比如ChIPseq的話就需要看看input是不是均勻分布,IP的結果是不是真的蛋白富集在特定位點,甲基化數據就要看一些特異區域比如CpG島是不是高甲基化的,重複序列是不是低甲基化等等。通常我們需要把這些結果可視化再做檢驗,所以數據量化必不可少,大致過程如下:

step1. 量化步驟和腳本step2. IGV可視化的一些關鍵點

我再六月初的時候寫了一篇關於所需要基因組的IGV參考格式製作,大家可以參考該文章: 何快速有效地將新拿到的參考基因組在IGV裡可視化

講到這裡,本章的主要內容差不多結束了,首先介紹了比對數據SAM文件格式的信息組成,然後講了處理和分析SAM文件的命令行工具samtools。那可不可以不用工具自己分析呢?大拿們當然早已推出各種包了,在此我僅僅摘錄一些書中部分(這裡摘錄的目的其實是今後打算推出單獨章節用於此類工具介紹),有興趣的可以先結合本書學習。

補充部分可能會下期或者最後補講:定製化的文件分析(Pysam)和自己編程創建SAM文件


相關焦點

  • BBRC:章張等開發出編碼蛋白質DNA序列並行比對工具ParaAT
    同源序列比對是生物信息學最普遍使用的分析方法之一,其中,編碼蛋白質DNA序列比對最為常見,對比較基因組學、分子進化學、系統發育等領域具有重要的基礎意義。為獲取相應的比對結果,通常採用的方法是將蛋白序列的比對結果「回譯」(back-translate)成DNA比對序列,這樣的比對結果比直接進行DNA序列比對更可靠、準確。
  • BBRC:章張團隊研究開發出DNA序列並行比對新工具
    同源序列比對是生物信息學最普遍使用的分析方法之一,其中,編碼蛋白質DNA序列比對最為常見,對比較基因組學、分子進化學、系統發育等領域具有重要的基礎意義。為獲取相應的比對結果,通常採用的方法是將蛋白序列的比對結果「回譯」(back-translate)成DNA比對序列,這樣的比對結果比直接進行DNA序列比對更可靠、準確。
  • 感官試驗設計與數據分析線上專題培訓圓滿結束
    近年來,隨著高校、企業以及研究院感官評價的逐步推動和落實,「感官專題類學習」變得異常剛需。食品夥伴網針對大家的需求,特組織相應的培訓學習活動,旨在幫助學員解決感官實踐過程中的困惑和難點。  繼「感官線上企業內訓」、「感官線上集訓營」、「感官有約」線上沙龍、「感官小白線上學習營」等系列線上課程之後,食品夥伴網再次隆重推出「感官試驗設計與數據分析」線上專題培訓,為大家搭建了一個絕佳的學習交流平臺。
  • SPSS安裝包及教程|從理論至實操
    導 語轉載 | SPSS有話說以下文章按照從理論至實操、由簡單到複雜排序,並整理歸納為11個專題。如果是初學者,請從第二篇文章開始看起;如果是有基礎的學習者,可以根據專題查找相應的知識點並學習。統計學習是循序漸進的過程,希望大家一步一個腳印,先從統計思想出發,紮實基本功,然後再學習統計方法,不斷強化提升。
  • 英語流行語:「大數據 big data」英文怎麼說?
    新東方網>英語>英語學習>語法詞彙>流行語>正文英語流行語:「大數據 big data」英文怎麼說?The four-day event has attracted 448 enterprises from 59 countries and regions to show the latest products, solutions, technologies, achievements and patterns on big data.
  • 宏基因組實戰7. bwa序列比對, samtools查看, bedtools豐度統計
    前情提要如果您在學習本教程中存在困難,可能因為缺少背景知識,建議先閱讀本系統前期文章測試數據劉博士幫助把測試數據建立了一個百度雲同步共享文件夾
  • 「基因組與轉錄組高通量測序應用最新技術與數據分析」高級實操...
    由此不斷產生出巨量的分子生物學數據,這些數據有著數量巨大、關係複雜的特點,以至於不利用計算機根本無法實現數據的存儲和分析。隨著生物信息學作為新興學科迅速蓬勃發展,正在改變人們研究生物醫學的傳統方式,高通量測序技術以及數據分析技術已成為探索生物學底層機制和研究人類複雜疾病診斷、治療及預後的重要工具,廣泛應用於生命科學各個領域,是21世紀生命科學與生物技術的重要戰略前沿和主要突破口。
  • 「基因組與轉錄組高通量測序應用最新技術與數據分析」高級實操班...
    由此不斷產生出巨量的分子生物學數據,這些數據有著數量巨大、關係複雜的特點,以至於不利用計算機根本無法實現數據的存儲和分析。隨著生物信息學作為新興學科迅速蓬勃發展,正在改變人們研究生物醫學的傳統方式,高通量測序技術以及數據分析技術已成為探索生物學底層機制和研究人類複雜疾病診斷、治療及預後的重要工具,廣泛應用於生命科學各個領域,是21世紀生命科學與生物技術的重要戰略前沿和主要突破口。
  • R與生物專題 | 第六講 R-數據正態分布檢驗
    require(devtools)) install.packages("devtools")devtools::install_github("kassambara/ggpubr")如果是Mac電腦的話,可能在安裝ggpubr的時候會報錯:xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools
  • 生信實操丨序列進化保守性分析和可視化
    1.PhastCons,Phylop介紹和小工具下載獲得保守性打分的第一步是對多物種的全基因組序列進行多序列比對,然後根據比對結果獲得分值。小鼠PhastCons和PhyloP多物種比對文件地址如下:ftp://hgdownload.soe.ucsc.edu/goldenPath/mm10/(其他物種的文件在此文件夾上層目錄)UCSC小工具bigWigAverageOverBed的下載連結如下:http://hgdownload.cse.ucsc.edu/admin/exe/linux.x86_64/。
  • R語言data manipulation學習筆記之subset data
    個人博客: https://ytlogos.github.io/公眾號:生信大講堂往期回顧數據分析過程中我們常常需要從數據集中抽取部分數據,本文將介紹如何提取子數據集,主要利用R自帶的函數,以後會專門介紹data manipulation
  • 2020年7月大學英語四級閱讀解析(新東方廣州學校)
    同時廣大考生還可隨時@新東方網四六級微博及新東方網四六級微信xdfcet46,與線上老師以及考生隨時互動答疑,敬請廣大考生密切關注2020年7月英語四六級真題解析專題。    【看選項找同義替換】C,夢到學習過的知識可以促進其表現。   52. What happens when one enters a dream state?   A) The body continues to act as if the sleep were awake.
  • 遙感圖像處理中的深度學習專題 《中國科學:信息科學》英文版
    深度學習是一種非常適用於大數據應用的新興技術.在對地觀測領域, 由大量在軌衛星獲取的海量遙感數據, 使其成為數據驅動應用的典範. 過去幾年來, 遙感圖像處理相關的深度學習研究快速增長, 包括高光譜遙感圖像、合成孔徑雷達(SAR)圖像等處理、分類、參數反演及目標檢測識別.
  • 將Python中的字典數據轉化為DataFrame
    編譯:老齊與本文相關的圖書推薦:《數據準備和特徵工程》在數據科學項目中,通常用Pandas的read_csv或者read_excel從相應文件中讀入數據,此外,對於數據量不大的時候,可能還有下面的情形出現:import pandas as pddata = {『key1』: values, 『key2』:values, 『key3』
  • Pandas數據結構:DataFrame
    剛剛接觸pandas的朋友,想了解數據結構,就一定要認識DataFrame,接下來給大家詳細介紹!= {"a": [1,2,3],"b": [4,5,6],"c": [7,8,9]}print(data1)print("")print(pd.DataFrame(data1)) # 創建DataFrameprint("")# 注意: index是可以給行索引重新命名 columns是給列索引重新指定順序
  • DIA年會專題 深度基因數據與深度臨床數據在新藥研發中的應用
    大會設置了多項學術專題,上百餘場學術分會,旨在加強促進中外醫藥領域的國際交流與合作,同時眾多學術界和工業界的專家參與分享討論,與從業者共同探討推動創新,促進合作。」的專題演講, 分享了數據驅動的真實世界臨床研究方案如何為生物製藥公司提供強大的數據挖掘能力,為腫瘤藥物的開發和商業化提供助力,並且以中國癌症患者真實世界數據(RWD)帶來的挑戰與機遇為切入點,闡述了領星生物如何運用中國癌症患者的真實世界全面的基因組數據以及縱深臨床數據(Complete genomic+ Deep Clinical)並結合人工智慧算法,在疾病洞察、癌症轉化研究以及腫瘤藥物臨床開發等多個維度幫助製藥企業實現更高效的真實世界研究
  • 數據集的「乾坤大挪移」:如何使pandas.Dataframe從行式到列式?
    圖源:unsplash如何將數據集從行式變為列式?本文將傳授給你數據集的「乾坤大挪移」大法,使用pd.melt()或melt方法使pandas. dataframe發生形變。一起來看看吧!行式vs寬式數據集如果我們將一個行式數據集與列式數據集進行比較,最容易理解行式數據集是什麼樣?
  • 生信第二步:建立索引及比對
    第二個問題:為什麼要比對?在比對之前,我們得了解比對的目的是什麼?RNA-Seq數據比對和DNA-Seq數據比對有什麼差異?RNA-Seq數據分析分為很多種,比如說找差異表達基因或尋找新的可變剪切。在2016年的一篇綜述A survey of best practices for RNA-seq data analysis,提到目前有三種RNA數據分析的策略。
  • 資源| 自學數據科學&機器學習?19個數學和統計學公開課推薦
    數據科學數學技巧(Data Science Maths Skills)地址:https://www.coursera.org/learn/datasciencemathskills課程周期:4 周授課:杜克大學(Coursera)如果你是個初學者,數學知識十分有限,那麼,這個課程很適合你。
  • 【美國】Data Science數據科學專業TOP10
    今天說說美國這幾年大熱專業:Data Science數據科學。Data Science是一項交叉學科,開設在研究生院中,主要由三大塊知識內容構成,它們分別是:1. 統計學與機器學習2. 計算機科學與軟體開發3.