1. mygene库简介
MyGene.info提供简单易用的REST Web服务来查询/检索基因注释数据,具有以下特点:
mygene技术文档: https://docs.mygene.info/en/latest/
多物种支持: 包括人、小鼠、大鼠、斑马鱼等多个模式生物;
多数据源聚合: 聚合了来自NCBI、Ensembl、UniProt等多个主流数据库的数据;
灵活的查询: 支持多种类型的基因标识符;
批量操作: 支持批量获取和注释,提高工作效率;
多语言支持: 除了Python,还有R和其他语言的支持;
2. mygene库安装
# pip安装
pip install mygene
3. 基因名称查询注释
import mygene
mg = mygene.MyGeneInfo()
# 返回数据格式为字典
gene_info = mg.query('BRCA1', species='human')
print(gene_info)
# {'took': 28, 'total': 62, 'max_score': 90.18249, 'hits': [{'_id': '672', '_score': 90.18249, 'entrezgene': '672', 'name': 'BRCA1 DNA repair associated', 'symbol': 'BRCA1', 'taxid': 9606}, {'_id': '8315', '_score': 59.70592, 'entrezgene': '8315', 'name': 'BRCA1 associated protein', 'symbol': 'BRAP', 'taxid': 9606}, {'_id': '111589215', '_score': 59.70592, 'entrezgene': '111589215', 'name': 'BRCA1 promoter region', 'symbol': 'LOC111589215', 'taxid': 9606}, {'_id': '110485084', '_score': 53.584255, 'entrezgene': '110485084', 'name': 'BRCA1 intronic recombination region', 'symbol': 'LOC110485084', 'taxid': 9606}, {'_id': '8314', '_score': 53.584255, 'entrezgene': '8314', 'name': 'BRCA1 associated protein 1', 'symbol': 'BAP1', 'taxid': 9606}, {'_id': '83990', '_score': 53.584255, 'entrezgene': '83990', 'name': 'BRCA1 interacting helicase 1', 'symbol': 'BRIP1', 'taxid': 9606}, {'_id': '10230', '_score': 48.601166, 'entrezgene': '10230', 'name': 'neighbor of BRCA1 lncRNA 2', 'symbol': 'NBR2', 'taxid': 9606}, {'_id': '111589216', '_score': 48.601166, 'entrezgene': '111589216', 'name': 'BRCA1 intron 2 regulatory region', 'symbol': 'LOC111589216', 'taxid': 9606}, {'_id': '221927', '_score': 48.601166, 'entrezgene': '221927', 'name': 'BRCA1 associated ATM activator 1', 'symbol': 'BRAT1', 'taxid': 9606}, {'_id': '580', '_score': 48.601166, 'entrezgene': '580', 'name': 'BRCA1 associated RING domain 1', 'symbol': 'BARD1', 'taxid': 9606}]}
3.1 基因名称查询注释结果写入文本
# 将结果写入文本
fwrite = open('gene_info.txt', 'w')
# 写入头标志符
write_header = True
list_header = []
for key, value in gene_info.items():
# 如果value为列表
if isinstance(value, list):
for hits in value:
# 写入表头
if write_header:
for _key, _value in hits.items():
list_header.append(f"{_key}".replace('_', ''))
fwrite.write('\t'.join(list_header) + '\n')
write_header = False
# 写入hits数据
list_context = []
for _key, _value in hits.items():
list_context.append(f"{_value}".replace(' ', '_'))
fwrite.write('\t'.join(list_context) + '\n')
else:
continue
fwrite.close()
文本结果如下:
4. 基因ID查询
# 返回列表
query_result = mg.querymany(['10001', '10002', '10003'],
scopes='entrezgene', fields='ensembl.gene', species='human')
print(query_result)
# [{'query': '10001', '_id': '10001', '_score': 26.990025, 'ensembl': {'gene': 'ENSG00000133997'}}, {'query': '10002', '_id': '10002', '_score': 26.989716, 'ensembl': {'gene': 'ENSG00000278570'}}, {'query': '10003', '_id': '10003', '_score': 26.992018, 'ensembl': [{'gene': 'ENSG00000077616'}, {'gene': 'ENSG00000285516'}]}]
4.1 写入基因ID查询结果写入文本
# 将结果写入文本
fwrite = open('querymany_result.txt', 'w')
# 写入头标志符
write_header = True
list_header = []
for index, result in enumerate(query_result):
if write_header:
for _key, _value in result.items():
list_header.append(f"{_key}".replace('_',''))
fwrite.write('\t'.join(list_header) + '\n')
write_header = False
# 写入查询结果
list_context = []
for _key, _value in result.items():
# 判断_value数据类型,对列表和字典单独处理
if isinstance(_value, list):
list_values = []
for __value in _value:
list_values.append(__value.get('gene', ''))
list_context.append(";".join(list_values))
elif isinstance(_value, dict):
list_context.append(";".join(list(_value.values())))
else:
list_context.append(f"{_value}")
fwrite.write('\t'.join(list_context) + '\n')
fwrite.close()
文本结果如下:
生信软件文章推荐
生信软件1 - 测序下机文件比对结果可视化工具 visNano
生信软件2 - 下游比对数据的统计工具 picard
生信软件3 - mapping比对bam文件质量评估工具 qualimap
生信软件4 - 拷贝数变异CNV分析软件 WisecondorX
生信软件5 - RIdeogram包绘制染色体密度图
生信软件6 - bcftools查找指定区域的变异位点信息
生信软件7 - 多线程并行运行Linux效率工具Parallel
生信软件8 - bedtools进行窗口划分、窗口GC含量、窗口测序深度和窗口SNP统计
生信软件9 - 多公共数据库数据下载软件Kingfisher
生信软件10 - DNA/RNA/蛋白多序列比对图R包ggmsa
生信软件11 - 基于ACMG的CNV注释工具ClassifyCNV
生信软件12 - 基于Symbol和ENTREZID查询基因注释的R包(easyConvert )
生信软件13 - 基于sambamba 窗口reads计数和平均覆盖度统计
生信软件14 - bcftools提取和注释VCF文件关键信息
生信软件15 - 生信NGS数据分析强大的工具集ngs-bits
生信软件16 - 常规探针设计软件mrbait
生信软件17 - 基于fasta文件的捕获探针设计工具catch
生信软件18 - 基于docker部署Web版 Visual Studio Code
生信软件19 - vcftools高级用法技巧合辑
生信软件20 - seqkit+awk+sed+grep高级用法技巧合辑
生信软件21 - 多线程拆分NCBI-SRA文件工具pfastq-dump
生信软件22 - 测序数据5‘和3‘端reads修剪工具sickle
生信软件23 - Samtools和GATK去除PCR重复方法汇总
生信软件24 - 查询物种分类学信息和下载基因组TaxonKit和ncbi-genome-download
生信软件25 - 三代测序数据灵敏比对工具ngmlr
生信软件26 - BWA-MEM比对算法性能更好的bwa-mem2