Contenedor con PhyloNetworks, SNaQ y herramientas para graficar redes filogenéticas
81
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).
Unidad de Síntesis en Sistemática y Evolución (UniSSE)
Instituto de Biología
Universidad Nacional Autónoma de México (UNAM)
El objetivo de este contenedor es proporcionar un ambiente reproducible para:
PhyloNetworks.SNaQ.PhyloPlots, Plots, GR y CairoMakie.La imagen está pensada principalmente para descargarse y utilizarse como archivo .sif con Apptainer/Singularity.
Versiones principales incluidas en esta imagen:
Las versiones también se documentan dentro del contenedor en:
/opt/UNISSE_VERSIONS.txt
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
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
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")'
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")'
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.
Para uso en servidores HPC se recomienda:
.sif.--bind.Ejemplo general:
apptainer exec --cleanenv --bind "$PWD":/work --pwd /work \
phylonetworks_1.2.0.sif \
julia --project=/opt/julia-env script.jl
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
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()'
Cristian Cervantes
Unidad de Síntesis en Sistemática y Evolución
Instituto de Biología
Universidad Nacional Autónoma de México
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.
Content type
Image
Digest
sha256:e73684295…
Size
1.1 GB
Last updated
6 months ago
docker pull ccervantess/phylonetworks:1.2.0