In [1]:
!pip install nglview   
/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
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: nglview in /usr/local/lib/python3.7/dist-packages (2.7.7)
Requirement already satisfied: ipywidgets>=7 in /usr/local/lib/python3.7/dist-packages (from nglview) (7.5.1)
Requirement already satisfied: numpy in /usr/local/lib/python3.7/dist-packages (from nglview) (1.20.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: 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: ipykernel>=4.5.1 in /usr/local/lib/python3.7/dist-packages (from ipywidgets>=7->nglview) (5.5.0)
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: 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: 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: decorator in /usr/local/lib/python3.7/dist-packages (from ipython>=4.0.0->ipywidgets>=7->nglview) (4.4.2)
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: 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: 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: 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: ipython-genutils in /usr/local/lib/python3.7/dist-packages (from nbformat>=4.2.0->ipywidgets>=7->nglview) (0.2.0)
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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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.
In [31]:
import nglview as nv
import requests         
import json 
In [32]:
#Задание 1
my_query = {
    "query": {
        "type": "group",
        "logical_operator": "and",
        "nodes": [
          #ключевые слова#  
            {
    "type": "terminal",
    "service": "text",
    "parameters": {
        "value": "estrogen",
         "attribute": "struct.title", #текстовое поле для поиска- заголовок
        "operator": "contains_words"
    }
},
#Разрешение
            {     "type": "terminal",
    "service": "text", 
    "parameters": {
        "value": 2.4,
        "attribute": "rcsb_entry_info.resolution_combined",
        "operator": "less_or_equal"} 
},
            
    
    
#Кол-во лигандов  
            {
    "type": "terminal",
    "service": "text",
    "parameters": {
        "attribute": "rcsb_entry_info.nonpolymer_entity_count",
        "value": 0,
        "operator": "greater"}
},
#Дата публикации
            {
    "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"

}
In [33]:
rcsb = 'https://search.rcsb.org/rcsbsearch/v1/query'

json_query = json.dumps(my_query) 

search = requests.post(f'{rcsb}', data=json_query)
In [34]:
search
Out[34]:
<Response [200]>
In [35]:
search_result = search.json() 
search_result
Out[35]:
{'query_id': '3b114ea9-7241-4c06-b2eb-c6d522d5e084',
 'result_type': 'entry',
 'total_count': 34,
 'result_set': [{'identifier': '3OS8',
   'score': 1.0,
   'services': [{'service_type': 'text',
     'nodes': [{'node_id': 2632,
       'original_score': 204.19158935546875,
       'norm_score': 1.0}]}]},
  {'identifier': '3OS9',
   'score': 1.0,
   'services': [{'service_type': 'text',
     'nodes': [{'node_id': 2632,
       'original_score': 204.19158935546875,
       'norm_score': 1.0}]}]},
  {'identifier': '3OSA',
   'score': 1.0,
   'services': [{'service_type': 'text',
     'nodes': [{'node_id': 2632,
       'original_score': 204.19158935546875,
       'norm_score': 1.0}]}]},
  {'identifier': '2YJA',
   'score': 0.22703385590084166,
   'services': [{'service_type': 'text',
     'nodes': [{'node_id': 2632,
       'original_score': 162.8705596923828,
       'norm_score': 0.22703385590084166}]}]},
  {'identifier': '2YJD',
   'score': 0.22703385590084166,
   'services': [{'service_type': 'text',
     'nodes': [{'node_id': 2632,
       'original_score': 162.8705596923828,
       'norm_score': 0.22703385590084166}]}]},
  {'identifier': '4PPS',
   'score': 0.16700657388650533,
   'services': [{'service_type': 'text',
     'nodes': [{'node_id': 2632,
       'original_score': 159.66163635253906,
       'norm_score': 0.16700657388650533}]}]},
  {'identifier': '3OMO',
   'score': 0.10903814486869495,
   'services': [{'service_type': 'text',
     'nodes': [{'node_id': 2632,
       'original_score': 156.56277465820312,
       'norm_score': 0.10903814486869495}]}]},
  {'identifier': '3OMP',
   'score': 0.10903814486869495,
   'services': [{'service_type': 'text',
     'nodes': [{'node_id': 2632,
       'original_score': 156.56277465820312,
       'norm_score': 0.10903814486869495}]}]},
  {'identifier': '3OMQ',
   'score': 0.10903814486869495,
   'services': [{'service_type': 'text',
     'nodes': [{'node_id': 2632,
       'original_score': 156.56277465820312,
       'norm_score': 0.10903814486869495}]}]},
  {'identifier': '3OLS',
   'score': 0.0,
   'services': [{'service_type': 'text',
     'nodes': [{'node_id': 2632,
       'original_score': 150.7338409423828,
       'norm_score': 0.0}]}]}]}
In [36]:
best_hit = search_result["result_set"][0] 
best_hit
Out[36]:
{'identifier': '3OS8',
 'score': 1.0,
 'services': [{'service_type': 'text',
   'nodes': [{'node_id': 2632,
     'original_score': 204.19158935546875,
     'norm_score': 1.0}]}]}
In [37]:
view=nv.show_structure_file("3os8.pdb")
view
In [38]:
#Задание 2
Был найден белок "3os8"- рецептор эстрогена у человека. 
Влияет на деление и дифференцировку клеток (участвует в регуляции экспрессии нек. генов).
В разделе "Small molecules" есть информация о двух в-вах: KN0(WAY-169916)- ингибитор рецептора, CME(S,S-(2-HYDROXYETHYL)THIOCYSTEINE). 
Эти молекулы стабилизируют некоторые конформации белка ,тем самым участвуя в регуляции его деятельности.
  File "<ipython-input-38-658c7bd5d045>", line 2
    Был найден белок "3os8"- рецептор эстрогена у человека.
             ^
SyntaxError: invalid syntax
In [39]:
#Задание 3
from ipywidgets import interact, fixed
In [40]:
my_examples = {
    'Вариант 3': {
        'description': '''
Белок в виде cartoon, покраска по типу вторичной структуры
Показана поверхность, с непрозрачностью 0.1
Лиганды в виде hyperball, покрашены в оттенок желтого 
''',
        'representations': [
                            {
                                "type": "cartoon", 
                           "params" : {"color":"sstruc", 
                                 "sele":"protein"}
                         },
                       
                         {"type":"hyperball",
                         "params": {"color":"yellow",
                                  "sele":"ligand"
                                   }
                       
                          },
                          {"type":"surface",
                           "params":{
                                    "sele":"protein",
                                    'opacity': 0.1}
                               
                          
                          
                          } 
                         ],
    },
    'Вариант 4': {
        'description': '''
Белок в виде cartoon, покраска по типу вторичной структуры
Боковые радикалы покрашены по элементу, показаны линиями
Боковые радикалы ароматических аминокислот показаны в стержневой модели
Лиганды показаны в виде Ван-дер-Ваальсовых сфер, покрашены по гидрофобности
''',
        'representations': [  {"type":"cartoon",
                         "params":{"color":"sstruc",
                                  "sele":"protein"}
                         },
                         
                         {"type": "line",
                          "params":{"color":"element",
                                   "sele":"sidechainAttached"}
                             
                          },
                      
                      {"type":"ball+stick",
                      "params":{"sele":"sidechainAttached and aromatic",
                                
                                } 
                      },
                      {"type":"spacefill",
                       "params":{"color":"hydrophobicity",
                                "sele":"ligand"}                         
                      }   
                    ],
    },
    'Вариант 7': {
        'description': '''
Белок в виде ribbon, покрашенной градиентом от N к C концу
Боковые радикалы в стержневой модели, покрашенные по элементам
Углероды гидрофобных аминокислот покрашены в светло-желтый
Углероды полярных заряженных аминокислот покрашены в светло-голубой
Лиганды не показаны никак
''',
        'representations': [  {"type":"ribbon",
                 "params":{"color":"atomindex",
                           "sele":"protein"}
                },
               
               {"type":"ball+stick",
                "params":{"color":"element",
                         "sele":"sidechainAttached"}
               },
               
               {"type":"ball+stick",
                "params":{"color":"#FFF700",
                         "sele":"_C and hydrophobic"}
                },
                {"type":"ball+stick",
                "params":{"color":"#40cfff",
                         "sele":"_C and charged"}
                },
                 
                {"type":"none",
                 "params":{"sele":"ligand"}}
         ]
    },
}
In [41]:
def show_examples(view, example_name):
    view.clear()
    example = my_examples[example_name]
    print(example['description'])
    view.set_representations(example['representations'])
    view.center()

view = nv.show_pdbid("3os8", default_representation=False)
interact(show_examples, view=fixed(view), example_name=list(my_examples.keys()))
view