Drug study/TeachOpenCADD

T008 · Protein data acquisition: Protein Data Bank (PDB)

비빔밥계란찜 2025. 7. 3. 21:54

0. Talktorials

모든 study 는 TeachOpenCADD 를 바탕으로 구성하였습니다.

 

T008 · Protein data acquisition: Protein Data Bank (PDB) — TeachOpenCADD 0 documentation

 

Github:

volkamerlab/teachopencadd: TeachOpenCADD: a teaching platform for computer-aided drug design (CADD) using open source packages and data

 

 

 

 

 

1. Theory

Protein Data Bank (PDB)

 

Protein Data Bank (PDB)는 전 세계적의 연구자들이 biological 거대분자들과 그 complexes의 실험적으로 밝혀진 3차원 구조를 저장하는 저장소입니다. 1971년에 최초로 open source로 시작되었습니다. 생물학, 약물 연구를 위해서 정말 자주 쓰이는 database 중 하나입니다. 구조 데이터는 X-ray crystallography, nuclear magnetic resonance (NMR), cryo electron microscopy (cryo-EM)과 같은 구조를 밝히는 실험 기법을 통해 생성됩니다. 가장 일반적인 방법은 X-ray crystallography 입니다. 

 

각 database의 entry는 

[1] proteins, ligand, cofactors, water molecules, ions 등의 원자 3차원 좌표와 이 원자들을 연결하는 binding 정보

[2] PDB ID, the authors (논문 저자), the deposition date (데이터 제출 날짜), the structural determination method used (구조 실험 방법), structural resolution (구조 해상도)로 이루어져 있습니다.

 

 

여기서 structural resolution는 조금 생소할 수도 있는데, 쉽게 말해서 데이터 품질을 나타내는 지표입니다. 단위는 Å (옴스트롱) 이고, 값이 낮을수록 구조의 품질이 더 높습니다. 사진의 PDB ID가 4AG8인 데이터는 현재 1.95 Å 품질을 가지고 있습니다. 개인적인 의견인데 어떤 protein 이냐에 따라 달라지겠지만, 2 Å 이내의 데이터를 품질이 좋다라고 말할 수 있을 것 같습니다. (2Å  이상의 데이터를 사용하지 말라는 이야기는 절대 아닙니다.)

 

 

TeachOpenCADD 에서는 파이썬 실습을 위주로 설명하였습니다. 2가지 파이썬 패키지를 주로 소개하였는데, biotite와 pypdb입니다. biotite는 데이터 필드 등을 참고해서 원하는 기준에 맞는 PDB ID의 개수나 목록을 쉽게 조회해주는 패키지입니다. (참고: biotite.database.rcsb — Biotite) pypdb는 PDB ID 조회뿐만 아니라 관련 metadata와 구조 파일까지 다운로드 할 수 있습니다. (실습에서는 biotite로 PDB 구조를 빠르게 filtering 하고, pypdb는 관심 있는 특정 PDB entry에 대한 metadata와 구조 파일을 다운로드하는데 사용합니다.)

 

import collections
import logging
import pathlib
import time
import warnings
import datetime

import pandas as pd
import matplotlib.pyplot as plt
from bs4 import BeautifulSoup
import requests
from tqdm.auto import tqdm
import redo
import requests_cache
import nglview
import pypdb #pypdb
import biotite.database.rcsb as rcsb #biotite
from rdkit.Chem import Draw
from rdkit.Chem import PandasTools

from opencadd.structure.superposition.api import align, METHODS
from opencadd.structure.core import Structure

 

저는 패키지 불러오는 법만 간단하게 적어두고 파이썬 실습보다는 실제 PDB가 어떤것인지, PDB database에서 어떤식으로 데이터를 얻어서 어떻게 시각화하는지에 대한 방법을 소개하겠습니다.

 

 

 

 

1. PDB statistics


 

RCSB PDB: Homepage

우선, PDB database에 들어가면 이런 화면이 보입니다. (2025년 7월 3일 기준)

 

 

 

 

현재 실험적으로 측정된 구조는 238,622개이고 인공지능(AlphaFold, RoseTTAFold...)이나 modeling 등의 예측된 단백질 모델은 1,068,577개입니다. 

 

 

 

더 자세하게 궁금하시면 가운데에 statistics를 볼 수 있는 기능도 있습니다.

 

 

누르면 이런 창이 뜨는데, 예시로 Overall Growth를 보겠습니다.

 

이렇게 그래프 형태로도 관찰할 수 있습니다. 시각화를 통해서 보니 실험적으로 밝혀진 구조가 238,622개로 어떤 단백질 구조를 밝히는 일은 정말 쉽지 않다는 것이 새삼 느껴집니다. 그렇기 때문에 알파폴드나 로제타폴드같은 단백질 예측 모델들의 장단점을 잘 활용해서 연구에 사용해야 한다고 생각합니다. 

 

 

 

 

 

 

 

 

 

 

 

 

2. PDB search


 

검색창을 살펴보면 어떤 것을 입력해야할 지 잘 감이 안옵니다. target 이름이나 ligand 를 그대로 입력해도 되지만 저는 보통 UniProt 에서 target을 정확하게 확인하고 PDB 검색창에 uniprot ID를 입력합니다. 

 

 

UniProt 

 

먼저 UniProt database에 들어가면 검색창이 나오는데 예를 들어, 제가 연구하고 싶은 target이 HPK1 이라고 하겠습니다.

 

 

그러면 이런식으로 Human의 HPK1 UniProt ID가 Q92918 로 제공됩니다.

 

 

한 번 PDB 검색창에 HPK1 으로 입력했을 때와 UniProt ID로 입력했을 때를 비교해보겠습니다.

HPK1 직접 검색

 

 

UniProt ID로 검색

 

UniProt ID로 검색 했을 때 검색 결과가 좀 더 원하는 target과 가까운 쪽으로 (52개보다 적은 45개) 나타난 것을 확인할 수 있습니다. 사실은 왼쪽에서 Refinements를 조정할 수 있지만, UniProt에서 내 target에 대한 정보를 조금 얻어가면 더 정확한 연구가 가능해질 것 같습니다. 

 

 

 

 

 

 

 

 

 

 

 

 

 

3. PDB file, discovery studio


 

 

 

이번엔 시각화 방법입니다. 원하는 target 에 대한 구조 정보를 찾았으면 PDB 파일을 다운로드 할 수 있는데, 

 

 

 

여기서 PDB format을 다운로드 받으면 됩니다. 

 

PDB 시각화 프로그램이 다운로드 되어 있으면 그 프로그램에 맞게 지정되는데 저는 현재 컴퓨터에는 없는 상태라 메모장으로 아이콘이 보입니다. 하지만, 시각화 하기 전에 메모장으로 한 번 열어보는 것도 중요합니다.

PDB file을 메모장으로 열기

 

이런식으로 구조 정보가 포함되어 있고 스크롤을 내리다보면

HELIX와 SHEET 정보

 

 

그리고 ATOM 형태로 protein 의 원자 좌표가 나와있습니다. 

첫 줄에 37.219 13.036 28.118 이 순서대로 N의 x,y,z 좌표입니다.

 

 

 

만약 complex 구조라면 밑에 또 스크롤을 내리다보면 HETATM 정보도 있습니다.

ligand에 대한 좌표도 나와있는 것을 확인할 수 있습니다.

(물론 only ligand는 아닙니다. 물 분자나 solvent도 포함되어 있습니다.)

 

 

 


 

저는 시각화 프로그램으로 보통 Discovery studio를 사용합니다.

 

Free Download: BIOVIA Discovery Studio Visualizer - Dassault Systèmes

 

Pymol 등의 프로그램도 있지만 Discovery studio 는 UI 측면에서 더 간단하게 사용할 수 있습니다.

 

 

 

예시로 이런식으로 ligand 의 binding mode 가 어떻게 구성되어 있는지 살펴볼 수도 있습니다! 

요즘은 파이썬 자체에도 시각화 패키지가 내장되어 있어서 편한 방식으로 활용하시면 좋을 것 같습니다. 

 

 

 

 

 

Reference


 


  • 현재 관련 분야를 공부하고 있는 전문가가 아닌 학생이기 때문에 틀린 내용이 있을 수 있습니다.
  • 오타와 틀린 부분을 댓글로 알려주시면 수정하도록 하겠습니다.