生信软件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…

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

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

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

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

SQL面试题-留存率计算

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

WEB前端05-JavaScrip基本对象

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

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

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

python课设——宾馆管理系统

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

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

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

简单爬虫案例

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

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

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

贪心算法(2024/7/16)

1合并区间 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。 示例 1: 输入:inter…

SpringCloud网关的实现原理与使用指南

Spring Cloud网关是一个基于Spring Cloud的微服务网关,它是一个独立的项目,可以对外提供API接口服务,负责请求的转发和路由。本文将介绍Spring Cloud网关的实现原理和使用指南。 一、Spring Cloud网关的实现原理 Spring Cloud网关基于Spring…

5.操作led

模版使用之前的hello驱动程序。 想要操作led,首先要找到原理图,查找GPIO对应的GPIO引脚 从图中能看出来LED2对应的GPIO是GPIO5_3,同时可以得知这个LED2是低电平点亮。查看cat /sys/kernel/debug/gpio可得知GPIO5_3(第四组GPIO的第…

【深度学习入门篇 ⑧】关于卷积神经网络

【🍊易编橙:一个帮助编程小伙伴少走弯路的终身成长社群🍊】 大家好,我是小森( ﹡ˆoˆ﹡ ) ! 易编橙终身成长社群创始团队嘉宾,橙似锦计划领衔成员、阿里云专家博主、腾讯云内容共创官…

Python和C++骨髓细胞进化解析数学模型

🎯要点 🎯 数学模型邻接矩阵及其相关的转移概率 | 🎯蒙特卡罗模拟进化动力学 | 🎯细胞进化交叉图族概率 | 🎯进化图模型及其数学因子 | 🎯混合图模式对进化概率的影响 | 🎯造血干细胞群体的空间…

汇总国内镜像提供了Redis的下载地址

文章目录 1. 清华大学开源软件镜像站:2. 中国科技大学开源软件镜像:3. 阿里云镜像:4. 华为云镜像:5. 腾讯云镜像:6. 网易开源镜像站7. 官方GitHub仓库(虽然不是镜像,但也是一个可靠的下载源&…

AI算法19-偏最小二乘法回归算法Partial Least Squares Regression | PLS

偏最小二乘法回归算法简介 算法概述 偏最小二乘法模型可分为偏最小二乘回归模型和偏最小二乘路径模型。其中偏最小二乘回归模型是一种新型的多元统计方法,它集中了主成分分析、典型相关分析和线性回归的特点,特别在解决回归中的共线性问题具有无可比拟…