今天来介绍如何在基因结构图上添加密度信息,在此我们使用TxDb.Hsapiens.UCSC.hg19.knownGene中的数据,通过karyoploteR包即可出图
1.安装R包if(!requireNamespace("BiocManager",quietly=TRUE))install.packages("BiocManager")BiocManager::install("karyoploteR")BiocManager::install("TxDb.Hsapiens.UCSC.hg19.knownGene")2.加载R包
library(TxDb.Hsapiens.UCSC.hg19.knownGene)library(karyoploteR)
获取基因组数据通过TxDb.Hsapiens.UCSC.hg19.knownGene
txdb-TxDb.Hsapiens.UCSC.hg19.knownGeneall.genes-genes(txdb)head(all.genes)
GRangesobjectwith6rangesand1metadatacolumn:seqnamesrangesstrand
gene_idRleIRangesRle
character1chr--
chr-+
chr--
chr--
chr--
86chrX-+
-------seqinfo:93sequences(1circular)fromhg19genome
通过TxDb.Hsapiens.UCSC.hg19.knownGene我们获取了基因的数据信息,一切准备就绪开始作图
使用kpPlotDensity函数绘制基因组上的基因密度,先从第1条染色体开始,然后我们再绘制整个基因组
kp-plotKaryotype(plot.type=1,chromosomes="chr1")kp-kpPlotDensity(kp,all.genes)
调整窗口大小,设置字体
kp-plotKaryotype(plot.type=1,chromosomes="chr1",cex=1.6)kpPlotDensity(kp,all.genes,window.size=0.5e6,data.panel="ideogram")
将基因密度信息放到图内部
kp-plotKaryotype(plot.type=6,chromosomes="chr1",cex=1.6)kpPlotDensity(kp,all.genes,window.size=0.5e6,data.panel="ideogram",col="#FF",border="#FF")
复制图像并使用r1r0进行反转绘图
kp-plotKaryotype(plot.type=6,chromosomes="chr1",cex=1.6)kpPlotDensity(kp,all.genes,window.size=0.5e6,data.panel="ideogram",col="#FF",border="#FF",r0=0.5,r1=1)kpPlotDensity(kp,all.genes,window.size=0.5e6,data.panel="ideogram",col="#FF",border="#FF",r0=0.5,r1=0)
添加主题并绘制完整的基因密度图
kp-plotKaryotype(plot.type=6,main="GeneDensity",cex=1.2)kpDataBackground(kp,color="#FFFFFFAA")kp-kpPlotDensity(kp,all.genes,window.size=0.5e6,data.panel="ideogram",col="#FF",border="#FF",r0=0.5,r1=1)kp-kpPlotDensity(kp,all.genes,window.size=0.5e6,data.panel="ideogram",col="#FF",border="#FF",r0=0.5,r1=0)
关于更多基因组图的绘制,可查看karyoploteR包的帮助文档,后续将继续介绍更多相关内容
参考: