워크플로 시각화 (DAG)

워크플로가 복잡해지면 어떤 규칙이 어떤 파일에 의존하고 있는지 한눈에 파악하기 어려워집니다. Snakemake는 이를 시각화할 수 있는 강력한 기능들을 제공합니다.

방향성 비순환 그래프 (DAG, Directed Acyclic Graph)

Snakemake는 규칙과 파일 간의 의존 관계를 DAG 형식으로 표현합니다. 이를 확인하려면 시스템에 graphviz 패키지의 dot 명령어가 설치되어 있어야 합니다.

DAG 생성하기

다음 명령어를 통해 워크플로의 작업 흐름을 그림 파일로 저장할 수 있습니다.

snakemake --dag | dot -Tpng > dag.png
  • --dag: Snakemake가 렌더링 가능한 텍스트 형식의 그래프 데이터를 출력합니다.
  • | dot -Tpng: 이 데이터를 dot 프로그램으로 전달하여 PNG 이미지로 변환합니다.
  • > dag.png: 최종 결과를 파일로 저장합니다.

파일 그래프 (File Graph)

작업 단위가 아닌 실제 파일들 간의 관계를 더 자세히 보고 싶다면 --filegraph 옵션을 사용할 수 있습니다.

snakemake --filegraph | dot -Tpng > filegraph.png

시각화의 장점

  1. 논리 검증: 의도한 대로 규칙이 연결되어 있는지 확인할 수 있습니다.
  2. 병렬성 확인: 그래프에서 같은 계층(수평)에 있는 작업들은 Snakemake가 동시에 병렬로 실행할 수 있는 후보들입니다.
  3. 문서화: 연구 논문이나 보고서에 워크플로의 전체 구조를 첨부하는 데 유용합니다.
Tip

워크플로가 너무 크다면 특정 규칙까지만 시각화할 수도 있습니다. snakemake --dag result.txt | dot -Tpng > partial_dag.png