Импорт нужных модулей
!pip install nglview --user
import nglview as nv
import requests
import json
Запрос:
que = {
"query": {
"type":"group",
"logical_operator":"and",
"nodes":[]
},
"return_type":"entry"
}
keyword_clause = {
"type":"terminal",
"service":"full_text",
"parameters":{
"value":"pantothenic acid"
}
}
que["query"]["nodes"].append(keyword_clause)
resolution_clause = {
"type":"terminal",
"service":"text",
"parameters": {
"value":2.4,
"attribute":"rcsb_entry_info.resolution_combined",
"operator":"less_or_equal"
}
}
que["query"]["nodes"].append(resolution_clause)
has_ligand_clause = {
"type":"terminal",
"service":"text",
"parameters": {
"attribute":"rcsb_entry_info.nonpolymer_entity_count",
"value":0,
"operator":"greater"
}
}
que["query"]["nodes"].append(has_ligand_clause)
date_range_clause = {
"type":"terminal",
"service":"text",
"parameters":{
"attribute":"rcsb_accession_info.initial_release_date",
"value":{
"from":"2005-01-01",
"to":"2010-01-01",
},
"operator":"range"
}
}
que["query"]["nodes"].append(date_range_clause)
rcsb = 'https://search.rcsb.org/rcsbsearch/v1/query'
json_query= json.dumps(que)
search = requests.post(f'{rcsb}', data=json_query)
search_result = search.json()
best_hit = search_result["result_set"][0]
Из полученных результатов лучший получился данный:
{'identifier': '3BEX',
'score': 0.9995449461076253,
'services': [{'nodes': [{'node_id': 2230,
'norm_score': 0.9981797844305015,
'original_score': 15.221461296081543}],
'service_type': 'full_text'},
{'nodes': [{'node_id': 13783, 'norm_score': 1.0, 'original_score': 1.0},
{'node_id': 10780, 'norm_score': 1.0, 'original_score': 1.0},
{'node_id': 25995, 'norm_score': 1.0, 'original_score': 1.0}],
'service_type': 'text'}]}
Найденный белок - пантотенаткиназа (panthotenate kinase) третьего типа. PanK (пантотенаткиназы в целом) катализируют самую первую ступень реакции синтеза кофермента А. Данный белок был получен из Thermotoga maritima. Данный тип отличается от полученных ранее первого и второго (бактериального и преимещуственно эукариотического вариантов, соответственно). Авторы статьи отмечают, что использование данного белка для синтеза аналогов кофермента А в качестве антиметаболитов не является эффективным, поскольку PanK-III имеет необычно высокое значение константы Михаэлиса при связи с АТФ, что требуется для протекания реакции и плохо ингибируется продуктами катализа (feedback inhibition).
repr_1 = [
{
"type": "cartoon",
"params": {
"sele":"all",
"color":"sstruc"
}
},
{
"type":"line",
"params":{
"sele":"sidechainAttached",
"color":"element"
}
},
{
"type":"licorice",
"params": {
"sele":"sidechainAttached and aromatic",
"color":"element"
}
},
{
"type":"spacefill",
"params":{
"sele":"ligand",
"color":"hydrophobicity"
}
}
]
view = nv.show_pdbid("3bex", default_representation=False)
view.set_representations(repr_1)
view.center()
view
repr_2 = [
{
"type":"tube",
"params": {
"sele":"all",
"color":"sstruc"
}
},
{
"type":"licorice",
"params": {
"sele":"sidechainAttached",
"color":"hydrophobicity"
}
},
{
"type":"line",
"params":{
"sele":"ligand",
"color":"element"
}
},
{
"type":"spacefill",
"params": {
"sele":"water or ion"
}
}
]
view = nv.show_pdbid("3bex", default_representation=False)
view.set_representations(repr_2)
view.center()
view
repr_3 = [
{
"type":"surface",
"params":{
"sele":"all",
"color":"white",
"opacity":0.1
}
},
{
"type":"cartoon",
"params":{
"sele":"protein",
"color":"#A9A9A9"
}
},
{
"type":"licorice",
"params":{
"sele":"sidechainAttached",
"color":"hydrophobicity"
}
},
{
"type":"spacefill",
"params":{
"sele":"ligand",
"color":"element"
}
}
]
view = nv.show_pdbid("3bex", default_representation=False)
view.set_representations(repr_3)
view.center()
view