Hugging Face Spaces에서 단백질 시각화
Hugging Face는 Hugging Face Spaces 내에서 3D 단백질 구조를 직접 시각화하는 방법을 도입했습니다. 이 통합을 통해 개발자는 단백질 머신러닝 모델을 인터랙티브한 브라우저 기반 뷰어와 결합할 수 있어, 예측되거나 재설계된 단백질 구조를 정성적으로 검증할 수 있습니다.
머신러닝에서 단백질 시각화
단백질 구조는 단백질 기능을 이해하는 데 핵심적입니다. AlphaFold2, OmegaFold, OpenFold와 같은 모델을 포함하는 단백질 머신러닝 분야에서는 단백질을 좌표, 그래프, 혹은 1D 서열로 표현하는 경우가 많습니다. 아미노산의 3D 배열이 단백질의 기능을 결정하기 때문에, 이러한 구조를 시각화하는 것은 연구자가 모델 출력물을 해석하는 데 필수적입니다.
Gradio와 3Dmol.js 통합
Hugging Face Space에서 단백질을 시각화하려면, 개발자는 분자 시각화를 위한 JavaScript 라이브러리인 3Dmol.js를 Gradio HTML 블록을 통해 통합하여 사용할 수 있습니다.
구현 방법
Gradio에 기본 3Dmol 블록이 없기 때문에, 통합은 HTML 문서를 포함하는 iframe을 반환함으로써 구현됩니다. 이 접근 방식은 최신 브라우저 보안 규칙을 준수하기 위해 필요합니다.
- 데이터 가져오기: 애플리케이션은 4자리 PDB(Protein Data Bank) 코드를 받아 RCSB Protein Databank에서 파일을 가져오거나 직접 PDB 파일 업로드를 허용할 수 있습니다.
- HTML 설정: HTML 문서의
head는 3Dmol.js 라이브러리와 jQuery를 로드합니다. - 렌더링: HTML 문서의
body는 3Dmol 뷰어가 초기화되는 컨테이너div를 정의합니다. PDB 파일 내용은 뷰어에 전달되고, (예:whiteCarbon색상 스키마 사용) 스타일링된 뒤viewer.render()와viewer.zoomTo()메서드를 사용해 렌더링됩니다.
최신 대안: Molecule3D 커스텀 컴포넌트
2024년 5월 현재, Hugging Face는 수동 iframe 방식 대신 Molecule3D Gradio Custom Component를 사용할 것을 권장합니다. 이 컴포넌트는 과정을 단순화하고 사용자가 실시간으로 단백질 시각화를 수정할 수 있게 합니다. pip를 통해 설치할 수 있습니다:
pip install gradio_molecule3d
실용 사례: ProteinMPNN
이 시각화 파이프라인이 실제로 적용된 예는 ProteinMPNN 스페이스입니다. 이 워크플로우에서는 사용자가 단백질 백본을 업로드하고, ProteinMPNN 역접힘 모델이 최적 서열을 예측하며, AlphaFold2를 사용해 해당 서열이 초기 입력 백본을 채택하는지 검증합니다. AlphaFold2의 높은 pLDDT 점수와 구조가 입력 백본과 일치한다는 정성적 시각적 확인이 결합되면, 실험실에서 테스트해야 할 성공적인 재설계임을 나타냅니다.