跟著Nature學畫圖~使用R語言的ggtree給進化樹添加圖片注釋

2021-03-01 小明的數據分析筆記本

看到朋友圈有人轉發的推文 Nature|重大發現!人類的近親肺魚基因組被解析,點進去看到裡面有一張進化樹的圖

image.png

正好自己最近在學習R語言的ggtree,之前也在ggtree的幫助文檔看到過類似的圖片,所以決定重複一下這張圖

論文是

Giant lungfish genome elucidates the conquest of land by vertebrates

image.png首先是將右側的動物圖片截圖保存好

用拉丁名來命名,屬和種之間用下劃線分隔

image.png接下來是模擬一個進化樹文件
(((((((Anolis_carolinensis:0.4,Gallus_gallus:0.32)94:0.4,Homo_sapiens:0.3)95:0.4,(Ambystoma_mexicanum:0.4,Xenopus_laevis:0.41)93:0.6)90:0.41,Neoceratodus_forsteri:0.3)80:0.3,Latimeria_chalumnae:0.6)99:0.3,(Danio_rerio:0.3,Lepisosteus_oculatus:0.4)95:0.5)100:0.4,Callorhinchus_milii:0.3);

最基本的進化樹展示加載用到的包
library(stringr)
library(ggtree)
library(treeio)

讀入進化樹
tree1<-read.tree("Nature/Nature_tree_1.nwk")

展示
ggtree(tree1)+
  geom_tiplab()+
  xlim(NA,4.5)

image.png接下來簡單美化
ggtree(tree1,size=2)+
  geom_tiplab(aes(label=str_replace(label,"_"," ")),
              offset = 0.05,
              font="italic")+
  xlim(NA,4.5)

image.png最後就是添加圖片了
ggtree(tree1,size=2)+
  geom_tiplab(aes(label=str_replace(label,"_"," ")),
              offset = 0.05,
              font="italic")+
  xlim(NA,4.5)+
  geom_tiplab(aes(image=paste0("Nature/",label,".png")),
              geom = "image",size=0.2,offset = 1.25)

出圖以後再手動編輯一下圖片的位置就可以了最終的結果如下

image.png

哈哈哈,距離發Nature又近了一步,還差9999999999999999步。

如果需要示例文件可以給本篇推文點讚和點擊在看,然後在文末留言就好了。

最後是福利時間

前段時間有機械工業出版社的編輯找到我,藉助公眾號的平臺開展一個送書活動,書是 R語言數據可視化實戰,總共送出4本,我自己也收到了一本。我自己的這本也送出,所以總共是5本。送書規則如下

留言點讚數第一名直接獲得我的這一本,由我寄出 

留言點讚數第2-21名獲得抽獎資格,瓜分剩下的4本,到時候由出版社的編輯寄出。本周日在B站直播抽獎

書的封面如下

image.png

歡迎大家關注我的公眾號

小明的數據分析筆記本

相關焦點

  • 使用ggtree實現進化樹的可視化和注釋
    於是著手開發ggtree。ggtree是個簡單易用的R包,一行代碼ggtree(read.tree(file))即可實現樹的可視化。而注釋通過圖層來實現,多個圖層可以完成複雜的注釋,這得力於ggtree的設計。其中最重要的一點是如何來解析進化樹。除了ggtree之外,我所了解到的其它畫樹軟體在畫樹的時候都把樹當成是線條的集合。
  • 用R語言ggtree做圓形進化樹
    什麼是系統發育樹?系統發育樹,也叫作聚類樹或者進化樹是一種類似樹狀分支的圖形,用樹形結構表示各個節點的進化關係,枝點可以是物種、同一物種的樣本、基因等單元。根 (Root)有根樹:上面的圖就是有根樹,可以從樹中找到共同的祖先。
  • 文章發表:兩種方法在進化樹上可視化數據
    Ggtree is available from http://www.bioconductor.org/packages/ggtree.這篇文章講的內容,在多次的推文中都有涉及,算是比較零散,但細節就在這些零散的推文之中。
  • 跟著Nature Genetics學畫圖:R語言ggplot2畫折線圖並添加誤差線
    折線圖添加誤差線是非常常用的一種可視化方法,今天的推文介紹一下使用R語言的ggplot2作圖的代碼。
  • 如何給進化樹「美顏」
    無論是在基因組文章,還是在群體研究中,進化樹都必不可少。小編諮詢度娘得知,大家的提問通常是關於兩個方面,進化樹的構建和進化樹的美化。關於進化樹的構建問題需要更為專業和系統的闡述,小編在這裡只想介紹下進化樹的美化。
  • 整理了一些自己可能會用到的R包~20210125更新
    cola是其新開發的一個包esquisseR語言裡通過拖拽畫圖,不寫代碼,具體的介紹內容可以參考 莊閃閃的成長手冊 公眾號推文 esquisse包~不寫代碼生成ggplot圖ggtech公眾號 R語言統計與繪圖 的推文 ggplot2圖形配色包,提取知名科技公司的主題配色forestmodel公眾號 R語言統計與繪圖 的推文
  • 跟著Nature Genetics學畫圖~ggplot2畫折線圖並在指定區域添加灰色背景
    今天的筆記記錄的是論文中Figure2圖a的畫法,圖a展示的是啥內容我暫時還沒有看懂,如果從畫圖的角度來說就是一個簡單的折線圖,正好之前有人問到如何添加灰色背景。今天先記錄一下畫圖的內容image.png第一步模擬數據從上至下的第一個a<-seq(0,1.5,0.05)df1<-data.frame(x=1:60,y=sample(a,60,replace=T))畫圖
  • 利用R語言進行層次聚類分析以及繪製樹狀圖
    樹形圖(dendrogram)是表示樹的圖。
  • 跟著Nature Methods學畫圖:R語言ggplot2畫氣泡圖(dotplot)展示基因表達量
    image.png今天的推文主要介紹其中的氣泡圖,明天的推文介紹如何向氣泡圖上疊加樹形圖按照論文提供的代碼得到了畫圖用到的數據,部分數據如下image.png但是用他提供的畫圖代碼沒有能夠畫出圖來。因為他用到了一個dot_plot()函數,沒有找到這個函數是怎麼來的。
  • MPB:中科院微生物所蔡磊組-​基於擴增子數據的系統發育樹的構建和展示
    基於擴增子的微生物組數據集,往往能獲得數千至上萬個OTUs (可操作分類單元),我們需要從中篩選獲得高豐度及核心微生物類群進行系統發育樹的構建和展示。系統發育樹又名分子進化樹,是生物信息學中描述不同生物或者不同基因之間進化關係的方法。通過系統學分類分析,可以幫助研究者推測生物的進化歷程和親緣關係。
  • GraPhlAn繪製的超高顏值物種樹Cladogram
    Nature Biotechnology. 2019, 37: 676-684. doi:10.1038/s41587-019-0104-4是不是很漂亮之前公眾號已經為大家介紹了GraPhlAn進化樹的繪製方法,如下文:今天就帶大家根據特徵表(OTU table)、和物種注釋(Taxonomy
  • R語言畫展基礎篇-折線圖
    你在家裡的院子裡種了兩顆樹(樹1與樹2),每隔一個月(共5個月)測量兩棵樹的高度,這樣就產生出3個不同的變量:height_1代表樹1的高度hieight_2代表樹2的高度months代表月份(0, 1, 2, 3,
  • 進化樹作圖專題:進化樹的幾種分類
    本期承接上期進化樹作圖專題1的內容,和大家分享一下關於進化樹圖的幾種分類。 依據不同規則,樹的分類可以有很多種。由於本專題主要針對於作圖,所以這裡主要的原則就是——樹的外形。所謂「根」,就是一棵樹上的所有基因或物種的最近共同祖先(most recent common ancestor,MRCA)。
  • 進化樹+基因結構+motif—1張圖全顯示!
    MEGA可以基於序列構建進化樹,並顯示進化樹,藉助GSDS可以把基因結構和進化樹合併顯示。
  • R語言-stringr-字符串處理
    單雙引號R語言中字符串輸入時,可以使用單引號,也可以使用雙引號。,不用轉義路徑複製和直接可用charchar <- r"(我是一名'R語言'學習者)"cat(char)常用函數截取字符串,匹配字符串,添加指定字符籌齊長度,去除左右兩邊空格,分割字符串,
  • 後天開講|9 晚掌握用 R 語言繪製出版級圖片,發高分文章必備!
    辛辛苦苦得到的科研結果,夜以繼日搞定的數據分析,還需要一張兼顧科學性和美觀性的圖片,才能將科學問題更好地闡述清楚,特別是想發高分的 SCI 的話更是需要高級的圖片徵服審稿人。
  • 語言使用的對話轉向:從語用學到對話語用學
    Weigand)教授組織的「對話、語用學與文化」專題小組,自此語用學與對話研究開始從各自視角審視對方的不足,相關討論成果由凱克斯(I. Kecskes)教授以「從語用學到對話」為題刊載於《勞特裡奇語言與對話手冊》。他指出,作為語用學的核心概念,「語言使用」這一術語存在缺陷,其僅限於單個語句在語境中的單次功能表現,而出路之一便是將語言使用視為對話使用(dialogic use)。
  • R包ggrepel解決散點圖樣品標籤重疊,方便篩選樣品
    ://cran.us.r-project.org")或者安裝最新的開發版本:install.packages("devtools", repo="http://cran.us.r-project.org")library(devtools)devtools::install_github("slowkow/ggrepel")geom_text