Physics and Informatics

데이터 분석: 유사성과 정렬

Novelism 2022. 8. 5. 21:23

 

 복잡한 데이터들을 분석하는 과정에서 하는 일중 하나는 데이터의 유사성을 찾는 것입니다.

 유사성을 비교하기 위해선 데이터를 정렬해야 합니다.

 DNA나 단백질 염기 서열에 대해 연구하는 bioinformatics 분야에서 많이 하는 일중 homology 탐색이 있습니다.

 유사한 서열을 탐색하는 것입니다. 서로 다른 서열의 유사성을 비교하기 위해선 정렬을 해야 합니다.

 서로 무관한 것들을 정렬하는 것은 의미가 없습니다. 

 

 약물 탐색도 마찬가지입니다. 특정 타깃 단백질에 대해서 결합하는 약물들을 그냥 뿌려두면, 분석하기 매우 어렵습니다.

 이럴 때 2D, 3D 구조 정렬, Maximum common subgraph 같은 다양한 정렬 방법을 활용하면 약물들 사이의 유사성을 확인할 수 있습니다. 그리고 유사한 약물들끼리 모아서 분석한다면, 그 약물이 단백질과 어떻게 상호작용하는지 쉽게 파악할 수 있습니다. (예시: https://novelism.tistory.com/253  )

 제가 컴퓨터/인공지능 전공으로, 화학과 약물에 대해선 자세히 알지 않는 연구원에게 단백질-약물 결합 분석에 대한 개념을 대충 설명하고 특정 단백질에 결합하는 약물들 몇개가 정렬된 그림을 보여줬더니 그 약물이 단백질과의  중요한 코어 구조가 무엇인지 바로 찾아내더군요. 당연히 정렬을 안하면 저도 봐도 도저히 못알아봅니다. 하지만 정렬만 잘해도, 초심자도 이해할 수 있습니다. 

 

뭐 이런 문제 이외에도, 우리는 사실 일상생활에서도 이런 방법들을 많이 사용하고 있습니다. 

사람 얼굴도 사진도 얼마나 비슷한지 비교하려면 얼굴끼리 정렬을 해야 합니다. 

 사람과 자전거는 당연히 정렬이 안되니 유사도가 낮게 나올 수밖에 없습니다. 

 때떄로 쿠키와 강아지는 정렬이 잘되고 비슷하게 보입니다. 

 정렬된 유사한 데이터들을 모아 보면, 어느 부분은 서로 일치하고, 어느 부분에서 서로 차이가 나는지, 어떤 종류의 변화가 있는지 등을 분석할 수 있습니다. 세상에 존재하는 데이터는, 부분적으로 유사한 몇가지 패턴이 나타납니다. 

 부분들의 패턴은 소수일지라도, 전체는 매우 다양한 조합이 가능합니다.