| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 | 31 |
- 바이오인포매틱스
- 파이썬
- AP
- 캐글
- 이항분포
- Kaggle
- 자바
- CNN
- 알파폴드
- AP Computer Science A
- 딥러닝
- ncbi
- 결정트리
- COVID
- 바이오파이썬
- RNN
- BLaST
- 서열정렬
- bioinformatics
- 인공지능
- 인공지능 수학
- 생명정보학
- SVM
- 생물정보학
- 인공신경망
- 오류역전파
- 시그모이드
- Java
- 단백질 구조 예측
- 로제타폴드
- Today
- Total
데이터 과학
PDB 파일 생성과 응용방법 본문
간단한 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 |