RNAseq’s 資料前處理:Quality Control

RNAseq資料處理的步驟非常繁複,而第一步就是要看定序出來的品質如何,品質不好的話是否要去掉差的定序reads,特意設計疊加的reads是否要先處理完後再繼續下一步的aligment、是否有被污染、過多的adaptors(比較短的library中容易碰到的問題)。

最常見用來評估定序品質的工具為FastQC

FASTQC 是一款用來分析RNA-seq FASTQ 檔案的軟體,可以在command line環境下執行.

分析後會取得的資料:

  • 檔案名稱:最原始分析前之檔案名稱
  • 檔案類型
  • 解碼(encoding):其品質數值所表示的ASCII
  • 全部定序數量(Total Sequence):總共有多少定序片段
  • 過濾定序(filtered sequence):在Casava模式下,在分析過程中片段序列被標誌且移除
  • 定序長度(Sequence Length):最短和最長的定序序列
  • GC比例(GC content)

FastQC 執行完,會給出11張圖:

Per Base Sequence Quality 每個base平均品質
screenshot.png

    1. 分析內容
      1. 可以用來看是否有特別低品質的定序序列,通常都是因為照向品質不好所造成的,像是位在定序晶片邊緣的點
      2. 達不同品質指標,圖標會顯示之圖例
        • 警告(Warming):當平均品質小於27/0.2% error rate
        • 失敗(Failure):當平均品質小於20/1% error rate
      3. 備註:經過quality trimming後可能會有偏差,或是看不出error batch?

Per Sequence Quality Scores 每條序列中不同位點的品質
screenshot.png

    1. 分析內容
      1. 顯示序列裡不同位置平均品質範圍(只要是fastq中之資料)
      2. BoxWhisker type Plot圖中標示的解釋:
        • 中間紅色線:中間值(median)
        • 黃色長條:四分位距內的值(25-75%)
        • 上下whiskers: 各代表10%和90%的點
        • 藍色線:代表平均值(mean)
        • 背景色
          1. 綠色very good quality
          2. 橘色reasonable quality
          3. 紅色poor quality
        • 標題上是FastQC猜測此定序所使用的方式,在虛列品質好時比較容易猜測錯誤.
      3. 達不同品質指標,圖標會顯示之圖例
        • 警告(Warming):當25%之任何序列位點<10或是median值<25
        • 失敗(Failure):當25%之任何序列位點<5或是median值<20
      4. 問題導因:
        • 原因一: 跑定序的時間過長,造成後面定序出來的品質下降
          1. 處理方式: Quality Trimming(依據平均品質來決定裁掉的長度)
          2. 通常在adapter read-through也會有問題
        • 原因二:在一開始的時候就產生問題,可能有泡泡跑過定序的夾層,這時候就不適合trim,會因此拋棄過多好品質的序列
        • 原因三:太低的coverage可能會造成false negative

Per Base Sequence Content序列中不同位置其ATCG所佔的比例

screenshot.png

    1. 分析內容:
      1. 在一個隨機的library中,其序列中不同base應該不會有太大的差別.
      2. 通常在開頭的地方容易有不平均的ATCG比例,通常在Library製備過程中priming使用到random hexamers(幾乎所有RNA-seq的製備都會使用),或是在fragmentation過程中使用transposases,通常會在reads開頭有偏差出現,使得在有enrichment在5’端的different k-mers處,這種技術性造成的偏差無法藉由trimming消掉,但在downstream analysis中也不會造成太大的問題
      3. 達不同品質指標,圖標會顯示之圖例
        • 警告(Warming):當任何一處的ATCG其差異超過10%
        • 失敗(Failure):當任何一處的ATCG其差異超過20%
      4. 問題導因:
        • 原因一:Overrepresented sequence
          1. 可能是做定序所使用的adapter dimers或是rRNA
        • 原因二:Biases Fragmentation
          1. 因製備Library中所使用的random hexamers在前12bases會有selected biase,但這在後續的process可以處理掉,不太會影響後續的分析
        • 原因三:Biases Composition Libraries
          1. 大多數的library本身就會有些composition的偏差,尤其是使用sodium bisulphite製備的,其會造成cytosine變成thymines,所以會使得C的比值偏高
        • 原因四:Extreme Trimming
          1. 在尾端會出現,因為很積極地將跟adapter match的序列去除掉

Per Sequence GC Content 測量GC在序列中的比例
screenshot.png

    1. 分析內容:
      1. 其主要是分析不同序列的GC之分布圖,應該要跟理論分布差不多
      2. 比較陡或是尖:可能是被adapter汙染
      3. 比較寬:可能是被不同物種所污染
    2. 達不同品質指標,圖標會顯示之圖例:
      1. 警告:偏離理論值15%
      2. 失敗:偏離理論值30%

Per Base N Content 平均每個位點壞品質(N)

screenshot.png

    1. 分析內容:
      1. 當某個序列即位點定序品質很差,則會用N代表
      2. 通常當某個部分其N所佔的比例上升的話,其會使後面的分析無法獲得有效的base cal.
    2. 達不同品質指標,圖標會顯示之圖例:
      1. 警告:任一個位置其N所佔比例大於5%
      2. 失敗:任一個位置其N所佔比例大於20%
    3. 備註原因:
      1. 原因一:
        • 通常是整體定序品質不佳,可以檢查一下特定bin的coverage,可能有某一個bin其定到的序列非常少
      2. 原因二:
        • 有嚴重偏差的LIBRARY,在Per Base Sequence Content也可以看出來

 

   Sequence Length Distribution 定序長度分布圖
screenshot.png

    1. 分析內容:
      1. 顯示平均定序的長度,這部分就要先了解是使用何種定序方式,有的會有單一長度,有的則是不同
      2. 達不同品質指標,圖標會顯示之圖例:
        • 警告:假如定序的長度有不一樣的話
        • 失敗:任一個定序長度是零

Duplicate Sequences 重複序列
screenshot.png

    1. 分析內容:
      1. 在一個均勻的library中序列應該只會出現一次,很低程度的重複率可能暗示高coverage,高度序列重複則可能是library中有某種程度的enrichment bias
      2. 為了使分析的計算效率提高,這個分析模組只會分析在前100000的序列,另外在超過10個重複的序列,其會被放在一起呈現
      3. 比較長的定序讀數,通常會造成一定程度的低估重複率
      4. 藍色線:代表完整序列其重複率, 紅色線:代表去掉重複後不同序列的比例
  1. Overrepresented Sequences
  2. Adapter Content
  3. Kmer Content
  4. Per Tile Sequence Quality

去掉品質差Reads的工具Trimmomatic

可以用來處理illumina機器裡的adaptor,其也可以將low-quality的base或是N base去掉,其可以處理single-end和paired-end的資料。此程式是java base的軟體,在command line下操作。

 

處理特殊設計的paired-end 實驗設計:BBMerge FLASH

有些實驗設計時,會將paired-end read設計成疊在一起的樣子,而這兩款程式可以將重疊的paired-end reads合成單一條較長的reads,且能計算出innert-size的分布圖。

偷偷查了一下FLASH的使用趨勢,似乎暴增人數使用!
screenshot.png

給生物學家的計算分析(三):Regular Expression使用

思考如何寫Regular expression的thinking process
以下是資料
螢幕快照 2016-01-16 上午8.01.22
首先思考要如何整理,整理成什麼樣子
螢幕快照 2016-01-16 上午8.04.27
再來看目前資料每行的狀態
螢幕快照 2016-01-16 上午8.06.46
先看哪些是要的資訊,用(     ) 標示
(13) (Jan)uary, (1752) at (13):(53)    (-1.414)    ( 5.781)etc
先看括號裡的資料怎麼用Regular Expression表示
螢幕快照 2016-01-16 上午8.18.53
再將括號外的符號放進去
(13) (Jan)uary, (1752) at (13):(53)    (-1.414)    ( 5.781)etc
(\d+)\s+(\w{3})[\w\,\.]*\s+ (\d+)\sat\s (\d+):(\d+)\s+    ([-\d\.]+)\s+    ( [\d\.]+).*
    1               2                             3               4          5               6                         7
在調整取代裡面的括號資料順序
(13) (Jan)uary, (1752) at (13):(53)    (-1.414)    ( 5.781)etc
(\d+)\s+(\w{3})[\w\,\.]*\s+ (\d+)\sat\s (\d+):(\d+)\s+    ([-\d\.]+)\s+    ( [\d\.]+).*

    \3               \2 \.              \1               \4                 \5              \ 6                         \7

 

*:(quantifiers)至少符合0個
+:(quantifiers)至少符合1個

論文閱讀Onco-proteogenomics:Cancer proteomics joins forces with genomics

Onco-proteogenomic research 是結合genome和proteome的資訊來回答癌症研究的問題。

在生物的中心法則central dogma: DNA -> RNA -> Protein,越往下越直接影響到生物體的功能,但也越難研究,自從Mass Spectrometry的技術不斷精進,目前研究蛋白體學的武器比之前跑電泳的時代不同了,但研究蛋白體學的技術難度終究還是遠大於基因體學的技術,隨者定序資料越來越便宜,使用定序資料來幫助蛋白體學的研究是另一個蠻新穎的方式,目前RNA-seq可以很容易找出大量的unknown transcripts或是chimeric transcripts,但是不是真的存在,是很難單純用定序資料可以回答的,要是能使用Proteomic data來validation,那麼會非常有說服力。

螢幕快照 2016-01-13 下午12.26.23

 

Onco-proteogenomics研究有許多待克服的挑戰,以下簡單介紹和搭配各自的reference:

挑戰一在癌症研究中,我們最在意的便是能否找到一些在癌症組織中基因、蛋白體的特異性改變(Tumor-specifci change in the proteome),像是:癌症是怎麼開始的(Tumor initiation)、癌症為何會惡化(Tumor progression)、癌細胞是如何對治療產生resistance(Adaptation to treatment),這過程中,研究者很容易會找到變異,但哪些是“passenger change”,哪些是“driven change”,背後要用什麼統計模型來解釋、如何處理多樣化的資料來源、資料如何呈現等等

挑戰二想要用MS/MS來看癌症組織中某個蛋白質或是變異蛋白質的量,來確認從Genomic data analysis的結果,也會遇到“不一定看得到想看的,沒看到也不代表沒有”的難題,畢竟蛋白體在細胞中的量是動態的,而一些基因的變異所產生的mutated protein產量不多(基因變異不一定都造成蛋白質的量下降,像是P53 mutated會造成相反的效果)

 

挑戰三從genomic data建置成reference data base時所使用的six-frame translation會產生比較多的可能,但實際上可能產生突變的蛋白質約莫數百,且大部分都是passenger mutation,從統計來看可能會造成false discovery rate上升。

挑戰四在proteogenomic 研究上有一個根本的問題,那便是如何將不同的資料結合,來闡述所有跟cancer-related phenotype的認知,這是非常困難的,但才是我們核心想知道的,到底病人怎樣才會回復健康。

挑戰五目前評估某一個新的Onco-proteogenomic技術都是看其發現多少基因變異為主這種思維很容易造成研究人員過度的追求找出新的mutation,但另一方面同時也是增加false discovery rate,造成一堆垃圾資料產生。

 

幾篇有趣的Onco-proteogenomic research paper:

Evans, V.C. et al. De novo derivation of proteomes from transcriptomes for transcript and protein identification. Nat. Methods 9, 1207–1211 (2012).

Li, H., Ruan, J. & Durbin, R. Mapping short DNA sequencing reads and calling variants using mapping quality scores. Genome Res. 18, 1851–1858 (2008).

Aquino, P.F. et al. Exploring the proteomic landscape of a gastric cancer biopsy with the Shotgun Imaging Analyzer. J. Proteome Res. 13, 314–320 (2014).

O’Rawe, J. et al. Low concordance of multiple variant-calling pipelines: practical implications for exome and genome sequencing. Genome Med. 5, 28 (2013).

 

給生物學家的計算分析(一):文本乃資料分析之底

閱讀自Practical Computing for biologists by Haddock Dunn

 基本上,電腦的檔案都是一連串binarary numbers所組成的,另一種人類看得懂的格式則是文本形式(text files),而資料分析的起點便是如何處理這些text file,即使是我們引以為常的數字或是文字,電腦要呈現給我們看得懂,就必須要轉換格式,最常見的數字或是英文文字的格式便是American Standard Code for Information Interchange (ASCII)。

 這些為了讓人類能理解而加上的許多格式,在我們要分析的時候就變得很棘手,因為其賦予資料格式的符號很容易影響我們處理資料時的手續,所以一套看“純的”工具,便很重要!
目前最基本的文本架構為character-delimited text,就是由column和line來組成整個資料架構,其中delimited就是將每一行資料分開的符號,可以是空白鍵、逗點或tab,而第一行的資訊通常就是header.
目前主流操作系統為windows、mac和linux,以下就這三個系統推薦好用的純文本編輯器,各個功能強大。
系統
推薦程式
MAC
Windows
Linux
不同系統間,會有一些細微的差異,這邊提兩個:
  • Line ending:每個編輯器在處理每一個行最後結尾的標記不太一樣
    • 主要分成兩大類型標記:
      • Carriage return(CR) :使用\r
      • Line feed(LF): 使用\n
  • Display font:編輯器展現出來的樣子,這邊的展示通常都不會直接改變原本的資料
    • Proportionally spaced:字所佔空間一樣
      螢幕快照 2016-01-13 上午12.31.34
    • Fixed-space:字所佔空間不一樣
      螢幕快照 2016-01-13 上午12.31.38

想成為一位計算生物學家嗎?

So you want to be a computational biologist?

作者

Mick Watson 來自英國羅斯林研究所( The Roslin Institute), 前身本來是愛丁堡大學動物遺傳研究所,著名的複製羊polly便是從那邊來的,其也是愛丁堡生物資訊研究的領頭人,那是愛丁堡基因體學術研究機構,負責提供次世代定序的分析訓練(Head of Bioinformatics at Edinburgh Genomics (http://genomics.ed.ac.uk).可以追蹤他的推特@BioMickWatson或是部落http://biomickwatson.wordpress.com/.

Nick Loman來自英國伯明罕大學微生物與感染所的獨立研究員,可以追蹤他的推特 @pathogenomenick以及部落格http://pathogenomics.bham.ac.uk/blog.

計算生物學家這個詞代表了好幾種角色於其中,包括資料分析、資料收集、資料庫的建立、統計學家、數學建模、生物資訊、軟體開發、ontologist等等,可以確定的是電腦已是現代生物研究不可或缺的一員,科學家常常被要求學習新的計算生物學技能或是了解新的術語。不管你是學生、教授或是想要往學術界發展,以下這些建議假如你有興趣的領域需要越來越多的計算分析,那麼將對你很有用!

找尋你的目標並且挑選合適的方法
Understand your goals and choose appropriate methods

做好計算生物學研究的關鍵是挑選並且使用好的軟件。在你可以完美詮釋軟體分析的結果前,最好仔細去理解軟體背後的原理。就好像你不會在做PCR時,卻不理解他背後的原理一樣。所以在使用電腦軟體分析資料也是同樣的道理。去理解所使用計算機軟體背後分析的原理和演算法。但這不是要你去把軟體裡每一行程式碼都瞭解到一清二楚!同常分析軟體都會有固定的演算法針對某一種資料類型,舉例來說,在de novo assembly,Overlap-Layout-Consensus assembler演算法便是用來最佳化使得序列讀數可以長點,而Bruijn graph則是針對短read的運算。挑選適合的演算法和軟體會省掉你之後很大量的時間。

為你或是從別人那取得之程式碼設計一些“捕蟲器”
Set traps for your own and otehr people’s

你如何知道你的程式碼、軟體、分析流程到底有沒有問題呢?電腦會很開心地輸出結果來自任何怪異的輸入資料,並且沒有任何錯誤的訊息。建立一些小測試資料,這資料的分析結果是已知的,看看你自己的程式碼或是使用的軟體能不能作出一樣的答案。試者在你每個分析的資料都建立這樣的工作流程。double-check每一次的計算分析,並且思考是否是合理的結果。就像傳統生物實驗都會有positive和negative control.這在計算生物學裡的實驗室一樣的。

你是科學家,不是編程員
you’re a scientist, not a programmer

鑽牛角尖是成功的敵人。記住你是一位科學家,你研究水準來自於成果,而非程式碼的精美與否。即使你編碼的很完美、標注清楚且冗長,最後分析出錯誤的結論,這樣倒不如就使用基本的語法。必須說,一旦你確定你和新的演算法沒問題,再花時間使得程式碼的可讀性高一點。能多多活用生物知識,便要好好的把握住!

使用版本控制的軟體
Use verion control softward

版本控制可以幫助追蹤你修改的指令,同時維持不同版本的程式且可以跟別人一起分享。最使用版本控制的工具像是Git或是Subversion,也能讓你較快地發布新的編碼。另外,在編碼裡面寫好說明(README)檔案,這樣可以幫助未來的你回頭看看舊專案時比較了解你在做什麼。在你程序或是編碼腳本裡好好撰寫註解,這樣可以幫助你看懂自己在寫什麼。在發表研究時候,可以試試把分析使用的編碼也一起發表,這樣可以讓其他人能重複驗證你的分析結果。另外,維持一個數位實驗記錄簿在你分析任何資料的時候。像是程式碼儲存在Github中也是一個相當好的方式來維持你程式的雲端備份。

“指令管線炎”是一個嚴重的問題
Pipelineitis is a nasty disease

所謂的指令管線化(Pipeline)是指把一系列程序或是軟體的操作步驟以完整序列方式去執行。建立一套Pipeline是很棒的方式來執行很多重複的分析,和分享工作流程給他人。但這樣會強迫你把工作方式限縮成固定模式,有時候會降低你的創造性。所以最好不要太早把自己分析方式弄成Pipeline,當把這套分析方法確認是對的,才這麼做。同時要思考一下這工作流程需要弄成pipeline嗎?這真的能節省時間嗎?這樣的pipeline對於別人也有用嗎?假如這樣的分析方式只有你自己要用,那麼花費太多力氣整合成pipeline的意義就比較小,維持單純的程式碼腳本反而比較單純。

 

歐巴馬的思維架構
A
n obama frame of mind

沒錯!就是像歐巴馬一樣思考!身為一個計算生物學家,你必須要保持創造力,從現有的方法發展出全新的。保持冒險精神,隨時準備好失敗但不斷前進。另外,使用google來詢問同領域的其他人,可以幫助你更快地解決特定的問題。

幫助工作的利器
T
he right tool for the job

請適應UNIX/Linux環境下的指令操作(相對於我們傳統習慣的圖形介面)。他們是非常強大的工具,可以讓你對工具或是軟體的掌握更加全面,且能同步執行很多運算。大部分的生資軟體都設計成可以在comman line的環境下執行,另外,學習叢集電腦和如何同時執行不同共作。學習哪種語言不是最關鍵的問題,因為每種語言都有其強項,且大多數你都需要使用一種以上的語言來完成工作。

請記住使用流行的語言對你的幫助會比較大,因為其現有的小工具會很多,舉例來說,你可以去Bios* project看目前有哪些熱門專案(http://www.open-bio.org/wiki/Main_Page),像是微軟Excel除非很仔細地操作,否則不太適合作為生資的處理工具。使用test structured files或是SQL資料庫來儲存你的資料。最後請記得實時備份你的資料。

不管你遇到的問題多麼的艱難或是使用的方法多麼前端,世界上總是有人同時也想解決這樣的問題的,這邊有兩個很棒的網路資源可以多多使用像是BioStars(http://www.biostars.org/) 或是SEQanswer(http://www.biostars.org/) ,也可以追蹤特定計算生物學家的推特!
來個小小總結,有無數的網路資源可以學習,趕快提起勇氣安裝你第一個linux,你會發現這一切是很值得的!

翻譯自:Nature Biotechnology 31, 996–998 (2013) doi:10.1038/nbt.2740Published online 08 November 2013
(已取得翻譯授權碼:3738500240185)