跟著Nature Genetics學(xué)畫圖:R語言ggplot2畫圖展示SNP位點(diǎn)的堿基類型

論文是 Pan-genome analysis highlights the extent of genomic variation in cultivated and wild rice

image.png

今天重復(fù)的圖是來自于論文中的figure3 b

image.png

之前的推文已經(jīng)介紹過 上半部分的基因結(jié)果的畫法羞延,

今天的推文介紹下半部分SNP位點(diǎn)的堿基類型的實(shí)現(xiàn)辦法,背景顏色這里借助的是ggplot2包中的geom_tile()函數(shù)导饲;表示堿基的文本借助的是geom_text()函數(shù)

這里最開始的思路是借助aplot這個(gè)包的拼圖功能實(shí)現(xiàn)的,但是上下兩個(gè)部分拼接的時(shí)候遇到了報(bào)錯(cuò)广匙,使用patchwork拼接的時(shí)候也遇到了報(bào)錯(cuò),報(bào)錯(cuò)的內(nèi)容忘記保存了,暫時(shí)不知道如何解決,使用ggbio這個(gè)包做的圖可以繼續(xù)使用ggplot2的函數(shù)疊加幻捏,但是如果使用ggplot2的拼圖方式卻不行。使用ggbio這個(gè)包做的圖也不能使用ggsave()函數(shù)保存

上半部分具體的數(shù)據(jù)格式可以參考之前的推文
下半部分的數(shù)據(jù)格式
image.png

這個(gè)原圖中有7個(gè)品種命咐,我這邊就不全部準(zhǔn)備了篡九,我這邊只準(zhǔn)備3個(gè)

  • 第一列是品種的名字
  • 第二列是snp的位置
  • 第三列是snp在圖上的y軸位置,從-1開始醋奠,每多一個(gè)品種就減一
  • 第四列是堿基類型
  • 第五列是堿基的分類 A代表 變異的堿基榛臼,R是參考序列的堿基
第一步是加載需要用到的R包
library(ggh4x)
library(ggplot2)
library(ggbio)
library(GenomicRanges)
第二步是準(zhǔn)備作圖數(shù)據(jù)
waxy<-GRanges("chr06",IRanges(df$V4,end=df$V5,group=df$V3))
waxy_snp<-read.csv("NG/waxy_snp.csv")
head(waxy_snp)
cultivar<-data.frame(x=1765000,
                     y=unique(waxy_snp$y_location),
                     label=unique(waxy_snp$cultivars))
snp<-data.frame(xmin=unique(waxy_snp$x_location),
                xmax=unique(waxy_snp$x_location),
                ymin=0.6,
                ymax=1.4)
snp_segment<-data.frame(xmin=unique(waxy_snp$x_location),
                        xmax=unique(waxy_snp$x_location),
                        ymin=-0.5,
                        ymax=0.6)
atg<-data.frame(x=1766921,y=1.5,label="ATG")

這個(gè)數(shù)據(jù)的內(nèi)容用文字表達(dá)可能得寫好多內(nèi)容,后面爭取出視頻內(nèi)容進(jìn)行介紹

最后是畫圖代碼
pdf(file = "NG/waxy-2.pdf",width = 12,height = 4)
autoplot(waxy,aes(fill=group),geom="alignment")+
  theme_bw()+
  scale_x_continuous(limits = c(1764000,1771000),
                     breaks = c(seq(1764000,1771000,by=1000)),
                     position = "top")+
  theme(panel.border = element_blank(),
        panel.grid = element_blank(),
        axis.line.x = element_line(),
        axis.ticks.length = unit(0.2,'cm'))+
  guides(x=guide_axis_truncated(trunc_lower = 1764000,
                                trunc_upper = 1771000))+
  scale_fill_manual(values = c("#92d050","#a6a6a6","#a6a6a6"))+
  #theme(aspect.ratio = 0.1)+
  #scale_y_continuous(limits = c(0,3))+
  theme(axis.text.y = element_blank(),
        axis.ticks.y = element_blank())+
  annotate(geom = "text",x=1764500,y=1,
           label="Nipponbare\n(waxy:Os06g0133000)")+
  coord_cartesian(clip="off")+
  ggnewscale::new_scale_fill()+
  geom_tile(data=waxy_snp,aes(x=x_location,
                              y=y_location,
                              fill=type),
            width=100)+
  scale_fill_manual(values = c("#ffccff","#99ccff"),
                    labels=c("Alternative type",
                             "Reference type"))+
  geom_text(data = waxy_snp,aes(x=x_location,
                                y=y_location,
                                label=label))+
  geom_text(data=cultivar,aes(x=x,y=y,label=label))+
  geom_segment(data=snp,aes(x=xmin,xend=xmax,y=ymin,yend=ymax),
               color="red")+
  geom_segment(data=snp_segment,aes(x=xmin,
                                    xend=xmax,
                                    y=ymin,
                                    yend=ymax),
               lty="dashed",color="grey")+
  geom_label(data=atg,aes(x=x,y=y,label=label),
             fill="blue",
             color="white",
             label.r = unit(0,'mm'),
             nudge_y = 0.3)
dev.off()

這個(gè)是最終的結(jié)果

image.png

好了窜司,今天的內(nèi)容就先到這里了

歡迎大家關(guān)注我的公眾號(hào)

小明的數(shù)據(jù)分析筆記本

小明的數(shù)據(jù)分析筆記本 公眾號(hào) 主要分享:1沛善、R語言和python做數(shù)據(jù)分析和數(shù)據(jù)可視化的簡單小例子;2塞祈、園藝植物相關(guān)轉(zhuǎn)錄組學(xué)金刁、基因組學(xué)、群體遺傳學(xué)文獻(xiàn)閱讀筆記织咧;3胀葱、生物信息學(xué)入門學(xué)習(xí)資料及自己的學(xué)習(xí)筆記漠秋!

示例數(shù)據(jù)和代碼獲取步驟

公眾號(hào)的推文寫了獲取示例數(shù)據(jù)和代碼的步驟笙蒙,可以到公眾號(hào)查看對(duì)應(yīng)推文

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市庆锦,隨后出現(xiàn)的幾起案子捅位,更是在濱河造成了極大的恐慌,老刑警劉巖搂抒,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件艇搀,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡求晶,警方通過查閱死者的電腦和手機(jī)焰雕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來芳杏,“玉大人矩屁,你說我怎么就攤上這事辟宗。” “怎么了吝秕?”我有些...
    開封第一講書人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵泊脐,是天一觀的道長。 經(jīng)常有香客問我烁峭,道長容客,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任约郁,我火速辦了婚禮缩挑,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘鬓梅。我一直安慰自己调煎,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開白布己肮。 她就那樣靜靜地躺著士袄,像睡著了一般。 火紅的嫁衣襯著肌膚如雪谎僻。 梳的紋絲不亂的頭發(fā)上娄柳,一...
    開封第一講書人閱讀 49,111評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音艘绍,去河邊找鬼赤拒。 笑死,一個(gè)胖子當(dāng)著我的面吹牛诱鞠,可吹牛的內(nèi)容都是我干的挎挖。 我是一名探鬼主播,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼航夺,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼蕉朵!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起阳掐,我...
    開封第一講書人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤始衅,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后缭保,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體汛闸,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年艺骂,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了诸老。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡钳恕,死狀恐怖别伏,靈堂內(nèi)的尸體忽然破棺而出吮廉,到底是詐尸還是另有隱情,我是刑警寧澤畸肆,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布宦芦,位于F島的核電站,受9級(jí)特大地震影響轴脐,放射性物質(zhì)發(fā)生泄漏调卑。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一大咱、第九天 我趴在偏房一處隱蔽的房頂上張望恬涧。 院中可真熱鬧,春花似錦碴巾、人聲如沸溯捆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽提揍。三九已至,卻和暖如春煮仇,著一層夾襖步出監(jiān)牢的瞬間劳跃,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來泰國打工浙垫, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留刨仑,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓夹姥,卻偏偏與公主長得像杉武,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子辙售,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容