我想从R最近的出版物中重现这个数字,但我不确定如何。
情节的想法很简单。在顶部是全长病毒序列的表示,其下面的每一行描绘了测序的分离物。
对于每个序列,有两条信息:
序列的开始,结束,删除等 例如:序列1,从位置1开始,到9000位置结束 但序列2,从位置1开始,到2000年结束,中间一切都被删除,然后再次在8000-9000开始
根据是否删除,全长等进行颜色编码
最初我以为我可以使用条形图,就像我在Illustrator中绘制的那样,其中x基本上是每个序列线,y将是它映射的坐标。但我不确定这是否允许我指定"间隙",如插图画面中的序列3所示。
数据本身就是这样组织的:
Sequence name Mapped Start Mapped End
1 1 9000
2 4000 9000
3 1 2000
3 7000 9000
数据集仅包括映射的开始和结束位置,而不包括已删除的位置。
非常感谢听到您的意见!
由于
答案 0 :(得分:2)
我可能会建议使用一系列geoms,每个序列一个。如果您以某种方式组织数据,那将非常简单。例如,如果您的数据采用长格式,则如下所示:
dat <- data.frame(sequence=c(1,2,2,2), start=c(1,1,2001,8000), stop=c(9000,2000,7999,9000), type=c("mapped","mapped","deletion","mapped"))
看起来像......
sequence start stop type
1 1 9000 mapped
2 1 2000 mapped
2 2001 7999 deletion
2 8000 9000 mapped
您可以执行以下操作:
library(ggplot2)
g <- ggplot(data=dat, mapping=aes(ymin=0, ymax=1, xmin=start, xmax=stop, fill=type)) +
geom_rect() + facet_grid(sequence~., switch="y") +
labs(x="Position (BP)", y="Sequence / Strain", title="Mapped regions for all sequences") +
theme(axis.text.y=element_blank(), axis.ticks.y=element_blank()) +
theme(plot.title = element_text(hjust = 0.5))