Как получить путь к рабочему каталогу?

Мне интересно, как управлять путями в моих Snakefiles. Скажем, у меня есть эта конфигурация:

current_dir
current_dir/snakefiles
current_dir/configfiles

и я выполняю свои рабочие процессы следующим образом:

current_dir$ snakemake -s snakefiles/my_snakefile --configfile configfiles/my_config.yml

Я знаю, что могу получить путь к моему Snakefile, используя глобальную переменную workflow.snakefile, но я также хотел бы получить:

  • путь к моему конфигу
  • путь, по которому я запускаю свой файл змеи, например. current_dir

Как этого добиться? Есть ли в Snakemake другие глобальные переменные, о которых я не знаю?

Спасибо


person rioualen    schedule 16.01.2017    source источник


Ответы (1)


Рабочий каталог задается через Python. Вы можете получить его с помощью os.getcwd(). Также обратите внимание, что существует канонический способ организации рабочих процессов Snakemake: http://snakemake.readthedocs.io/en/latest/project_info/faq.html#what-is-the-recommended-way-to.-distribute-a-snakemake-workflow.

Хотя вы, конечно, можете использовать что-то еще, следование этой схеме поможет другим понять ваш рабочий процесс. Конечно, могут быть случаи, когда это не подходит.

person Johannes Köster    schedule 16.01.2017
comment
Спасибо, действительно моя организация немного отличается. Я разделяю файлы конфигурации, рабочие процессы и правила. Данный рабочий процесс может работать с разными файлами конфигурации, и один файл конфигурации может использоваться разными рабочими процессами. Вот почему я хотел бы иметь возможность получить путь к файлу конфигурации где угодно (в рабочих процессах и в правилах). - person rioualen; 19.01.2017