Protocolo: Canu + Racon + Pilon
En mi última prueba (09 de Sept) probé Canu v2.1 y se cae en el último paso sin razon rastreable, por ello cambio a v2.0 y funciona.
- Descargar los binarios de Canu en la versión deseada (ej. canu-2.0.Linux-amd64.tar.xz)
https://github.com/marbl/canu/releases
- Seguir instrucciones para instalar el pipeline usando Docker (Docker corre como root)
https://github.com/nanoporetech/ont-assembly-polish
- Elegir una carpeta del disco donde se descargará el pipeline
git clone https://github.com/nanoporetech/ont-assembly-polishcd docker; make build- Recomendado: situar el archivo de secuencias Nanopore (descomprimido) en una carpeta (DataFolder)
- Recomendado: situar los archivos con secuencias Illumina (comprimidas) en la carpeta DataFolder
- Recomendado: descomprimir Canu en la carpeta DataFolder
tar xfJ canu-2.0.Linux-amd64.tar.xz - Ejecutar la siguiente línea cambiando DataFolder por la carpeta donde están los datos
sudo docker run -v **DataFolder**:/data -it ont-assembly-polish
- Una vez dentro del sistema Docker algunas instalaciones opcionales
- instalar vim (
apt install vim) o nano (apt install nano) - instalar htop (
apt install htop)
- Preparación del pipeline
- Dentro del Docker los archivos estarán disponibles en /data
- El directorio de trabajo es /home/ont-assembly-polish y allí será necesario editar algunos archivos:
- El archivo config.mk debe ser editado (usar vim o nano) para incluir los nombres de los archivos con secuencias, ejemplo:
NANOPORE_READS=/data/psal12201.wo_adapt.q12.l500.fastq
ILLUMINA_READS_PAIR1=/data/70.p1.trim.fil.fq.gz
ILLUMINA_READS_PAIR2=/data/70.p2.trim.fil.fq.gz - Al final del archivo config.mk se puede configurar la cantidad de memoria RAM para Pilon y el número de cores para el pipeline.
- El archivo analysis.mk debe ser editado para incluir la ruta de ejecución de Canu (carpeta donde están los binarios de canu [carpeta data]).
Ejemplo:
L16: @/data/canu-2.0/Linux-amd64/bin/canu\
L20: sustituir -nanopore-raw por -nanopore - Si se desea usar un ensamble previo se deben adaptar los siguientes parámetros y comentar (#) L13 a L20.
L1: prefijo que usará canu para los nombres (debe ser acorde al ensamble previo)
L2: nombre del directorio para los archivos de canu (colocar el ensamble dentro de assembly-polish/canu-assembly)
-
Ejecutar el pipeline
- Con todo preparado ejecutar en el directorio de trabajo:
make all 1> make.pilon1.txt 2> make.pilon2.txt & - Logs: el archivo make.pilon1.txt captura la salida de error y make.pilon2.txt captura la salida estándar
- Monitorear el avance revisando los archivos make.pilon y/o viendo los procesos en ejecución con htop
- Con todo preparado ejecutar en el directorio de trabajo:
-
Manejo de Docker:
- Salir deteniendo la ejecución:
Ctrl+d - Detach (Salir dejando los procesos en background):
Ctrl+p+q - Listar los contenedores del sistema
sudo docker ps -a - Volver a entrar:
docker attach ef7e107e0aae
docker attach lonely_wing - Sólo iniciar sin entrar:
docker start ef7e107e0aae
docker start lonely_wing
- Resultado:
- Copiar la carpeta assembly-polish y los logs a la carpeta /data lo cual permitirá retener los resultados una vez fuera de Docker. Recuerda, /data está vinculado a la carpeta DataFolder que seleccionaste al iniciar el Docker.
cp -r assembly-polish /data/
cp make.no_pilon* /data/ - Ahora ya es seguro apagar el Docker y seguir trabajando desde el sistema principal (
Ctrl+d) - Una vez en el sistema principal, es necesario cambiar los permisos de la carpeta assembly-polish desde root al dueño real
chown -R usuario:usuario assembly-polish - Los archivos finales:
- canu-assembly/canu.contigs.fasta
- racon.contigs.fasta
- pilon.contigs.fasta (el más importante)
- Copiar la carpeta assembly-polish y los logs a la carpeta /data lo cual permitirá retener los resultados una vez fuera de Docker. Recuerda, /data está vinculado a la carpeta DataFolder que seleccionaste al iniciar el Docker.