#python #conda #snakemake
#python #conda #snakemake
Вопрос:
Редактировать:
Я начал с вызова conda activate snakemake
Мой Snakefile содержит следующее:
configfile: "config.yaml"
rule all:
input: expand("{root_dir}/{geoid}/*.CEL", root_dir = config['root_dir'], geoid = config['geoid'])
rule getCelFiles:
output: "{root_dir}/{geoid}/*.CEL"
run:
if not os.path.exists(os.path.join(wildcards.root_dir,wildcards.geoid)) :
shell("Rscript scripts/getCELFiles.R {wildcards.geoid} "
"cd {wildcards.geoid} amp;amp; tar -xvf * amp;amp; rm *.tar amp;amp; gunzip *")
else :
print(os.listdir())
print("getcwd:", os.getcwd())
print(os.path.exists(os.path.join(wildcards.root_dir,wildcards.geoid)))
print(os.path.join(wildcards.root_dir,wildcards.geoid))
Когда я запускаю ls
в текущем каталоге, я получаю следующий вывод:
config.yaml old README.txt scripts Snakefile
Но вывод else
условия возвращает следующее:
os.listdir():
['.snakemake', 'Snakefile', 'README.txt', 'scripts', '.DS_Store', 'old', 'GSE4290', 'config.yaml']
getcwd:
/home/rebecca/workflows/exploring_tools/affymetrix_preprocess/snakemake # current working directory
os.path.exists: True
os.path.join:
/home/rebecca/workflows/exploring_tools/affymetrix_preprocess/snakemake/GSE4290 # directory that is being checked for
Кажется, там есть файлы / папки, а именно GSE4290
, которые «на самом деле» там нет. Мне интересно, выполняет ли snakemake run
директиву в какой-то «параллельной» среде? В принципе, я не уверен, как получить доступ к GSE4290
папке, чтобы код выполнялся должным образом (т. Е. Запуск блока с помощью командной строки Rscript и т. Д.).
Заранее спасибо.
Комментарии:
1. попробуйте использовать
ls -a
и просмотрите все файлы каталога, присутствующие в этом каталоге2. Вы уверены, что
output: "{root_dir}/{geoid}/*.CEL"
это не создает каталог? потому что похоже, что это так3. @sahasrara62: Я попробовал это, получил следующий вывод: «. .. config.yaml .DS_Store старый README.txt скрипты Snakefile .snakemake»
4. @DeepSpace Разве этот каталог не должен создаваться после директивы «run»? Т.е. Когда вызывается Rscript, вывод еще не создан. Кроме того, разве этот каталог не был бы там после запуска процесса, если бы это было правдой? Я предполагаю, что это проверяет мое понимание snakemake.
5. @DeepSpace Update: вы правы, каталог создается в начале рабочего процесса и, следовательно, существует во время выполнения рабочего процесса, даже если он завершается с ошибкой. Спасибо!