Использование subprocess.run для запуска Snakemake - PullRequest
1 голос
/ 28 октября 2019

Я пытаюсь запустить sankemake в скрипте Python, используя конфигурацию кластера, где myoutput/output.txt один из моих результатов вывода:

cluster = """ "qsub -A {cluster.account}  -l walltime={cluster.time} -q {cluster.queue} -l nodes=1:ppn={cluster.nCPUs} -l mem={cluster.memory}" """  

subprocess.run(['snakemake',  '-p', "myoutput/output.txt", '-j 200', '--cluster-config', cluster_config, '--cluster', cluster])

У меня есть эта ошибка:

/bin/sh: qsub -A proj_A  -l walltime=72:00:00 -q analysis -l nodes=1:ppn=20,mem=30G: command not found

Я вижу, что змеиный мейкер подчиняется /bin/sh, где qsub на самом деле /usr/bin/qsub.

Есть идеи, как ее решить, или есть лучшая реализация?

Спасибо

1 Ответ

1 голос
/ 28 октября 2019

Так что я подумал, что мне нужно передать кластер в двойных кавычках флагу --cluster, как предложено в документации, поэтому я использовал.

cluster = """ "qsub -A {cluster.account}  -l walltime={cluster.time} -q {cluster.queue} -l nodes=1:ppn={cluster.nCPUs} -l mem={cluster.memory}" """  

но на самом деле это то, что приводит к ошибке, когда яиспользуется следующим образом:

cluster = "qsub -A {cluster.account}  -l walltime={cluster.time} -q {cluster.queue} -l nodes=1:ppn={cluster.nCPUs} -l mem={cluster.memory}" 

Он работает так, как и должно быть.

...