手把手教你绘制基因组图

本节我们来介绍如何绘制基因在染色体上的位置信息,使用biomaRt包可自动检索基因的位置信息

加载R包

library(biomaRt)library(regioneR)library(circlize)library(tidyverse)

检索基因的位置信息

gene.symbols-c("AKT","APC","BCR","BIRC3","BRAF","BRCA1","BRCA2","CDKN2C","FEV","TP53","PTEN","RB1")ensembl-useEnsembl(biomart="ensembl",dataset="hsapiens_gene_ensembl")genes-toGRanges(getBM(attributes=c(chromosome_name,start_position,end_position,hgnc_symbol),filters=hgnc_symbol,values=gene.symbols,mart=ensembl))seqlevelsStyle(genes)-"UCSC"

seqnamesstartendwidthstrandhgnc_symbol1chr2*APC2chr*BCR3chr4*BIRC34chr3*BRAF5chr*BRCA16chr*BRCA27chr*CDKN2C8chr*FEV10chr*PTEN11chr*RBchr*TP53

kpPlotMarkers在基因组上绘制它们

library(karyoploteR)kp-plotKaryotype(genome="hg38")kpPlotMarkers(kp,data=genes,labels=genes$hgnc_symbol)

调整标签位置信息,使之不重叠

kp-plotKaryotype(genome="hg38")kpPlotMarkers(kp,data=genes,labels=genes$hgnc_symbol,text.orientation="horizontal",r1=0.5,cex=0.8,adjust.label.position=FALSE)

可以看到上面的图还是很占用空间的,下面我们用circlize来绘制圆形基因组图

circos.clear()circos.par(canvas.xlim=c(-1,1.2),canvas.ylim=c(-1,1),start.degree=0)circos.initializeWithIdeogram(plotType=NULL)genes-genes%%as.data.frame()%%filter(seqnames!="CHR_HG_PATCH")circos.genomicLabels(genes,labels.column=6,side="outside",connection_height=0.1,labels.side=side,col=as.numeric(factor(genes[[6]]))%%as.data.frame()%%filter(.%in%c(2,3,4,5,6,7))%%pull())set_track_gap(mm_h(0.3))circos.trackPlotRegion(ylim=c(0,0.1),track.height=0.05,bg.border="white",panel.fun=function(x,y){chr=CELL_META$sector.indexxlim=CELL_META$xlimylim=CELL_META$ylimcircos.text(mean(xlim),mean(ylim),chr,cex=0.5,col="black",facing="outside",niceFacing=TRUE)})circos.genomicIdeogram(track.height=mm_h(3))

目前


转载请注明:http://www.bjgongshangzhuce.com/jyzl/9253.html


当前时间: