bedtools | 筛选重合区间 注释bed区间

bedtools | 筛选重合区间 注释bed区间


前言

通常我们手里有一个bed区间的范围,但只看这个没有什么概念,所以,要对这个bed区间进行注释,看看都是什么基因。


1、对文件格式进行调整

首先我们需要下载一个RefGene的文件,里面包含转录本及外显子等诸多信息。

anno_file = 'gs.anno' # ucsc 下载的refgene文件
bed_file = '44.bed' # 目标bed区间 我的是4列,但只用里前三列
target_gene_file = '44_gene_list.txt' # 想要保留的基因名称
out_file = 'gs.anno.tx' # 结果文件  4 列

with open(target_gene_file) as f_gene:
    target_gene_list = f_gene.read().strip().split('\n')
with open(anno_file) as f_anno:
    anno_list = [i.split('\t') for i in  f_anno.read().strip().split('\n')]
    
# 筛选所需要的的基因位置
tx_list = []
for line_anno_list in anno_list:
    if line_anno_list[-1] in target_gene_list:
        tx_list.append(line_anno_list[:3] + line_anno_list[-1:])
# 写出筛选后的 bed&gene 对应文件
with open(out_file, 'w') as f_out:
    for out_line_list in tx_list:
        f_out.write('\t'.join(out_line_list) + '\n')

调整后的格式样式:
在这里插入图片描述

2.bedtools 进行注释

代码如下(示例):

bedtools intersect -a 44.bed -b gs.anno.tx -loj > out_file_loj
awk -v OFS="\t" "{print $1,$2,$3,$8}" out_file_loj | uniq > out_file_loj_uniq
bedtools groupby -i out_file_loj_uniq -g 1,2,3 -c 4 -o collapse > out_file_loj_uniq_collapse

结果样式:
在这里插入图片描述

总结

RefGene下载地址:http://genome.ucsc.edu/cgi-bin/hgTables

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值