728x90

 SMILES 표기법은 Simplified Molecular Input Line Entry System의 준말로, 분자 구조를 string 형태로 표현하여 NLP에 활용된 다양한 머신러닝 / 딥러닝 알고리즘들을 분자 구조에도 적용할 수 있게 해주는 표기법이다. 이번 글에서는 SMILES 표기법을 어떻게 쓸 수 있는지와 함께 이의 장단점에 대해서 알아보겠다.

SMILES 표기법의 예시

SMILES 구성 요소

 SMILES 표기법을 구성하는 요소는 크게 다섯가지로 나눌 수 있고, 이는 원자 (atom), 결합 (bond), 고리 (ring), 방향족 (aromaticity), 그리고 가지 (branch)이다. 각 요소들에 대해서 차례대로 알아보겠다.

원자 (atom)

 SMILES 표기법에서 각 원자는 해당하는 원소 기호로 표시하고, 수소 원자 (H)는 생략한다. 예를 들어, 탄소는 C, 질소는 N, 산소는 O, 염소는 Cl 등으로 표기하는 것이다.

결합 (bond)

 각 결합은 . - = # 달러 : / \ 의 8가지 기호로 표현한다. 이 때, 단일 결합은 -로 표현되고 주로 생략된다. 결합의 예시로는, 이중 결합은 =, 삼중 결합은 #, 사중 결합은 달러 등으로 표현한다.

 예를 들어, 아래와 같은 methyl isocyanate 분자가 있다고 하자. 

methyl isocyanate 분자

 이 분자를 SMILES 표기법으로 표현하기 위해서는, 수소 (H)를 모두 제거하고, 단일 결합을 생략하면 된다. 그러므로 아래와 같이 해당 분자를 표현할 수 있다.

SMILES 표기법

고리 (ring)

 SMILES 표기법에서 고리는 어떤 랜덤한 한 지점의 결합을 끊고, 해당 끊긴 부분의 원자 두 개에 번호를 표시하는 방식으로 표기한다. 예를 들어, 다음과 같은 dioxane 분자가 있다고 하자.

dioxane 분자

이 분자의 한 부분의 결합을 아래와 같이 끊으면, O 분자로부터 반시계방향으로 돌아가면서 SMILES 표기법으로 분자를 표현할 수 있다. 이 때, 해당 고리의 번호는 1이다.

dioxane 분자의 SMILES 표기법

방향족 (aromaticity)

 방향족은 탄소 화합물이 평면의 고리 형태로 결합하여 안정적인 구조를 가지는 aromatic ring을 포함하고 있는 것을 말한다. 이 aromatic ring은 위에 설명한 고리 (ring)을 표현하는 것과 동일하게 표시하지만, 여기에 포함된 B, C, N, O, P, S 원자를 소문자로 표시한다. 이 예시가 되는 피리딘 분자는 아래와 같이 표현할 수 있다.

pyridine 분자의 SMILES 표기법

가지 (branch)

 분자의 가지는 괄호()로 표현한다. 이 때, 괄호 안에 포함된 첫 번째 원자와 괄호가 끝나고 나오는 첫 번째 원자가 같은 원자에 연결되어 있다. 예를 들어, fluoroform 분자는 아래와 같이 표현할 수 있다. 즉, 괄호 안에 포함된 첫 번째 원자인 F와, 그 다음에 나오는 F가 C라는 같은 원자에 연결되어 있는 것이다.

fluoroform 분자의 SMILES 표기법

SMILES 표기 순서

 위 구성 요소들로 이루어진 SMILES 표기법의 표기 순서는 예시와 함께 알아보겠다. 다음과 같은 분자가 있다고 하자.

예시 분자

1. 분자로부터 수소 원자들을 제거한다.

2. 분자의 고리들에 있는 결합을 하나씩 제거하고, 고리들마다 번호를 매긴다.

1과 2 과정을 거친 분자

3. 특정 시작 원자를 정하고, 해당 시작 원자로부터 depth-first search (DFS)를 통해 SMILES string을 만들어낸다. (고리의 결합을 2에서 끊었기 때문에 tree 형태로 표현할 수 있고, DFS가 가능하다.) 이 때, branch를 만나면 SMILES string에 (를 추가하고, 더 이상 진행할 수 없는 dead-end를 만나면 )를 추가한다.

3의 DFS 과정을 거치는 분자

4. SMILES를 도출한다.

도출된 SMILES string

SMILES 표기법의 장단점

장점

 SMILES 표기법의 대표적인 장점은 string 형태로 표현되기 때문에, string 형태에 적용시킬 수 있는 다양한 머신러닝/딥러닝 알고리즘을 활용할 수 있다는 점이다. NLP에 활용되는 다양한 알고리즘들을 원자는 단어, SMILES는 문장으로 생각하고 적용할 수 있다. 예시로, word2vec을 SMILES에 사용하여 해당 분자의 feature를 표현하거나, VAE, GAN 등 다양한 generative model을 분자 생성에 활용할 수 있는 것이다.

단점

 SMILES 표기법의 첫 번째 단점은 분자 간의 유사도를 표현할 수 없다는 점이다. 서로 분자 구조가 아주 비슷한 분자들이라도 SMILES 표기법으로 표현하면 서로 아주 다른 string으로 표현될 수 있는 것이다. 아래 예시에서 볼 수 있듯이, 두 개의 아주 비슷한 구조를 가진 분자가 SMILES로 표현하면 아주 다른 형태로 표현된다.

SMILES cannot capture similarity

 두 번째 단점은 하나의 분자를 표현할 때에도 다양한 SMILES string이 도출될 수 있다는 것이다. 같은 분자일 때에도, 어떤 원자를 시작지점으로 하여 DFS를 하는지, 고리 구조의 결합은 어디에서 끊을 것인지 등에 의하여 서로 다른 SMILES string이 도출될 수 있다. 

 이번 글에서는 분자 구조를 표현하는 다양한 표현 방식 중 하나인 SMILES 표기법에 대해 알아보았다. 다양한 molecular discovery 관련 연구들이 이를 기반으로 하고 있기 때문에, 논문을 읽을 때 도움이 될 것이다. 

 

References

1. Weininger, D. (1988). SMILES, a chemical language and information system. 1. Introduction to methodology and encoding rules. Journal of chemical information and computer sciences, 28(1), 31-36.

2. Jin, W., Barzilay, R., & Jaakkola, T. (2018, July). Junction tree variational autoencoder for molecular graph generation. In International conference on machine learning (pp. 2323-2332). PMLR.

 

300x250
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기