-
Notifications
You must be signed in to change notification settings - Fork 2
QA_zh
欢迎来到问答页,希望能解决您的问题!
尝试使用patpat.checker
模块。以PRIDE数据库为例,使用patpat.checker.PrideChecker
类:
from patpat import checker
c = checker.PrideChecker()
m = c.check()
如果 Patpat 与 PRIDE 数据库连接正常,则会返回patpat.mapper.PrideMapper()
,否则返回None
。
hub
模块中的CheckHub
类,整合了Patpat支持的checker.<databse>Checker
:
from patpat import hub
c = hub.CheckerHub()
t = c.check()
同上,hub.CheckerHub().check()
将返回一个列表,包含与 Patpat 连接正常的数据库Mapper
。
不难看出,Checker
类的设计也遵循工厂模式。
Patpat作为数据集搜索框架,输出的是数据集元数据。
在快速上手-通过 MapperHub 搜索数据集的末尾
我们提到Patpat的搜索结果被保存在patpat_envs/result/<task_uuid>
中,但描述的并不是很详细,在此和我们的用户说一声抱歉!
以下是Patpat的输出文件结构:
patpat_env/
|-- result/
|-- <task_uuid>
|-- result.tsv
|-- result.json
可见,Patpat是以.json
和.tsv
格式作为输出。大家肯定不会满足这个答案,接下来我将详细介绍这两个文件包含什么信息。
简单来说,result.tsv
的内容是result.json
的子集,是由result.json
再格式化而来的,方便用户直接进行查看和筛选的文件。
result.tsv
中每一行保存着一个项目结果三个的信息:标题、摘要、网址。其中,用户可通过网址直接访问该项目在公开数据库中的页面。
.tsv
是以表格结构储存数据的文本格式文件,详情请见 WiKi,
大多数表格编辑软件都提供支持,如Microsoft Excel等。
.json
是“属性-值”结构的文件,很容易字符串化,详情请见 WiKi。
result.json
中的"<Database name>"
是由用户选择的Mapper
类决定的,换句话说,搜索几个数据库就有几个数据库结果,很直观对吧~
另外,对于各个项目的属性则是由所属数据库决定的,信息丰度并不由Patpat保证。但是,有几个属性则是Patpat构建的:
-
summary
:项目摘要 -
website
:项目网址 -
protein
:蛋白质水平搜索数据库获得的映射 -
peptides
:肽段水平搜索数据库获得的映射
result.json
的内容结构如下:
{
"<Database name>":
{"<Project id>":
{"attr1": "value1",
"attr2": "value2",
...
"attrN": "valueN",
}
"<Project id>":
{
...
}
...
}
"<Database name>":
{"<Project id>":
...
}
...
},
有点抽象!让我们看一个例子:
{"iProX":
{"PXD006512":
{"title": "Proteomics identifies new therapeutic targets of early-stage hepatocellular carcinoma".
"summary": "Hepatocellular carcinoma (HCC) accounts for approximately 90% of primary liver cancers, the...
...
}
...
}
...
}
有点晕!该怎么使用result.json
呢?Patpat提供内建函数:
import os
from patpat import utility
os.chdir(os.path.dirname('~/patpat_envs')) # choose the run directory as the parent directory of Patpat_envs
uuid = '<uuid>'
t = utility.get_result_from_file(task=uuid)
print(t)