python - 离散轴圆图的软件推荐
问题描述
我想制作一个类似马戏团的图来仅可视化 SNP(SNP 属性具有多个轨道)。它可以用 python、R 完成,或者我很乐意考虑其他语言。
到目前为止,我已经查看了 circlize R 包。但是,"Range of the sector ('C') cannot be 0"
初始化 circos 图时出现错误。我相信这个错误是因为我有离散数据(SNP)而不是所有位置的数据。或者这可能是因为我有一些重复的数据点。
我在下面简化了我的数据并显示了我迄今为止尝试过的代码:
Sample Gene Pos read_depth Freq
1 A 20394 43 99
1 B 56902 24 99
2 A 20394 50 99
2 B 56902 73 99
3 A 20394 67 50
3 B 56902 20 99
3 C 2100394 21 50
install.packages("circlize")
library(circlize)
data <- read.table("test_circos.txt", sep='\t', header=TRUE)
circos.par("track.height" = 0.1)
circos.initialize(factors = data$Gene, x = data$Pos)
我想知道是否有可能获得一个类似圆环的图,其中我的每个数据点(在我的示例中为 7 个)都被绘制为一个单独的数据点,而没有以离散轴的方式绘制任何其他点。
解决方案
如果有人对此感兴趣,我决定执行以下操作:
- 每个类别的数据点数 (=
'Gene'
); 新专栏'Number'
:
Sample Gene Pos depth Freq Number
1 A 20394 43 99 1
1 B 56902 24 99 1
2 A 20394 50 99 2
2 B 56902 73 99 2
3 A 20394 67 50 3
3 B 56902 20 99 3
3 C 2100394 21 50 1
- 设计 circos 配置文件如下(实际配置文件中不包含头文件):
chr - ID LABEL START END COLOUR
chr - A A 0 3 chr1
chr - B B 0 3 chr2
chr - C C 0 1 chr3
这意味着我的基因将具有等于在所述基因中识别的 SNP 数量的长度,并且基因的每个 bp 将代表我的 SNP 文件中的一行 (=SNP)。
然后我可以正常使用 circos。
最后,我选择了 circos,因为它似乎有最好的文档记录,因此更容易学习,而且看起来更灵活。
推荐阅读
- laravel - Laravel 从数据库中获取路由
- c# - C# 移动文件并重命名它,如果它已经存在
- c++ - OpenCV - 回放 CPU 使用率
- python - 打印带有 UTF-8 编码字符的字符串,例如:“\u00c5\u009b\”
- docker - Openshift:从自己的注册表中提取 Docker 映像的 TLS 错误
- hadoop - 发生此类错误时该怎么办?
- telegram - Telegram BOT API:如何更改照片(不是标题)
- iphone - 在 Swift 中获取 iPhone 日期和时间设置
- swift - 将 pod 更新到 Firebase 5.4 后的 Firebase 错误
- c# - 将正整数添加到 int 会导致它变为负数