PASTASpark

Extensión de PASTA a tecnoloxías Big Data con Apache Spark

De que trata PASTASpark?

PASTASpark é unha ferramenta que utiliza o motor de Big Data Apache Spark para mellorar o rendemento da fase de aliñamento de PASTA (Practical Alignments using SATé and TrAnsitivity). PASTASpark reduce notablemente o tempo de execución de PASTA ao executar a parte máis custosa do código orixinal como unha aplicación distribuída de Spark. Deste xeito, PASTASpark garante a escalabilidade e a tolerancia a fallos, e permite obter aliñamentos múltiples de secuencias (MSA) a partir de conxuntos de datos moi grandes nun tempo razoable.

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 foi orixinalmente unha bifurcación de PASTA (bifurcada en novembro de 2016) aquí e aquí. Máis tarde, converteuse nun proxecto independente neste repositorio. O artigo orixinal de PASTA pódese consultar nestas 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).

Execución de PASTASpark

Dependencias de execución

  1. Python 2.7 ou posterior.
  2. Java 8 (necesario para Opal, que se utiliza de xeito predeterminado en PASTA para combinar aliñamentos pequenos).
  3. Un clúster con Hadoop/YARN e Spark instalados e en execución. Probado con Hadoop 2.7.1 e Spark 1.6.1.
  4. Un cartafol compartido entre os nodos de computación para almacenar os resultados no clúster.

Modos de funcionamento

PASTASpark pódese executar como o PASTA orixinal ou nun clúster YARN/Spark. Deste xeito, se inicias PASTASpark nun contexto Spark, executarase no teu clúster Spark. Podes atopar máis información sobre este tema na seguinte sección.

Exemplos

Un exemplo básico de como executar PASTASpark na túa máquina local cunha instalación de Spark operativa é:

spark-submit --master local run_pasta.py -i data/small.fasta -t data/small.tree

A continuación móstrase un exemplo de como iniciar PASTASpark mediante un script bash e utilizando como entrada os ficheiros almacenados no 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 a documentación orixinal de PASTA, fai clic aquí.