Измените права доступа к файлу. Google — ваш друг, с большинством проблем, с которыми сталкиваетесь вы, сталкивались и решались и другие люди. Один поиск в Google, и вы можете просто найти свое решение.
chmod 4755 /usr/lib/policykit-1/polkit-agent-helper-1
Должно быть примерно так:
UUID=a34cdfff-2388.. / ext4 noatime,nodiratime,errors=remount-ro 0 1
В качестве грубой догадки может работать что-то вроде следующего:
find./A{1..16}/ -type f -name aligned.sorted.bam -print0 |
xargs -0r -n 1 -P 8./myscript.sh
Это запустит несколько экземпляров myscript.sh
параллельно(-P 8
запустит 8 одновременно. отрегулируйте, если у вас больше или меньше ядер/потоков ЦП -на моем threadripper, я бы использовал -P 32
. или используйте -P 0
для запуска как можно большего числа ), предоставляя каждому экземпляру скрипта один аргумент имени файла.
myscript.sh
будет что-то вроде:
#!/bin/sh
cd "$(dirname "$1")"
module load samtools/1.3.2
samtools view -h -o aligned.sam "$1"
module load htseq/0.6.1
htseq-count --stranded=no -q aligned.sam /local/software/DropSeq/STAR_Genomes/STAR_hg38_Genome/metadata/Homo_sapiens.GRCh38.dna.primary_assembly.gtf > counts.txt
Это должно быть выполнено с помощью chmod +x myscript.sh
. Приведенная выше команда xargs
предполагает, что она находится в текущем каталоге. Вы можете поместить его в свой PATH где-нибудь(~/bin/
— это хорошее место для ваших собственных скриптов, просто добавьте его в $PATH в вашем~/.bashrc
)и просто запустите myscript.sh
, а не ./myscript.sh
.
Я понятия не имею, что делает module load...
, или samtools
, или htseq-count
, так что вполне возможно, что я неправильно понял эту часть ответа. Я предполагаю, что вы знаете, что хотите запустить, поэтому вы можете исправить сценарий по мере необходимости.
ps :Я рекомендую протестировать очень простой myscript.sh
, который не записывает никаких файлов.
напр. что-то вроде этого:
#!/bin/sh
cd "$(dirname "$1")"
echo process-id $$ is in $(pwd), processing file "$1"