Miniconda
In this section:
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
Conda documentation: https://docs.conda.io/en/latest/
Cheat Sheet: https://docs.conda.io/projects/conda/en/latest/user-guide/cheatsheet.html
Conda Forge: https://conda-forge.org/
Bioconda: https://bioconda.github.io/
See also
Anaconda - Full distribution with packages
CUDA - GPU support
Containers - Container alternative
Running Simulations - How to submit jobs