Python解析psiBlast输出的JSON文件结果

时间:2022-04-26
本文章向大家介绍Python解析psiBlast输出的JSON文件结果,主要内容包括什么是JSON文件、什么是PSIBLAST、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