pyensemble注释基因名称

1、什么是pyensembl包

  一个conda安装包,安装时已下载hg19、hg38基因组。通过输入染色体chr、基因组位置pos即可返回基因名称(可能会返回0、1或多个基因名),适用于批量非精确查询;

  更详细的信息可以到官网查阅,比如获取基因的所有外显子、转录本的基因名等。

2、安装pyensembl

# (1) 安装pyensembl包
conda install pyensembl

# (2) 下载ensembl数据
    # 75是hg19, 76是hg38, 下载很慢,hg19越需1h,供参考
pyensembl install --release 75 76 --species human 

3、使用pyensembl

import argparse
from pyensembl import EnsemblRelease

data = EnsemblRelease(75)
# chr_num、start_pos为int类型
gene_names_list = data.gene_names_at_locus(contig=chr_num, position=start_pos)

尤其是针对bed文件,非常有用,示例如下图:
在这里插入图片描述

import argparse
from pyensembl import EnsemblRelease

data = EnsemblRelease(75)

parser = argparse.ArgumentParser()
parser.add_argument('-i', "--input_file", required=True)
args = parser.parse_args()
input_file = args.input_file

output_file = "anno_" + str(input_file).split('/')[-1]
ff = open(output_file, 'w')

with open(input_file, 'r') as f:
    for i in f.readlines():
        if i.startswith('Chr'):
            ff.write(i.strip() + "\tstart_gene_names" + "\tend_gene_names\n")
            continue
        temp_list = i.strip().split('\t')
        chr_num = int(temp_list[0].replace('chr', ''))
        start_pos = int(temp_list[1])
        end_pos = int(temp_list[2])

        start_gene_names_list = data.gene_names_at_locus(contig=chr_num, position=start_pos)
        if len(start_gene_names_list) == 1:
            start_gene_names = start_gene_names_list[0]
        elif len(start_gene_names_list) == 0:
            start_gene_names = "XXX"
        else:
            print(start_gene_names_list, i.strip(), "起始位置有多个基因名称,请核查!")
            start_gene_names = "_".join(start_gene_names_list)

        end_gene_names_list = data.gene_names_at_locus(contig=chr_num, position=end_pos)
        if len(end_gene_names_list) == 1:
            end_gene_names = end_gene_names_list[0]
        elif len(end_gene_names_list) == 0:
            end_gene_names = "XXX"
        else:
            end_gene_names = "_".join(end_gene_names_list)

        new_str = i.strip() + "\t" + start_gene_names + "\t" + end_gene_names
        ff.write(new_str + "\n")

ff.close()

该包很强大,目前用到的功能极少,后续随着使用会更新。

参考文件

1、本地使用Python通过染色体id+位置查询基因名列表

2、python pyensembl:基因组位置注释到基因组特征(基因,转录本,外显子)

3、pyensembl包官网

4、GitHub - pyensembl

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值