Я никогда не использовал директиву обертки, но искал, например, в markduplicates / wrapper.py команда оболочки picard MarkDuplicates {snakemake.params} ...
. Так, может быть, использование слота params
работает?
rule markdups:
input:
'in.bam',
output:
bam= 'out.bam',
metrics= 'metrics.tmp',
params:
mem= "-Xmx4g",
wrapper:
"0.31.0/bio/picard/markduplicates"
Пикард должен понимать, что -Xmx...
является параметром java.
Просто используйте --full-commands
опция показать полную командную строку для каждого процесса:
top -c
Нажмите" c
" и отобразите командную строку - который позволит Вам видеть, каковы они.
Вы могли бы также проверить команду PS. В зависимости от Вашей системы:
ps aux
или
ps -fu USERNAME
Вы ищете способ отобразить полную командную строку? Тогда просто нажмите' c
'
Это, вероятно, будет платформой и зависимым версии, но на платформах я использую (CentOS, Debian), вершина обычно отображает последнюю часть команды, выполненной как идентификатор.
я предполагаю, поэтому, что Вы выполняете свои сценарии путем выполнения "python scriptname".
, Если Вы изменяете свои сценарии на то, чтобы быть исполняемым файлом как сами (chmod +x и первая строка #!/usr/bin/python [или везде, где Python живет]), и затем выполняет их использующий просто" scriptname", а не "python scriptname", они должны обнаружиться в вершине как свое имя файла.
Можно также попробовать PS aux или PS-au USESRNAME. PS довольно хорош, так как можно отформатировать вывод, например, PS-u ИМЯ ПОЛЬЗОВАТЕЛЯ-o pid, команда, которая отобразила бы pid и команду процесса. Тогда можно также пропустить его через grep (PS-u ИМЯ ПОЛЬЗОВАТЕЛЯ-o pid, command|grep Python) для наблюдения всех под управлением сценариев Python.
Я не уверен, можно ли сделать, это в Python, но в программах C, argv [0] может на самом деле быть изменено для показа "более симпатичного" названия процесса. Я думаю, что ограничение состоит в том, что новое имя должно быть равным или короче в длине, чем настоящее имя, таким, что Вы не топаете на памяти.