Sign inSign up
phylonetworks logo

ccervantess/phylonetworks

By ccervantess

•Updated 6 months ago

Contenedor con PhyloNetworks, SNaQ y herramientas para graficar redes filogenéticas

Image
Data science
0

81

ccervantess/phylonetworks repository overview

⁠PhyloNetworks

Contenedor para análisis de redes filogenéticas con Julia, PhyloNetworks y SNaQ, con soporte adicional para generación de figuras mediante R, RCall, PhyloPlots, Plots/GR y CairoMakie.

Este contenedor forma parte de UniSSE Containers, una colección de contenedores bioinformáticos orientados a análisis filogenómicos y evolutivos, principalmente para uso con Apptainer/Singularity en ambientes de cómputo de alto rendimiento (HPC).

⁠Institución

Unidad de Síntesis en Sistemática y Evolución (UniSSE)
Instituto de Biología
Universidad Nacional Autónoma de México (UNAM)

⁠Objetivo

El objetivo de este contenedor es proporcionar un ambiente reproducible para:

  • Ejecutar análisis de redes filogenéticas con PhyloNetworks.
  • Ejecutar análisis de hibridación/introgression con SNaQ.
  • Generar figuras y visualizaciones usando PhyloPlots, Plots, GR y CairoMakie.
  • Facilitar el uso de estos programas en servidores HPC mediante Apptainer/Singularity.

La imagen está pensada principalmente para descargarse y utilizarse como archivo .sif con Apptainer/Singularity.

⁠Software incluido

Versiones principales incluidas en esta imagen:

  • Julia 1.10.3
  • PhyloNetworks 1.3.0
  • SNaQ 1.1.1
  • PhyloPlots 2.1.0
  • Plots 1.41.4
  • GR 0.73.20
  • RCall 0.14.11
  • CairoMakie 0.15.9
  • R instalado desde los repositorios del sistema base

Las versiones también se documentan dentro del contenedor en:

/opt/UNISSE_VERSIONS.txt

⁠Uso con Apptainer/Singularity en HPC

Este es el uso recomendado para servidores de cómputo de alto rendimiento.

Descargar la imagen y convertirla a archivo .sif:

apptainer pull phylonetworks_1.2.0.sif docker://ccervantess/phylonetworks:1.2.0

Probar que PhyloNetworks y SNaQ funcionan:

apptainer exec --cleanenv phylonetworks_1.2.0.sif \
  julia --project=/opt/julia-env \
  -e 'using PhyloNetworks, SNaQ; println("SNaQ OK")'

Ver las versiones incluidas:

apptainer exec phylonetworks_1.2.0.sif \
  cat /opt/UNISSE_VERSIONS.txt

Ejecutar un script de Julia desde el directorio actual:

apptainer exec --cleanenv --bind "$PWD":/work --pwd /work \
  phylonetworks_1.2.0.sif \
  julia --project=/opt/julia-env script.jl

⁠Ejemplo de uso con un script de SNaQ

Supongamos que se tiene un script llamado run_snaq.jl en el directorio actual.

Ejecutar con Apptainer:

apptainer exec --cleanenv --bind "$PWD":/work --pwd /work \
  phylonetworks_1.2.0.sif \
  julia --project=/opt/julia-env run_snaq.jl

⁠Prueba de gráficos con Plots/GR

Este ejemplo genera una figura llamada test_gr.png en el directorio actual:

apptainer exec --cleanenv --bind "$PWD":/work --pwd /work \
  phylonetworks_1.2.0.sif \
  julia --project=/opt/julia-env \
  -e 'using Plots; gr(); plot(1:10, (1:10).^2); savefig("test_gr.png"); println("Figura creada con GR")'

⁠Prueba de gráficos con CairoMakie

Este ejemplo genera una figura llamada test_cairomakie.png en el directorio actual:

apptainer exec --cleanenv --bind "$PWD":/work --pwd /work \
  phylonetworks_1.2.0.sif \
  julia --project=/opt/julia-env \
  -e 'using CairoMakie; fig=Figure(); ax=Axis(fig[1,1]); lines!(ax, 1:10, (1:10).^2); save("test_cairomakie.png", fig); println("Figura creada con CairoMakie")'

⁠Variables de ambiente importantes

El contenedor usa las siguientes variables de ambiente:

JULIA_PROJECT=/opt/julia-env
JULIA_DEPOT_PATH=/tmp/julia-depot:/opt/julia-depot
JULIA_HISTORY=/dev/null
GKSwstype=100
R_HOME=/usr/lib/R

La ruta /tmp/julia-depot se usa para permitir que Julia escriba archivos temporales durante la ejecución con Apptainer/Singularity, ya que el archivo .sif es de solo lectura.

GKSwstype=100 permite usar GR en modo no interactivo/headless, útil en servidores sin interfaz gráfica.

⁠Notas para HPC

Para uso en servidores HPC se recomienda:

  1. Descargar la imagen una sola vez como archivo .sif.
  2. Guardarla en una ruta compartida o administrada por el sistema.
  3. Ejecutarla mediante scripts de Slurm, PBS u otro sistema de colas.
  4. Montar el directorio de trabajo con --bind.
  5. Mantener los datos, scripts y salidas fuera del contenedor.

Ejemplo general:

apptainer exec --cleanenv --bind "$PWD":/work --pwd /work \
  phylonetworks_1.2.0.sif \
  julia --project=/opt/julia-env script.jl

⁠Ejemplo básico para Slurm

Ejemplo de script run_phylonetworks.slurm:

#!/usr/bin/env bash
#SBATCH --job-name=phylonetworks
#SBATCH --cpus-per-task=8
#SBATCH --mem=16G
#SBATCH --time=12:00:00
#SBATCH --output=phylonetworks_%j.out
#SBATCH --error=phylonetworks_%j.err

set -euo pipefail

SIF="/ruta/a/phylonetworks_1.2.0.sif"
WORKDIR="$PWD"
SCRIPT="script.jl"

apptainer exec --cleanenv --bind "$WORKDIR":/work --pwd /work \
  "$SIF" \
  julia --project=/opt/julia-env "$SCRIPT"

Enviar el trabajo:

sbatch run_phylonetworks.slurm

⁠Reproducibilidad

Este contenedor busca facilitar análisis reproducibles al fijar explícitamente las versiones principales de Julia y de los paquetes utilizados.

Las versiones principales están documentadas en:

/opt/UNISSE_VERSIONS.txt

También pueden consultarse desde Julia:

apptainer exec phylonetworks_1.2.0.sif \
  julia --project=/opt/julia-env -e 'using Pkg; Pkg.status()'

⁠Mantenedor

Cristian Cervantes
Unidad de Síntesis en Sistemática y Evolución
Instituto de Biología
Universidad Nacional Autónoma de México

⁠Licencia

Este contenedor integra software de terceros. Cada programa y paquete conserva su propia licencia. Se recomienda revisar las licencias individuales de Julia, PhyloNetworks, SNaQ, PhyloPlots, Plots, GR, RCall, CairoMakie y R antes de su redistribución o uso en producción.

Tag summary

Content type

Image

Digest

sha256:e73684295…

Size

1.1 GB

Last updated

6 months ago

docker pull ccervantess/phylonetworks:1.2.0