Anaconda

Descrição

De acordo com a página do Anaconda, Anaconda é uma distribuição de Python/R para ciência de dados que inclui mais de 7.500 pacotes open-source, além de um gerenciador de pacotes e ambientes.

Versões Disponíveis

  • anaconda2/5.1.0

  • anaconda3/4.4.0 (default)

Comandos Básicos

# Listar ambientes
conda info --envs

# Criar novo ambiente
conda create -n meu_ambiente python=3.9

# Ativar ambiente
source activate meu_ambiente

# Instalar pacotes
conda install numpy pandas matplotlib
conda install -c bioconda samtools

# Desativar ambiente
source deactivate

# Remover ambiente
conda env remove -n meu_ambiente

Submissão de Jobs Seriais

submit_anaconda_serial.sh
#!/bin/bash
#SBATCH -J conda_serial
#SBATCH -N 1
#SBATCH -n 1
#SBATCH -t 02:00:00
#SBATCH --mem=4G

export INPUT="script.py dados.csv"
export OUTPUT="resultados/"

module load miniconda/25.x
source activate meu_ambiente

job-nanny python script.py dados.csv

Submissão de Jobs com OpenMP

submit_anaconda_omp.sh
#!/bin/bash
#SBATCH -J conda_omp
#SBATCH -N 1
#SBATCH -c 8
#SBATCH -t 04:00:00
#SBATCH --mem=16G

export INPUT="script_omp.py dados/"
export OUTPUT="resultados_omp/"

module load miniconda/25.x
source activate meu_ambiente

# Para programas que usam multiprocessing
export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK

job-nanny python script_omp.py

Submissão de Jobs com MPI

submit_anaconda_mpi.sh
#!/bin/bash
#SBATCH -J conda_mpi
#SBATCH -N 2
#SBATCH --ntasks-per-node=28
#SBATCH -t 12:00:00
#SBATCH --mem-per-cpu=2G

export INPUT="script_mpi.py dados/"
export OUTPUT="resultados_mpi/"

module load miniconda/25.x
module load openmpi/4.1.5
source activate meu_ambiente

job-nanny mpirun -n 56 python script_mpi.py

Exemplo de Script Python com MPI

script_mpi.py
from mpi4py import MPI
import numpy as np

comm = MPI.COMM_WORLD
rank = comm.Get_rank()
size = comm.Get_size()

print(f"Processo {rank} de {size}")

# Distribuir trabalho entre processos
data = None
if rank == 0:
    data = np.arange(1000)
else:
    data = np.zeros(1000)

comm.Bcast(data, root=0)
print(f"Processo {rank} recebeu dados")

MPI.Finalize()

Criando Ambiente com Pacotes Específicos

# Criar ambiente com versões específicas
conda create -n bioinfo python=3.8
source activate bioinfo
conda install -c bioconda samtools bcftools bedtools
conda install -c conda-forge pandas numpy matplotlib

# Salvar lista de pacotes
conda list --export > environment.txt

# Recriar ambiente a partir da lista
conda create -n novo_ambiente --file environment.txt

Usando em Scripts de Submissão

submit_com_ambiente.sh
#!/bin/bash
#SBATCH -J ambiente
#SBATCH -N 1
#SBATCH -n 1
#SBATCH -t 02:00:00

export INPUT="dados.fastq"
export OUTPUT="resultados/"

module load miniconda/25.x
source activate bioinfo

job-nanny samtools view -bS dados.sam > dados.bam

Referências

Ver também