Я создаю фигуру plot_gene_map
с помощью пакета genoPlotR
R
, которая дает горизонтальное филогенетическое дерево, в котором выровнен по каждому листу геномный сегмент.
Вот простой пример, который иллюстрирует мое использование и проблему:
Функция plot_gene_map
требует ade4
s 'пакета phylog
объекта, который представляет филогенетическое дерево:
tree <- ade4::newick2phylog("(((A:0.08,B:0.075):0.028,(C:0.06,D:0.06):0.05):0.0055,E:0.1);")
Список genoPlotR
dna_seg
объектов (которые, по сути, data.frame
с конкретными столбцами), где имена элементов списка должны совпадать с именами листьев tree
:
dna.segs.list <- list(A=genoPlotR::as.dna_seg(data.frame(name=paste0("VERY.LONG.NAME.A.",1:10),start=seq(1,91,10),end=seq(5,95,10),strand=1,col="black",ly=1,lwd=1,pch=1,cex=1,gene_type="blocks",fill="red")),
B=genoPlotR::as.dna_seg(data.frame(name=paste0("VERY.LONG.NAME.B.",1:10),start=seq(1,91,10),end=seq(5,95,10),strand=1,col="black",ly=1,lwd=1,pch=1,cex=1,gene_type="blocks",fill="blue")),
C=genoPlotR::as.dna_seg(data.frame(name=paste0("VERY.LONG.NAME.C.",1:10),start=seq(1,91,10),end=seq(5,95,10),strand=1,col="black",ly=1,lwd=1,pch=1,cex=1,gene_type="blocks",fill="green")),
D=genoPlotR::as.dna_seg(data.frame(name=paste0("VERY.LONG.NAME.D.",1:10),start=seq(1,91,10),end=seq(5,95,10),strand=1,col="black",ly=1,lwd=1,pch=1,cex=1,gene_type="blocks",fill="yellow")),
E=genoPlotR::as.dna_seg(data.frame(name=paste0("VERY.LONG.NAME.E.",1:10),start=seq(1,91,10),end=seq(5,95,10),strand=1,col="black",ly=1,lwd=1,pch=1,cex=1,gene_type="blocks",fill="orange")))
И список genoPlotR
annotation
объектов, которые дают информацию о координатах, также названных в соответствии с tree
листьями:
annotation.list <- lapply(1:5,function(s){
mids <- genoPlotR::middle(dna.segs.list[[s]])
return(genoPlotR::annotation(x1=mids,x2=NA,text=dna.segs.list[[s]]$name,rot=30,col="black"))
})
names(annotation.list) <- names(dna.segs.list)
И вызов функции:
genoPlotR::plot_gene_map(dna_segs=dna.segs.list,tree=tree,tree_width=2,annotations=annotation.list,annotation_height=1.3,annotation_cex=0.9,scale=F,dna_seg_scale=F)
Что дает:
Как видите, имена в верхнем и правом ящиках (генах) обрезаются.
Я пытался играть с pdf
width
и height
, при сохранении рисунка в файл и с полями через par
* mar
, но они не действуют.
- Есть идеи, как отобразить этот график, не обрезая имена?
В настоящее время genoPlotR
plot_gene_map
не имеет реализованной опции legend
. Любая идея, как я могу добавить легенду, скажем, которая показывает эти цвета в квадратах помимо этих меток:
data.frame (label = c («A», «B», «C», «D», «E»), color = c («красный», «синий», «зеленый», «желтый» », "апельсин"))