R

好物分享——R语言版本的bedtools

2021-12-08  本文已影响0人  Bio_Infor

不要重复造轮子

——“哈喽,能请教你一下怎样在R server中调用Linux下的工具?”
——“你为什么要这么做呢?”
——“我想把Linux工具输出的结果直接在R中分析,不想换来换去”

bedtools是一个非常香的工具,几乎是人尽皆知,是一个强大的处理bed等文件的工具,正如其自己描述的一样:a powerful toolset for genome arithmetic。bedtools目前只支持在Linux下以命令行的形式运行,所以我们经常会遇到上面的问题。

那么如何解决呢?给大家分享一个好物,既然我们不想在Linux下运行bedtools,那为什么不在R下运行呢?感谢北卡罗来纳大学教堂山分校的Phanstiel Lab给了我们这样的机会,开发出了R下的bedtools——bedtoolsr不过,有喜必有悲,看下面这句话:
bedtoolsr should work on any system with R and bedtools installed. It has been tested on macOS (version 10.14 "Mojave") and Linux (Ubuntu version 18.04). bedtools is not available for Windows; however, you can either use a virtual machine or Windows Subsystem for Linux. In either case, R from the Windows side would not be able to access bedtools running on the Linux side, so R and bedtoolsr would also have to be installed on the Linux side.

这意味着这个工具必须要R和Linux下的bedtools,否则将无法工作!所以我推荐在R server下使用了~

安装

#install.packages("devtools")
library(devtools)
devtools::install_github("PhanstielLab/bedtoolsr")

使用示例

bedtools intersect ~ bt.intersect

bedtools intersect的功能不用多介绍,直接上图:

bedtools intersect
这个图到处都能见到,还不知道的朋友可以去随便查查bedtools intersect是干嘛的,你一定会觉得非常有用,那么这个功能对应R包bedtoolsr中的函数就是bt.intersect
?bt.intersect
bt.intersect(
  a,
  b,
  wa = NULL,
  wb = NULL,
  loj = NULL,
  wo = NULL,
  wao = NULL,
  u = NULL,
  c = NULL,
  C = NULL,
  v = NULL,
  ubam = NULL,
  s = NULL,
  S = NULL,
  f = NULL,
  F = NULL,
  r = NULL,
  e = NULL,
  split = NULL,
  g = NULL,
  nonamecheck = NULL,
  sorted = NULL,
  names = NULL,
  filenames = NULL,
  sortout = NULL,
  bed = NULL,
  header = NULL,
  nobuf = NULL,
  iobuf = NULL,
  output = NULL
)

这不是和bedtools intersect功能选项几乎一模一样?
这里还是用官网的示例数据来做,主要是想输出有交集的染色体坐标区间及相交区域的大小:

#build bed files
A.bed <- data.frame(chrom=c("chr1", "chr1"), start=c(10, 30), end=c(20, 40))
B.bed <- data.frame(chrom=c("chr1"), start=15, end=20)
#bedtools intersect ~ bt.intersect
bedtoolsr::bt.intersect(a = A.bed, b = B.bed, wo = T)
#output
    V1 V2 V3   V4 V5 V6 V7
1 chr1 10 20 chr1 15 20  5

更多的功能就待大家去探索了~把这个包支持的函数全部列在下面了,对应bedtools的工具找就好了!


bedtoolsr

今天又是摸鱼的一天!

上一篇下一篇

猜你喜欢

热点阅读