bioerl 获取gi号

本文介绍了一个使用BioPerl中的Bio::DB::EUtilities模块来批量获取多个蛋白质GI号的方法。通过设置相应的参数,如数据库类型为'protein'、返回类型为'gi'等,可以从NCBI检索并打印出指定蛋白质ID对应的GI号。

代码示例:

use Bio::DB::EUtilities;

my @ids = qw(CAB02640 EAS10332 YP_250808 NP_623143 P41007);

my $factory = Bio::DB::EUtilities->new(-eutil => 'efetch',
                                       -db      => 'protein',
                                       -id      => \@ids,
                                       -email   => 'mymail@foo.bar',
                                       -rettype => 'gi');

my @gis = split(m{\n},$factory->get_Response->content);

print join(',',@gis), "\n";

参考资料:

    http://bioperl.org/howtos/EUtilities_Cookbook_HOWTO.html

 

### 将NCBI GI转换为基因符的方法 为了将GI转换成基因符(Gene Symbol),可以利用NCBI提供的`gene_info.gz`文件,该文件包含了丰富的基因信息,其中包括基因名称(Symbol)、所在染色体编等内容[^1]。此过程可以通过编程批量处理来提高效率。 一种常见的方式是从`gene_info.gz`下载并解析这个压缩后的制表符分隔文本文件,从中查找对应的GI及其关联的Gene Symbol。下面是一个Python脚本的例子,用于读取本地存储的`gene_info.gz`文件,并基于给定的GI列表获取相应的Gene Symbols: ```python import gzip from collections import defaultdict def load_gene_map(file_path): gene_mapping = {} with gzip.open(file_path, 'rt') as f: next(f) # 跳过标题行 for line in f: fields = line.strip().split("\t") tax_id = fields[0] gene_id = fields[1] symbol = fields[2] synonyms = fields[4].split("|") if fields[4] != "-" else [] other_designations = fields[-1].split("|") if fields[-1] != "-" else [] all_names = set([symbol] + synonyms + other_designations) for name in all_names: gene_mapping[name.upper()] = { "tax_id": tax_id, "gene_id": gene_id, "symbol": symbol } return gene_mapping def gi_to_symbol(gene_mapping, gis): result_symbols = [] for gi in gis: entry = gene_mapping.get(str(gi).upper()) if entry is not None: result_symbols.append(entry["symbol"]) else: result_symbols.append(None) return result_symbols # 假设已经有一个名为'gene_info.gz'的文件位于当前目录下 file_path = './gene_info.gz' gis_of_interest = ['8755', '9373'] # 这里放置想要查询的具体GI码 mapping_dict = load_gene_map(file_path) symbols = gi_to_symbol(mapping_dict, gis_of_interest) for i, sym in enumerate(symbols): print(f"GI {gis_of_interest[i]} 对应的 Gene Symbol 是 '{sym}'") ``` 上述代码片段展示了如何加载`gene_info.gz`中的数据以及怎样通过匹配GI找到其对应的Gene Symbol。需要注意的是,在实际应用中可能还需要考虑物种分类ID(Taxonomy ID),因为同一个GI在不同物种间可能会有不同的映射关系。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值