-
Notifications
You must be signed in to change notification settings - Fork 2
Can I search without going through the Hub_zh
当然可以!~
Hub模块是patpat的核心模块,用户可以通过本模块中的类将patpat的其他类聚合在一起使用。 QueryHub类提供对蛋白质元数据的查询和需要检索肽段的生成功能,MapperHub类则提供多蛋白质组数据库合并检索和检索断点续传的功能。 其次,这两个类都是可拔插的,因此只要开发者遵守接口设计,很容易将自建的方法或类插入其中。
典型用法示例:
from patpat import hub
from patpat import mapper
from patpat import utility
utility.init()
identifier_ = 'P05067'
q = hub.QueryHub()
q.identifier = identifier_
q.simple_query()
m = hub.MapperHub(config=q.get_query_config(),
mappers=[mapper.PrideMapper(), mapper.IProXMapper()],
task=None
# task=[your task's uuid]
)
m.mapping()
result_ = m.export()
上述 Hub 模块的经典用法与快速上手中介绍的一致, 如果没有理解,请回去看看吧~
Retriever模块的类使用了三层继承。首先,所有的子类都需要继承Retriever基类(1),其次,根据要针对的数据库,需要为该数据库创建一个基类(2), 最后,从该数据库收集指定数据的子类(3)需要继承该数据库的基类。例如,PRIDE数据库的基类名为GenericPrideRetriever(2), 它继承了Retriever基类(1),从PRIDE收集蛋白质信息的子类名为PrideProteinRetriever(3)
典型用法示例:
from patpat import logger
from patpat import retriever
# Logger module for testing, with console output available through TestLogger when using other modules alone
l = logger.TestLogger()
r = retriever.PrideProteinRetriever()
r.request_word = "Q9CWY9"
r.get_payloads_on_web()
r.payloads["pageSize"] = 200 # Optional: The parameters can be modified
r.retrieve()
output = r.response
from patpat import logger
from patpat import retriever
# Logger module for testing, with console output available through TestLogger when using other modules alone
l = logger.TestLogger()
r = retriever.PridePeptideRetriever()
r.request_word = 'TCVADESAENCDK'
r.get_payloads_on_web()
r.retrieve()
output = r.response
from patpat import retriever
r = retriever.IProXProjectRetriever()
r.request_word = 'PXD006512'
r.retrieve()
output = r.response
不难看出,自动化获取信息的关键有两个:
- 获取需要查询的肽段序列和数据集编号(Querier模块)
- 流程化调用retriever类(Mapper模块)
接下来,让我们看看Mapper模块该怎么用!
Mapper模块根据面向数据库的不同构建不同的类,每个类自行调用对应的retriever实现搜索。通过protein/peptide retriever实现蛋白质/肽段水平的检索, 在通过project retriever实现蛋白质对项目的映射。此外,每个类也需要实现其他功能:
- 过滤功能,以去除错误的映射;
- 导出功能,结构化检索结果,以供下游模块调用。
典型用法示例:
from patpat import hub
from patpat import mapper
from patpat import utility
utility.init()
utility.initiate_uniprot_proteome_catalog()
identifier = 'E9PV96'
q = hub.QueryHub()
q.identifier = identifier
q.simple_query()
conf = q.get_query_config()
m = mapper.PrideMapper()
# Add configs
m._identifier = conf['identifier']
m._peptides = conf['peptides']
m._organism = conf['organism']
m.mapping()
m.filtering()
output = m.export()
完成映射所需要的配置信息有蛋白质的元数据和需要检索的肽段序列。 必要的蛋白质元数据有:蛋白质识别符、蛋白质所属物种或组织、蛋白质序列,其中蛋白质序列用于产生需要检索的肽段序列。
典型用法示例:
from patpat import querier
p1 = querier.UniProtProteinQuerier()
p1.identifier = 'E9PV96'
p1.query()
_, organism_, fasta_ = p1.get_properties()
p2 = querier.LocalPeptideQuerier()
p2.set_params(sequence=fasta_['sequence'],
organism=organism_)
p2.query()
digestion_params_, source_, filtered_peptides_ = p2.get_properties()
CoreLogger用于生成日志和搜索临时文件,建议配合hub.py和viewer.py使用。
典型用法示例:
from patpat import logger
uuid = ''
l = logger.CoreLogger(uuid)
l.set_core()
l.set_tmp()
典型用法示例:
from patpat import checker
from patpat import retriever
c = checker.Checker()
c.peptide_retrievers = [
retriever.PridePeptideRetriever(),
retriever.IProXPeptideRetriever()
]
c.check()
意犹未尽吗?开始了解如何扩展 Patpat 吧!