bedtools不合格的使用介绍-阿里云开发者社区

开发者社区> 徐洲更> 正文

bedtools不合格的使用介绍

简介: 如何使用bedtools处理Rang数据 什么是Range数据 参考基因组表示的是一种坐标系统,比如说某一个物种基因组大小为100bp,那么他参考基因组就可以表示为[1,100], 之后就可以用任意[x,y]表示这条参考基因组上的位置,这就是一种范围信息,X-Y这段区域可能是外显子,也可能是内含子,可能是编码区,也可能是基因间区,也有可能是一个测序结果。
+关注继续查看

如何使用bedtools处理Rang数据

什么是Range数据

参考基因组表示的是一种坐标系统,比如说某一个物种基因组大小为100bp,那么他参考基因组就可以表示为[1,100], 之后就可以用任意[x,y]表示这条参考基因组上的位置,这就是一种范围信息,X-Y这段区域可能是外显子,也可能是内含子,可能是编码区,也可能是基因间区,也有可能是一个测序结果。

因此Range数据是生信数据比较常见的存放形式,比如说BED/BAM/BCF/和GFF/BFF/SAM/VCF/,前者以0为始,后者以1为始。

为了操作这种Range数据,Bioconductor在R语言中定义了两个重要的对象,IRange和GenomicRanges,后者仅存放'start','end','width'是后者的基础。后者才能真正存放基因组Range数据。

这一篇不介绍如何在R语言操作Range数据,而是介绍bedtools这款号称基因组Range数据分析的瑞士军当,当时的口号是一款取代10个生信分析师的工具。

Bedtools能够对基因组Range数据进行计数等简单操作,也能和Unix命令行结合起来完成更加复杂的任务。

bed格式简介

在正式介绍bedtools之前,需要先介绍一下BED格式。根据USCSC基因组浏览器的描述,BED格式能够非常简洁的表示基因组特征和注释,尽管BED格式描述中定义了12列,但是仅仅只有3列必须,因此BED格式按照列数继续细分为BED3,BED4,BED5,BED6,BED12。

BED12定义的12列分别为:chrom, start, end, name(BED代表的特征名),score(范围为0~1000,可以是pvalue, 或者是字符串,如"up"), strand(正负链), thickstart, thickednd(额外着色位置, 比如说表示外显子), itemRgb(RGB颜色,如255,0,0), blockCount(区块数量, 如外显子), blockSizes(由逗号隔开的区块大小), blockStarts(由逗号隔开的区块起始位点)。

知道了BED12后,就可以对BED的细分格式进行举例说明

  • BED3:chr1 11873 14409
  • BED4: chr1 11873 14409 uc001aaa.3
  • BED5: chr1 11873 14409 uc001aaa.3 0
  • BED6: chr1 11873 14409 uc001aaa.3 0 +
  • BED12: chr1 11873 14409 uc001aaa.3 0 + 11873 12000 123,123,123 3 354,109,1189, 0,739,1347,
img_94cba6af06ae9abe87e5847ad0fec7ce.jpe
BED12效果

除了官方的BED定义外,BEDtools定义了BEDPE用来表示基因组不连续的特征,比如说结构变异或者双端测序的reads。在定义中10列是必须的,为chrom11, start1, end1, chrom2, start2, end2, name, score, strand1, strand2。 这之后可以增加任意多的其他列。

其他BEDtools支持的格式说明:

Bedtools工具介绍

bedtools的功能非常强大,试图解决你所遇到的所有和基因组位置运算的问题以及周边问题:基因组运算,多文件比较, PE数据操作,格式转换, Fasta数据操作, BAM工具, 统计学相关工具,其他小工具

其中最重要的选项是--help,一个强大的工具提供了许多参数,需要勤读帮助文档。bedtools的官方文档写的非常优秀,绝大部分工具都以图解的方式形象的说明了每个参数的可能效果。因此我写这篇文章的目的就是让迫使自己去熟悉所有的工具而已。

核心:基因组运算

所谓的基因组运算,就是看看看自己手头拿到的区域和你感兴趣的区域的关系如何。bedtools提供了如下工具做一系列你想到或者你想不到的事情。

集合运算:

  • intersect: 交集,也就是看两个区域的重叠
  • window: 和intersect类似也是求交集,但是还会看上下游一定区间内是否有重叠。 比如说看某个基因的上下游是否有peak
  • complement: 补集,根据一个已有区域得到另一个不重叠的区域
  • substract: 差集, 求一个区域减去另一个区域后的结果
  • merge: 合集,将相邻的区间合并成一个
  • cluster: 类似于merge,但是不做合并

区间统计:

  • closest: 找到和目标最近的特征区域。比如说ChIP-seq得到的peaks可以根据“距离其最近的基因就是他调控的基因”的假设进行注释。
  • coverage: 计算某个区间的覆盖情况
  • genomecov: 计算全部基因组的覆盖情况
  • map: 在某个区间的应用其他函数, 比如说求和(sum), 均值(mean)
  • annotate: 从其他一系列文件中统计给定区间的覆盖情况

区间工具:

  • flank: 根据已有特征区间,得到两翼位置的新区间
  • slop: 根据已有特征区间,向外衍生
  • shift: 特征区域整体偏移一定位置
  • shuffle: 从基因组区间中随机选择某些位置
  • sample: 从已有的区域随机挑选
  • makewindows: 从基因组上创建等长区间

其他

bedtools的核心工具就是上面几个,剩下的都算是小轮子,解决了你手上轮子不够多的烦恼。

Fasta相关:

  • getfasta: 根据提供的区间提取序列
  • maskfasta: 根据提供的区间对序列进行遮盖
  • nuc: 统计某个区间的碱基含量

BAM格式相关:

  • 格式转换:bamtobed, bedtobam, bamtofastq,bedpetobam,bed12tobed6
  • multicov: 计算某些位点上不同BAM文件覆盖
  • tag: 计算一个BAM在不同位置上覆盖

PE文件操作:

  • pairtobed: 专门用于看其他格式在BEDPE格式上重叠情况
  • pairtopair: 比较两个BEDPE格式的重叠情况

统计学工具:主要是用以不同的统计学方法来衡量两个区间的相似度,有三种: jaccard, reldist, fisher

除了以上,还有一些更加有趣的小工具,比如说igv可以创建IGV自动截图的运行脚本,links可以构建能在UCSC基因组上打开的链接等。

bedtools使用案例【待续】

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
平台日志组件使用介绍
平台日志组件使用介绍 需要导入的类: import com.frameworkset.platform.sysmgrcore.entity.Organization; import com.
562 0
C# GUID介绍和的使用
GUID(全局统一标识符)是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。通常平台会提供生成GUID的API。生成算法很有意思,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。
821 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
4436 0
x3d
Virtools脚本语言(VSL)介绍
最近天气炎热,实在没有东西可写,把以前翻译的一点东西搬出来,凑数,见谅各位。   概述 VSL (Virtools脚本语言)是一种强大的脚本语言,通过提供对Virtools SDK的脚本级访问能力,用于作为Virtools图形化脚本编辑器的补充。
724 0
Splunk Machine Learning Toolkit 3.0.0介绍
如果你了解机器学习确不知道如何使用、想避免复杂的算法,减少学习成本、想快速知道哪种算法最适合你的数据、想让自己算法和一套成熟可视化数据平台相结合、使用了开源算法想减少开发成本,那么使用Splunk Machine Learning Toolkit是不错的选择。
1618 0
Redis介绍使用及进阶
Redis介绍使用及进阶目录: 一、介绍 二、缓存问题 三、Redis内存滥用 四、键命名规范 五、Redis使用场景 六、持久化操作 七、.Net Core 使用redis 简单介绍 一、介绍 1、 高性能-- Redis能读的速度是110000次/s,写的速度是81000次/s 、c语言实现距...
974 0
TAG和ResourceGroup使用介绍
标签及资源组都是资源分组的工具,目的是为了更好的资源管理,方便后续进行分组搜索、分权、分账、分组运维等云上资源自动化管理手段。如何为资源打标签、添加资源组是资源分组管理的关键。下文就TAG和ResourceGroup使用进行介绍。
930 0
+关注
徐洲更
生信媛公众号编辑、生信必修课之软件安装课程作者
210
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载