文末可下載示例數(shù)據(jù)和代碼王暗。
前幾天苍息,老師讓我畫一個(gè)這樣的圖冰肴。
粗略一看黔宛,似乎沒有什么特別困難的地方,好像之前也看到過類似的圖雳殊,但是看到老師發(fā)來的鏈接才發(fā)現(xiàn)這居然是Nature出版期刊(Horticulture Research)的配圖橘沥。volume)上的配圖!
該配圖一共由三個(gè)圖組成相种,不同染色體的SNP-index[2]對其位置作整圖威恼、單一染色體的SNP-index對其位置作細(xì)節(jié)圖以及對應(yīng)的基因結(jié)構(gòu)圖。
a寝并、b兩圖也差不多箫措,都是由散點(diǎn)圖和線圖構(gòu)成。
1 數(shù)據(jù)讀取
#?一個(gè)是SNP-index值衬潦,另一個(gè)是SNP-index滑窗值斤蔓。
snp_index?<-?read.delim("./snp_index.tsv",?header=FALSE)
sliding_window?<-?read.delim("./sliding_window.tsv",?header=FALSE)
#?在snp_index中需要用到數(shù)據(jù)有:V1(所在的染色體位置)、V2(在某條染色體上的特定位置)镀岛、V8(SNP-index值)弦牡;
#?在sliding_window中需要用到的數(shù)據(jù)有:V1(所在的染色體位置)、V2(在某條染色體上的特定位置)漂羊、V5(滑窗區(qū)域中的SNP-index均值)驾锰;
2 作整圖及美化
library(ggplot2)??#?加載繪圖包ggplot2
library(eoffice)??#?為了后續(xù)將繪制好的圖保存為ppt的可編輯格式
p1?<-?ggplot()+?
#?散點(diǎn)圖,設(shè)置點(diǎn)的顏色與大小
??geom_point(data?=?snp_index,aes(x?=?V2,?y?=?V8,color?=?factor(V1)),size?=?2)+???
??scale_color_manual(values?=?c("#FF6A6A",?"#00BFFF",?"#32CD32","#FF6A6A",?"#00BFFF"))+
#?線圖走越,設(shè)置線的粗細(xì)??
??geom_line(data?=?sliding_window,?aes(x?=?V2,?y?=?V5),?size?=?1)+?
#?設(shè)置縱坐標(biāo)軸的刻度范圍
???ylim(0,1)+??
#?將圖按照所在的染色體位置進(jìn)行分面椭豫;ncol設(shè)置列數(shù),將五條染色體的結(jié)果水平分布旨指;strip.position設(shè)置標(biāo)簽的位置赏酥;scales設(shè)置橫坐標(biāo)的比例尺自由變化,跟隨染色的大小變化谆构。
??facet_wrap(?~?V1,ncol?=?5,strip.position?=?"bottom",scales?=?"free_x")+?
#?添加值為0.95的垂直于y軸的輔助線裸扶,并設(shè)置顏色,指定線的類型搬素,改變線條的粗細(xì)
??geom_hline(yintercept=0.95,?colour="#CD2626",?linetype="dashed",?size?=?0.8)+
#?修改主題
??theme_classic()+
#?修改坐標(biāo)呵晨,axis.text.x指定x軸的數(shù)字不顯示;strip.background設(shè)置標(biāo)簽的背景為空白熬尺;strip.placement將坐標(biāo)軸的刻度向外顯示摸屠;axis.line.x設(shè)置x軸的類型、顏色以及粗細(xì)猪杭;axis.line.y設(shè)置y軸的類型餐塘、顏色以及粗細(xì);axis.title.x皂吮、axis.title.y設(shè)置x戒傻、y軸標(biāo)簽字體的大兴笆帧;legend.position設(shè)置圖列不顯示
??theme(axis.text.x?=?element_blank(),?strip.background?=?element_blank(),?strip.placement?=?"outside",axis.line.x=element_line(linetype=1,color="black",size=1),axis.line.y=element_line(linetype=1,color="black",size=1),axis.title.x?=?element_text(size?=?14),axis.title.y?=?element_text(size?=?14),?legend.position?=?'none')+
#?設(shè)置橫縱坐標(biāo)的名字?
??labs(x="Chromosome?ID",y="SNP_index")
#?將圖片保存為ppt
topptx(p1,?filename?=?"SNP_ALL.pptx",?
???????width?=?6,?height?=?4)
3 作細(xì)節(jié)圖及美化
細(xì)節(jié)圖即是突出顯示某一條染色體上的具體情況需纳,以2號染色體為例芦倒,與上圖的繪制方法基本一致,但是需要取消分面不翩。
library(tidyverse)
snp_index_2?<-?filter(snp_index,?V1?==?"2")
sliding_window_2?<-?filter(sliding_window,?V1?==?"2")
p2?<-?ggplot()+
??geom_point(data?=?snp_index_2,aes(x?=?V2/1000000,?y?=?V8),size?=?2,color?=?"#FF3030")+
???ylim(0,1)+
??geom_line(data?=?sliding_window_2,?aes(x?=?V2/1000000,?y?=?V5),?size?=?1.5)+
??geom_hline(yintercept=0.95,?colour="#CD2626",?linetype="dashed",?size?=?0.8)+
??geom_vline(xintercept=c(5.6,7.7),?colour="#8B8989",size?=?0.8)+
??theme_classic()+
??theme(axis.line.x=element_line(linetype=1,color="black",size=1),axis.line.y=element_line(linetype=1,color="black",size=1),axis.title.x?=?element_text(size?=?14),axis.title.y?=?element_text(size?=?14),?legend.position?=?'none')+
??labs(x="Position(Mb)",y="SNP_index",title?=?"Chr_2")
topptx(p2,?filename?=?"SNP_2.pptx",?
???????width?=?6,?height?=?4)
4 PPT處理
前面通過eoffice包將圖導(dǎo)入ppt中兵扬,再制作基因結(jié)構(gòu)圖,便大功告成口蝠!
向公眾號發(fā)送20220215即可獲得示例數(shù)據(jù)和代碼器钟。如有問題,請多多指教!參考資料
[1]原文鏈接: https://www.nature.com/articles/s41438-019-0223-6
[2]什么是“SNP-index”妙蔗?: https://www.sohu.com/a/396023729_769248
本文使用 文章同步助手 同步