1)背景
处理基因组数据中,比较基因组不同区域,例如寻找overlap等,是一种基本的且常见的问题。虽然UCSC 中‘Table Browser’或者Galaxy可以用来处理,但是当这些工具面对大的数据的时候就会显得力不从心。因此,需要一款快速、灵活的软件来批量处理数据集。

bedtools是一款用C++编写的小巧且灵活的软件来处理这些复杂的问题,可以用来比较、操作、注释bed和gff文件中的genomic features。它设计主要是在linux环境下,可以和awk、grep、sort 等实现无缝对接,且支持bam格式文件,可以将bam文件转换为bed文件,因此对于大数据处理来说非常方便。

由于在版本在不断的更新,我们将依据最初版本的参考文献给出每个示例图,让大家知道理解每个命令的含义,知道如何去学习一个软件。明白了原理,具体要到的时候,依据不同版本的帮助文档就很容易上手。

2)功能

下图是bedtool的可用操作(注意版本不同,命令可能会变,但大致功能不会改变,这里主要是展示其原始文献):虽然有些命令已经该换名字,例如fastaFromBed在后续的版本中的别名是getfasta,但是这些命令已经可以被执行,尽管后续版本不断有新的参数被加入。(在一再次注意,这里主要通过图解来说每个命令到底在做什么。不讲实际应用)

2.1)intersectBed

‘intersecting’ or ‘overlapping’指feature之间至少有1bp 的重叠:

基本用法:intersectBed [OPTIONS] [-a <BED> || -abam <BAM>] -b <BED>

2.1.1)找出overlap并输出

intersectBed  –a  A.bed  –b  B.bed

2.1.2)当有overlap输出原始的 “A” feature

intersectBed  –a A.bed –b B.bed -wa

2.2)pairToBed

主要用于将BedPE feature或者paired-end BAM alignment  与另一个bed文件比较寻找overlap

基本用法:pairToBed [OPTIONS] [-a <BEDPE> || -abam <BAM>] -b <BED>

2.2.1)默认情况下,如果任何一端与B有交集则输出A(Report A if either end overlaps B.)

2.2.2)-type 参数可以用来控制输出

-type both: 当用该参数的时候,只有在双端都和B有交集的情况下才输出A(Report A only if both ends overlap B)

-type neither: 如果双端和B都没有交集则输出A(Report A only if neither end overlaps B.)

-type ispan: 输出A,如果A双端间区域和B有重叠(Report A if it’s “inner span” overlaps B.)

2.2.3) -f参数通过调节最少比对长度来控制输出

输出A,如果一端至少有50%区域与B重叠(eport A only at least 50% of one of the two ends is overlapped by B)

pairToBed -a A.bedpe -b B.bed -f 0.5

2.3) pairToPair

寻找两个BEDPE文件之间的重叠

基本用法:pairToPair [OPTIONS] -a <BEDPE> -b <BEDPE>

2.3.1)默认情况下输出A,如果A和B都有链信息,且A的双端和B有交集

2.4)bamToBed

用来将bam格式转化为Bed格式

基本用法:bamToBed [OPTIONS] -i <BAM>  ,默认输出的bed 文件有6列

bamToBed -i RNA-seq.bam |head -6

2.5)windowBed

在用户指定的窗口内返回两个BED文件之间的overlap

基本用法:windowBed [OPTIONS] -a <BED> -b <BED> ,默认为上下游1M窗口

2.5.1)默认为上下游1M,例如:

2.5.2)可以通过(-l 和-r)参数来控制上下游,加入不同的window

2.6)closestBed

如果A和B之间没有overlap,则输出与A最近的B的信息

2.7)subtractBed

用处:主要输用于移除重叠部分及间隔区

基本用法:subtractBed [OPTIONS] -a <BED> -b <BED>

默认情况下

2.8)mergeBed

主要用于将重叠的feature合并

基本用法:mergeBed [OPTIONS] -i <BED>

例如:

2.9)coverageBed

主要是统计一个BED文件中要素相对于另一个的覆盖深度和广度

基本用法:coverageBed [OPTIONS] -a <BED> -b <BED>

例如:统计结果解释可以参考下图。

2.10) genomeCoverageBed

对特征文件的覆盖情况进行统计

基本用法:genomeCoverageBed [OPTIONS] -i <BED> -g <GENOME>

2.11)fastaFromBed

用于提取fasta文件中,与bed文件中匹配的序列,形成一个新的fasta文件

基本用法:fastaFromBed [OPTIONS] -fi <input FASTA> -bed <BED> -fo <output FASTA>

2.12)maskFastaFromBed
用于将bed 中指定的位置在fasta中进行mask
基本用法:maskFastaFromBed [OPTIONS] -fi <input FASTA> -bed <BED> -fo <output FASTA>

默认情况下是硬soft,而不是软soft

2.13) shuffleBed
用于置换feture在染色体中的location
shuffleBed [OPTIONS] -i <BED> -g <GENOME>

2.14)sortBed

对bed文件进行排序
基本用法:sortBed [OPTIONS] -i <BED>

默认情况下,对bed文件按照染色体,然后按照起始位置。

2.15)linksBed

为bed 文件建立html

基本用法:linksBed [OPTIONS] -i <BED> > <HTML file>

例如:

2.16)complementBed
输出在bed 文件中不包含的区域
基本用法:complementBed [OPTIONS] -i <BED> -g <GENOME>

例如

bedtools简介及应用的更多相关文章

  1. ASP.NET Core 1.1 简介

    ASP.NET Core 1.1 于2016年11月16日发布.这个版本包括许多伟大的新功能以及许多错误修复和一般的增强.这个版本包含了多个新的中间件组件.针对Windows的WebListener服 ...

  2. MVVM模式和在WPF中的实现(一)MVVM模式简介

    MVVM模式解析和在WPF中的实现(一) MVVM模式简介 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在 ...

  3. Cassandra简介

    在前面的一篇文章<图形数据库Neo4J简介>中,我们介绍了一种非常流行的图形数据库Neo4J的使用方法.而在本文中,我们将对另外一种类型的NoSQL数据库——Cassandra进行简单地介 ...

  4. REST简介

    一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式.”但是在要求详细讲述它所提出的各个约束,以及如何开始搭建REST服务时,却很少有人能够清晰地说出它到底是什么,需要遵守什么样的准则. ...

  5. Microservice架构模式简介

    在2014年,Sam Newman,Martin Fowler在ThoughtWorks的一位同事,出版了一本新书<Building Microservices>.该书描述了如何按照Mic ...

  6. const,static,extern 简介

    const,static,extern 简介 一.const与宏的区别: const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们使用const常量. 执行时刻:宏是预编 ...

  7. HTTPS简介

    一.简单总结 1.HTTPS概念总结 HTTPS 就是对HTTP进行了TLS或SSL加密. 应用层的HTTP协议通过传输层的TCP协议来传输,HTTPS 在 HTTP和 TCP中间加了一层TLS/SS ...

  8. 【Machine Learning】机器学习及其基础概念简介

    机器学习及其基础概念简介 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...

  9. Cesium简介以及离线部署运行

    Cesium简介 cesium是国外一个基于JavaScript编写的使用WebGL的地图引擎,一款开源3DGIS的js库.cesium支持3D,2D,2.5D形式的地图展示,可以自行绘制图形,高亮区 ...

随机推荐

  1. 使用纯生js操作cookie

    前段时间做项目的时候要使用js操作cookie,jquery也有相应的插件,不过还是觉得纯生的js比较好,毕竟不依赖jq. //获得coolie 的值 function cookie(name) { ...

  2. PHP include 和 require 语句 (调用其他php文件进来的方法)

    PHP include 和 require 语句通过 include 或 require 语句,可以将 PHP 文件的内容插入另一个 PHP 文件(在服务器执行它之前). require 会生成致命错 ...

  3. Jmeter 问题集

    1.配置分布式,调度机(master) 看不到 执行机(slave). 原因: slave是放在一个交换机下面,然后在这个交换机下面又接了个路由器,control连的这个路由器 解决: CONTROL ...

  4. [转][SVN]常用操作

    1.  Commit 提交当前代码到 SVN 服务器. 2. 引用第三方类库时,不要从安装位置引用,而是在解决方案下,添加一个 lib 的目录,把需要的程序集复制到这里,然后从 lib 目录引用. 3 ...

  5. commons.httpclient-3.X.jar 和 httpclient-4.x.jar是个什么关系?

    最近看项目的代码,看到工程中有两个jar包张的很像,一个是commons.httpclient-3.1.jar,一个是httpclient4.2.1.jar,很纳闷,而且这两个包里都有HttpClie ...

  6. Oracle跨库复制表结构

    1.首先建立远程连接 create public database link LINK_SJPSconnect to system identified by manager using '(DESC ...

  7. ETL编程模型(场景)

    使用场景: ETL是一个处理过程. 多个数据源之间进行数据同步 1:n:一对多同步数据 n:1:多个数据源到一个目的段 m;n:多个数据源多个目的段 ========================= ...

  8. python 字符串与字节之间的相互转化

    1.将字符串转化成字节 b'fffff' bytes('ffff', encoding='utf-8') 'ffff'.encode('utf-8') 2.将字节转化成字符串 str(data, en ...

  9. 2018-2019-2 《网络对抗技术》Exp0 Kali安装 Week1 20165233

    Exp0 Kali安装 安装过程 1.首先我的Mac上已经安装好了VMware Fusion,所以直接下载对应的虚拟机版本的Kali即可. 2.进入Kali官网进行下载. 以下为下载链接: Kali ...

  10. 20165233 2017-2018-2 《Java程序设计》课程总结

    20165233 2017-2018-2 课程总结 每周作业链接汇总 第0周 预备作业1 我期望的师生关系 预备作业2 学习基础和C语言基础调查 预备作业3 Linux安装及学习 第1周 第1周作业 ...