生信软件27 - 基于python的基因注释数据查询/检索库mygene

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:continuefwrite.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

更多内容请关注公众号【生信与基因组学】,定期更新生信算法和编程、基因组学、统计学、分子生物学、临床检测和深度学习等内容。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/872760.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

卷积神经网络图像识别车辆类型

卷积神经网络图像识别车辆类型 1、图像 自行车: 汽车: 摩托车: 2、数据集目录 3、流程 1、获取数据,把图像转成矩阵,并随机划分训练集、测试集 2、把标签转为数值,将标签向量转换为二值矩阵 3、图像数据归一化,0-1之间的值 4、构造卷积神经网络 5、设置图像输入…

记录些MySQL题集(8)

ACID原则、事务隔离级别及事务机制原理 一、事务的ACID原则 什么是事务呢?事务通常是由一个或一组SQL组成的,组成一个事务的SQL一般都是一个业务操作,例如聊到的下单:「扣库存数量、增加订单详情记录、插入物流信息」&#xff0…

Qt5.12.2安装教程

文章目录 文章介绍下载连接安装教程 文章介绍 安装Qt5.12.2 下载连接 点击官网下载 安装包下载完毕 安装教程 点开设置,添加临时储存库,复制连接“https://download.qt.io/online/qtsdkrepository/windows_x86/root/qt/” 点击测试&#xff0…

谷歌搜索引擎:知识殿堂与全球网络连通的桥梁

谷歌搜索引擎,其标志性的名称已成为互联网的象征。每次启动电脑,我总会习惯性地在洁白的搜索框内输入疑惑。谷歌如同一位博学多才的朋友,总能迅捷地提供满意解答。其界面设计简约明快,仅有标志性的彩色"Google"字样与搜…

HDFS和ES

HDFS(Hadoop Distributed File System)和 Elasticsearch(ES)是两种不同类型的分布式系统,分别用于存储和搜索数据。它们在设计目标、架构、使用场景等方面有显著的区别。以下是对 HDFS 和 ES 的详细比较: …

孟德尔随机化——混杂SNP剔除之LDlink(1)

1、注册:LDlink | An Interactive Web Tool for Exploring Linkage Disequilibrium in Population Groups 邮箱会收到12个字符串的token,使用时需要提供token 2、包内方法 LDexpress Determine if genomic variants are associated with gene express…

352_C++_管理用户登录计数器的类,其中有定时器m_timer操作,定时修改【登录锁定时间】和【错误次数】

~~ 头文件 #pragma once#include "commonfunction.h" #include <boost/asio/steady_timer.hpp> #include <set> #include

第13章 更多的结构化命令《Linux命令行与Shell脚本编程大全笔记》

13.1 For命令 格式&#xff1a;for var in list;dofor命令默认按照空格、制表符、换行符作为字段分隔符区分单个值&#xff0c;如果某个值含有空格要使用双引号从命令中读取值列表for state in $(cat $file)更改字段分隔符IFS(internal field separator)IFS$\n可能的需求&…

set类和map类介绍和简单使用

目录 set类介绍与简单使用 set类 multiset类 map类介绍与简单使用 map类 multimap类 set类介绍与简单使用 set类是一种关联式容器&#xff0c;在数据检索时比序列式容器效率更高。本质是一个常规的二叉搜索树&#xff0c;但是为了防止出现单支树导致效率下降进行了相关优…

【Linux】将IDEA项目部署到云服务器上,让其成为后台进程(保姆级教学,满满的干货~~)

目录 部署项目到云服务器什么是部署一、 创建MySQL数据库二、 修改idea配置项三、 数据打包四、 部署云服务器五、开放端口号六 、 验证程序 部署项目到云服务器 什么是部署 ⼯作中涉及到的"环境" 开发环境:开发⼈员写代码⽤的机器.测试环境:测试⼈员测试程序使⽤…

SQL面试题-留存率计算

表定义&#xff1a; create table if not exists liuliang_detail (user_id string comment ,record_time string comment yyyymmdd hh:mi:ss ) comment 流量明细表 ; 方法一&#xff1a; 计算的是整段时间范围内&#xff0c;每一天为基准的所有的留存1、2、7天的用户数。 …

WEB前端05-JavaScrip基本对象

JavaScript对象 1.Function对象 函数的创建 //方法一&#xff1a;自定义函数 function 函数名([参数]) {函数体[return 表达式] }//方法二&#xff1a;匿名函数 (function([参数]) {函数体[return 表达式] }); **使用场景一&#xff1a;定义后直接调用使用(只使用一次) (fun…

GitHub每日最火火火项目(7.17)

项目名称&#xff1a;aider 项目介绍&#xff1a;aider 是一个在终端中实现 AI 结对编程的项目。它能够为开发者提供智能的编程辅助&#xff0c;帮助开发者更高效地完成编程任务。通过与 AI 的协作&#xff0c;开发者可以获得实时的代码建议、错误修复提示等&#xff0c;从而提…

成为git砖家(1): author 和 committer 的区别

大家好&#xff0c;我是白鱼。一直对 git author 和 committer 不太了解&#xff0c; 今天通过 cherry-pick 的例子搞清楚了区别。 原理 例如我克隆了著名开源项目 spdlog 的源码&#xff0c; 根据某个历史 commit A 创建了分支&#xff0c; 然后 cherry-pick 了这个 commit …

《系统架构设计师教程(第2版)》第11章-未来信息综合技术-06-云计算(Cloud Computing) 技术概述

文章目录 1. 相关概念2. 云计算的服务方式2.1 软件即服务 (SaaS)2.2 平台即服务 (PaaS)2.3 基础设施即服务 (IaaS)2.4 三种服务方式的分析2.4.1 在灵活性2.4.2 方便性方 3. 云计算的部署模式3.1 公有云3.2 社区云3.3 私有云3.4 混合云 4. 云计算的发展历程4.1 虚拟化技术4.2 分…

重塑政府服务:互联网软件与政府系统的创新融合

在数字化转型的浪潮中&#xff0c;政府服务正经历着前所未有的变革。互联网软件的快速发展为政府系统带来了前所未有的机遇&#xff0c;两者之间的创新融合正逐步重塑政府服务的面貌&#xff0c;使公共服务更加高效、便捷、个性化。 一、技术赋能&#xff0c;提升服务效率 互…

python课设——宾馆管理系统

python课设——宾馆管理系统 数据库课设-宾馆管理系统-python3.7pyqt5 简介 大二数据库课程设计&#xff08;3-4天工作量&#xff09;的项目&#xff0c;登录界面的ui设计参考了他人成果&#xff0c;其余ui以及所有后端部分全部独立完成&#xff0c;详细功能见功能模块图使用…

防火墙NAT地址转换和智能选举综合实验

一、实验拓扑 目录 一、实验拓扑 二、实验要求&#xff08;接上一个实验要求后&#xff09; 三、实验步骤 3.1办公区设备可以通过电信链路和移动链路上网(多对多的NAT&#xff0c;并且需要保留一个公网IP不能用来转换) 3.2分公司设备可以通过总公司的移动链路和电信链路访…

简单爬虫案例

准备工作&#xff1a; 1. 安装好python3 最低为3.6以上&#xff0c; 并成功运行pyhthon3 程序 2. 了解python 多进程原理 3. 了解 python HTTP 请求库 requests 的基本使用 4. 了解正则表达式的用法和python 中 re 库的基本使用 爬取目标 目标网站&#xff1a; https://…

scrapy框架爬取豆瓣top250电影排行榜(下)

&#xff08;3&#xff09;在 pipeline.py 文件中对数据进行存储&#xff0c;此程序先写 入 txt 文件中&#xff0c;是为了判断该程序是否能正确爬取出数据。 此处使用了 json 库&#xff0c;使用 ensure_ascii False&#xff0c;能够确 保非 ASCII 字符&#xff08;如中文&am…