#Подключаем необходимые модули
!pip install nglview --user
import nglview as nv
import requests # Этот стандартный модуль позволяет посылать запросы к веб-ресурсам
import json
#Формируем запрос
my_query = {
"query": {
"type": "group",
"logical_operator": "and",
"nodes": [
{
#name
"type": "terminal",
"service": "text",
"parameters": {
"value": "ampicillin",
"attribute": "struct.title",
"operator": "contains_words"}
},
{
#resolution
"type": "terminal",
"service": "text",
"parameters": {
"value": 2.5,
"operator": "less_or_equal",
"attribute": "rcsb_entry_info.resolution_combined"
}
},
{
#ligands
"type": "terminal",
"service": "text",
"parameters": {
"attribute": "rcsb_entry_info.nonpolymer_entity_count",
"value": 0,
"operator": "greater"
}
},
{
#date
"type": "terminal",
"service": "text",
"parameters": {
"attribute": "rcsb_accession_info.initial_release_date",
"value": {
"from": "2010-01-01",
"to": "2015-01-01"
},
"operator": "range"
}
}
]
},
"return_type": "entry"
}
#2. Отправляем запрос
rcsb = 'https://search.rcsb.org/rcsbsearch/v1/query'
json_query = json.dumps(my_query)
search = requests.post(f'{rcsb}', data=json_query)
search_result = search.json()
search_result
/usr/lib/python3/dist-packages/secretstorage/dhcrypto.py:15: CryptographyDeprecationWarning: int_from_bytes is deprecated, use int.from_bytes instead
from cryptography.utils import int_from_bytes
/usr/lib/python3/dist-packages/secretstorage/util.py:19: CryptographyDeprecationWarning: int_from_bytes is deprecated, use int.from_bytes instead
from cryptography.utils import int_from_bytes
Requirement already satisfied: nglview in /usr/local/lib/python3.7/dist-packages (2.7.7)
Requirement already satisfied: numpy in /usr/local/lib/python3.7/dist-packages (from nglview) (1.20.1)
Requirement already satisfied: ipywidgets>=7 in /usr/local/lib/python3.7/dist-packages (from nglview) (7.5.1)
Requirement already satisfied: nbformat>=4.2.0 in /usr/local/lib/python3.7/dist-packages (from ipywidgets>=7->nglview) (5.1.2)
Requirement already satisfied: ipython>=4.0.0 in /usr/local/lib/python3.7/dist-packages (from ipywidgets>=7->nglview) (7.21.0)
Requirement already satisfied: ipykernel>=4.5.1 in /usr/local/lib/python3.7/dist-packages (from ipywidgets>=7->nglview) (5.5.0)
Requirement already satisfied: traitlets>=4.3.1 in /usr/local/lib/python3.7/dist-packages (from ipywidgets>=7->nglview) (5.0.5)
Requirement already satisfied: widgetsnbextension~=3.5.0 in /usr/local/lib/python3.7/dist-packages (from ipywidgets>=7->nglview) (3.5.1)
Requirement already satisfied: tornado>=4.2 in /usr/local/lib/python3.7/dist-packages (from ipykernel>=4.5.1->ipywidgets>=7->nglview) (6.1)
Requirement already satisfied: jupyter-client in /usr/local/lib/python3.7/dist-packages (from ipykernel>=4.5.1->ipywidgets>=7->nglview) (6.1.11)
Requirement already satisfied: pygments in /usr/local/lib/python3.7/dist-packages (from ipython>=4.0.0->ipywidgets>=7->nglview) (2.8.0)
Requirement already satisfied: jedi>=0.16 in /usr/local/lib/python3.7/dist-packages (from ipython>=4.0.0->ipywidgets>=7->nglview) (0.18.0)
Requirement already satisfied: pexpect>4.3 in /usr/local/lib/python3.7/dist-packages (from ipython>=4.0.0->ipywidgets>=7->nglview) (4.8.0)
Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /usr/local/lib/python3.7/dist-packages (from ipython>=4.0.0->ipywidgets>=7->nglview) (3.0.16)
Requirement already satisfied: setuptools>=18.5 in /usr/local/lib/python3.7/dist-packages (from ipython>=4.0.0->ipywidgets>=7->nglview) (54.0.0)
Requirement already satisfied: backcall in /usr/local/lib/python3.7/dist-packages (from ipython>=4.0.0->ipywidgets>=7->nglview) (0.2.0)
Requirement already satisfied: pickleshare in /usr/local/lib/python3.7/dist-packages (from ipython>=4.0.0->ipywidgets>=7->nglview) (0.7.5)
Requirement already satisfied: decorator in /usr/local/lib/python3.7/dist-packages (from ipython>=4.0.0->ipywidgets>=7->nglview) (4.4.2)
Requirement already satisfied: parso<0.9.0,>=0.8.0 in /usr/local/lib/python3.7/dist-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets>=7->nglview) (0.8.1)
Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /usr/local/lib/python3.7/dist-packages (from nbformat>=4.2.0->ipywidgets>=7->nglview) (3.2.0)
Requirement already satisfied: jupyter-core in /usr/local/lib/python3.7/dist-packages (from nbformat>=4.2.0->ipywidgets>=7->nglview) (4.7.1)
Requirement already satisfied: ipython-genutils in /usr/local/lib/python3.7/dist-packages (from nbformat>=4.2.0->ipywidgets>=7->nglview) (0.2.0)
Requirement already satisfied: six>=1.11.0 in /usr/local/lib/python3.7/dist-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets>=7->nglview) (1.15.0)
Requirement already satisfied: importlib-metadata in /usr/local/lib/python3.7/dist-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets>=7->nglview) (3.7.0)
Requirement already satisfied: pyrsistent>=0.14.0 in /usr/local/lib/python3.7/dist-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets>=7->nglview) (0.17.3)
Requirement already satisfied: attrs>=17.4.0 in /usr/local/lib/python3.7/dist-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets>=7->nglview) (20.3.0)
Requirement already satisfied: ptyprocess>=0.5 in /usr/local/lib/python3.7/dist-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets>=7->nglview) (0.7.0)
Requirement already satisfied: wcwidth in /usr/local/lib/python3.7/dist-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets>=7->nglview) (0.2.5)
Requirement already satisfied: notebook>=4.4.1 in /usr/local/lib/python3.7/dist-packages (from widgetsnbextension~=3.5.0->ipywidgets>=7->nglview) (6.2.0)
Requirement already satisfied: pyzmq>=17 in /usr/local/lib/python3.7/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7->nglview) (22.0.3)
Requirement already satisfied: prometheus-client in /usr/local/lib/python3.7/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7->nglview) (0.9.0)
Requirement already satisfied: nbconvert in /usr/local/lib/python3.7/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7->nglview) (6.0.7)
Requirement already satisfied: jinja2 in /usr/local/lib/python3.7/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7->nglview) (2.11.3)
Requirement already satisfied: terminado>=0.8.3 in /usr/local/lib/python3.7/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7->nglview) (0.9.2)
Requirement already satisfied: Send2Trash>=1.5.0 in /usr/local/lib/python3.7/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7->nglview) (1.5.0)
Requirement already satisfied: argon2-cffi in /usr/local/lib/python3.7/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7->nglview) (20.1.0)
Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.7/dist-packages (from jupyter-client->ipykernel>=4.5.1->ipywidgets>=7->nglview) (2.8.1)
Requirement already satisfied: cffi>=1.0.0 in /usr/local/lib/python3.7/dist-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7->nglview) (1.14.5)
Requirement already satisfied: pycparser in /usr/local/lib/python3.7/dist-packages (from cffi>=1.0.0->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7->nglview) (2.20)
Requirement already satisfied: typing-extensions>=3.6.4 in /usr/local/lib/python3.7/dist-packages (from importlib-metadata->jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets>=7->nglview) (3.7.4.3)
Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.7/dist-packages (from importlib-metadata->jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets>=7->nglview) (3.4.0)
Requirement already satisfied: MarkupSafe>=0.23 in /usr/local/lib/python3.7/dist-packages (from jinja2->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7->nglview) (1.1.1)
Requirement already satisfied: entrypoints>=0.2.2 in /usr/lib/python3/dist-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7->nglview) (0.3)
Requirement already satisfied: mistune<2,>=0.8.1 in /usr/local/lib/python3.7/dist-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7->nglview) (0.8.4)
Requirement already satisfied: testpath in /usr/local/lib/python3.7/dist-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7->nglview) (0.4.4)
Requirement already satisfied: bleach in /usr/local/lib/python3.7/dist-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7->nglview) (3.3.0)
Requirement already satisfied: defusedxml in /usr/local/lib/python3.7/dist-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7->nglview) (0.7.0)
Requirement already satisfied: jupyterlab-pygments in /usr/local/lib/python3.7/dist-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7->nglview) (0.1.2)
Requirement already satisfied: pandocfilters>=1.4.1 in /usr/local/lib/python3.7/dist-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7->nglview) (1.4.3)
Requirement already satisfied: nbclient<0.6.0,>=0.5.0 in /usr/local/lib/python3.7/dist-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7->nglview) (0.5.3)
Requirement already satisfied: nest-asyncio in /usr/local/lib/python3.7/dist-packages (from nbclient<0.6.0,>=0.5.0->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7->nglview) (1.5.1)
Requirement already satisfied: async-generator in /usr/local/lib/python3.7/dist-packages (from nbclient<0.6.0,>=0.5.0->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7->nglview) (1.10)
Requirement already satisfied: webencodings in /usr/local/lib/python3.7/dist-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7->nglview) (0.5.1)
Requirement already satisfied: packaging in /usr/local/lib/python3.7/dist-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7->nglview) (20.9)
Requirement already satisfied: pyparsing>=2.0.2 in /usr/local/lib/python3.7/dist-packages (from packaging->bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7->nglview) (2.4.7)
WARNING: You are using pip version 21.0.1; however, version 22.0.3 is available.
You should consider upgrading via the '/usr/bin/python3 -m pip install --upgrade pip' command.
{'query_id': 'ac3a7223-8bdc-4ab5-b017-8cda31f4caef', 'result_type': 'entry', 'total_count': 9, 'result_set': [{'identifier': '3N8L', 'score': 1.0, 'services': [{'service_type': 'text', 'nodes': [{'node_id': 14068, 'original_score': 194.04849243164062, 'norm_score': 1.0}]}]}, {'identifier': '4GCP', 'score': 0.619623732298679, 'services': [{'service_type': 'text', 'nodes': [{'node_id': 14068, 'original_score': 180.5673065185547, 'norm_score': 0.619623732298679}]}]}, {'identifier': '2WKH', 'score': 0.2893915205871767, 'services': [{'service_type': 'text', 'nodes': [{'node_id': 14068, 'original_score': 168.86331176757812, 'norm_score': 0.2893915205871767}]}]}, {'identifier': '3NDV', 'score': 0.2893915205871767, 'services': [{'service_type': 'text', 'nodes': [{'node_id': 14068, 'original_score': 168.86331176757812, 'norm_score': 0.2893915205871767}]}]}, {'identifier': '4HL2', 'score': 0.2893915205871767, 'services': [{'service_type': 'text', 'nodes': [{'node_id': 14068, 'original_score': 168.86331176757812, 'norm_score': 0.2893915205871767}]}]}, {'identifier': '3NFB', 'score': 0.14007916621460811, 'services': [{'service_type': 'text', 'nodes': [{'node_id': 14068, 'original_score': 163.57142639160156, 'norm_score': 0.14007916621460811}]}]}, {'identifier': '4HL1', 'score': 0.14007916621460811, 'services': [{'service_type': 'text', 'nodes': [{'node_id': 14068, 'original_score': 163.57142639160156, 'norm_score': 0.14007916621460811}]}]}, {'identifier': '3ZG8', 'score': 0.0, 'services': [{'service_type': 'text', 'nodes': [{'node_id': 14068, 'original_score': 158.60678100585938, 'norm_score': 0.0}]}]}, {'identifier': '4RAW', 'score': 0.0, 'services': [{'service_type': 'text', 'nodes': [{'node_id': 14068, 'original_score': 158.60678100585938, 'norm_score': 0.0}]}]}]}
best_hit = search_result["result_set"][0]
best_hit
{'identifier': '3N8L', 'score': 1.0, 'services': [{'service_type': 'text', 'nodes': [{'node_id': 14068, 'original_score': 194.04849243164062, 'norm_score': 1.0}]}]}
4GCP является структурой порина E.coli, связанного с антибиотиком ампициллином (чьё название было ключевым словом в запросе).
Структура показывает, что ток через порин блокируется связанным ампициллином
view = nv.show_pdbid('4GCP')
view
Белок в виде cartoon, покраска по типу вторичной структуры
Показана поверхность, с непрозрачностью 0.1
Лиганды в виде hyperball, покрашены в оттенок желтого на ваш выбор
#var3
view = nv.show_pdbid("4GCP", default_representation=False)
view.add_representation("cartoon", selection="protein", color="sstruc")
view.add_representation('surface', selection='protein', color='purple', opacity=0.1)
view.add_representation('hyperball', selection='ligand', color='yellow')
view.center()
view
Поверхность белка покрашена в белый, с непрозрачностью 0.1
Белок в виде cartoon темно-серого цвета
Боковые радикалы в стержневой модели, покрашены по гидрофобности
Лиганды в виде Ван-дер-Ваальсовых сфер, покрашены по элементам
#var8
view = nv.show_pdbid("4GCP", default_representation=False)
view.add_representation("cartoon", selection="protein", color="dark gray")
view.add_representation('surface', selection='protein', color='white', opacity=0.1)
view.add_representation('element', selection='ligand', color='spacefill')
view.add_representation('licorice', selection='sidechainAttached', color='hydrophobicity')
view.center()
view
Остов белка в шаростержневой модели, покрашен по элементам
Боковые радикалы в стержневой модели, покрашены по элементам
Углероды остатков с 30 по 70-й покрашены в светло-голубой < Лиганды показаны в виде линий, покрашены в любой оттенок оранжевого#var9
view = nv.show_pdbid("4GCP", default_representation=False)
view.add_representation("ball+stick", selection="backbone", color="element")
view.add_representation('licorice', selection='sidechain', color='element', opacity=0.1)
view.add_representation('ball+stick', selection='protein and :A and 30-70 and _C', color='lightblue')
view.add_representation('line', selection='ligand', color='orange')
view.center()
view