論文
The evidence remains clear: SARS-CoV-2 emerged via the wildlife trade
https://www.pnas.org/doi/10.1073/pnas.2214427119
在 饒毅科學 公衆號 看到的推文 美國科學院院刊:逐條反駁新冠是實驗室產物的錯誤說法
其中有一個圖是
今天的推文我們來試着復現一下這個圖
首先是一個多序列比對文件
讀取數據
df <- phylotools::read.fasta("data/20221126/pnas.fasta")
df
把序列拆分成一個鹼基一列
df %>%
tidyr::separate(seq.text,paste0("col",str_pad(1:28,2,side = "left",pad = "0")),'') %>%
select(-col01) %>%
mutate(seq.name=factor(seq.name,levels = rev(seq.name))) %>%
pivot_longer(!seq.name) -> new.df
這裏有一個問題是序列是27個鹼基,拆分的時候需要指定28列,然後第一列是空的,暫時沒有想明白是爲啥
首先是多序列比對
p1<-new.df %>%
ggplot(aes(x=name,y=seq.name))+
geom_tile(fill="white",alpha=0)+
geom_text(aes(label=value))+
theme_bw()+
theme(axis.text.x = element_blank(),
axis.ticks = element_blank(),
panel.grid = element_blank(),
panel.border = element_blank())
p1
添加左右兩側的數字
df1<-data.frame(x=0,
y=11:1,
label=c(671,668,669,666,744,743,756,736,706,747,759))
df2<-data.frame(x=28,
y=11:1,
label=c(695,692,693,690,770,665,777,761,727,768,780))
p1+
geom_text(data=df1,
aes(x=x,y=y,label=label),
inherit.aes = FALSE,hjust=1)+
geom_text(data=df2,
aes(x=x,y=y,label=label),
inherit.aes = FALSE,hjust=0)+
coord_equal(xlim = c(-1,29)) -> p2
p2
在自己感興趣的地方添加背景色
部分示例數據
df3<-readxl::read_excel("data/20221126/data.xlsx")
df3
p2 +
geom_tile(data=df3,aes(x=x,y=y,fill=group),
color="white",show.legend = FALSE)+
geom_text(data=df3,aes(x=x,y=y,label=label),
color="white")+
scale_fill_manual(values = c("#00adef","#ed1b24"))+
labs(x=NULL,y=NULL)
示例數據和代碼可以給推文點贊,點擊在看,最後留言獲取
歡迎大家關注我的公衆號
小明的數據分析筆記本
小明的數據分析筆記本 公衆號 主要分享:1、R語言和python做數據分析和數據可視化的簡單小例子;2、園藝植物相關轉錄組學、基因組學、羣體遺傳學文獻閱讀筆記;3、生物信息學入門學習資料及自己的學習筆記!