WES与WGS分析linuxrna_seq

[Linux]bedtools学习

2020-10-27  本文已影响0人  小贝学生信

The BED format is a concise and flexible way to represent genomic features and annotations. bedtools是处理相关格式文件很方便的toolkits。简单学习下最常用的几个功能。
参考链接:https://bedtools.readthedocs.io/en/latest/index.html
http://quinlanlab.org/tutorials/bedtools/bedtools.html
关于生信分析常用的文件格式,UCSC网站整理的很全,详见http://genome.ucsc.edu/FAQ/FAQformat#format1,也算是一个意外收获。

1、About BED format

其余六列不做介绍了,具体可参考开头的链接。

2、bedtools下载(linux)

#在自己合适的文件夹路径里下载安装
mkdir bedtools
ls
cd bedtools/
ls
wget https://github.com/arq5x/bedtools2/releases/download/v2.29.1/bedtools-2.29.1.tar.gz
ls
tar -zxvf bedtools-2.29.1.tar.gz
cd bedtools2
pwd
make

自己尝试发现,make编译完成后会将bedtools的bins命令自动添加到环境变量里,即在linux的任何路径下都可以使用bedtools的相关命令了。

3、bedtools常用工具

3.0 下载示例文件

mkdir bedtools-test
cd bedtools-test
curl -O https://s3.amazonaws.com/bedtools-tutorials/web/cpg.bed
curl -O https://s3.amazonaws.com/bedtools-tutorials/web/exons.bed
curl -O https://s3.amazonaws.com/bedtools-tutorials/web/gwas.bed
curl -O https://s3.amazonaws.com/bedtools-tutorials/web/genome.txt
curl -O https://s3.amazonaws.com/bedtools-tutorials/web/hesc.chromHmm.bed
ls -lh
head exons.bed

3.1 intersect

常见的就是比较两个bed文件的track记录是否有重叠,返回的结果根据不同的参数有不同的形式。要注意的两点是顺序性(a比b);局部/整体


intersect
(1)默认设置

只返回A track里的,与B track有重叠的区域。

bedtools intersect -a cpg.bed -b exons.bed | head -5
head cpg.bed
3.1-1
(2) -wa; -wb

上述只返回重叠区域,设置-wa; -wb可分别设置返回有重叠的、原始的A、B的track记录

bedtools intersect -a cpg.bed -b exons.bed -wa | head -5
head -5  cpg.bed
3.1-2
bedtools intersect -a cpg.bed -b exons.bed -wa -wb| head -5
bedtools intersect -a cpg.bed -b exons.bed -wo | head -5
3.1-3
(3) -f 设定重叠标准
#设定标准为50%
bedtools intersect -a cpg.bed -b exons.bed -wo -f 0.50 | head
(4) -c 统计重叠数目

a文件的某条track可能与b文件的多条track存在重叠可能,-c参数可以统计计算

bedtools intersect -a cpg.bed -b exons.bed -c | head
bedtools intersect -a cpg.bed -b exons.bed -wa -c -f 1| head
awk '$1 == "chr1" && $2 <=788863 && $3 >=789211 {print}' exons.bed
(5) -v 反选未发生重叠事件的A track
bedtools intersect -a cpg.bed -b exons.bed -v | head 
(6) -sorted 排序后更高效
#观察下述两种执行所消耗的时间
time bedtools intersect -a gwas.bed -b hesc.chromHmm.bed > /dev/null
time bedtools intersect -a gwas.bed -b hesc.chromHmm.bed -sorted > /dev/null

#当然也可以对input文件进行预先的sort处理
sort -k1,1 -k2,2n foo.bed > foo.sort.bed
(7) -b 一比多的情况

观察一个A bed文件与多个B bed文件的重叠情况,返回的一个结果里

bedtools intersect -a exons.bed -b cpg.bed gwas.bed hesc.chromHmm.bed -sorted | head
#第6列表示a track与哪一个 b track的重叠情况
bedtools intersect -a exons.bed -b cpg.bed gwas.bed hesc.chromHmm.bed -sorted -wa -wb \
  | head -10000 \
  | tail -10
#把第六列的序号ID换成文件名,更容易观察
bedtools intersect -a exons.bed -b cpg.bed gwas.bed hesc.chromHmm.bed -sorted -wa -wb -names cpg gwas chromhmm \
  | head -10000 \
  | tail -10

3.2 merge

sort -k1,1 -k2,2n foo.bed > foo.sort.bed
merge
(1)基础用法 -i 指明input
head -10 exons.bed
bedtools merge -i exons.bed | head 
3.2-1
(2) -c -o参数统计merge数
bedtools merge -i exons.bed -c 1 -o count | head -6
3.2-2
bedtools merge -i exons.bed -d 90 -c 1,4 -o count,collapse | head -6
3.2-3
(3) -d 放宽合并标准
bedtools merge -i exons.bed -d 1000 -c 1 -o count | head -20
bedtools merge -i exons.bed -c 1 -o count | head -20
3.2-4

3.3 complement

head genome.txt
bedtools complement -i exons.bed -g genome.txt > non-exonic.bed
head exons.bed
head non-exonic.bed

3.4 genomecov

bedtools genomecov -i exons.bed -g genome.txt
#以染色体为单位计算的
bedtools genomecov -i exons.bed -g genome.txt -bg | head -10
3.4

bedtools还有很多其它工具,就不一一整理了。在此次的学习基础上,遇到再看官网的介绍文档吧。

上一篇下一篇

猜你喜欢

热点阅读