기본 콘텐츠로 건너뛰기

SIMCA® Volcano Plot Python Script

안녕하세요,

이번 포스팅에서는 SIMCA®에서 기본적으로 제공하지 않는 Volcano Plot 기능을 보완하기 위해 제작한 파이썬 스크립트를 소개드리고자 합니다.

특히 오믹스(omics) 기반 실험 데이터를 다루는 고객분들께 실질적인 도움이 될 수 있도록, SIMCA 프로젝트 파일(.usp) 형식의 데모 데이터와 함께 제공하며,
별도의 전처리 없이도 곧바로 실행해보실 수 있도록 구성되어 있습니다.

내부에 포함된 데모 .usp 데이터셋은 이 Volcano Plot 스크립트를 테스트해볼 수 있도록 설계된 예제 파일입니다.


왜 Volcano Plot이 필요할까요?

Volcano Plot은 두 클래스 간의 변화량(Fold Change)과 통계적 유의성(p-value)을 동시에 시각화할 수 있는 그래프입니다.
유전자 발현, 단백질 정량, 메타볼로믹스 분석 등에서 특정 특징(Feature)의 중요도를 빠르게 파악할 수 있어
오믹스 분석에서 필수적인 시각화 도구로 꼽힙니다.

하지만 아쉽게도, SIMCA®는 기본적으로 Volcano Plot을 생성하는 기능을 지원하지 않습니다.

그래서 이번에 제작한 이 스크립트를 활용하면, SIMCA에서 추출한 데이터를 바탕으로 Volcano Plot을 자동으로 생성할 수 있습니다.
복잡한 코딩 지식 없이도 GUI 기반으로 클래스 선택부터 시각화까지 편리하게 처리할 수 있습니다.


제공되는 구성

  • 파이썬 스크립트: Volcano Plot을 자동 생성하는 기능을 담고 있습니다.

  • 예제 .usp 파일: 실제 분석 흐름을 따라가며 직접 실행해볼 수 있는 데모 프로젝트입니다.

  • GUI 인터페이스: 클래스 선택과 분석 대상 선택을 대화창으로 간편하게 처리

  • 통계분석 내장: log2 Fold Change 및 P-value 계산 포함

             SIMCA® Volano Plot 다운로드

주요 기능 안내

스크립트를 실행하면, 먼저 사용자는 .usp 형식의 SIMCA® 프로젝트 파일을 선택하게 됩니다. 이때 내부에 포함된 여러 데이터셋 중 원하는 것을 자동으로 불러올 수 있도록 구성되어 있어, 별도의 파일 정제나 수작업 없이 분석을 시작할 수 있습니다.

이후 Volcano Plot 작성을 위해 비교하고자 하는 두 개의 클래스를 선택하게 되며, 이 과정은 GUI 인터페이스를 통해 간편하게 진행됩니다. 여러 클래스가 존재할 경우, 드롭다운 메뉴를 통해 원하는 클래스를 직접 지정할 수 있어 직관적입니다.

선택이 완료되면 스크립트는 데이터를 자동으로 정제합니다. 결측값이 포함된 행은 제거되며, 두 클래스 간 샘플 수가 불균형할 경우에는 자동으로 균형을 맞추어 공정한 비교가 가능하도록 처리합니다.
각 변수(feature)에 대해 두 클래스 간의 평균값 차이를 기반으로 Fold Change를 계산하고, 동시에 독립 표본 t-test를 통해 p-value를 산출합니다.

이렇게 분석된 데이터를 바탕으로 Volcano Plot이 생성되며,

  • X축에는 log2(Fold Change)

  • Y축에는 -log10(P-value)가 표시됩니다.
    또한 시각적으로 유의미한 경계선이 함께 표시되어,

  • Fold Change ±1 기준선

  • p-value = 0.05에 해당하는 -log10(0.05) 수평선이 자동으로 그려져 해석을 돕습니다.

결과적으로, 이 스크립트는 데이터 불러오기부터 시각화까지의 전 과정을 자동화하여,
SIMCA® 사용자 누구나 손쉽게 Volcano Plot을 생성하고 결과를 직관적으로 확인할 수 있도록 지원합니다.


마무리하며

이 스크립트를 활용하면 SIMCA®의 분석 환경을 확장하여, 오믹스 데이터 기반의 클래스 간 차이를 더욱 직관적으로 해석할 수 있습니다.
기존 SIMCA 사용자라면 누구나 이 툴을 통해 보다 풍부한 시각화 결과를 얻으실 수 있을 것입니다.

또한, SIMCA® 내부에서 이 파이썬 스크립트를 직접 실행하고 연결하는 방법에 대한 내용은

별도 포스팅을 통해 자세히 안내드릴 예정이니, 관심 있으신 분들은 다음 게시글도 꼭 확인해 주세요.

궁금한 점이나 개선이 필요한 부분은 언제든지 댓글로 문의 주시면 감사하겠습니다!

감사합니다.




댓글