我想生成一个图,描绘我工作的有机体的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
Run Code Online (Sandbox Code Playgroud)
然后用彩色标记描绘沿染色体长度散布的约150个位置.例如这些位置的标记:
Chromosome Position
3 817702
12 1556936
13 1131566
Run Code Online (Sandbox Code Playgroud)
理想情况下,我还希望能够根据基因座指定几种不同的颜色,例如
Chromosome Position Type
3 817702 A
12 1556936 A
13 1131566 A
5 1041685 B
11 488717 B
14 1776463 B
Run Code Online (Sandbox Code Playgroud)
例如,"A"标记为蓝色,"B"标记为绿色.
在该图像中粘贴了与我想要产生的非常相似的图(来自Bopp等人,PlOS Genetics 2013; 9(2):e1003293):
任何人都可以推荐一种方法吗?它不一定必须是生物信息学包,如果有另一种方法我可以使用R生成14条特定比例尺寸的条,在条形图上的指定位置有标记.例如,我一直在考虑从ggplot2修改一个简单的条形图,但我不知道如何在特定位置沿着条形图标记.
我有一个约 50 行 x 200 列的奇数数据集,我想使用另一个数据框对某些列中的值(字符串)进行重新编码,该数据框对从旧名称到新名称的转换进行编码。我想在基本 R 或 dplyr 中执行此操作,理想情况下使用 dplyr/tidyverse。
大约有 70 个唯一值要切换,因此单独对每个更改进行编码会太长(例如,简单的 str_replace),并且大约有 70 列包含我想要更改的值,因此对一次指定一个命名列的任何内容进行编码是不切实际的。
包含我想要更改的值的列每三列出现一次,不包括第一个索引列,并且这些值不会出现在数据框中的其他任何地方。因此,mutate_all 类型的解决方案在数据帧中查找与转换数据帧中的旧名称匹配的任何字符串并将其替换为新名称的解决方案是可行的。请注意,有一些数据缺失。
示例数据:
library("tidyverse")
# main dataset
col1 <- c("set1", "set2", "set3", "set4", "set5", "set6")
name_1 <- c("A", "D", "B", "A", "C", "A")
colour_1 <- c("red", "cyan", "red", "blue", "red", "blue")
shade_1 <- c("dark", "dark", "light", "light", "light", "light")
name_2 <- c("", "C", "D", "D", "", "A")
colour_2 <- c("", "red", "yellow", "blue", "", "purple")
shade_2 <- c("", "dark", "light", "dark", "", "light") …Run Code Online (Sandbox Code Playgroud)