::CADD & Insilico:: SMILES code란?

DevSmapy·2023년 7월 27일
0

CADD&insilico

목록 보기
2/2
post-thumbnail

안녕하세요. dev_smapy입니다.

이번엔 chemistry의 file format들 중 SMILES code에 대해서 알아보겠습니다.

SMILES란?

SMILES code, 줄여서 SMILES는 구글에 검색하면 다음과 같이 나옵니다.

SMILES: chemical의 정보를 string의 형태로 표기한 것. atom의 정보와 결합의 종류에 대한 것을 표기할 수 있으며, 규칙을 준수하여 표기해야한다.

SMILES는 string(문자열)으로 표현하고, atom의 정보 및 결합 정보를 규칙에 따라서 표현합니다.

장점

문자열로 표기하기 때문에, 화합물 한개를 표기하는 데, 큰 용량이 필요하지 않습니다.

아무리 복잡한 구조도 SMILES code 한 줄로 표현이 가능하기 때문에, 적은 용량으로 많은 정보를 저장할 수 있습니다.

단점

사실 장점 빼고는 나머지는 다 단점이라고 할 수 있을 것 같은게 제 생각인데요.

1. 읽기 어렵다.
SMILES code는 모르는 사람이 보면, 그냥 난잡한 문자열에 지나지 않습니다. 한눈에 규칙성을 보는 것이 쉽지 않죠.

2. 2D 정보이다.
현실의 세계는 몇 차원일까요? 바로 3차원입니다. SMILES는 atom의 정보와 결합 정보만을 포함합니다. 따라서 2차원입니다. 화합물의 3차원의 모습을 보기위해서는 rdkit, openbabel과 같은 라이브러리들을 사용하여 봐야합니다.

3. 같은 구조이지만 SMILES가 다른 경우가 있다.
조금 충격적이게도, SMILES가 다른데, 2D 이미지로 출력해보면 같은 구조인 경우가 있습니다. 저의 경우에는 rdkit이나 openbabel로 read하여 IUPAC의 기준에 맞도록 SMILES를 한번 변환해주고 사용합니다.

단점이 꽤나 명확하고 많습니다만, 장점도 무시할 수 있는 것이 아니기 때문에, 상황에 따라서 잘 선택하여 사용하시는 것이 좋을 것 같아요.

SMILES를 다루는 방법

단점에서 언급했던 것처럼, SMILES는 바로 읽기가 어렵습니다. 저희가 한글이나 영어를 보고 그대로 발음하고 뜻을 이해하는 것과 차이가 있습니다.

따라서 라이브러리를 사용해서 2D 이미지를 보거나, 3D로 변환하여 사용하는 경우가 종종 있을 것입니다.

2D 이미지를 알 수 있는 방법은 몇가지 정도가 있습니다.
1. 파이썬 라이브러리를 활용(rdkit, pybel)
2. web 페이지를 사용(pubchem sketcher, chem-space 등)

이번 글에서 소개할 방법은 웹페이지를 이용하는 방법 입니다.

웹페이지를 사용하여 2D structure 보기

웹페이지를 사용해서 2D를 볼건데, 소개드릴 수 있는 사이트는 두가지 정도가 있습니다.

Chem-Space
PubChemSketcher

위의 두 사이트를 이용해서 SMILES가 어떤 2D 구조를 갖는지 보고는 합니다.

한번 예시로 "OC[C@H]1OC@HC@HC@@H[C@H]1O"를 보도록 하겠습니다.

Chem-space 사용

우선 위의 URL을 통해서 Chem-space에 접속합니다.

위와 같은 화면이 뜨는데, 첫 접속시에는 나라를 선택해달라는 팝업창이 뜹니다. 'South Korea'를 선택해줍니다.

2D structure를 보기 위해 Products -> chemical search를 클릭합니다.

들어가시면 아래와 같은 화면을 볼 수 있습니다.

익히 잘 아는 불러오기 모양의 아이콘을 눌러주세요.

그럼 이러한 입력창이 뜹니다.

위와 같이 SMILES를 입력해주면

이렇게 2D structure를 확인할 수 있습니다.

PubChem Sketcher 사용

위의 URL을 통해 PubChem Sketcher에 접속합니다.

위와 같은 화면이 뜨는 것을 확인할 수 있습니다.

입력창에 SMILES를 입력하고 엔터를 누릅니다.
업로드중..
2D structure가 화면에 표시 되는 것을 확인할 수 있습니다.

마치며

이번 글에서 SMILES code가 어떤 것인지 알아보았습니다.

SMILES code는 설명에 나온 것과 같이 2D 정보를 포함하고 있습니다.

단점에서 언급했듯이, 문자열만 보고서 어떤 구조인지 해석이 어렵지만, 지속적으로 학습하게 된다면 규칙을 파악해서 문자열만으로 생김새를 어느정도 유추하는 것이 가능할 것입니다.

이것으로 SMILES에 대한 설명을 마치겠습니다.

긴글 읽어주셔서 감사합니다.

다음 글로 뵙겠습니다.

profile
항상 고민하는 개발자

1개의 댓글

comment-user-thumbnail
2023년 7월 27일

정보 감사합니다.

답글 달기