From b8ffb7b92a51df80ec588fc05eae29e35ff7739f Mon Sep 17 00:00:00 2001
From: Blaise Li <blaise.li__git@nsup.org>
Date: Wed, 5 Feb 2020 12:49:36 +0100
Subject: [PATCH] Installing ipython and numpy in the container.

numpy is to try to force numpy support in pyBedTools.
---
 PRO-seq/PRO-seq.snakefile             | 2 +-
 RNA_Seq_Cecere/RNA-seq.snakefile      | 2 +-
 Ribo-seq/Ribo-seq.snakefile           | 4 ++--
 singularity/Makefile                  | 1 +
 singularity/run_pipeline.def          | 4 ++++
 small_RNA-seq/small_RNA-seq.snakefile | 4 ++--
 6 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/PRO-seq/PRO-seq.snakefile b/PRO-seq/PRO-seq.snakefile
index f7dca28..f8717af 100644
--- a/PRO-seq/PRO-seq.snakefile
+++ b/PRO-seq/PRO-seq.snakefile
@@ -1194,7 +1194,7 @@ rule merge_bigwig_reps:
                         warn(f"The bigwig files without {chrom} will be skipped.\n")
                     to_use = [bw for bw in bws if chrom in bw.chroms()]
                     if to_use:
-                        means = np.nanmean(np.vstack([bw.values(chrom, 0, chrom_len) for bw in to_use]), axis=0)
+                        means = np.nanmean(np.vstack([bw.values(chrom, 0, chrom_len, numpy=True) for bw in to_use]), axis=0)
                     else:
                         means = np.zeros(chrom_len)
                     # bin size is 10
diff --git a/RNA_Seq_Cecere/RNA-seq.snakefile b/RNA_Seq_Cecere/RNA-seq.snakefile
index fd2c89c..a420f59 100644
--- a/RNA_Seq_Cecere/RNA-seq.snakefile
+++ b/RNA_Seq_Cecere/RNA-seq.snakefile
@@ -1510,7 +1510,7 @@ rule merge_bigwig_reps:
                         warn(f"The bigwig files without {chrom} will be skipped.\n")
                     to_use = [bw for bw in bws if chrom in bw.chroms()]
                     if to_use:
-                        means = np.nanmean(np.vstack([bw.values(chrom, 0, chrom_len) for bw in to_use]), axis=0)
+                        means = np.nanmean(np.vstack([bw.values(chrom, 0, chrom_len, numpy=True) for bw in to_use]), axis=0)
                     else:
                         means = np.zeros(chrom_len)
                     # bin size is 10
diff --git a/Ribo-seq/Ribo-seq.snakefile b/Ribo-seq/Ribo-seq.snakefile
index fe5a3e0..f48f972 100644
--- a/Ribo-seq/Ribo-seq.snakefile
+++ b/Ribo-seq/Ribo-seq.snakefile
@@ -1871,7 +1871,7 @@ rule merge_bigwig_reps:
                         warn(f"The bigwig files without {chrom} will be skipped.\n")
                     to_use = [bw for bw in bws if chrom in bw.chroms()]
                     if to_use:
-                        means = np.nanmean(np.vstack([bw.values(chrom, 0, chrom_len) for bw in to_use]), axis=0)
+                        means = np.nanmean(np.vstack([bw.values(chrom, 0, chrom_len, numpy=True) for bw in to_use]), axis=0)
                     else:
                         means = np.zeros(chrom_len)
                     # bin size is 10
@@ -1909,7 +1909,7 @@ rule make_bigwig_ratios:
                 for (chrom, chrom_len) in bw_out.chroms().items():
                     assert cond_bw.chroms()[chrom] == chrom_len
                     #ratios = np.divide(cond_bw.values(chrom, 0, chrom_len), ref_bw.values(chrom, 0, chrom_len))
-                    ratios = np.log2(np.divide(cond_bw.values(chrom, 0, chrom_len), ref_bw.values(chrom, 0, chrom_len)))
+                    ratios = np.log2(np.divide(cond_bw.values(chrom, 0, chrom_len, numpy=True), ref_bw.values(chrom, 0, chrom_len, numpy=True)))
                     # bin size is 10
                     bw_out.addEntries(chrom, 0, values=np.nan_to_num(ratios[0::10]), span=10, step=10)
                 bw_out.close()
diff --git a/singularity/Makefile b/singularity/Makefile
index fca3110..461090b 100644
--- a/singularity/Makefile
+++ b/singularity/Makefile
@@ -17,6 +17,7 @@ install: run_pipeline run_pipeline.sh workflows_shell.sh
 	done
 	ln -sfn $(PREFIX)_$(VERSION) $(PREFIX)
 
+# TODO: Bind home on temporary directory at build time in order to decrease "pollution" risks?
 # Should depend on the rest of the repository.
 run_pipeline: run_pipeline.def
 	nohup sh -c "yes | sudo singularity build run_pipeline run_pipeline.def > build.err 2>&1" &
diff --git a/singularity/run_pipeline.def b/singularity/run_pipeline.def
index b1ec5e1..be2ff9f 100644
--- a/singularity/run_pipeline.def
+++ b/singularity/run_pipeline.def
@@ -83,6 +83,10 @@ From:python:3.7-buster
 	# (that will be mounted during singularity build)
 	export PYTHONNOUSERSITE=1
 	python3.7 -m pip install --upgrade pip
+	# Useful for experimenting in shell mode
+	python3.7 -m pip install ipython
+	# Should be installed before pyBedTools for the latter to have numpy support
+	python3.7 -m pip install numpy
 	# Needs to install before custom pybedtools
 	# python3.7 -m pip install pysam
 	# To get scipy properly built as requirement:
diff --git a/small_RNA-seq/small_RNA-seq.snakefile b/small_RNA-seq/small_RNA-seq.snakefile
index d2a5ee4..8321774 100644
--- a/small_RNA-seq/small_RNA-seq.snakefile
+++ b/small_RNA-seq/small_RNA-seq.snakefile
@@ -2841,7 +2841,7 @@ rule merge_bigwig_reps:
                         raise
                     to_use = [bw for bw in bws if chrom in bw.chroms()]
                     if to_use:
-                        means = np.nanmean(np.vstack([bw.values(chrom, 0, chrom_len) for bw in to_use]), axis=0)
+                        means = np.nanmean(np.vstack([bw.values(chrom, 0, chrom_len, numpy=True) for bw in to_use]), axis=0)
                     else:
                         means = np.zeros(chrom_len)
                     # bin size is 10
@@ -2882,7 +2882,7 @@ rule make_bigwig_ratios:
                 for (chrom, chrom_len) in bw_out.chroms().items():
                     assert cond_bw.chroms()[chrom] == chrom_len
                     #ratios = np.divide(cond_bw.values(chrom, 0, chrom_len), ref_bw.values(chrom, 0, chrom_len))
-                    ratios = np.log2(np.divide(cond_bw.values(chrom, 0, chrom_len), ref_bw.values(chrom, 0, chrom_len)))
+                    ratios = np.log2(np.divide(cond_bw.values(chrom, 0, chrom_len, numpy=True), ref_bw.values(chrom, 0, chrom_len, numpy=True)))
                     # bin size is 10
                     bw_out.addEntries(chrom, 0, values=np.nan_to_num(ratios[0::10]), span=10, step=10)
                 bw_out.close()
-- 
GitLab