作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想将各个基因组间隔连接到公共(public)区域。
我的输入:
dfin <- "chr start end sample type
1 10 20 NE1 loss
1 5 15 NE2 gain
1 25 30 NE1 gain
2 40 50 NE1 loss
2 40 60 NE2 loss
3 20 30 NE1 gain"
dfin <- read.table(text=dfin, header=T)
我的预期输出:
dfout <- "chr start end samples type
1 5 20 NE1-NE2 both
1 25 30 NE1 gain
2 40 60 NE1-NE2 loss
3 20 30 NE1 gain"
dfout <- read.table(text=dfout, header=T)
dfin
中的区间永远不会在同一动物身上重叠,只是在动物之间重叠(分别为 sample
和 samples
列)。 type
列在 dfin
中有两个因子(loss
和 gain
),预计在 中有三个因子code>dfout
(loss
、gain
和both
,当 dfout
中的连接区域发生时是基于loss
和gain
)。
有什么办法解决这个问题吗?
*为@David Arenburg 更新
最佳答案
这里尝试使用 data.table::foverlaps
对间隔进行分组,然后计算所有其余部分
library(data.table)
setkey(setDT(dfin), chr, start, end)
res <- foverlaps(dfin, dfin, which = TRUE)[, toString(xid), by = yid
][, indx := .GRP, by = V1]$indx
dfin[, .(
chr = chr[1L],
start = min(start),
end = max(end),
samples = paste(unique(sample), collapse = "-"),
type = if(uniqueN(type) > 1L) "both" else as.character(type[1L])
),
by = res]
# res chr start end samples type
# 1: 1 1 5 20 NE2-NE1 both
# 2: 2 1 25 30 NE1 gain
# 3: 3 2 40 60 NE1-NE2 loss
# 4: 4 3 20 30 NE1 gain
关于r - 将个体基因组间隔连接到种群区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33738538/
我有一个 sql 数据库,其中包含基因组、染色体和“有趣”区域(BED 格式)。基因组(例如 4GB)由 +/- 20 条染色体组成,因此每个字符串大约有 200MB 大。例如,基因组中的染色体由字符
我是一名优秀的程序员,十分优秀!