PASTASpark
Extensión de PASTA a tecnologías Big Data con Apache Spark
¿De qué trata PASTASpark?
PASTASpark es una herramienta que utiliza el motor de Big Data Apache Spark para mejorar el rendimiento de la fase de alineamiento de PASTA (Practical Alignments using SATé and TrAnsitivity). PASTASpark reduce notablemente el tiempo de ejecución de PASTA al ejecutar la parte más costosa del código original como una aplicación distribuida de Spark. De este modo, PASTASpark garantiza la escalabilidad y la tolerancia a fallos, y permite obtener alineamientos múltiples de secuencias (MSA) a partir de conjuntos de datos muy grandes en un tiempo razonable.
José M. Abuin, Tomás F. Pena and Juan C. Pichel. "PASTASpark: multiple sequence alignment meets Big Data". Bioinformatics, Vol. 33, Issue 18, pages 2948-2950, 2017.
PASTASpark fue originalmente una bifurcación de PASTA (bifurcada en noviembre de 2016) aquí y aquí. Más tarde, se convirtió en un proyecto independiente en este repositorio. El artículo original de PASTA se puede consultar en estas referencias:
Mirarab, S., Nguyen, N., and Warnow, T. (2014). "PASTA: Ultra-Large Multiple Sequence Alignment". In R. Sharan (Ed.), Research in Computational Molecular Biology, (pp. 177–191).
Mirarab, S., Nguyen, N. Guo, S., Wang, L., Kim, J. and Warnow, T. "PASTA: Ultra-Large Multiple Sequence Alignment for Nucleotide and Amino-Acid Sequences". Journal of Computational Biology, (2014).
Ejecución de PASTASpark
Dependencias de ejecución
- Python 2.7 o posterior.
- Java 8 (necesario para Opal, que se utiliza de forma predeterminada en PASTA para combinar alineamientos pequeños).
- Un clúster con Hadoop/YARN y Spark instalados y en ejecución. Probado con Hadoop 2.7.1 y Spark 1.6.1.
- Una carpeta compartida entre los nodos de computación para almacenar los resultados en el clúster.
Modos de funcionamiento
PASTASpark se puede ejecutar como el PASTA original o en un clúster YARN/Spark. De este modo, si inicias PASTASpark en un contexto Spark, se ejecutará en tu clúster Spark. Puedes encontrar más información sobre este tema en la siguiente sección.
Ejemplos
Un ejemplo básico de cómo ejecutar PASTASpark en tu máquina local con una instalación de Spark operativa es:
spark-submit --master local run_pasta.py -i data/small.fasta -t data/small.tree
A continuación se muestra un ejemplo de cómo iniciar PASTASpark mediante un script bash y utilizando como entrada los archivos almacenados en el directorio data:
#!/bin/bash
SPARK_COMMAND="spark-submit --master yarn --deploy-mode cluster"
DRIVER_MEM="25G"
EXEC_MEM="5G"
CURRENT_DIR=`pwd`
HOME="/home/jmabuin"
NUM_EXECUTORS="8"
DRIVER_CORES="4"
EXECUTOR_CORES="1"
ARCHIVES="pasta.zip"
PY_FILES="pasta.zip,$HOME/.local/lib/python2.7/site-packages/DendroPy-3.12.3-py2.7.egg"
INPUT_DATA="$CURRENT_DIR/data/small.fasta"
INPUT_TREE="$CURRENT_DIR/data/small.tree"
$SPARK_COMMAND --name PastaSpark_Small_8Exec --driver-memory $DRIVER_MEM --executor-memory $EXEC_MEM --num-executors $NUM_EXECUTORS --driver-cores $DRIVER_CORES --executor-cores $EXECUTOR_CORES --archives $ARCHIVES --py-files $PY_FILES run_pasta.py --temporaries=./ -i $INPUT_DATA -t $INPUT_TREE --num-cpus=$DRIVER_CORES --num-cpus-spark=$EXECUTOR_CORES --num-partitions=$NUM_EXECUTORS
Para consultar la documentación original de PASTA, haz clic aquí.