小鬼的m6A圖文復現07-Peak結果以及分布特征圖

上一期提到使用exomePeak2進行m6A的Peak Calling,結果如下,每個樣本一個結果:

├── ADDInfo
│ ├── ADDInfo_GLM_allDesigns.csv:Peak識別過程中的一些模型統計參數值
│ ├── ADDInfo_ReadsCount.csv:每個Peak的count值
│ └── ADDInfo_RPKM.csv:每個peak的RPKM值
├── Mod.bed :peak的bed格式
├── Mod.csv:peak的csv格式
├── Mod.rds:peak的Rdata格式
└── RunInfo.txt:運行過程中的一些參數文件

其中Mod.csv與Mod.bed前12列相同,bed為bed12,具體每一列如下,exomePeak2的結果不僅直接對每一個peak進行了基因注釋,還輸出了對應Peak的IP與Input樣本的count值與RPKM值。篩選Peak主要根據pvalue或者padj。默認為pvalue<1e-05

image
  • 第1列 chr:染色體編號
  • 第2列 chromStart:Peak起始位點
  • 第3列 chromEnd:Peak終止位點
  • 第4列 name:Peak名字
  • 第5列 score:the -log2 p value of the peak
  • 第6列 strand:Peak在參考基因組上的鏈信息,+表示正鏈,-表示負鏈
  • 第7列 thickStart:同第二列
  • 第8列 thickEnd: 同第三列
  • 第9列 itemRgb: the column for the RGB encoded color in BED file visualization.
  • 第10列 blockCount: the block (exon) number within the peak.
  • 第11列 blockSizes: the widths of the blocks.
  • 第12列 blockStarts: the start positions of the blocks.
  • 第13列 geneID: Peak區間內注釋到的基因ID
  • 第14列 ReadsCount.input:the total read count of input samples.
  • 第15列 ReadsCount.IP: the total read count of IP samples.

這一列作為重點給予以下說明:

  • 第16列 log2FoldChange: the estimate of IP over input log2 fold change (coefficient estimates of βi,1βi,1 in GLM), the Bayesian estimation implemented in the bioconductor package apeglm[3] will be returned if the regularized NB GLMs are fitted using DESeq2.

這一列很多人會有個誤解,主要跟作者給的注釋也有一定關系

包中的注釋是這個樣子的:

log2FC_cutoff a numeric value for the cutoff on log2 IP over input fold changes in peak calling; default = 0.

看著就是每一個Peak的IP樣本中count/ Input樣本中的count之后的log2值,即倍數關系

但是,當用戶設置了這個參數,比如log2FC_cutoff=1的時候,發現結果中依然會有小于1的結果,后來給作者寫信,給出答復如下,供大家參考:

回復1:

函數中的p_cutoff和log2FC_cutoff其實是peak calling時設定的閾值,exomePeak2的算法是這樣的:
先在外顯子組上生成劃窗,對每個劃窗收集到的IP / input 樣本count做統計檢驗,并對其p-value (one-sided) 和 log2FC進行cut (即p_cutoff和log2FC_cutoff所指定的),顯著的劃窗會被merge成為peak region,并再次count和計算統計值。
所以在exomePeak2最終輸出的表格中,其實是基于merge的peak所計算的統計值,本身已經包含了一些positive bias了。而差異甲基化也是基于所有樣本peak calling后得到的peak進行的統計。

回復2:

那個log2FC是peak calling時針對sliding window用的filter,而輸出的結果是在peak 層面上從新計算的統計值,并未和sliding window共用filter。為了避免給后來使用者造成困惑,我在更新的版本中將默認的peak calling log2FC cutoff改成0了 (在peak calling中log2FC并不影響很大,主要的影響還是p value)。

  • 第17列*pvalue: the Wald test p value on the βi,1βi,1 coefficient in the GLM.
  • 第18列*padj: 對pvalue進行BH矯正后的fdr值

這個結果中已經有了Peak區間的相關基因注釋,但是沒有功能區域注釋,即所有文章中最常見的這幅圖:

image

對于左圖,我們這里給大家介紹繪制m6A修飾位點在基因組上的分布特征圖可視化包:Guitar包

Guitar包與exomePeak2開發者來自同一個課題組,熟悉這個課題組的應該知道他們在關于m6A的分析上開發了許多的包。

這個包目前維護比較少,為了避免踩坑,建議安裝"2.6.0"的版本。

Guitar包出來的結果特征如下:

image

Figure 3: m6 A sites on mRNA and lncRNA. In mRNA, the strongest binding sites (“IP/input ratio” larger than 8) are highly enriched near stop codon side of 3?? UTR and deficient on TSS (transcription starting site) side of 5?? UTR and the phenomena are more prominent than lowly methylated sites. In contrast, the m6 A sites are almost uniformly distributed on lncRNA despite the “IP/input ratio” specified. Please note that, in this figure, the size of 5?? UTR, CDS, and 3?? UTR reflects their true width within the transcriptome, so the 5?? UTR region is much shorter compared with the other two components. This result is based on peaks called on human HepG2 dataset [10].

參考:Biomed Research International, 28 Apr 2016, 2016:8367534

代碼如下:

rm(list=ls())
options(stringsAsFactors = F)

# load package
library(Guitar)
package.version("Guitar")
# [1] "2.6.0"

stBedFiles <- list("data/KO1/Mod.bed")
txdb <- makeTxDbFromGFF(file = "data/KO1/Mus_musculus.GRCm38.101.gtf.gz", 
                        format="gtf", 
                        dataSource="Ensembl", 
                        organism="Mus musculus")

p <- GuitarPlot(txTxdb = txdb, 
                stBedFiles = stBedFiles, 
                headOrtail = FALSE,
                enableCI = FALSE, 
                mapFilterTranscript = TRUE, 
                pltTxType = c("mrna"), 
                stGroupName = "KO1")

p <- p + ggtitle(label = "Distribution on mRNA") + 
         theme(plot.title = element_text(hjust = 0.5)) + theme_bw()

png(file="data/KO1_guitarPlot_mRNA.pdf",width=8,height=6)
print(p)
dev.off()

png(filename="data/KO1_guitarPlot_mRNA.png",width = 1000,height = 800, res = 180)
print(p)
dev.off()

結果圖如下:Peaks主要富集在終止密碼子以及3'UTR上。

image

對于右圖,一般用ChIPseeker軟件來進行區間注釋。

rm(list=ls())
options(stringsAsFactors = F)
#BiocManager::install("ChIPseeker",ask = F)
library(ChIPseeker)
library(org.Hs.eg.db)
library(clusterProfiler)
library(GenomicFeatures)

# annotation file gtf
txdb <- makeTxDbFromGFF(file = "data/KO1/Mus_musculus.GRCm38.101.gtf.gz", format="gtf", 
                        dataSource="Ensembl", organism="Mus musculus")

# overlap
peak_file <- readPeakFile("data/KO1/Mod.bed")

## peak annotation
#region select:"Promoter", "5UTR", "3UTR", "Exon", "Intron", "Downstream", "Intergenic"
peak_anno <- annotatePeak(peak_file,
                          tssRegion = c(-3000, 3000),
                          TxDb = txdb,
                          assignGenomicAnnotation = TRUE,
                          genomicAnnotationPriority = c("5UTR", "3UTR", "Exon","Intron","Intergenic"),
                          addFlankGeneInfo = TRUE,
                          flankDistance = 5000)

pdf(file = "KO1.Anno.Pie.pdf",width = 6,height = 5)
plotAnnoPie(peak_anno)
dev.off()

png(filename="KO1.Anno.Pie.png" ,width=1000, height=850, res=200)
plotAnnoPie(peak_anno)
dev.off()

注釋結果如下:

image

如果不喜歡這種注釋,當然還可以直接用bedtools進行注釋~

下一期分享另類可視化方法,如何與文獻中的圖片一樣好看!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,578評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,701評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,691評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,974評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,694評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,026評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,015評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,193評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,719評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,442評論 3 360
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,668評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,151評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,846評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,255評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,592評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,394評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,635評論 2 380

推薦閱讀更多精彩內容