Miniconda

Description

According to the documentation of Miniconda, Miniconda is a minimal version of the Conda package manager, including only Conda, Python, and a small number of useful packages. It is ideal for creating lightweight, customized environments.

Available Versions

  • miniconda/3 (default)

  • miniconda/3-2023-09

  • miniconda/24.4.0-libmamba

  • miniconda/25.x

Loading the Module

# Load Miniconda
module load miniconda/24.4.0-libmamba

# Verify installation
conda --version
python --version

Basic Conda Commands

# List environments
conda info --envs

# Create new environment
conda create -n my_environment python=3.9

# Activate environment
source activate my_environment

# Install packages
conda install numpy pandas matplotlib
conda install -c bioconda samtools
conda install -c conda-forge r-base

# List packages in environment
conda list

# Deactivate environment
source deactivate
# or
conda deactivate

# Remove environment
conda env remove -n my_environment
# or
conda remove -n my_environment --all

# Export environment
conda env export > environment.yml

# Create environment from file
conda env create -f environment.yml

Job Submission with Conda Environment

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

export INPUT="script.py data.csv"
export OUTPUT="results/"

module load miniconda/24.4.0-libmamba
source activate my_environment

job-nanny python script.py data.csv

Creating an Environment with Specific Packages

create_conda_env.sh
#!/bin/bash
#SBATCH -J create_env
#SBATCH -N 1
#SBATCH -n 1
#SBATCH -t 00:30:00
#SBATCH --mem=2G

export INPUT="environment.yml"
export OUTPUT="env_creation.log"

module load miniconda/24.4.0-libmamba

# Create environment from YAML file
job-nanny conda env create -f environment.yml > env_creation.log 2>&1
environment.yml
name: bioinfo_env
channels:
  - conda-forge
  - bioconda
  - defaults
dependencies:
  - python=3.9
  - numpy
  - pandas
  - matplotlib
  - seaborn
  - jupyter
  - samtools
  - bcftools
  - bedtools
  - bwa
  - fastqc
  - trimmomatic

Machine Learning Environment

create_ml_env.sh
#!/bin/bash
#SBATCH -J create_ml_env
#SBATCH -N 1
#SBATCH -n 1
#SBATCH -t 00:30:00
#SBATCH --mem=2G

module load miniconda/24.4.0-libmamba

# Create ML environment
conda create -n ml_env python=3.9 -y
source activate ml_env

# Install packages
conda install -c conda-forge numpy pandas matplotlib seaborn scikit-learn -y
conda install -c conda-forge tensorflow-gpu -y  # For GPU
# OR
# conda install -c pytorch pytorch torchvision torchaudio cudatoolkit=11.8 -y

# Save package list
conda list --export > ml_env_packages.txt

Job Array with Different Environments

submit_conda_array.sh
#!/bin/bash
#SBATCH -J conda_array
#SBATCH --array=1-3
#SBATCH -N 1
#SBATCH -n 1
#SBATCH -t 04:00:00
#SBATCH --mem=8G

ENVS=("env_python38" "env_python39" "env_python310")
ENV=${ENVS[$SLURM_ARRAY_TASK_ID-1]}

export INPUT="script.py"
export OUTPUT="results_${ENV}/"

module load miniconda/24.4.0-libmamba
source activate $ENV

mkdir -p results_${ENV}
cd results_${ENV}

job-nanny python ../script.py

Managing Multiple Environments

manage_envs.sh
#!/bin/bash
# List all environments
conda info --envs

# Clone environment
conda create -n new_env --clone old_env

# Update packages in an environment
source activate my_environment
conda update --all

# Export environment for sharing
conda env export > my_environment.yml

# Import environment from another user
conda env create -f other_user_environment.yml

Environment with GPU Support

create_gpu_env.sh
#!/bin/bash
#SBATCH -J create_gpu_env
#SBATCH -p gpu
#SBATCH --gres=gpu:1
#SBATCH -N 1
#SBATCH -n 1
#SBATCH -t 00:30:00
#SBATCH --mem=4G

module load miniconda/24.4.0-libmamba
module load cuda/12.9

# Create environment with GPU support
conda create -n gpu_env python=3.9 -y
source activate gpu_env

# TensorFlow GPU
conda install -c conda-forge tensorflow-gpu -y

# PyTorch GPU
# conda install -c pytorch pytorch torchvision torchaudio cudatoolkit=12.9 -y

# Verify installation
python -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"

References

See also