Snakemake
#
Find similar titles
-
작성자
ehlim@insilicogen.com
Structured data
- Category
- Analysis
- Software
Snakemake (스네이크메이크) #
스네이크메이크 #
스네이크메이크는 워크플로우 관리 시스템(Workflow Management System, WMS)툴로서 유향 비순환 그래프 방식 (Directed Acyclic Graph, DAG) 으로 구현되어 있다. 워크플로우 가독성이 좋으며 파이썬으로도 작성할 수 있어서 호환성이 좋다. 서버, 클러스터, 그리드, 클라우드 환경에 다 적용할 수 있는 툴로 일주일에 5편에 논문 인용이 나올 만큼 인기가 많다.
스네이크메이크 주요 문법 #
rule : 룰은 shell script 명령어와 input, output을 지정하여 받을 수 있다. shell 명령어에 맞는 input을 입력하면 예상되는 output 출력 결과값을 output에 입력한다.
스네이크메이크 공식 튜토리얼 시퀀싱 리드 맵핑 예제 (출처)
wildcards: 와일드카드는 컴퓨터에서 특정 명령어로 명령을 내릴 때, 여러 파일을 한꺼번에 지정할 목적으로 사용하는 기호를 가리킨다. 스네이크메이크 에서는 {변수 이름}으로 지정한다. 가장 중요한 개념으로 위에 read mapping 예제에서 {sample}.fastq 파일은 a.fastq, b.fastq, asdf.fastq 모두를 받을 수 있고 따라서 각각의 파일에 rule이 적용된다. 위에 룰이 실행되면 스네이크메이크는 wildcards에 sample 변수를 맵핑하여 shell 명령어에서는 {wildcards.sample} 해주어야 sample을 인식할 수 있다.
snakefile: snakefile은 rule을 적는 파일로 그 파일이 있는 디렉토리에 "snakemake" 명령어만 커맨드라인에 실행하면 스네이크메이크 파이프라인이 작동한다. 워크플로우가 복잡한 경우 rule 디렉토리를 따로 만들고 스네이크파일에는 rull에 input 부분의 최종 결과파일만 넣어준 후 include 명령어로 rule 디렉토리에 있는 파일들을 연결할 수 있다.
Config files: config file은 변수를 지정해주는 snakefile 과 분리되어 rule에 shell에서 작업할 필요 없이 파일 하나로 커스터마이징이 가능하다. 이렇게 커스터마이징 파일을 따로 만들면 직관적인 워크플로우를 만들 수 있다.
스네이크메이크 개발자가 제작한 germline varaint calling pipeline config file (출처)
wrapper: 생물정보 관련 파이프라인을 스네이크메이크로 작성하는 데 유용한 기능이다. 이미 정형화된 분석 스크립트를 모아 놓은 저장소로 주로 samtools, bwa, fastq, varscan, vcftools, 등 이외에도 수많은 분석 관련 툴이 스네이크메이크 문법에 맞게 적용할 수 있다. wrapper 기능을 사용하려면 비교적 최신버전의 스네이크메이크를 환경을 갖추어야 한다(현재 5.24.1).
wrapper 사용 스네이크메이크 예 (출처)