标签: genomicranges

在 R 中分组后查找哪些列范围重叠

我有一个巨大的数据框,如下所示。

\n

我想要group_by(chr),然后为每个人chr找到

\n
    \n
  • chr 组内的任何 range1 (start1, end1) 是否与任何 range2 (start2,end2) 重叠?
  • \n
\n
library(dplyr)\n\ndf1 <- tibble(chr=c(1,1,2,2),\n               start1=c(100,200,100,200),\n               end1=c(150,400,150,400),\n       species=c("Penguin"), \n       start2=c(200,200,500,1000), \n       end2=c(250,240,1000,2000)\n       )\n\ndf1\n#> # A tibble: 4 \xc3\x97 6\n#>     chr start1  end1 species start2  end2\n#>   <dbl>  <dbl> <dbl> <chr>    <dbl> <dbl>\n#> 1     1    100   150 Penguin    200   250\n#> 2     1    200   400 Penguin    200   240\n#> 3     2    100   150 Penguin    500  1000\n#> 4     2    200   400 Penguin   1000  2000\n
Run Code Online (Sandbox Code Playgroud)\n

创建于 2023-01-05,使用 …

r intervals dplyr data.table genomicranges

6
推荐指数
2
解决办法
638
查看次数

从间隔列表中模拟随机位置

我试图在R中开发一个函数来输出给定间隔列表中的随机位置.

我的间隔文件(14,600行)是制表符分隔bed文件(chromosome start end name),如下所示:

1      4953    16204   1
1      16284   16612   1
1      16805   17086   1
1      18561   18757   1
1      18758   19040   1
1      19120   19445   1
Run Code Online (Sandbox Code Playgroud)

目前我的函数将N在这些间隔内生成随机位置.

sim_dat <- bpSim(N=10)
head(sim_dat)
Run Code Online (Sandbox Code Playgroud)
  seqnames    start      end width strand
1       1 22686939 22686939     1      *
2       1 14467770 14467770     1      *
3       2 10955472 10955472     1      *
4        X   823201   823201     1      *
5        6 10421738 10421738     1      *
6       17 21827745 21827745     1 …
Run Code Online (Sandbox Code Playgroud)

simulation r bioinformatics bioconductor genomicranges

2
推荐指数
1
解决办法
343
查看次数