Python解析psiBlast输出的JSON文件结果
什么是JSON文件
JSON文件是一种轻量级的数据存储和交换格式,其实质是字典和列表的组合。这在定义生信分析流程的参数文件中具有很好的应用。
{
"公众号": {
"名字": "生信宝典",
"宗旨": "为生信服务",
"正确地打开方式": [
"阅读",
"置顶",
"转发"
]
}
}
在Python中解析JSON是通过如下代码完成的
import json
file_fh = open("test2.json")
ajsonD = json.load(file_fh)
ajsonD
{'公众号': {'宗旨': '为生信服务', '正确地打开方式': ['阅读', '置顶', '转发'], '名字': '生信宝典'}}
ajsonD['公众号']['名字']
'生信宝典'
什么是PSIBLAST
PSI-BLAST位置特异的迭代搜索工具,输入为位置得分矩阵或多序列比对图谱,搜索匹配到的序列会更新到搜索信息中进行进一步搜索,直到没有新的序列搜索到,常用于发现远同源基因。 (Position-Specific Iterative Basic Local Alignment Search Tool) derives a position-specific scoring matrix (PSSM) or profile from the multiple sequence alignment of sequences detected above a given score threshold using protein–protein BLAST. This PSSM is used to further search the database for new matches, and is updated for subsequent iterations with these newly detected sequences. Thus, PSI-BLAST provides a means of detecting distant relationships between proteins.
著名的TET
家族蛋白(哺乳动物主动去甲基化酶, 美国科学院院士Anjana Rao), NgAgo
(具体功能存疑,韩主席的工作),Cas
家族蛋白(序列分析大牛Eugene V. Koonin的工作)都是通过PSI-BLAST
搜索出来的, 可见其强大。
Python解析PSIBLAST的JSON输出结果
BLAST的输出结果可以有多种,在线的配对比较结果,线下常用的表格输出,这次尝试的是JSON的输出,运行命令如下
psiblast -db nr -out Known_CPS.CUI.mfa.psiblast -evalue 0.0001 -outfmt 13 -num_threads 10 -num_iterations 0 -in_msa Known_CPS.CUI.mfa
这次编程的目的是通过解析输出的JSON结果获取匹配的蛋白的名字和序列,JSON文件解析的关键是知道关注的信息在哪个关键字下可以找到,然后需要怎么操作进入到关键字所在数据层,具体操作见如下视频,视频中一步步尝试如何不断试错,解析JSON文件,获得想要的Python脚本和解析结果。
视频:https://v.qq.com/iframe/player.html?vid=p0542g1puwt&width=640&height=360&auto=0
- python在租房过程中的应用
- python爬虫反爬取---设置IP代理自动变换requests.get()中proxy的IP
- 【译】TensorFlow实现Batch Normalization
- 关于Python语言规范你需要知道的一些小tips
- R语言可视化——REmap(路径图)
- python面向对象
- 字符串hash入门
- R语言数据处理——数据合并与追加
- python爬取链家租房之获取房屋页面的详细信息(房名,地址,房价,面积,url)
- 信用卡“坏账”客户分析(二)
- Mac上提升python运算速度-PyPy初体验
- python处理json数据(复杂的json转化成嵌套字典并处理)
- Pointer-network理论及tensorflow实战
- python3 log文件处理获取某天需要的数据
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 前端性能优化 24 条建议(2020)
- 【Flutter 实战】大量复杂数据持久化
- GBDT+LR:Practical Lessons from Predicting Clicks on Ads
- 告别setState()! 优雅的UI与Model绑定 Flutter DataBus使用~
- k8s etcd 的实现原理
- iOS动态View的探索
- 安卓开发的瑞士军刀“Retrofit2框架”
- R语言中的广义线性模型(GLM)和广义相加模型(GAM):多元(平滑)回归分析保险资金投资组合信用风险敞口
- 来玩 TencentOS tiny 物联网终端操作系统
- LeetCode | 66.加一
- PNN:Product-based Neural Networks for User Response Prediction
- Redis | Redis Pub/Sub相关命令
- nginx upstream header过大是啥情况
- 8个写JavaScript代码的小技巧
- .NET Core中间件与依赖注入的一些思考