WGS分析筆記(1)—— 原始數據以及質控

  • 更新于2020.10.27

  • 二代測序方式分為三種:

    • single read 單端測序
    • paired-end read 雙端測序
    • mate-pair read 配對測序
  • 雖然有三種方式,但是大多數數據(包括本課題)為雙端測序,至于三者之間的差別、優缺點以及適用場合可以自行搜索。接下來講的內容都是基于雙端測序的。

  • 測序儀原始下機的數據我們稱為raw data,二代測序是將DNA片段打斷了再測的,每個測序片段我們稱為read,質控完的數據稱為clean data。既然是雙端測序,那么文件就是成對出現的,分別記錄reads兩端的信息:一般的命名是*.fq1.gz、*.fq2.gz(' * ' 表示通配符),這是一個fastq文件,通常以fq或fastq作為后綴,具體內容下方會介紹。這里我給大家展示我們課題的一個真實數據,給大家看看大小以及命名方式。


    原始數據展示
  • 我們可以看到,首先我把我的用戶名打碼了,呵呵,開個玩笑。

  • 首先這個樣本總共有五個文件,這就是公司給的原始數據,我原封不動的上傳到了我的服務器上,也沒改名也沒怎樣,我在圖片上畫了五個藍色的框,下面是分別代表的意思:

W2018001:是樣本的名字,其實我一開始提交給公司的名字是2018001,為什么多了個W我也不知道啊。
NZTD...:這一串是公司自動生成的編號,他們內部使用的,不知道也不需要知道啥意思,不同的公司,可能沒有這個
HCV...:flowcell_ID的信息,一般情況下一個樣本是一樣的
L1:flowcell_lane的信息,圖中有L1和L2,這也是為什么一個數據他給我四個文件的原因,他在不同的lane上測的,這里還要注意的一點就是,這個lane的值可能是同一個,就是即使碰到都是L1也是可能的
1,2:分別代表reads的兩端
  • 我們可以看到,這個30X的WGS的數據量還是很大的,所以為什么他會是壓縮文件,不同公司給的命名可能不一樣,不過大體不會相差太多,具體命名的含義也可以問問公司的。(注:flowcell_ID、flowcell_lane等信息一般在原始數據的內也可以看到)
  • 這里給到的是一個樣本2對文件,實際情況是,可能有多對或者只有一對文件,對于這樣的情況,我們的處理方式一般是看作一個文件處理,就是merge一下,有見過有些課題組是在這一步直接merge,我的處理方式是后期bam文件再merge。
  • 好了,拿到這么一個數據,我們做的第一件事情應該是校驗數據的完整性!!!這點很重要,即使一般情況下,傳輸都不會出錯,但這一步還是要做的,怎么去做呢,就看這個截圖里的第一個文件MD5.txt,其實這就是一個文本文件,打開了看看是這樣的
MD5.txt內容
  • 就是這樣的四行信息,也就是一個文件名對應一個校驗碼,最簡單的校驗方式,linux系統自帶的MD5校驗命令:
$ md5sum -c MD5.txt
  • 這個還是需要一點點時間的,大家要耐心等待。展示一下我這里的結果吧(其實在上傳完數據的時候我就校驗過)
校驗結果

  • 好了,校驗完了,沒問題,那么就給大家介紹一下文件的格式。

  • fastq文件是什么呢,其實就是文本文件,可以直接查看,以下是示例:
    fastq格式
  • 一條read一條記錄,一條記錄占四行,第一行是注釋,第二行是序列,就是我們所說的ATCG堿基序列,第三行是‘+’,第四行是對應的每個堿基的測序質量,也就是fastq中的“q”。每條記錄之間是沒有空格的。

  • 貼一下關于第一行的解釋

EAS139 The unique instrument name
136 Run ID
FC706VJ Flowcell ID
2 Flowcell lane
2104 Tile number within the flowcell lane
15343 'x'-coordinate of the cluster within the tile
197393 'y'-coordinate of the cluster within the tile
1 Member of a pair, 1 or 2 (paired-end or mate-pair reads only)
Y Y if the read fails filter (read is bad), N otherwise
18 0 when none of the control bits are on, otherwise it is an even number
ATCACG Index sequence
  • 第一個是測序機器ID,獨一無二的,你可以去illumina官網查到的(我沒查過)

  • 第二個是這個機器跑的次數,一般機器都是有使用壽命的,所以次數越多肯定結果越差,那么一般在什么區間合適呢,我的老師給的建議是200-9999,為啥還有下限呢,那是因為,機器剛開始跑的那幾次,需要磨合嘛,不是很準。看來這個展示數據不是很好啊,嚇得我趕緊去看了下我的數據,還好,在212次(懶得貼圖了,簡書弄個圖真麻煩),在范圍內。

  • 倒數第三個,表示數據有沒有被過濾過,一般我們的原始數據肯定是N的,要是給的原始數據是Y,你就得好好問問公司原因了。

  • 其余具體的我就不解釋了,有問題可以評論交流。

  • 第二行要注意的是,可能有N的出現,那是因為有些堿基沒被測出來。

  • 第四行是ASCII碼表示的堿基質量,這樣就能保證質量是用一個字符表示的,和堿基一一對應。公式如下:
    ????????????P=10^-[(n-33)/10]

  • 舉個栗子:比如“?”在ASCII碼表上對應的編號是63,那么n就是63,減去33以后就是30,也就是我們說的Q30了,所以Q = n - 33,P算出來就是0.001,這個就是錯誤率,反過來,準確率就是99.9%,Q30就是準確率99.9%,同理Q20就是準確率99%。


  • ok,介紹完格式,介紹兩款質控的軟件,fastqc和fastp
fastqc:
$ wget http://www.bioinformatics.babraham.ac.uk/projects/fastqc/fastqc_v0.11.7.zip
$ unzip fastqc_v0.11.7.zip
$ cd FastQC/
$ chmod 755 fastqc
fastp:
$ wget http://opengene.org/fastp/fastp
$ chmod 755 fastp
  • 以上是我的安裝方式,fastqc是一個很常用的軟件,我想只要不是小白都用過。對于ubuntu用戶請用我提供的方式進行安裝,用apt-get install fastqc可能在使用的時候出現如下報錯

    fastqc錯誤

  • 至于fastp,是用來清洗質量不好的reads的,其實類似的軟件很多,包括trimmomatic等,之所以選擇這個是因為用過那么多軟件后,發現fastp無論在安裝還是使用上都很順手,僅此而已。(注:fastp的UMI操作可能導致結果不能復現,詳見issue

  • 好了,現在讓我們來使用fastqc對raw data的質量進行分析并查看

$ fastqc [-o output dir] [--(no)extract] [-f fastq|bam|sam] [-c contaminant file] seqfile1 .. seqfileN
#這是fastqc的使用方法,其實很簡單,對于不懂的軟件,我一般的推薦是,先看官方說明,再逛逛論壇,這里不展開說這個軟件怎么使用了,下面是我的使用代碼
$ fastqc -o your/path/to/out -t 4 ${datadir}/*.fq.gz
#是不是超級簡單,-o是報告輸出的目錄,這個目錄必須是存在的,-t是線程數
  • 結果如下,要放在早幾年,估計是很難見到這么干凈的原始數據了,為此我還專門請教了一些老師,這么干凈的數據的可信程度。得益于illumina公司對儀器的升級改善,數據的質量也是越來越好了。
fastqc.png
  • 但是即便如此,我們還是要對raw data進行清洗的,數據的質量直接決定了后面分析的準確性,是一切分析的前提,我們一直都在說QC,QC也是基礎,但是它的重要性不容忽視。下面是我要查看的質控的內容:
    • read各個位置的堿基質量值分布
    • 堿基的總體質量值分布
    • read各個位置上堿基分布比例,目的是為了分析堿基的分離程度
    • GC含量分布
    • read各位置的N含量
    • read是否還包含測序的接頭序列
  • 下面是我的對于clean data的指標:
    1. 將含有接頭的reads對去除,或者cut接頭
    2. 測序錯誤率分布檢查,一般情況下,每個堿基位置的測序錯誤率都應該低于1%
    3. GC含量,理論上A=T,C=G,前幾個堿基可能會有波動,GC含量整體在41.5%左右
    4. 平均質量值分布:Q30平均比例≥80%,平均錯誤率≤0.1%
  • 為了達到這樣的目標,我的篩選是條件是:
    • 去除含接頭(adapter)的一對reads;可以酌情考慮去除接頭保留reads
    • 當某一端read中的N含量超過該條read長度比例10%,去除該對reads
    • 當某一端read中低質量(Q≤20)堿基數超過該read長度比例的50%時,去除該對reads
$ fastp -i 1.fq.gz -I 2.fq.gz \
    --adapter_sequence ${Adapter_R1} \
    --adapter_sequence_r2 ${Adapter_R2} \#不同的試劑盒、儀器,會有不同的接頭,這個可以咨詢公司,也可以選擇去掉這兩個參數,影響不大
    -o your/path/of/data/cleaned.1.fq.gz \
    -O your/path/of/data/cleaned.2.fq.gz \#輸出的clean data的位置和名稱
    -c -q 20 -u 50 -n 15 -5 20 -3 20 -w 16 \
    -h your/path/of/report/clean.html -j your/path/of/report/clean.json #這倆參數分別是不同格式報告的輸出位置和文件名
  • 別的不多說,解釋一下我用到的幾個參數,
    • -c:對overlap區域進行糾錯,適用于PE
    • -q:設置低質量的標準,默認是15,多數公司這里設為5
    • -u:低質量堿基所占比例,默認40代表40%,只要有一條read不滿足條件就成對丟掉
    • -n:過濾N堿基過多的reads,15代表個數,因為一般PE150的reads長度是150
    • -w:線程數,這里要注意!范圍是1-16,建議是8,親測,8和16差不多。
    • -5 -3:根據質量值來截取reads,分別對應5‘端和3’端,得到reads長度可能不等
  • 具體請參考官網說明。
  • 這個時候再看clean data結果,就無需fastqc了,因為fastp也會生成一份報告。
fastp報告部分截圖
  • 看到結果,其實可以發現,數據還是保留了大部分的,所以完全不用擔心cut太狠,導致數據不夠。我的原則是,在數據量面前,更應該保證的是數據的準確性,即使會有一點損失,也是值得的,畢竟research更注重的也是準確性,相對于降低假陰性,我更傾向于提高真陽性。
  • 那么得到clean data以后就可以進行下一步mapping了,mapping內容下次再與大家分享。
  • 水平有限,要是存在什么錯誤請評論指出!請大家多多批評指正,相互交流,共同成長,謝謝!!!
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,702評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,143評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,553評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,620評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,416評論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,940評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,024評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,170評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,709評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,597評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,784評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,291評論 5 357
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,029評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,407評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,663評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,403評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,746評論 2 370

推薦閱讀更多精彩內容