大家對DNA應該都有一定的了解,那麼DNA同樣不僅僅是具有一級結構的鹼基序列,而且還具有二級結構(雙螺旋),三級結構(超螺旋)的特徵。今天給大家介紹一個來預測DNA結構的R包DNAshapeR,其從基因組測序數據中以超高速、高通量的方式預測DNA形狀特徵。該軟體包以核苷酸序列或基因組間隔作為輸入,並生成各種圖形表示,以供進一步分析。DNA預測使用滑動五聚體窗口,其中512個不同五聚體中的每一個都有獨特的結構特徵,從而在每個核苷酸位置(周向)定義了小溝寬(MGW),滾動,螺旋槳扭曲(ProT)和螺旋扭曲(HelT)的向量(周 等人,2013)。MGW和ProT定義鹼基對參數,而Roll和HelT代表鹼基對步長參數。首先我們看下需要安裝的包:
BiocManager::install("DNAshapeR")BiocManager::install("BSgenome.Scerevisiae.UCSC.sacCer3")BiocManager::install("BSgenome.Hsapiens.UCSC.hg19")BiocManager::install("AnnotationHub")BiocManager::install("Biostrings")接下來我們直接通過實例來看下包的操作:
1. 序列的結構預測
library(DNAshapeR)fn <- system.file("extdata","CGRsample.fa", package = "DNAshapeR")pred <- getShape(fn)
2. 對於參考基因組上的間隔進行預測
library(BSgenome.Scerevisiae.UCSC.sacCer3) # Create a query GRanges objectgr <- GRanges(seqnames =c("chrI"), strand = c("+", "-", "+"), ranges = IRanges(start = c(100, 200, 300), width = 100))getFasta(gr, Scerevisiae, width = 100,filename = "tmp.fa")fn <- "tmp.fa"pred <- getShape(fn)heatShape(pred$ProT, 20)#其中20指的是色塊的合併需要的大小即熱圖的單元格數量
3. 利用公共的平臺去檢索對應的基因序列做結構預測,當然,我們參考的這個平臺的包需要連接外網。
library(BSgenome.Hsapiens.UCSC.hg19)library(AnnotationHub) ah <- AnnotationHub()
ah <- subset(ah, species=="Homosapiens")ah <- query(ah, c("H3K4me3","Gm12878", "Roadmap"))getFasta(ah[[1]], Hsapiens, width = 150,filename = "tmp.fa")
fn <- "tmp.fa"pred <- getShape(fn)
4. 預測CpG甲基化背景下的DNA形態特徵,可以製備一個FASTA序列文件,其中符號Mg: M表示前導鏈上甲基化CpG的胞嘧啶,符號g表示後隨鏈上甲基化CpG的胞嘧啶。例如,
library(DNAshapeR)fn_methy <- system.file("extdata","MethylSample.fa", package = "DNAshapeR")pred_methy <- getShape(fn_methy,methylate = TRUE)
5. 基因組瀏覽器的類似功能,展示DNA形狀的預測結構
fn2 <- system.file("extdata","SingleSeqsample.fa", package = "DNAshapeR")pred2 <- getShape(fn2)trackShape(fn2, pred2)
6. DNA序列的編碼
library(Biostrings)fn3 <- system.file("extdata","PBMsample_short.fa", package = "DNAshapeR")pred3 <- getShape(fn3)featureType <- c("1-mer","1-shape")featureVector <- encodeSeqShape(fn3,pred3, featureType)head(featureVector)得到DNA序列的編碼,後面具體如何應用那就很廣了,在此不再贅述。
歡迎大家學習交流!