gpt4 book ai didi

r - 如何沿染色体图形绘制位置

转载 作者:行者123 更新时间:2023-12-03 23:52:06 24 4
gpt4 key购买 nike

我想生成一个图,描绘我研究的生物体的 14 条线性染色体,按比例缩放,在每个染色体的指定位置使用彩色条。理想情况下,我想使用 R,因为这是我唯一有经验的编程语言。

我已经探索了各种方法来做到这一点,例如使用 GenomeGraphs,但我发现这比我想要的更复杂/显示的数据比我拥有的数据多得多(例如显示细胞原带),并且通常对人类染色体具有特异性。

我基本上想要的是以下大小的 14 个灰色条:

chromosome           size
1 640851
2 947102
3 1067971
4 1200490
5 1343557
6 1418242
7 1445207
8 1472805
9 1541735
10 1687656
11 2038340
12 2271494
13 2925236
14 3291936

然后用彩色标记描绘沿着染色体长度分散的大约 150 个位置。例如在这些位置标记:
Chromosome        Position
3 817702
12 1556936
13 1131566

理想情况下,我还希望能够根据位点指定几种不同的颜色,例如
Chromosome        Position        Type
3 817702 A
12 1556936 A
13 1131566 A
5 1041685 B
11 488717 B
14 1776463 B

例如,“A”标记为蓝色,“B”标记为绿色。

与我想要生成的图非常相似的图粘贴在此图像中(来自 Bopp 等人。PlOS Genetics 2013;9(2):e1003293):

Example chromosome plot

任何人都可以推荐一种方法吗?它不一定是生物信息学包,如果有另一种方法可以使用 R 生成 14 个具有特定比例大小的条,并在条的指定位置进行标记。例如我一直在考虑从 ggplot2 修改一个简单的条形图,但我不知道如何在特定位置沿着条形放置标记。

最佳答案

只需保存您的 barplot打电话再打电话segments在适当的位置做标记。例如。:

bp <- barplot(dat$size, border=NA, col="grey80")

with(marks,
segments(
bp[Chromosome,]-0.5,
Position,
bp[Chromosome,]+0.5,
Position,
col=Type,
lwd=2,
lend=1
)
)

enter image description here

使用的数据:
dat <- structure(list(chromosome = 1:14, size = c(640851L, 947102L, 
1067971L, 1200490L, 1343557L, 1418242L, 1445207L, 1472805L, 1541735L,
1687656L, 2038340L, 2271494L, 2925236L, 3291936L)), .Names = c("chromosome",
"size"), class = "data.frame", row.names = c(NA, -14L))

marks <- structure(list(Chromosome = c(3L, 12L, 13L, 5L, 11L, 14L), Position = c(817702L,
1556936L, 1131566L, 1041685L, 488717L, 1776463L), Type = structure(c(1L,
1L, 1L, 2L, 2L, 2L), .Label = c("A", "B"), class = "factor")), .Names = c("Chromosome",
"Position", "Type"), class = "data.frame", row.names = c(NA,
-6L))

关于r - 如何沿染色体图形绘制位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33727432/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com