2017-11-15 19 views
0

설정 파일에서 Snakefile의 변수를 사용할 수 있습니까? 아래 예제에서 Snakefile이 'foo'를 변수 이름으로 인식하고 그 값을 사용하길 원합니다.설정 파일에서 snakefile 변수 사용하기 [snakemake]

Snakefile :

from pathlib import Path 

foo = Path('path_to_dir') 

rule all: 
    input: 
     config['OUT_FILE') 

구성 파일 :

OUT_FILE: foo/"data/results/abc.png" 

이 할 수없는 경우, 사용할 수있는 대체 솔루션이있다?

+0

왜 구성 파일에 JPEG 경로를 저장 하시겠습니까? 이것이 필요한 이유를 알 수 없습니다. Snakemake는 configfile을 동적으로 수정하는 것을 지원하지 않습니다. 경로 또는 위치라면 저장하지 않아도되며 와일드 카드 및 규칙 (Snakemake의 기본 사항)을 통해 전파되어야합니다. 파일 인 경우 규칙 자체에 의해 추적되어야하기 때문에 파일을 저장하지 않아도됩니다. 규칙간에 변수를 전달할 수 있지만 커플 링 문제로 인해 문제가 될 수 있습니다. 정교하게 써 주시겠습니까? – TBoyarski

+0

@TBoyarski 필자의 유스 케이스는 rule-all의 입력 파일이 사용 된 하드웨어에 따라 다르다. 내 생각은 특정 입력 파일이 필요한 여러 구성 파일을 통해 제어하는 ​​것이 었습니다. 하드 코딩 된 파일 경로를 가질 수는 있지만 변수를 통해 파일 경로를 사용하면 더 명확하게 알 수 있습니다. – JeeYem

답변

0

config에서 자리 표시 자 또는 상대 경로를 사용하고 Snakefile 시작 부분에서 구성 파일이 구문 분석되면이를 프로그래밍 방식으로 바꿀 수 있습니다. snakemake는 파이썬과 규칙 구문이므로, 여러분의 워크 플로우에서 직접 파이썬 코드를 사용할 수 있음을 기억하십시오.

+0

감사합니다. Snakemake는 최고입니다, btw! – JeeYem