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脚本和解析结果。

CHENTONG
版权声明:本文为博主原创文章,转载请注明出处。
alipay.png WeChatPay.png

CHENTONG

CHENTONG
积微,月不胜日,时不胜月,岁不胜时。凡人好敖慢小事,大事至,然后兴之务之。如是,则常不胜夫敦比于小事者矣!何也?小事之至也数,其悬日也博,其为积也大。大事之至也希,其悬日也浅,其为积也小。故善日者王,善时者霸,补漏者危,大荒者亡!故,王者敬日,霸者敬时,仅存之国危而后戚之。亡国至亡而后知亡,至死而后知死,亡国之祸败,不可胜悔也。霸者之善著也,可以时托也。王者之功名,不可胜日志也。财物货宝以大为重,政教功名者反是,能积微者速成。诗曰:德如毛,民鲜能克举之。此之谓也。

生信宝典文章集锦

生信的作用越来越大,想学的人越来越多,不管是为了以后发展,还是为了解决眼下的问题。但生信学习不是一朝一夕就可以完成的事情,也许你可以很短时间学会一个交互式软件的操作,却不能看完程序教学视频后就直接写程序。也许你可以跟着一个测序分析流程完成操作,但不懂得背后的原理,不知道什么...… Continue reading

狗年话狗,也话GO

Published on February 20, 2018

network3D 交互式网络生成

Published on February 18, 2018