
【AI 공동 창작】 그래프 이론(Fiedler 값)만으로 분자의 수용성과 단백질 폴딩에 도전하다
요약
Google DeepMind의 에이전트형 AI Antigravity를 활용하여 그래프 이론(Fiedler 값) 기반의 초경량 분자 수용성 및 단백질 폴딩 시뮬레이터를 개발한 사례를 소개합니다. 복잡한 분자 동역학 시뮬레이션 대신 수학적 접근을 통해 물리적 편향을 제거하고 정확도를 높이는 과정을 다룹니다.
핵심 포인트
- Antigravity 에이전트를 활용한 AI 페어 프로그래밍의 실전 활용 사례
- 그래프 이론의 Fiedler 값을 이용한 초경량 분자 시뮬레이션 구현
- 중심성 편향 및 기하학적 편향을 수학적 차분으로 해결
- 충돌 회피 알고리즘을 통한 원자 겹침 문제 해결
안녕하세요! 최근 화제가 되고 있는 Google DeepMind가 개발한 에이전트형 AI **「Antigravity」**를 실제로 사용해 보았습니다.
프로그래밍이나 AI에는 관심이 있지만, 물리화학이나 계산과학 전문가는 아닌 "일반인"인 저(유기화학 전공)가, Antigravity와 페어 프로그래밍 (Pair Programming)으로 대화하며 시행착오를 거친 결과, 본래라면 슈퍼컴퓨터가 필요한 "유기 화합물의 수용성 예측" 및 "단백질의 입체 폴딩 (Protein Folding)"을 수학(그래프 이론)만으로 순식간에 계산하는 초경량 시뮬레이터를 완성해 버렸습니다...!
"Antigravity는 실제로 어느 정도로 대단한가?", "AI 페어 프로그래밍으로 무엇을 할 수 있는가?"라는 체험담으로서, 개발 과정의 분위기와 실험 결과를 정리해 보겠습니다!
이전에 그래프 신경망 (GNN)으로 용해도를 계산하는 프로그램을 공부했지만, 그다지 와닿지 않았습니다. "더 간단한 규칙으로, 딥러닝 (Deep Learning) 등의 학습을 수행하지 않고 그래프 구조를 잘 활용하여 용해도를 예측할 수 없을까?" —— 이것이 첫 번째 동기입니다.
알코올 (1-부탄올, tert-부탄올)이나 에테르 등의 분자가 "얼마나 물에 녹는가" 또는 단백질이 어떻게 폴딩되는지를 컴퓨터로 계산하려면, 통상적으로 **슈퍼컴퓨터(Supercomputer)를 사용한 방대한 "분자 동역학 (MD) 시뮬레이션"**이 필요합니다.
문득, "이렇게 무거운 계산을 역학 포텐셜 (Mechanical Potential)을 사용하지 않고 그래프의 연결성을 나타내는 수학(Fiedler 값)만으로 간단히 풀 수 없을까?"라는 생각이 들어, Antigravity에 그대로 던져 보았습니다.
나: "Fiedler 값을 사용하여 분자와 물 분자의 그래프를 만들어서, 최적화 시뮬레이터를 만들 수 있어?"
Antigravity: "좋은 아이디어입니다! NetworkX와 RDKit을 조합하여, 라플라시안 행렬 (Laplacian Matrix)의 제2 고유값 (Fiedler 값)을 추적하는 시뮬레이터를 작성하겠습니다!"
라고, 제안한 아이디어에 대해 수 초 만에 완벽한 Python 코드와 수학적 정식화를 돌려주었습니다.
개발을 진행하는 과정에서 몇 가지 물리·수학적 벽에 부딪혔지만, Antigravity와의 대화를 통해 차례차례 돌파구(Breakthrough)가 생겨났습니다.
디에틸 에테르(C-C-O-C-C)를 계산하게 하니, 산소가 분자의 중앙에 있는 탓에 "수학적으로 그래프 중심성이 높아져서, 알코올보다 부당하게 높게 평가되는" 문제가 발생했습니다.
나: "이거, 중심성 편향 (Centrality Bias)이 걸려 있지 않아? 초기값으로부터의 차분으로 하는 게 좋지 않을까?" -
Antigravity: "훌륭한 착안점입니다! 초기값 $f_{ ext{init}}$을 배경 노이즈로서 빼는 실효 변화량 $\Delta f_{\text{final}} = f_{\text{final}} - f_{\text{init}}$을 산출합시다!"
이로써 기하학적 편향 (Geometric Bias)이 완벽하게 제거되어, 물리적인 수화 반응 (Hydration Response)만을 추출할 수 있게 되었습니다!
원자끼리 공간상에서 겹쳐버리는 문제에 대해, Antigravity가 **"무차원 공간에 적응시킨 충돌 회피 단계 (중원자 0.065, 수소 0.045)"**를 코드에 포함해 주어, 겹침 현상이 완전히 제로(0)가 되었습니다.
완성된 시뮬레이터(fiedler_sim_hbond_offset_clash_free.py)로 테스트한 유기 화합물의 수용성 데이터를 계산한 결과는 다음과 같습니다.
| 분자명 | 구조 (SMILES) | 시뮬레이터의 평가값 $\Delta f_{\text{final}}$ | 실제 수용성 데이터 | 결과 |
|---|---|---|---|---|
| tert-부탄올 | CC(C)(C)O | (최고) -0.098508 | 완전 혼화 | 혼화성과 깔끔하게 일치! |
| 2-부탄올 | CCC(O)C | -0.104441 | 29.0 g/100mL | 검증한 범위 내에서 |
| 이소부탄올 | CC(C)CO | -0.113764 | 8.5 g/100mL | 상대적인 수용성 순서가 |
| 1-부탄올 | CCCCO | -0.112343 | 7.3 g/100mL | 멋지게 일치! |
| 디에틸 에테르 | CCOCC | (저수화) -0.098653 | 6.9 g/100mL (최저) | 에테르의 난용성을 재현 |
| 글리세린 | OCC(O)CO | (압도적 고값) -0.056757 | 완전 혼화 | 3개의 -OH에 의한 강력한 수화를 재현 |
슈퍼컴퓨터로 몇 시간 걸릴 계산과 동등하거나 그 이상의 경향성을, 일반 노트북으로 1초 만에 뽑아낼 수 있다는 점에 감동했습니다……!
이 시뮬레이터의 가장 흥미로운 점은, 물과 친하지 않은 소수성 부분(탄소 사슬)이 **물 분자 네트워크의 자기 조직화 (Self-organization)에 따라 '바깥쪽(진공 방향)'으로 자율적으로 튕겨 나가는 다이내믹스 (Dynamics)**를 관찰할 수 있다는 점입니다!
나아가, 물 분자끼리 형성하는 네트워크에 파워 로 (Power law, 멱법칙) 결합을 더하면, **퍼콜레이션 (Percolation, 침투) 현상에 의한 '자기 유사한 프랙탈 수망 구조 ($d_f \approx 2.5$)'**가 자율적으로 성장하는 것도 확인할 수 있었습니다.
동일한 알고리즘을 단백질(시그노린 10개 잔기: YYDPETGTWY)
)에 입력해 보았더니, N-말단과 C-말단의 소수성 아미노산이 자연스럽게 서로 끌어당기며, **자연계와 완전히 동일한 아름다운 $\beta$-헤어핀 구조 ($\beta$-Hairpin)가 자율 창발 (Emergence)**했습니다.
Antigravity가 작성해 준 핵심 코드 호출 예시입니다.
import sys
import fiedler_sim_hbond_offset_clash_free as fsim
# tert-부탄올의 수화 시뮬레이션
...
전문 분야가 아닌 사람이 "이런 아이디어는 어떨까?"라고 질문하는 것만으로도, Antigravity가 물리화학적 정식화, 에러 회피, 그래프 이론 코드 구현, 3D 시각화까지 일관되게 동행해 주었습니다.
Antigravity의 대단했던 점:
- 물리적·수학적 의도를 파악하여 폭발적인 속도로 고도의 코드를 생성해 준다
- 빠지기 쉬운 함정(원자의 겹침이나 기하학적 편향)을 지적하면, 즉시 우아한 보정 수식을 제안해 준다
- 전문 분야가 아니더라도 '사고의 속도'로 연구·개발을 진행할 수 있다
AI와 페어 프로그래밍 (Pair programming)을 하는 시대, 아이디어만 있다면 개인이라도 이토록 흥미로운 물리 시뮬레이터를 만들 수 있다는 것을 실감한 경험이었습니다.
프로그램 코드와 3D 파일은 모두 GitHub에 공개하고 있으니, 관심 있는 분들은 꼭 한 번 접해 보시기 바랍니다!
👉 GitHub 리포지토리 (Repository):
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기