화합물에도 지문이 있다. 화합물의 Fingerprint란?
Fingerprint란?
화합물을 화학 구조 및 특성을 나타내는 방법은 다양하게 있습니다. 이번 글에서는 그 많은 종류 가운데에서도 화합물의 Fingerprint를 다뤄볼 예정입니다. Fingerprint는 화학정보학 및 계산화학 분야에서 분자 유사성 분석, 가상 탐색, 의약품 발굴과 같은 작업에 사용되고 있습니다. Fingerprint는 분자의 원자, 결합 그리고 다양한 구조적 특성에 대한 정보를 암호화하여 분자 모델링 및 의약품 설계 분야에서 효율적인 비교와 예측을 가능하게 합니다. 이러한 Fingerprint를 딥러닝 방식을 활용하면 화합물 간의 구조적 유사성을 보다 빠르고 효율적으로 수행할 수 있습니다.
Fingerprint를 사용하는 이유
정보 화학과 계산 화학에서 Fingerprint를 사용하는 것은 화학 물질을 표현하는 가장 기본적이고, 응용 가능성이 높은 접근 방식입니다. Fingerprint 는 이진(Binary) 형태로 이루어진 경우가 많습니다. 그래서 0과 1(Bit)로 이루어진 매우 긴 숫자의 배열이라고 생각할 수 있습니다. 각각의 비트는 화합물 내 특정 화학 하위 구조 또는 분자 특성의 유무를 암호화합니다. 이러한 Fingerprint 는 분자를 간결하고 간단하게 표현하는 데 사용하기 용이합니다. 그 뿐만 아니라 유사성 검색 및 클러스터링부터 가상 탐색에 이르기까지 다양한 응용 분야에서 광범위하게 사용되고 있습니다.
아래 사진에서 볼 수 있듯이, paracetamol이라는 분자를 예시로 들고 왔습니다. 해당 분자를 Fingerprint로 나타내면 다음과 같이 표현됩니다. 앞서 말씀드린 내용을 실제로 보니까, 정말 간단하게 표현되고 있지 않나요? 그렇기에 Fingerprint는 널리 사용되고 있습니다.
Fingerprint 의 중요성
Fingerprint 는 다음과 같이 다양한 정보화학 및 계산화학 분야에 쓰이는 필수적인 도구입니다. 앞에서 살펴본 것 처럼 Fingerprint는 간단하게 표현할 수 있다는 장점뿐만 아니라 다양한 중요성을 가지고 있습니다. Fingerprint의 중요성은 다음과 같습니다.
-
차원 축소
화합물은 수많은 원자와 결합으로 인해 매우 복합적일 수 있습니다. Fingerprint 는 이러한 복합성을 이진 또는 숫자 형식으로 압축하여 데이터의 차원 수를 줄입니다. 이를 통해 대규모 화학 데이터 세트를 보다 쉽게 비교, 분석 및 모델링 할 수 있습니다.
-
화학적 유사성
Fingerprint 는 화합물 간의 유사성을 평가하는 데 널리 사용됩니다. 서로 다른 분자의 Fingerprint 를 비교함으로써 연구원은 구조적으로 유사한 화합물을 식별할 수 있으며, 이는 선도 물질 발굴 및 가상 탐색과 같은 작업에서 중요합니다.
-
하위 구조 분석
신약 개발에서는 종종 분자 내의 특정 화학 하위 구조를 확인해야 합니다. Fingerprint 는 사전에 정의된 하위 구조 또는 분자 조각의 유무를 암호화하도록 설계되어 효율적인 하위 구조 검색을 가능하게 합니다.
-
데이터베이스 검색
Fingerprint 는 화학 데이터베이스의 빠른 검색을 용이하게 합니다. 화합물을 Fingerprint 로 표현함으로써 원하는 구조적 또는 기능적 특성을 가진 화합물을 빠르게 식별할 수 있습니다.
-
클러스터링 및 다양성 분석
Fingerprint 를 사용하면 구조적 유사성을 기반으로 화합물을 클러스터로 그룹화하는 것이 용이합니다. 이는 화학 공간 탐색, 신속한 화합물 식별 및 화합물 라이브러리 설계에 도움이 됩니다.
-
기계 학습
Fingerprint 는 독성 예측, 물성 예측 및 화합물 분류를 포함한 다양한 예측 모델링 작업에서 기계 학습 모델의 특성으로 사용될 수 있습니다.
하지만 아쉽게도 Fingerprint 만을 이용해서 해당 화합물의 모든 구조 정보를 담을 수는 없습니다. 따라서 이를 보완하기 위해서 최근에는 화합물의 Fingerprint 정보와 더불어 GNN(Graph Neural Network)을 응용한 다양한 연구들이 시도되고 있습니다.
GNN(Graph Neural Network)란?
GNN은 그래프 데이터에 적용이 가능한 신경망을 의미합니다. 각 노드를 잘표현하는 임베딩을 만들어, 특정 노드를 잘 표현할 수 있는 적절한 벡터를 찾아내는 것이 GNN의 목표입니다. GNN은 관계, 상호작용과 같은 추상적인 개념을 다루기에 적합합니다. 소셜 네트워크, 바이러스 확산 등 데이터를 모델링 하는데 사용할 수도 있습니다.
Fingerprint의 종류
Fingerprint의 종류는 정보화학 및 계산화학에서 생성 방법과 응용 분야에 따라 여러 유형으로 분류할 수 있습니다. 오늘은 다양한 Fingerprint 중에서 가장 많이 사용되는 두 종류만 알아보겠습니다.
Morgan Fingerprint
먼저 Morgan fingerprint입니다.
Morgan Fingerprint 를 정의하기 위해서는 두 가지 파라미터가 필요합니다. 첫 번째는 가까이 인접한 원자의 개수, 그리고 두 번째는 0과 1로 만들어 낼 숫자의 길이(Bit)입니다.
그래서 Rdkit에서도 다음처럼 두 가지 파라미터를 받도록 함수를 만들어 놓았습니다.
fpgen = rdFingerprintGenerator.GetMorganGenerator(radius=2,fpSize=1024)
Morgan Fingerprint 의 계산 방법은 다음과 같습니다. 먼저, 화합물의 모든 원자들을 순회하면서 각 원자가 가지는 공유결합의 개수를 해당 원자에 할당합니다.
이후, 해당 원자와 인접한 원자에 할당된 값을 모두 더한 값을 해당 원자에 새롭게 할당합니다. 이 과정을 값이 수렴할 때까지 반복한 뒤, 마지막으로 모든 원자에 할당된 최종 값을 내림차순의 순으로 각 원자에 할당합니다. 이렇게 최종적으로 원자에 할당된 숫자들을 해시 함수에 통과시켜 사용자가 원하는 Bit 수로 표현을 하게 됩니다.
물론 이러한 Morgan Fingerprint도 만능은 아니기 때문에 화합물이 가지는 열역학적 특성, 혹은 화학적인 특성을 정확하게 반영할 수 없습니다. 따라서 이를 보완하기 위한 다양한 Fingerprint가 연구되고 있습니다.
MACCS Fingerprint
두 번 소개해드릴 Fingerprint는 MACCS Fingerprint입니다. 미리 정의된 166가지의 작용기 혹은 원소가 해당 화합물에 포함되어 있다면 해당 위치의 Fingerprint 가 1이 되고, 그렇지 않으면 0이 되는 아주 간단한 방식입니다.
MACCS Fingerprint 의 장점으로는 Morgan Fingerprint 에 비해 Fingerprint 를 사람이 해석할 수 있고, 필요에 의해 특정 작용기를 추가하는 등의 개선이 가능하다는 점입니다. 하지만 Morgan Fingerprint 에 비해서 작용기의 위상적인 특성을 반영하지 못하는 등의 단점 또한 가지고 있습니다.
히츠에서도 신약개발 경진대회에서 Fingerprint를 사용했어요!
작년 보건복지부와 과학기술정보통신부에서는 제 1회 신약개발 경진대회를 진행했었는데요. 당시 히츠에서는 ‘약과도넛’ 팀으로 참여했었습니다. drug and donut이라는 중의적인 의미를 가지고 있습니다. 해당 경진대회에는 총 4가지 머신러닝 모델이 이용되었는데, 그 중 2가지 모델에 Morgan Fingerprint가 사용됐습니다. 학습에 사용될 화합물들의 Fingerprint 를 계산하고, 그 이진값들과 해당 화합물의 물성을 머신 러닝 모델 입력으로 사용하여 우수상이라는 값진 결과를 만들었습니다.
글을 마치며
오늘 알아본 것처럼 화합물의 Fingerprint는 매우 쉬운 분석 방법임과 동시에, 다양한 연구에 활용될 수 있는 뛰어난 도구입니다. 앞으로 계산화학이나, 신약 개발에 관심을 가지고 싶은 분이라면 Fingerprintd의 종류들을 Rdkit에서 직접 사용해 보시는 걸 추천드리면서 글을 마치겠습니다.