Utilizaremos el programa parallel para lanzar tantos procesos en paralelos como hilos tenga nuestra CPU.
Instalación
Para instalar parallel de los repositorios en Ubuntu:
sudo apt-get install parallel
Para el ejemplo necesitaremos el programa fastq-dump:
sudo apt-get install sra-toolkit
Utilización
El siguiente ejemplo muestra como convertir a FASTQ en paralelo tantos ficheros SRA como hilos tenga la CPU, quedando el resto de ficheros en cola. Cuando una conversión termina queda un hilo libre que es ocupado por otra conversión, siempre que haya ficheros en cola. De esta forma la cola va avanzando.
ls *.sra | parallel -j+0 fastq-dump
Si añadimos --eta y --progress podremos estimar el tiempo restante y seguir el avance de la cola, respectivamente.
ls *.sra | parallel -j+0 --eta --progress fastq-dump
Si queremos utilizar un número de hilos diferente, sustituimos +0 por dicho número. Por ejemplo,
ls *.sra | parallel -j4 --eta --progress fastq-dump
Utilizará cuatro hilos.
También podemos añadir parámetros al programa que se va a paralelizar. Por ejemplo, al programa fastq-dump podemos añadirle la opción --split-files si estamos trabajando con paired-end reads:
ls *.sra | parallel -j+0 --eta --progress fastq-dump --split-files