bedtools安装与使用(v2.31.1)生物信息学工具29

news2024/11/15 5:25:37
01 背景

bedtools:一个用于基因组算术的强大工具集

总体而言,bedtools 工具集是一个多功能的工具包,可用于广泛的基因组分析任务。其中最广泛使用的工具能够进行基因组算术运算,即在基因组上执行集合论操作。例如,bedtools 允许用户在多种常用的基因组文件格式(如 BAM、BED、GFF/GTF、VCF)中对基因组区间进行交集、合并、计数、补集和随机排列操作。虽然每个工具都设计用于执行一个相对简单的任务(例如,交集两个区间文件),但通过在 UNIX 命令行上组合多个 bedtools 操作,可以进行相当复杂的分析。

bedtools 由犹他大学的 Quinlan 实验室开发,并得益于来自全球科学家的卓越贡献。

配合BAW、samtool等一起使用更佳~

Samtools安装与使用-samtools-v1.17(bioinfomatics tools-007)

minimap2安装与使用(v 2.28)生物信息学工具26

Bowtie2安装与使用-bowtie2-2.5.2(bioinfomatics tools-011)-CSDN博客

bwa安装及使用v0.7.17(生物信息学工具-018)-CSDN博客

Blast安装及使用-Blast+2.14.0(bioinfomatics tools-001)_blast软件-CSDN博客

性能评价

自 2.18 版本起,由于我们在处理按染色体和起始位置预排序的数据集的算法上进行了改进,bedtools 的可扩展性得到了显著提升。如你在下图中所见,使用排序数据时,速度和内存消耗的扩展性表现良好,而未排序数据则扩展性较差。当前版本的 bedtools intersect 的速度与 bedops 软件包的 bedmap 相当(甚至稍快),后者也使用了类似的排序数据算法。下图显示的是从外显子捕获 BAM 文件中统计与 CCDS 外显子相交的比对数量。这些比对已转换为 BED 格式,以便与 bedops 进行比较。我们将其与 bedmap 的 `--ec` 选项进行了比较,因为 bedtools 强制执行了类似的错误检查。

注意:由于内存不足,使用 1 亿次比对和 R-Tree 算法处理未排序数据时,bedtools 无法完成操作。

02 参考
https://bedtools.readthedocs.io/en/latest/index.html         #官网
https://github.com/arq5x/bedtools2            #github
03 安装
method1
wget -c https://github.com/arq5x/bedtools2/releases/download/v2.31.1/bedtools-2.31.1.tar.gz
tar -zxvf bedtools-2.31.1.tar.gz
cd bedtools2
make

method2
conda install bioconda::bedtools
04 使用
**bedtools 是一个用于基因组算术的强大工具集。**

- 版本:v2.31.1
- 关于:由 [quinlanlab.org](http://quinlanlab.org) 开发,并由全球众多贡献者共同维护。
- 文档:[http://bedtools.readthedocs.io/](http://bedtools.readthedocs.io/)
- 代码:[https://github.com/arq5x/bedtools2](https://github.com/arq5x/bedtools2)
- 邮件:[https://groups.google.com/forum/#!forum/bedtools-discuss](https://groups.google.com/forum/#!forum/bedtools-discuss)

**用法:** `bedtools <子命令> [选项]`

**bedtools 的子命令包括:**

[基因组算术]
- `intersect` 查找各种方式下的重叠区间。
- `window` 查找区间周围窗口内的重叠区间。
- `closest` 查找最近的、可能不重叠的区间。
- `coverage` 计算定义区间上的覆盖度。
- `map` 对每个重叠区间的列应用一个函数。
- `genomecov` 计算整个基因组的覆盖度。
- `merge` 将重叠/临近区间合并为一个单一区间。
- `cluster` 聚类(但不合并)重叠/临近的区间。
- `complement` 提取未被区间文件表示的区间。
- `shift` 调整区间的位置。
- `subtract` 基于两个文件之间的重叠移除区间。
- `slop` 调整区间的大小。
- `flank` 根据现有区间创建新的侧翼区间。
- `sort` 对文件中的区间排序。
- `random` 在基因组中生成随机区间。
- `shuffle` 随机重新分布基因组中的区间。
- `sample` 使用水库抽样从文件中随机抽取记录。
- `spacing` 报告文件中区间之间的间隙长度。
- `annotate` 注释多个文件中特征的覆盖度。

[多路文件比较]
- `multiinter` 识别多个区间文件中共同的区间。
- `unionbedg` 合并多个 BEDGRAPH 文件中的覆盖区间。

[配对末端操作]
- `pairtobed` 查找以各种方式与区间重叠的配对。
- `pairtopair` 查找以各种方式与其他配对重叠的配对。

[格式转换]
- `bamtobed` 将 BAM 比对转换为 BED(及其他)格式。
- `bedtobam` 将区间转换为 BAM 记录。
- `bamtofastq` 将 BAM 记录转换为 FASTQ 记录。
- `bedpetobam` 将 BEDPE 区间转换为 BAM 记录。
- `bed12tobed6` 将 BED12 区间拆分为独立的 BED6 区间。

[FASTA 操作]
- `getfasta` 使用区间从 FASTA 文件中提取序列。
- `maskfasta` 使用区间从 FASTA 文件中屏蔽序列。
- `nuc` 分析 FASTA 文件中区间的核苷酸含量。

[BAM 专用工具]
- `multicov` 在特定区间计数多个 BAM 文件的覆盖度。
- `tag` 基于与区间文件的重叠对 BAM 比对进行标记。

[统计关系]
- `jaccard` 计算两个区间集合之间的 Jaccard 统计量。
- `reldist` 计算两个文件之间相对距离的分布。
- `fisher` 计算两个特征文件之间的 Fisher 统计量。

[杂项工具]
- `overlap` 计算两个区间之间的重叠量。
- `igv` 创建一个 IGV 快照批处理脚本。
- `links` 创建指向 UCSC 位置的 HTML 链接页面。
- `makewindows` 在基因组上创建区间“窗口”。
- `groupby` 按共同列分组并汇总其他列(类似 SQL 的“groupBy”)。
- `expand` 基于列中的值列表复制行。
- `split` 将文件拆分为具有相同记录或碱基对数的多个文件。
- `summary` 统计文件中区间的总结。

[通用参数]
- `--cram-ref` CRAM 输入使用的参考文件

[通用帮助]
- `--help` 打印此帮助菜单。
- `--version` 查看你使用的 bedtools 版本。
- `--contact` 功能请求、错误、邮件列表等。
05 常用命令行
Commands used:

# bedtools sorted
bedtools intersect \
           -a ccds.exons.bed -b aln.bam.bed \
           -c \
           -sorted

# bedtools unsorted
bedtools intersect \
           -a ccds.exons.bed -b aln.bam.bed \
           -c

# bedmap (without error checking)
bedmap --echo --count --bp-ovr 1 \
         ccds.exons.bed aln.bam.bed

# bedmap (no error checking)
bedmap --ec --echo --count --bp-ovr 1 \
         ccds.exons.bed aln.bam.bed


intersect
bedtools intersect比较两个或多个BED/BAM/VCF/GFF文件,并识别genome中两个文件中的特征重叠的所有区域(即共享至少一个碱基对)。

overlap

bedtools intersect -a cpg.bed -b exons.bed > result.bed
从cpg.bed中取出与exons.bed不重叠的区域

bedtools intersect -a cpg.bed -b exons.bed -v > result.bed
多个文件的比较

bedtools intersect -a exons.bed -b cpg.ed gwas.bed hesc.chromHmm.bed -sorted > result.bed
从bam与bed比较

bedtools intersect -abam tmp.bam -b exons.bed > result.bed
指定overlap的最小fraction

bedtools intersect -a cpg.bed -b exons.bed -wo -f 0.50
merge
Bedtools merge 命令可以将重叠的区间或者紧邻的区间合并成一个新的区间。

合并重叠区间形成一个新的区间

bedtools merge -i cpg.bed > result_merge.bed
注意事项
bedtools默认输入文件的分隔符为TAB,除了bam格式的文件;

如果未使用-sorted参数,则bedtools默认不支持大于512M的染色体;

-sorted参数和-g参数必须存在一个;

当进行多个文件比较时,染色体的命名方式必须统一,’chrX‘和’X‘不可以同时存在

假设你有一个来自两个不同实验的 ChiP-seq 峰的 BED 文件。你希望识别出在两个实验中都观察到的峰(要求 50% 的相互重叠),并且对于这些峰,你希望找到最近的、不重叠的基因。这样的分析可以通过两个相对简单的 bedtools 命令来完成。

# 交集两个实验的峰。
# 结合 -f 0.50 和 -r 选项要求两个实验的峰之间有 50% 的相互重叠。
bedtools intersect -a exp1.bed -b exp2.bed -f 0.50 -r > both.bed

# 查找每个实验中都有峰值的区间的最近的、不重叠的基因
# -io 选项忽略重叠的区间,仅返回最近的、不重叠的区间(在本例中为基因)
bedtools closest -a both.bed -b genes.bed -io > both.nearest.genes.txt
06 参考文献
  • Quinlan AR and Hall IM, 2010. BEDTools: a flexible suite of utilities for comparing genomic features. Bioinformatics. 26, 6, pp. 841–842.
  • Dale RK, Pedersen BS, and Quinlan AR. Pybedtools: a flexible Python library for manipulating genomic datasets and annotations. Bioinformatics (2011). doi:10.1093/bioinformatics/btr539

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2070752.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端实现投影坐标和地理坐标系(CGCS2000)转换

前言 地理坐标系和投影坐标系是地理信息系统&#xff08;GIS&#xff09;和制图学中用于描述地球表面位置的两种不同的参考系统。它们在使用方式和应用场景上有显著的区别。 1、什么是地理坐标系和投影坐标系&#xff1f; 1.1、地理坐标系 地理坐标系是基于地球的三维球面模…

虚拟机安装centos7-桥接模式

1、打开虚拟机&#xff0c;点击文件&#xff0c;选择新建虚拟机 2、选择典型&#xff0c;点击下一步 3、选择稍后安装操作系统&#xff0c;点击下一步 4、选择系统类型及版本&#xff0c;点击下一步&#xff0c;因centos7是Linux操作系统&#xff0c;且是64位的&#xff0c;所以…

隐藏的艺术:滥用 404 页面的新 Magecart 活动

介绍 一项新的、复杂的、隐蔽的 Magecart 网页窃取活动已针对 Magento 和 WooCommerce 网站展开。该活动的部分受害者与食品和零售行业的大型组织有关。 根据我们发现的证据,该活动已经持续了几周,在某些情况下甚至更长。该活动采用了一种我们以前从未遇到过的高级隐藏技术…

Linux 内核源码分析---组播/策略路由选择

在 Linux 实现中&#xff0c;组播路由选择不像单播路由选择那样可以由内核单独处理&#xff0c;组播守护程序种类繁多&#xff0c;如 mrouted 和 pimd&#xff0c;它们分别基于距离矢量组播路由选择协议&#xff08;Distance Vector Multicast Routing Protocol&#xff0c;DVM…

《在数字化时代筑牢软件服务的稳定性防线》

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &#x1f4e2;本文由 JohnKi 原创&#xff0c;首发于 CSDN&#x1f649; &#x1f4e2;未来很长&#…

transform解题reserve

1.64位无壳&#xff0c;拖入ida检查。 选中函数按n键可以更改名称&#xff0c;便于分析和利用 。 重点&#xff1a; 2.分析加密过程&#xff0c;理解用于后续脚本编写。 str2以下表对应的元素作为索引遍历flag的每个元素赋值给str1数组&#xff0c;之后与新的str1每个元素异或…

数分基础(02)销售趋势分析

文章目录 销售趋势分析1. 数据集2. 销售趋势3. 步骤3.1 数据读取与预处理&#xff1a;3.2 计算按月、季度、年度的总销售额 4. 分析工具&#xff1a;Python 或 Excel5. Python5.1 Global_Superstore2.xlsx 文件位置5.2 读取数据集并检查其基本信息5.3 绘制趋势图来观察销售额的…

掌握C语言文件操作

1. 什么是文件 磁盘上的文件就是文件。 然而在程序设计中&#xff0c;我们所谈的文件有两种&#xff0c;一种是程序文件&#xff0c;另一种是数据文件&#xff08;从文件功能的角度来分类的&#xff09; 文件名 一个文件要有一个唯一的文件标识&#xff0c;以便用户识别和引用…

金蝶云星空开发简单账表《物料年采购入库报表》

文章目录 业务背景业务需求方案设计详细设计测试业务背景 系统现有功能不支持查询过去一年内所有物料的入库数,需要人工导出,然后再汇总。 业务需求 可以查询所有物料的入库数,多个物料,单个物料,多个组织,单个组织的入库数,以及支持查询入库数大于某个阈值。 方案设…

燃气灶行业分析、淘宝平台销售分析

内容&#xff1a;1.燃气灶&#xff08;不含集成灶&#xff09;整体行业分析 2.淘宝平台销量分析 3.针对性建议&#xff08;涉及商业信息就略&#xff09; 一、基本情况 &#xff08;一&#xff09;产品定义&#xff1a; 以液化石油气&#xff08;液态&#xff09;、人工煤…

DRF——router路由,parser解析器

文章目录 路由解析器1.JSONParser2.FormParser3.MultiPartParser4.FileUploadParser 路由 在之前进行drf开发时&#xff0c;对于路由我们一般进行两种配置&#xff1a; 视图继承APIView from django.urls import path from app01 import viewsurlpatterns [path(api/users/, …

趣味算法------尾部零的个数(C语言,python双重解法)

目录 题目描述&#xff1a; 解题思路&#xff1a; 具体代码&#xff1a; 注意&#xff1a; 题目描述&#xff1a; 给出数字 n(0<n<1000000)&#xff0c;计算出 n 阶乘尾部零的个数。 输入输出格式 输入格式 一个整数。 输出格式 一个整数。 输入输出样例 输入 11 输…

技术分享-商城篇-用户订单管理(十五)

前言 在前面的文章中&#xff0c;我们详细阐述了商品模块、购物模块、支付模块等B2B2C&#xff08;Business-to-Business-to-Consumer&#xff09;电商中核心基础模块&#xff0c;接下来我们来聊一下基础模块中最后一个环节订单模块&#xff0c;订单模块属于购物体系闭环内容&…

C语言典型例题50

《C程序设计教程&#xff08;第四版&#xff09;——谭浩强》 例题4.2 使用do……while语句循环求1234……100&#xff1b; 代码&#xff1a; //《C程序设计教程&#xff08;第四版&#xff09;——谭浩强》 //例题4.2 使用do……while语句循环求1234……100&#xff1b;#incl…

Axure RP实战:打造高效滑块验证码

Axure RP在验证码设计中的应用(滑块拖动) 前言 在数字化时代&#xff0c;验证码已成为保护用户账户安全和防止恶意攻击的重要工具。 它不仅提高了系统的安全性&#xff0c;还增加了用户对平台的信任度。 然而&#xff0c;验证码的设计并非易事&#xff0c;它需要在安全性和…

适用于 Windows 10 的最佳数据恢复免费软件是什么?

有没有适用于 Windows 10 的真正数据恢复免费软件&#xff1f;这篇文章将讨论这个话题&#xff0c;并分享什么是适用于 Windows 10/11/8.1/8/7/Vista/XP 的最佳数据恢复工具。 有没有适用于 Windows 10 的真正免费的数据恢复软件&#xff1f; 丢失重要数据&#xff0c;无论是由…

C++调用Python和numpy第三方库计算MFCC音频特征实现封装发布

文章目录 项目简介环境准备执行步骤1.新建python虚拟环境2.虚拟环境运行下python代码3.迁移虚拟环境4.编写Cmakelists.txt5.编写C代码6.编译项目7.测试 项目简介 深度学习程序的边缘部署以性能绝佳的C为主(⊙﹏⊙)&#xff0c;但遇到项目开发周期短&#xff0c;则以功能优先&am…

五、Centos7-安装Jenkins--吃灰去吧

克隆了一个base的虚拟机&#xff0c;用来安装Jenkins 2023年11月&#xff0c;Jenkins不支持centos7了。我们只是学习用&#xff0c;先看看吧。 &#xff08; 另一个人用别的操作系统安装的jenkins&#xff0c;可以参考 版权声明&#xff1a;本文为博主原创文章&#xff0c;…

mq可靠性

为了解决阻塞可以采用数据持久化 交换机持久化-可以在配置的时候配置durable 队列持久化-mq在设置时默认就是持久化&#xff0c;spring默认也是持久化 消息持久化&#xff0c;不是默认&#xff0c;需要在发送时对delivery_mode改为2&#xff08;持久&#xff09;&#xff0c;默…

系统架构师(每日一练23)

每日一练 1.软件活动主要包括软件描述、()、软件有效性验证和()&#xff0c;()定义了软件功能及使用限制。答案与解析 问题1 A.软件模型 B.软件需求 C.软件分析 D.软件开发 问题2 A.软件分析 B.软件测试 C.软件演化 D.软件开发 问题3 A.软件分析 B.软件测试 C.软件描述 D.软…