diff --git a/singularity/run_pipeline.def b/singularity/run_pipeline.def
index d7a5ac581eff30f36275f14fda3c71da0b46ae27..fe6710d44e1cbf2c9dd4c71d5bc524e62edab057 100644
--- a/singularity/run_pipeline.def
+++ b/singularity/run_pipeline.def
@@ -13,16 +13,14 @@ From:workflows_base.sif
 	#git clone --recurse-submodules https://gitlab+deploy-token-75:sakyTxfe-PxPHDwqsoGm@gitlab.pasteur.fr/bli/bioinfo_utils.git
 	git clone https://gitlab+deploy-token-75:sakyTxfe-PxPHDwqsoGm@gitlab.pasteur.fr/bli/bioinfo_utils.git
 	cd bioinfo_utils
+	WORKFLOWS_VERSION=$(git log | head -1 | cut -d " " -f2)
 	pip install -r requirements.txt
-	# Recording program versions
-	for prog in bedops bedtools bowtie2 cutadapt hisat2 parallel samtools
-	do
-	    echo "# ${prog}" >> /usr/local/share/doc/program_versions.txt
-	    eval "${prog} --version" >> /usr/local/share/doc/program_versions.txt
-	done
-	prog="featureCounts"
+	prog="Python packages"
 	echo "# ${prog}" >> /usr/local/share/doc/program_versions.txt
-	eval "${prog} -v" 2>> /usr/local/share/doc/program_versions.txt
+	pip freeze >> /usr/local/share/doc/program_versions.txt
+	prog="Workflows"
+	echo "# ${prog}" >> /usr/local/share/doc/program_versions.txt
+	echo "${WORKFLOWS_VERSION}" >> /usr/local/share/doc/program_versions.txt
 
 %environment
 	export LC_ALL=C
diff --git a/singularity/workflows_base.def b/singularity/workflows_base.def
index c1221f655d7a1b66c996c5f5e06e1e022d745879..a0ce6d423cf9fd5e488904572cea2d5011c9832e 100644
--- a/singularity/workflows_base.def
+++ b/singularity/workflows_base.def
@@ -16,6 +16,7 @@ Stage: build-haskell
 	cd /usr/local/src
 	git clone https://gitlab+deploy-token-75:sakyTxfe-PxPHDwqsoGm@gitlab.pasteur.fr/bli/bioinfo_utils.git
 	cd bioinfo_utils
+	HASKELL_TOOLS_VERSION=$(git log | head -1 | cut -d " " -f2)
 	git submodule update --init --remote --merge
 	# Note that currently only remove-duplicates-from-sorted-fastq
 	# and trim-t-tail-from-fastq are copied to the next stage
@@ -24,6 +25,8 @@ Stage: build-haskell
 	do
 	    (cd ${dir} && grep "local" install.sh && ./install.sh)
 	done
+	echo "# Haskell tools" >> /usr/local/share/doc/program_versions.txt
+	echo "${HASKELL_TOOLS_VERSION}" >> /usr/local/share/doc/program_versions.txt
 
 Bootstrap:docker
 From:python:3.7-buster
@@ -31,6 +34,7 @@ From:python:3.7-buster
 %files from build-haskell
 	/usr/local/bin/remove-duplicates-from-sorted-fastq
 	/usr/local/bin/trim-t-tail-from-fastq
+	/usr/local/share/doc/program_versions.txt
 
 %post
 	apt-get -y update
@@ -41,6 +45,16 @@ From:python:3.7-buster
 	# run_pipeline.sh (and maybe other tools) needs bc
 	apt-get -y install bc rsync
 	apt-get -y install bedops bedtools bowtie2 cutadapt subread hisat2 parallel samtools
+	# Recording program versions
+	for prog in bedops bedtools bowtie2 cutadapt hisat2 parallel samtools
+	do
+	    echo "# ${prog}" >> /usr/local/share/doc/program_versions.txt
+	    eval "${prog} --version" >> /usr/local/share/doc/program_versions.txt
+	done
+	# subread provides featureCounts
+	prog="featureCounts"
+	echo "# ${prog}" >> /usr/local/share/doc/program_versions.txt
+	eval "${prog} -v" 2>> /usr/local/share/doc/program_versions.txt
 	# Some programs are not provided by debian
 	# mkdir -p /usr/local/src
 	#####################
@@ -49,9 +63,13 @@ From:python:3.7-buster
 	cd /usr/local/src
 	git clone https://github.com/lh3/bioawk.git
 	cd bioawk
+	BIOAWK_VERSION=$(git log | head -1 | cut -d " " -f2)
 	apt install -y byacc
 	make
 	ln -s /usr/local/src/bioawk/bioawk /usr/local/bin/.
+	prog="bioawk"
+	echo "# ${prog}" >> /usr/local/share/doc/program_versions.txt
+	echo "${BIOAWK_VERSION}" >> /usr/local/share/doc/program_versions.txt
 	##########################
 	# Installing fastq-tools #
 	##########################
@@ -62,6 +80,10 @@ From:python:3.7-buster
 	./configure
 	make
 	make install
+	# fastq-tools provides fastq-sort
+	prog="fastq-sort"
+	echo "# ${prog}" >> /usr/local/share/doc/program_versions.txt
+	eval "${prog} --version" >> /usr/local/share/doc/program_versions.txt
 	#########################
 	# Installing kent utils #
 	#########################
@@ -69,15 +91,24 @@ From:python:3.7-buster
 	#mkdir UCSC-tools
 	#cd UCSC-tools
 	rsync -azvP rsync://hgdownload.soe.ucsc.edu/genome/admin/exe/linux.x86_64/bedGraphToBigWig /usr/local/bin/.
+	prog="bedGraphToBigWig"
+	echo "# ${prog}" >> /usr/local/share/doc/program_versions.txt
+	eval "${prog}" 2>> /usr/local/share/doc/program_versions.txt
 	# It is possible to test whether the R install is already OK
 	deb_source="deb http://cran.irsn.fr/bin/linux/debian buster-cran35/"
 	echo ${deb_source} >> /etc/apt/sources.list.d/cran.list
 	apt-key adv --keyserver keys.gnupg.net --recv-key 'E19F5F87128899B192B1A2C2AD5F960A256A04AF'
 	apt-get -y update
 	apt-get -y install r-base-core r-base-dev
+	prog="R"
+	echo "# ${prog}" >> /usr/local/share/doc/program_versions.txt
+	eval "${prog} --version" >> /usr/local/share/doc/program_versions.txt
 	R -e 'install.packages("BiocManager")'
 	R -e 'BiocManager::install(ask=FALSE)'
 	R -e 'BiocManager::install(c("docopt", "DESeq2"), ask=FALSE)'
+	prog="DESeq2"
+	echo "# ${prog}" >> /usr/local/share/doc/program_versions.txt
+	R -q -e 'packageVersion("DESeq2")' >> /usr/local/share/doc/program_versions.txt
 
 	# To use the "local" python, not the system one.
 	export PATH="/usr/local/bin":$PATH