一文學會DNA甲基化-450K分析

2021-02-21 生信菜鳥團

微信公眾號:生信菜鳥團
關注可了解更多的教程。問題或建議,請公眾號留言;
如果你覺得本教程對你有幫助,歡迎讚賞

按照生信技能樹論壇教程所提供的教程450K甲基化晶片數據處理傳送門,為例進行數據下載

晶片的處理流程一般就是:數據讀入——數據過濾——數據校正——下遊分析。
讀文章拿到測序數據

本次講解用到的數據來自文章The relationship between DNA methylation, genetic and expression inter-individual variation in untransformed human fibroblast

從文章裡面找到數據存放地址如下:https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE52025

直接下載即可:

image.png

我下載的數據如下:

接著我們需要跟樣本分組,這裡我是按照GM和WG分組比較:

讀入數據

library(limma)
library(minfi)
library(IlluminaHumanMethylation450kanno.ilmn12.hg19)
library(IlluminaHumanMethylation450kmanifest)
library(RColorBrewer)
library(missMethyl)
library(matrixStats)
library(minfiData)
rgSet <- read.metharray.exp("GSE52025/idat")
head(sampleNames(rgSet))


接著我們需要根據重新給樣本命名,為後面樣本分組準備

sampleNames(rgSet) <- substr(sampleNames(rgSet),"1", "10" )

建立樣本分組信息,分組信息我是基於下圖對應關係,構建了pD對象如下:

pD對象我是自己都進去整理的,部分代碼如下:

pD <- pD[sampleNames(rgSet),]
 
sampleNames(rgSet) <- rownames(pD)

pD$group=substr(rownames(pD),"1", "2" )

計算檢測p值

detP <- detectionP(rgSet)
pal <- brewer.pal(8,"Dark2")
par(mfrow=c(1,2))
barplot(colMeans(detP), col=pal[factor(pD$group)], las=2, 
        cex.names=0.8, ylab="Mean detection p-values")
abline(h=0.05,col="red")
legend("topleft", legend=levels(factor(pD$group)), fill=pal,
       bg="white")

barplot(colMeans(detP), col=pal[factor(pD$group)], las=2, 
        cex.names=0.8, ylim=c(0,0.002), ylab="Mean detection p-values")
abline(h=0.05,col="red")
legend("topleft", legend=levels(factor(pD$group)), fill=pal, 
       bg="white")
       


去除低質量樣本

keep <- colMeans(detP) < 0.01
rgSet <- rgSet[,keep]
rgSet

從檢測p值中去除低質量樣本

detP <- detP[,keep]
dim(detP)

數據歸一化 ,歸一化方法很多,這裡使用preprocessQuantile

mSetSq <- preprocessQuantile(rgSet) 

歸一化前後數據可視化

par(mfrow=c(1,2))
densityPlot(rgSet, sampGroups=pD$group,main="Raw", legend=FALSE)
legend("top", legend = levels(factor(pD$group)), 
       text.col=brewer.pal(8,"Dark2"))
densityPlot(getBeta(mSetSq), sampGroups=pD$group,
            main="Normalized", legend=FALSE)
legend("top", legend = levels(factor(pD$group)), 
       text.col=brewer.pal(8,"Dark2"))

歸一化之後數據確實好了點確保探針在mSetSq和detP對象中的順序相同

detP <- detP[match(featureNames(mSetSq),rownames(detP)),] 

移除在一個或多個樣本中失敗的探針

keep <- rowSums(detP < 0.01) == ncol(mSetSq) 
table(keep)

mSetSqFlt <- mSetSq[keep,]
mSetSqFlt
ann450k = getAnnotation(IlluminaHumanMethylation450kanno.ilmn12.hg19)
head(ann450k)

如果你的數據包括男性和女性,刪除性染色體上的探針

keep <- !(featureNames(mSetSqFlt) %in% ann450k$Name[ann450k$chr %in% c("chrX","chrY")])
table(keep)
mSetSqFlt <- mSetSqFlt[keep,]

去除在CpG位點與snp相關的探針

mSetSqFlt <- dropLociWithSnps(mSetSqFlt)
mSetSqFlt

過濾掉那些已經被證明是cross-reactive的探針,也就是multi-hit探針,即映射到多個位置的所以只要出現在這list上面的探針都可以去除了。

網址:http://www.sickkids.ca/MS-Office-Files/Research/Weksberg%20Lab/48639-non-specific-probes-Illumina450k.xlsx

下載下來讀進去即可

xReactiveProbes <- read.csv("C:/Users/Administrator/Downloads/48639-non-specific-probes-Illumina450k.csv",sep=",", stringsAsFactors=FALSE)
keep <- !(featureNames(mSetSqFlt) %in% xReactiveProbes$TargetID)
table(keep)
mSetSqFlt <- mSetSqFlt[keep,] 
mSetSqFlt

一旦數據被過濾和標準化,重新檢查MDS圖以查看樣本之間的關係是否發生了變化通常是有用的

par(mfrow=c(1,2))
plotMDS(getM(mSetSqFlt), top=1000, gene.selection="common", 
        col=pal[factor(pD$group)], cex=0.8)
legend("right", legend=levels(factor(pD$group)), text.col=pal,
       cex=0.65, bg="white")

plotMDS(getM(mSetSqFlt), top=1000, gene.selection="common", 
        col=pal[factor(pD$group)])
legend("right", legend=levels(factor(pD$group)), text.col=pal,
       cex=0.7, bg="white")

一旦數據被過濾和標準化,重新檢查MDS圖以查看樣本之間的關係是否發生了變化通常是有用的

par(mfrow=c(1,3))
# Examine higher dimensions to look at other sources of variation
plotMDS(getM(mSetSqFlt), top=1000, gene.selection="common", 
        col=pal[factor(pD$group)], dim=c(1,3))
legend("right", legend=levels(factor(pD$group)), text.col=pal,
       cex=0.7, bg="white")

plotMDS(getM(mSetSqFlt), top=1000, gene.selection="common", 
        col=pal[factor(pD$group)], dim=c(2,3))
legend("topright", legend=levels(factor(pD$group)), text.col=pal,
       cex=0.7, bg="white")

plotMDS(getM(mSetSqFlt), top=1000, gene.selection="common", 
        col=pal[factor(pD$group)], dim=c(3,4))
legend("right", legend=levels(factor(pD$group)), text.col=pal,
       cex=0.7, bg="white")

下一步是計算m值和beta值。m值具有更好的統計特性,因此更適合用於甲基化數據的統計分析,而beta值易於解釋,因此更適合於顯示數據

計算M值和beta

mVals <- getM(mSetSqFlt)
head(mVals[,1:5])

bVals <- getBeta(mSetSqFlt)
head(bVals[,1:5])

繪製密度曲線

par(mfrow=c(1,2))
densityPlot(bVals, sampGroups=pD$group, main="Beta values", 
            legend=FALSE, xlab="Beta values")
legend("top", legend = levels(factor(pD$group)), 
       text.col=brewer.pal(8,"Dark2"))
densityPlot(mVals, sampGroups=pD$group, main="M-values", 
            legend=FALSE, xlab="M values")
legend("topleft", legend = levels(factor(pD$group)), 
       text.col=brewer.pal(8,"Dark2"))

樣本分組

group <- factor(pD$group)

# use the above to create a design matrix
design <- model.matrix(~0+group, data=pD)
colnames(design) <- c(levels(group))

擬合線性模型

fit <- lmFit(bVals, design)

contMatrix <- makeContrasts(GM-WG,
                            levels=design)
contMatrix

fit2 <- contrasts.fit(fit, contMatrix)
fit2 <- eBayes(fit2)

cpG注釋

ann450kSub <- ann450k[match(rownames(mVals),ann450k$Name), c(1:4,12:19,24:ncol(ann450k))]
DMPs <- topTable(fit2, num=Inf, coef=1, genelist=ann450kSub)
head(DMPs)

繪製cpg表達

par(mfrow=c(2,2))
purrr::map(rownames(DMPs)[1:4], function(cpg){
  plotCpg(bVals, cpg=cpg, pheno=pD$group, ylab = "Beta values")
})


獲得顯著的cpg位點

sigCpGs <- DMPs$Name[DMPs$adj.P.Val<0.05]

sigCpGs[1:10]


all <- DMPs$Name

length(all)

GO和kegg

par(mfrow=c(1,1))
gst <- gometh(sig.cpg=sigCpGs, all.cpg=all, plot.bias=TRUE)


#Top 10 GO categories
topGO(gst, number=10)

kegg <- gometh(sig.cpg = sigCpGs, all.cpg = all, collection = "KEGG", prior.prob=TRUE)

topKEGG(kegg)

http://master.bioconductor.org/packages/release/workflows/vignettes/methylationArrayAnalysis/inst/doc/methylationArrayAnalysis.html

相關焦點

  • 鑑定癌症新方法DNA甲基化450K數據(下)
    DNA甲基化是一種經過充分研究的遺傳修飾,可調節真核生物的基因轉錄。其替代已被認為是癌症發展的重要組成部分。在這項研究中,使用《癌症基因組圖譜》中的DNA甲基化450k數據來評估DNA甲基化數據對30種癌症類型的癌症分類的有效性。採用一種新的高維數據選擇方法(超過45萬個)。首先引入方差過濾以減少尺寸,然後使用遞歸特徵消除(RFE)進行特徵選擇。
  • DNA甲基化——甲基化DNA PCR & NGS 分析試劑盒
    大量研究表明,DNA甲基化能引起染色質結構、DNA構象、DNA穩定性及DNA與蛋白質相互作用方式的改變,從而控制基因表達。一、DNA甲基化修飾相關產品DNA甲基化修飾研究手段——DNA亞硫酸鹽轉化,使用亞硫酸氫鈉將胞嘧啶轉化為尿嘧啶,而5-甲基胞嘧啶(5-mC)保持完整。
  • 基因研究新突破:科學家揭開DNA甲基化之謎
    甲基化是由一種叫做甲基轉移酶的酶來完成的,這種酶以特定的模式用甲基修飾DNA,在DNA上形成表觀遺傳層。 到目前為止,科學家們還沒有努力分辨出哪種酶負責哪種模式。有了這些知識,你就可以用人工甲基化體構建生物模型,模仿你想要引入DNA的菌株的甲基化模式。這樣你可以確保「生存」介紹了DNA,」專家說,本文的第一作者Torbj rn lsh j從導航系統Biosustain詹森。 當科學家們試圖將外來DNA引入宿主生物,例如細菌或酵母時,常常會遇到甲基化的問題。
  • DNA甲基化 |「雙面間諜」或將為癌症治療帶來新思路!
    毫無疑問,胞嘧啶甲基化的缺陷與發育異常、遺傳疾病以及癌症有關。最新的一項研究中,La Jolla免疫研究所的研究人員揭示了DNA的甲基化和去甲基化之間的平衡是如何阻止基因組不穩定性,進而阻止癌症發展的。
  • 甲基化晶片數據的一些質控指標
    前面我們介紹了一些背景知識,主要是理解什麼是DNA甲基化,為什麼要檢測它,以及晶片和測序兩個方向的DNA甲基化檢測技術。具體介紹在:甲基化的一些基礎知識,也了解了甲基化晶片的一般分析流程 。然後下載了自己感興趣的項目的每個樣本的idat原始文件,也可以簡單通過minfi包或者champ處理它們拿到一個對象。
  • 6mA甲基化-DNA甲基化研究新熱點
    近年來一系列論文測序研究表明了真核生物(包括人、鼠胚胎、果蠅、水稻等)DNA同樣存在著6mA修飾[3][4][5],由此開啟了研究6mA對動物疾病與發育、植物生長等一系列生物學過程影響的新熱潮。由於當前學界對6mA修飾的認知較欠缺,因此有關6mA研究的文章受關注程度很高,高質量期刊對6mA文章的接受度也要高一些。
  • 美國科學家發現引發癌症的關鍵——DNA甲基化不平衡的特定位點
    近日,美國的研究人員通過DNA修飾測序,發現了引發癌症和其他疾病的關鍵:DNA甲基化不平衡的特定位點。在全基因組掃描中,我們往往很難定位與癌症關係最密切的基因變異。近日,美國科學家研究發現,通過放大多個正常組織和癌症組織中與DNA甲基化失衡相關的關鍵基因位點,能夠在更廣泛的統計信號下發現引發癌症的新線索。
  • DNA 甲基化(BS-seq)分析軟體之 HOME
    *BMC Bioinformatics 10.1186/s12859-019-2845-y[7], pdf[8]不難看出此一作主要是從事分析 DNA 甲基化這一塊工作的,常年與其他人合作(感覺有點慘,分析的大都就是這樣與人合作基本拿不到排名第一的一作)。
  • DNA甲基化研究方法(測序法)
    當腫瘤發生時,抑癌基因CpG島以外的CpG序列非甲基化程度增加,而CpG島中的CpG則呈高度甲基化狀態,以致於染色體螺旋程度增加及抑癌基因表達的丟失。  隨著高通量測序技術(NGS)技術的發展,使我們能夠從全基因組水平來分析5』甲基胞嘧啶及組蛋白修飾等事件,由此能夠發現很多傳統的基因組學研究所不能發現的東西,這就是所謂的「DNA甲基化測序」!
  • 動脈硬化或與DNA片段甲基化有關
    日本三重大學等機構的研究人員日前發現,DNA片段的甲基化和去甲基化與動脈硬化密切相關。這一成果有助於開發以基因為目標的動脈硬化治療藥物。甲基作為一個化學基團,能結合在DNA鏈上的某些特定部位,這個過程叫甲基化。相反,甲基從DNA鏈上脫落的過程就叫做去甲基化。
  • DNA甲基化是怎麼形成的?
    基因甲基化 DNA 甲基化是最早發現的基因表觀修飾方式之一,可能存在於所有高等生物中。DNA 甲基化能關閉某些基因的活性,去甲基化則誘導了基因的重新活化和表達。
  • DNA甲基化
    好多讀者說找不到我們公眾號了大家星標一下,下回就能正常看到推送了喲~DNA甲基化在DNA共價修飾中,最主要的就是DNA甲基化。在DNA鹼基上增加甲基基團的化學修飾稱為DNA甲基化(DNA methylation)。DNA甲基化在除酵母以外的所有真核生物中普遍存在,多發生於胞嘧啶的第5位碳原子上,形成5′-甲基胞嘧啶(5mC)。在哺乳動物中,5mC大多發生於CpG二核苷酸中,而CpG常常在基因5′-端的調控區成簇串聯排列,構成CpG島,大小為300〜3 000 bp。
  • DNA甲基化檢測技術詳解
    隨著科學技術的發展,DNA甲基化檢測技術也在不斷的發展。目前市面上主要有三種檢測技術,分別是基於限制性酶切預處理的甲基化檢測技術,基於亞硫酸鹽修飾預處理的甲基化檢測技術,基於親和富集預處理的甲基化檢測技術,三者有什麼區別呢,下面敬善基因來為您詳細介紹!
  • Cell Rep:分析DNA甲基化幫助理解淋巴瘤病理發生
    2016年10月12日訊 /生物谷BIOON/ --癌細胞與健康細胞在DNA甲基化方面存在不同。這些不同可以用於解釋基因的腫瘤特異性表達偏差,還可以用於發現生物標記物幫助檢測腫瘤,預測腫瘤病人的預後,為腫瘤病人制定治療計劃。表觀遺傳學讓這一切都成為可能。
  • DNA及RNA甲基化數據分析、課題設計與基金寫作學習班學習班 2020年...
    了解DNA甲基化在疾病等各研究領域中的應用。  了解DNA甲基化與轉錄組等多組學整合分析思路。  通過高分文章對DNA甲基化研究思路進行解讀。  掌握DNA甲基化研究的多種技術方法。  6. 了解常用DNA甲基化及疾病挖掘資料庫。
  • 單細胞中3D基因組結構和DNA甲基化的同步分析
    單細胞中3D基因組結構和DNA甲基化的同步分析 作者:小柯機器人 發布時間:2019/9/10 15:16:34 美國索爾克生物研究所的Joseph R. Ecker和Jesse R.
  • DNA甲基化生物標誌物或可準確評估前列腺癌患者風險_DNA甲基化生物...
    但目前仍缺乏可選擇性識別具有高復發風險、可於幹預中受益和可安全選擇主動檢測患者的生物標誌物。分子診斷雜誌中報導了生物標誌物PITX2 DNA甲基化,該物質可通過芯針活檢獲取的少量組織來區分癌組織和非癌組織,並預測癌症復發風險。先前研究顯示異常PITX2甲基化是乳腺癌和肺癌疾病進展的有效預後標誌物。
  • 組蛋白甲基化與DNA甲基化的關係
    DNA甲基化需要進行基因篩選,由基因篩選識別出的一個基因被發現為一個與來自小鼠、蒼蠅和分裂酵母的組蛋白H3甲基轉移酶相關的蛋白編碼。這一發現將兩種類型的染色質更改聯繫在了一起:DNA甲基化和組蛋白甲基化。儘管DNA甲基化被認為是很多外源更改的關鍵,如X-染色體失去活性、銘記作用和基因沉寂等,但這裡組蛋白甲基化似乎是DNA甲基化的一個先決條件。
  • 中藥調控DNA甲基化修飾的研究思路
    本文先通過高糖誘導小鼠腎繫膜mes13細胞構建了糖尿病腎病的小鼠體外細胞模型,隨機分成3組:LG(低糖)、HG(高糖)和TIIA組(藥物),分析了丹參酮IIA對糖尿病腎病的影響。隨後進行了DNA測序和甲基化測序,並進行了一系列的生物信息學分析(包括差異基因篩選、差異甲基化分析、DNA甲基化和下遊RNA表達之間的相關性和IPA分析),最後還進行了簡單的實驗驗證。
  • 文路研究員:肝癌異質性的單細胞三重組學及ccfDNA甲基化組分析
    DNA甲基化組分析》的報告。文路研究員建立了一種名為單細胞三重組學的測序技術(scTrio-Seq),實現單細胞層面對腫瘤細胞進行拷貝數變異、甲基化水平和轉錄組水平的三重組學分析。利用這一技術,文路研究團隊發現DNA拷貝數較多的區域中,基因表達量也隨之增高,反之亦然,從單細胞水平證實了基因表達的劑量效應。文路研究員還對一例肝細胞癌組織進行三重組學測序分析,將該組織在三個組學層面分為兩個不同的細胞亞群。