SMILES(Simplified Molecular Input Line Entry System)란?
SMILES (Simplified Molecular Input Line Entry System)를 소개합니다
위 그림과 같은 분자를 설명하려면 어떻게 해야할까요?
이 화합물은 Aspirin입니다. O-Acetylsalicylic acid라고도 할 수 있습니다.
그렇다면 이 분자는 어떻게 표현할 수 있을까요?
Aspirin이랑 비슷한데 카르복실기가 있는 벤젠의 탄소에서 두 칸 떨어져 있는 곳에 에틸기가 붙어있는… 너무 복잡해지죠?
그렇다고 매번 그림으로 그리기에는 관리하기도 불편하고 컴퓨터에 분자를 인식시키는 것도 어려운 일 일 겁니다. 따라서 오늘은 분자를 표현하기 위한 표기법 중 일반적으로 쓰이는 SMILES 표기법을 소개하려고 합니다.
SMILES란 분자 구조를 ‘문자열 형태’로 표현하는 표기법입니다.
첫 번째 분자는 CC(=O)OC1=CC=CC=C1C(O)=O 로,
두 번째 분자는 CCC1=CC=C(OC(C)=O)C(=C1)C(O)=O 와 같이 표현할 수 있는 거죠.
얼핏 보기에 탄소와 산소들, 이중결합이 있는 걸로 봐서 원자와 결합의 정보로 표현한 것 같은데 어떻게 SMILES가 작성되는지 자세히 살펴볼까요?
SMILES를 구성하는 5가지 요소
1) 원자 (atom)
각각의 원소 기호로 표기합니다. 단, 복잡하고 긴 표기를 막기 위해 수소는 제외됩니다.
2) 결합 (bond)
. | 결합되지 않음 | $ | 사중결합 |
---|---|---|---|
- | 단일결합 | : | 방향족결합 |
= | 이중결합 | / | 입체화학 표시 |
# | 삼중결합 | \ | 입체화학 표시 |
3) 고리 (ring)
고리가 시작되는 원자로부터 반시계방향으로 돌아가면서 표기하고, 고리의 시작 부분과 마지막 부분 원자 두 개에 번호를 표시합니다.
ex) C1CCCC2C1CCCC2
4) 방향족 (aromaticity)
벤젠과 같은 방향족 고리들을 아래와 같이 표현할 수 있습니다.
i) C1=CC=CC=C1 → 단일결합과 이중결합이 교대로 일어나는 Kekule form
ii) C:1:C:C:C:C:C1 → 방향족결합 기호(:)를 사용
iii) c1ccccc1 → 방향족 고리에 포함된 B, C, N, O, P, S 원자를 소문자로 표시합니다.
5) 가지 (branch)
분자의 가지는 괄호()로 표현합니다. 가지는 다양한 순서로 나타낼 수 있으며 결합도 괄호 안에 포함되어 있어야 합니다.
SMILES 표기법의 장단점
1. 장점
i) SMILES는 분자를 문자열로 나타내기 때문에 데이터로 관리하기에 편리합니다.
ii) 하나의 SMILES는 하나의 분자를 나타냅니다. 따라서 올바르게 작성된 SMILES라면 특정한 하나의 분자만을 가리키기 때문에 분자로 변환 시 오류의 소지가 업습니다.
iii) 분자를 SMILES로 표현하면, 이를 활용해 다양한 머신러닝/딥러닝 알고리즘에 활용할 수 있습니다. NLP에서 단어를 하나의 토큰으로 취급하듯이, SMILES에서 원자 하나를 토큰으로 취급해서 컴퓨터가 받아들일 수 있는 숫자로 변환할 수 있습니다.
2. 단점
i) 서로 분자 구조가 아주 비슷한 분자들이더라도 SMILES 표기법으로 표현하면 아주 다른 문자열로 표현될 수 있기 때문에, 분자 간의 유사도를 표현하기 어렵다는 단점이 있습니다.
ii) 하나의 분자가 하나의 SMILES만을 가지지는 않습니다. 하나의 분자를 표현할 때 어떤 원자를 시작 지점으로 하는지, 고리 구조를 어떻게 표현할 지 등에 따라서 여러 SMILES 문자열이 있을 수 있습니다.
ex) CCO, OCC, C(O)C : 모두 같은 Ethanol을 지칭
iii) 실제 분자는 3차원인데 반해, SMILES는 원자와 결합의 2차원적인 정보만 포함한다는 단점이 있습니다.
SMILES를 사용할 수 있는 Tools = MarvinSketch
MarvinSketch를 통해 간편하게 분자의 SMILES를 구할 수 있습니다. MarvinSketch는 분자와 SMILES를 다루는 여러 Tool 중에서도 Windows/Mac 에서 모두 사용 가능하고 무료이며 사용 방법도 편리해서 많이 이용되고 있습니다.
MarvinSketch 다운로드(회원가입 필요) : https://download.chemaxon.com/marvin
사진과 같이 분자를 지정한 뒤, 마우스 오른쪽 클릭하여 Copy As → Daylight SMILES(또는 Chemaxon SMILES)를 선택하시면 해당분자의 SMILES 코드를 얻을 수 있습니다.
반대로 원하는 SMILES 코드를 복사해서 MarvinSketch 창에 붙여넣기를 하면 해당분자를 그림으로 표현할 수 있습니다.
SMILES 표기법에 대한 소개를 마치며
이번 포스팅에서는 가장 일반적인 분자 표기법인 SMILES 표기법에 대해 알아봤습니다. SMILES를 복잡한 분자들도 비교적 간단한 문자열로 표현할 수가 있고 SMILES에는 원자와 결합에 대한 정보들이 들어있기 때문에 이러한 각 분자의 특성들을 이용해 인공지능 모델에 활용할 수 있습니다. SMILES를 실제로 다룰 때, 분자의 SMILES를 보고 직접 분자의 이미지를 유추한다거나 분자의 이미지를 보고 직접 SMILES를 작성하는 경우는 거의 없고, 대부분 Tool을 이용해서 변환하기 때문에 SMILES에 대한 간단한 이해 정도만으로도 충분합니다. 분자를 표현하는 방법 중 SMILES를 확장한 SMARTS라는 표기법도 있는데요. 이건 주로 특정 분자가 아닌 특정 분자의 패턴을 표기할 때 사용하는 방법입니다. 다음 포스팅에서는 이 SMARTS 표기법에 대해서도 알아보겠습니다.