관리 메뉴

데이터 과학

PDB 파일 생성과 응용방법 본문

생명정보학 & 화학정보학/PDB

PDB 파일 생성과 응용방법

티에스윤 2025. 5. 9. 22:16

간단한 PDB (Protein Data Bank) 형식의 예제 파일을 파이썬 코드로 생성을 해 보면 아래와 같습니다. 

 

pdb_content = """\
HEADER    TEST PDB FILE                          09-MAY-25
TITLE     SIMPLE ALANINE DIPEPTIDE
ATOM      1  N   ALA A   1      11.104  13.207  10.349  1.00 20.00           N
ATOM      2  CA  ALA A   1      12.560  13.107  10.516  1.00 20.00           C
ATOM      3  C   ALA A   1      13.108  14.515  10.877  1.00 20.00           C
ATOM      4  O   ALA A   1      12.492  15.544  10.490  1.00 20.00           O
ATOM      5  CB  ALA A   1      13.064  12.076   9.481  1.00 20.00           C
ATOM      6  N   ALA A   2      14.236  14.561  11.618  1.00 20.00           N
ATOM      7  CA  ALA A   2      14.854  15.861  12.034  1.00 20.00           C
ATOM      8  C   ALA A   2      15.983  15.713  13.060  1.00 20.00           C
ATOM      9  O   ALA A   2      16.809  14.782  12.975  1.00 20.00           O
ATOM     10  CB  ALA A   2      13.816  16.837  12.611  1.00 20.00           C
TER
END
"""

# 파일로 저장
with open("example.pdb", "w") as file:
    file.write(pdb_content)

print("PDB 파일이 'example.pdb' 이름으로 생성되었습니다.")

 

 

이에 대한 구조를 살펴보면 다음과 같습니다. 

 

  • HEADER, TITLE: 파일 정보 메타데이터
  • ATOM 줄: 원자 위치, 잔기 이름, 사슬 ID(A), 좌표, 점유율, B-factor, 원자종
  • TER: 체인을 끝냄
  • END: 파일 종료

분자 시각화 툴(PyMOL, Chimera 등)에서 열 수 있는 실제 PDB 포맷입니다. 

 

https://tsyoon.tistory.com/209

 

pymol (단백질 구조 뷰어 프로그램)

단백질 구조 뷰어 프로그램 pymol은 델라노사이언티픽에 의해서 상업화된 오픈 소스, 사용자지원의 분자시각화 시스템입니다.  https://pymol.org/ PyMOL | pymol.orgOr install from the Schrodinger Anaconda Channel

tsyoon.tistory.com

 

https://tsyoon.tistory.com/122

 

ucsf 키메라(chimera) 사용법

미국 캘리포니아 샌프란시스코대(UCSF)에서 개발한 chimera 프로그램 사용방법입니다. 아래 링크에 들어가서 운영체제에 맞게 다운로드합니다. https://www.cgl.ucsf.edu/chimera/download.html Download UCSF Chimera

tsyoon.tistory.com

 

 

분석용 PDB 파일을 위해서는 다음과 같은 필수요소가 들어가야 합니다. 

 

 

  • 실제 좌표 (XYZ)와 합리적인 구조
    • 위 예제의 좌표는 무작위 값입니다.
    • 분석용으로는 에너지 최소화된 구조 또는 실험 데이터 기반 구조가 필요합니다.
    • 예: 알파나 헬릭스 또는 베타시트를 가진 단백질 구조
  • 정확한 연결 정보
    • PDB에는 CONECT 레코드가 없지만, 분석 프로그램에서 결합 정보가 필요할 수 있습니다.
    • 필요하다면 .mol2 또는 .pdbqt 같은 포맷을 병행하는 것이 좋습니다.
  • 수소 원자 포함 여부
    • 구조 분석 및 시뮬레이션 시 수소가 중요할 수 있습니다.
    • 기본 PDB에는 수소가 생략된 경우가 많아, reduce 도구 등을 통해 추가해줘야 합니다.
  • 적절한 사슬, 레지듀 번호, B-factor
    • 여러 사슬(chain)이 있는 경우 구분 필요
    • B-factor(원자 요동 정도)는 시뮬레이션 입력 값이나 분석 결과로 사용됨

 

구조 분석용 PDB 파일은 www.rcsb.org 사이트에서 다운로드 받을 수 있습니다. 

예를 들어 1CRN, 1A80으로 검색을 해서 다운로드하면 됩니다. 

 

PyMOL 또는 RDKit으로 구조 생성 및 저장할수도 있는데 RDkit으로 구조를 생성한 후 .pdb 파일 형식으로 저장하면 됩니다. 

 

혹은, 파이썬으로 SMILES -> 구조변환 + PDB 저장하면 됩니다. 

 

from rdkit import Chem
from rdkit.Chem import AllChem

mol = Chem.MolFromSmiles('CC(=O)O')  # 예: 아세트산
mol = Chem.AddHs(mol)
AllChem.EmbedMolecule(mol)
AllChem.UFFOptimizeMolecule(mol)

with open("acetate.pdb", "w") as f:
    f.write(Chem.MolToPDBBlock(mol))

 

 

아래는 아세트아미노펜의 수소가 포함된 3D 구조를 만들고 .pdb로 저장하는 파이썬 코드입니다. 

 

from rdkit import Chem
from rdkit.Chem import AllChem

# 아세트아미노펜 SMILES
smiles = "CC(=O)NC1=CC=C(C=C1)O"

# 분자 생성 및 수소 추가
mol = Chem.MolFromSmiles(smiles)
mol = Chem.AddHs(mol)

# 3D 좌표 생성 및 에너지 최소화
AllChem.EmbedMolecule(mol, AllChem.ETKDG())
AllChem.UFFOptimizeMolecule(mol)

# PDB 파일로 저장
with open("acetaminophen_with_H.pdb", "w") as f:
    f.write(Chem.MolToPDBBlock(mol))

print("아세트아미노펜 구조가 'acetaminophen_with_H.pdb'로 저장되었습니다.")

 

 

 

아래는 구조 분석 프로그램을 비교한 내용입니다. 참고해서 다른 실험에 적용해 보세요. 

 

도구                                                                    활용 목적

PyMOL / Chimera 구조 시각화, 수소 결합 네트워크 보기
AutoDock / Vina 분자동역학, 결합 친화도 시뮬레이션
Reduce 수소 위치 최적화, 전자밀도 분석 보조

 

 

'생명정보학 & 화학정보학 > PDB' 카테고리의 다른 글

MolProbity 패키지  (0) 2025.05.09
단백질 데이터 은행  (1) 2025.05.07