I am trying to run gnu:parallel
on bedtools multicov
function where the original command is
bedtools multicov -bams bam1 bam2 bam3.. -bed anon.bed > Q1_Counst.bed
I would like to implement the above command using gnu parallel. But when I run the command below
parallel -j 25 "bedtools multicov -bams {1} -bed {2} > Q1_Counst.bed" ::: minus_1_common_sorted_q1.bam minus_2_common_sorted_q1.bam minus_3_common_sorted_q1.bam plus_1_common_sorted_q1.bam plus_2_common_sorted_q1.bam plus_3_common_sorted_q1.bam ::: '/genome/genes_exon_2.bed'
each bam file is taken as separate argument , hence the processes starting are like
bedtools multicov -bams bam1 -bed anon.bed > Q1_Counst.bed
bedtools multicov -bams bam2 -bed anon.bed > Q1_Counst.bed
bedtools multicov -bams bam3 -bed anon.bed > Q1_Counst.bed
instead of taking all files as separate arguments. Hence Q1_Counst.bed
is overwritten randomly. Could any one help me in getting exact command ? My server has around 30 cores.
But it is more like
which create
<int TMPBED*>
number of sub processes in shell. Is there any other advantage here in running gnu parallel ?you can limit the number of parallel jobs, you can use a remote server, and then fetch the result back , you can re-analyze only the jobs that failed, ...
Thanks.. It is working. :)