ChEMBL 36 데이터베이스 스키마 및
약물 발견 활용 가이드
1. ChEMBL 36 개요 및 데이터 구조
ChEMBL은 생리활성 분자, 활성 측정값, 생물학적 표적(Target), 실험(Assay) 및 문헌 데이터를 체계적으로 저장하는 관계형 데이터베이스(RDB)입니다. 2025년 7월 릴리스된 ChEMBL 36은 최신 약물 발견 트렌드를 반영하여 더욱 정교해진 데이터 구조를 제공합니다.
- ✔ 핵심 개체: Compounds, Targets, Assays, Activities, Documents
- ✔ 데이터 품질: FAIR 원칙 준수, 수동 큐레이션된 고품질 데이터
- ✔ 최신 업데이트: Pesticide 분류 및 Veterinary 플래그 추가
- ✔ 연결성: 외래 키(Foreign Key)를 통한 강력한 데이터 조인
2. 공식 스키마 문서 접근 방법
최신 덤프 파일 및 문서 다운로드
클릭 가능한 ERD 및 관계 탐색
schema_documentation.html, chembl_36_schema.png
3. 핵심 엔티티 테이블 (1): 화합물 및 구조
화합물의 물리화학적 성질과 구조 정보는 Hit Selection과 분자 모델링의 기초가 됩니다.
MOLECULE_DICTIONARY
모든 화합물의 마스터 레코드. ChEMBL ID, 이름, 임상 단계(max_phase), 수의학용 플래그 정보를 포함합니다.
COMPOUND_STRUCTURES
화학 구조 정보(SMILES, InChI, Molfile)를 저장합니다. RDKit을 활용한 유사도 검색 및 지문 생성의 기초가 됩니다.
4. 핵심 엔티티 테이블 (2): 활성 및 타겟
활성 데이터는 특정 타겟에 대한 약물의 효능을 정량적으로 나타냅니다.
| 테이블 명 | 주요 필드 / 역할 |
|---|---|
| ACTIVITIES | IC50, Ki, standard_value, pChEMBL. 데이터 신뢰도 점수(confidence_score) 포함. |
| ASSAYS | 실험 조건(Assay Type, Organism). ADMET 예측을 위한 필터링에 필수적. |
| TARGET_DICTIONARY | 단일 단백질, 세포주 등 타겟 정보와 UniProt ID 매핑 제공. |
5. 문헌 및 소스 관련 테이블
데이터의 추적 가능성과 재현성을 위해 문헌 정보는 매우 중요합니다.
논문 및 출판물 정보(DOI, PubMed ID)를 통해 실험 데이터의 원천을 추적합니다.
데이터의 유래(문헌, PubChem BioAssay, 기탁 데이터셋 등)를 구분합니다.
6. 임상 정보 및 약물 활용 (Lead Optimization)
기존 약물의 적응증 및 부작용 정보를 통해 약물 재창출(Drug Repurposing) 전략을 수립할 수 있습니다.
DRUG_INDICATIONS
승인된 약물의 적응증 정보와 임상적 활용 사례를 분석하는 데 사용됩니다.
DRUG_WARNINGS
약물의 경고 사항 및 부작용 정보를 통해 안전성 프로파일을 구축합니다.
7. ADMET 및 특수 속성 (ChEMBL 36 변경점)
ChEMBL 36에서는 농약(Agrochemical) 데이터와 용해도 데이터가 대폭 보강되었습니다.
-
NewPESTICIDE_CLASSIFICATION: 농약 데이터를 위한 신규 테이블 추가로 연구 범위 확장.
-
PropACTIVITY_PROPERTIES: 용해도(Solubility) 및 투과성(Permeability) 등 추가 속성 관리.
8. 전체 관계 요약 (ER Diagram 중심축)
데이터 탐색의 골든 패스(Golden Path)
* 연결 키: `molregno`, `assay_id`, `target_id`, `chembl_id` 등을 사용한 강력한 JOIN 지원
9. 실무 활용 팁 (Python & SQLite)
맥북 M3 환경에서 SQLite 덤프를 활용한 분석 환경 구축을 권장합니다.
import sqlite3
import pandas as pd
# 데이터베이스 연결
conn = sqlite3.connect('chembl_36.db')
# 활동(Activities) 테이블의 컬럼 정보 확인
query = "PRAGMA table_info(ACTIVITIES);"
schema_info = pd.read_sql(query, conn)
print(schema_info)
# 특정 화합물의 IC50 값 추출 예시
sql = """
SELECT m.chembl_id, a.standard_value, a.standard_units
FROM molecule_dictionary m
JOIN activities a ON m.molregno = a.molregno
WHERE a.standard_type = 'IC50' AND a.standard_value < 1000
LIMIT 10;
"""
df = pd.read_sql(sql, conn)
연구 적용 포인트
FAIR 원칙에 따라 설계된 ChEMBL 스키마는 다음 연구 단계에서 최적의 효율을 제공합니다.