In [1]:
%load_ext autoreload
%autoreload 2
In [2]:
from dotenv import load_dotenv

load_dotenv()
Out[2]:
True

Pocket finder¶

This notebook shows you how to use the PocketFinder tool to find novel pockets in a Protein.

Setup¶

First, we'll import the necessary Deep Origin drug discovery modules.

In [3]:
from deeporigin.drug_discovery import (
    BRD_DATA_DIR,
    Pocket,
    Protein,
    PocketFinder,
)
from deeporigin.platform import DeepOriginClient
import deeporigin

deeporigin.__version__
Out[3]:
'0.0.0.dev0'

You don't have to explictitly initialize a client, but you can if you want:

In [4]:
client = DeepOriginClient()
client
/home/runner/work/do-dd-client/do-dd-client/.venv/lib/python3.11/site-packages/jwt/api_jwt.py:147: InsecureKeyLengthWarning: The HMAC key is 6 bytes long, which is below the minimum recommended length of 32 bytes for SHA256. See RFC 7518 Section 3.2.
  return self._jws.encode(
Out[4]:
DeepOrigin Platform Client for Local User (org_key=deeporigin, base_url=http://127.0.0.1:4931/)

Load protein and register on the platform¶

We use the same BRD protein as registered_protein in tests/test_functions_with_data_platform.py: load brd.pdb, remove waters, then sync so the structure exists on the platform for docking.

In [5]:
protein = Protein.from_file(BRD_DATA_DIR / "brd.pdb")
protein.remove_water()
protein.sync()
protein.id
Out[5]:
'brd'

Estimate cost¶

In [6]:
pf = PocketFinder(protein=protein)
pf.quote()
In [7]:
pf.estimate
Out[7]:
10.0

Find pockets¶

Display the protein structure in 3D. This helps you understand the protein's structure before proceeding with docking.

In [8]:
pockets = pf.run()
pockets
Out[8]:
[Pocket:
 ╭─────────────────────────┬─────────────────────────╮
 │ Name                    │ pocket_1                │
 ├─────────────────────────┼─────────────────────────┤
 │ ID                      │ 085AC854907E1           │
 ├─────────────────────────┼─────────────────────────┤
 │ Protein ID              │ brd                     │
 ├─────────────────────────┼─────────────────────────┤
 │ Color                   │ red                     │
 ├─────────────────────────┼─────────────────────────┤
 │ Center                  │ (-13.52, -4.94, 15.46)  │
 ├─────────────────────────┼─────────────────────────┤
 │ Box size                │ 14.00 × 14.00 × 19.00 Å │
 ├─────────────────────────┼─────────────────────────┤
 │ Volume                  │ 300 ų                  │
 ├─────────────────────────┼─────────────────────────┤
 │ Total SASA              │ 1225.8883 Ų            │
 ├─────────────────────────┼─────────────────────────┤
 │ Polar SASA              │ 309.8629 Ų             │
 ├─────────────────────────┼─────────────────────────┤
 │ Polar/Apolar SASA ratio │ 0.3382689               │
 ├─────────────────────────┼─────────────────────────┤
 │ Hydrophobicity          │ 29.92                   │
 ├─────────────────────────┼─────────────────────────┤
 │ Polarity                │ 10                      │
 ├─────────────────────────┼─────────────────────────┤
 │ Drugability score       │ 0.94304204              │
 ╰─────────────────────────┴─────────────────────────╯]

Show pocket¶

In [9]:
protein.show(pockets=pockets)
In [ ]: