diff --git a/containers/Dockerfile b/containers/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..54b8e2a581f7954957e37925b6de2a8baeb4d2fb
--- /dev/null
+++ b/containers/Dockerfile
@@ -0,0 +1,30 @@
+from rocker/rstudio:4.1.3
+
+RUN apt-get update && \
+  apt-get install -y \
+  libcurl4-openssl-dev \
+  libssl-dev libssh2-1-dev \
+  libxml2-dev zlib1g-dev \
+  && \
+  R -e "install.packages(c('devtools'))"
+
+# Update the system and install necessary libraries for R packages
+RUN apt-get update && apt-get install -y \
+    libcurl4-openssl-dev \
+    libssl-dev \
+    libxml2-dev \
+    libxt-dev \
+    libgit2-dev \
+    && apt-get clean \
+    && rm -rf /var/lib/apt/lists/*
+
+# Install other R
+RUN R -e "install.packages(c('plyr', 'BiocManager'), repos='https://cran.biotools.fr')" \
+    && R -e "BiocManager::install(c('snpStats', 'SNPRelate'))"
+
+# Expose the RStudio Server port
+EXPOSE 8787
+
+# Start RStudio Server
+CMD ["/init"]
+
diff --git a/containers/m2bsgreprod.def b/containers/m2bsgreprod.def
new file mode 100644
index 0000000000000000000000000000000000000000..cd2c83483d097a570dd784d6816999b63fb6ab9e
--- /dev/null
+++ b/containers/m2bsgreprod.def
@@ -0,0 +1,38 @@
+Bootstrap: docker
+From: rocker/rstudio:4.1.3
+
+%post
+    # Update the system and install necessary libraries for building R packages
+    apt-get update && \
+    apt-get install -y \
+        libcurl4-openssl-dev \
+        libssl-dev \
+        libssh2-1-dev \
+        libxml2-dev \
+        libxt-dev \
+        libgit2-dev \
+        zlib1g-dev \
+        && apt-get clean \
+        && rm -rf /var/lib/apt/lists/*
+
+    # Install necessary R packages
+    R -e "install.packages(c('devtools', 'plyr', 'BiocManager'), repos='https://cran.biotools.fr')"
+
+    # Install Bioconductor packages
+    R -e "BiocManager::install(c('snpStats', 'SNPRelate'))"
+
+    # Install GenABEL.data from the CRAN archive
+   R -e "install.packages('https://cran.r-project.org/src/contrib/Archive/GenABEL.data/GenABEL.data_1.0.0.tar.gz', repos=NULL, type='source')"
+
+    # Install the archived GenABEL package from the CRAN archive
+R -e "install.packages('https://cran.r-project.org/src/contrib/Archive/GenABEL/GenABEL_1.8-0.tar.gz', repos=NULL, type='source')"
+
+R -e 'install.packages("genetics")'
+
+R -e "install.packages('https://cran.r-project.org/src/contrib/Archive/LDheatmap/LDheatmap_1.0-6.tar.gz', repos=NULL, type='source')"
+
+
+%environment
+    # Set R library paths if necessary
+    export R_LIBS_USER=/usr/local/lib/R/site-library
+
diff --git a/src/.Rhistory b/src/.Rhistory
index 53e6de6c457a6a0250ff7cf903f90ba89cd26d26..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644
--- a/src/.Rhistory
+++ b/src/.Rhistory
@@ -1,10 +0,0 @@
-# Les données analysées nécessitant beaucoup de RAM, nous allons sélectionner aléatoirement 250000 SNPs et réecrire des fichiers bed, bim, fam
-penncath_bed_path = "results/data/penncath.bed"
-penncath_bim_path = "results/data/penncath.bim"
-penncath_fam_path = "results/data/penncath.fam"
-geno <- snpStats::read.plink(penncath_bed_path, penncath_bim_path, penncath_fam_path, select.snps=sample(1:861473, 25000, replace = FALSE ), na.strings = ("-9"))
-# Les données analysées nécessitant beaucoup de RAM, nous allons sélectionner aléatoirement 250000 SNPs et réecrire des fichiers bed, bim, fam
-penncath_bed_path = "~/Bureau/project_reprod/m2reprod/results/data/penncath.bed"
-penncath_bim_path = "~/Bureau/project_reprod/m2reprod/results/data/penncath.bim"
-penncath_fam_path = "~/Bureau/project_reprod/m2reprod/results/data/penncath.fam"
-geno <- snpStats::read.plink(penncath_bed_path, penncath_bim_path, penncath_fam_path, select.snps=sample(1:861473, 25000, replace = FALSE ), na.strings = ("-9"))
diff --git a/src/tp1.R b/src/tp1.R
index 709016fde7ead5f2d065987688b00904aebc2cb2..a6144320e334fcc21b057969246d35a1a3570f4c 100644
--- a/src/tp1.R
+++ b/src/tp1.R
@@ -10,7 +10,7 @@ if (!require("snpStats", quietly = TRUE))
 if (!require("SNPRelate", quietly = TRUE))
 BiocManager::install("SNPRelate")
 
-# Charger les bibliothèques
+#Charger les bibliothèques
 library(snpStats)
 library(SNPRelate)
 #library(devtools)
diff --git a/src/tp2.R b/src/tp2.R
new file mode 100644
index 0000000000000000000000000000000000000000..04b258698f7cef9cbac286b8ac8c0984678ef4bb
--- /dev/null
+++ b/src/tp2.R
@@ -0,0 +1,20 @@
+#load data
+load("results/tp1/TP1_asbvg.RData")
+
+#fichier de sortie
+output_dir = "results/tp2"
+dir.create(output_dir, showWarnings = F, recursive = T)
+
+#on installe et ouvre les packages/librairies nécessaires
+
+#if (!require("BiocManager", quietly=TRUE))
+  install.packages("BiocManager")
+
+#if (!require("SNPRelate", quietly=TRUE))
+  BiocManager::install("SNPRelate")
+
+#on enregistre le fichier de sortie 
+
+rdata_path = file.path(output_dir, "TP2_asbvg.RData")
+save.image(rdata_path)
+
diff --git a/src/tp3.R b/src/tp3.R
new file mode 100644
index 0000000000000000000000000000000000000000..8b3c1eb57c7fcc3e282a6121d0d487f280faa2ec
--- /dev/null
+++ b/src/tp3.R
@@ -0,0 +1,25 @@
+#load data
+load("results/tp2/TP2_asbvg.RData")
+
+#fichier de sortie
+output_dir = "results/tp3"
+dir.create(output_dir, showWarnings = F, recursive = T)
+
+#library
+#if (!require("BiocManager", quietly = TRUE))
+  install.packages("BiocManager")
+
+#if (!require("snpStats", quietly = TRUE))
+  BiocManager::install("snpStats")
+
+#if (!require("doParallel", quietly = TRUE))
+  BiocManager::install("doParallel")
+
+#library(snpStats)
+#library(plyr)
+#library(GenABEL)
+#library(doParallel)
+
+rdata_path = file.path(output_dir,"TP3_asbvg.RData")
+save.image(rdata_path)
+
diff --git a/src/tp4.R b/src/tp4.R
new file mode 100644
index 0000000000000000000000000000000000000000..ef96a6dd332238bfc3eb26586b9c94ed352df3fe
--- /dev/null
+++ b/src/tp4.R
@@ -0,0 +1,20 @@
+#load data
+load("results/tp3/TP3_asbvg.RData")
+
+#fichier de sortie
+output_dir = "results/tp4"
+dir.create(output_dir, showWarnings = F, recursive = T)
+
+#Library
+#if(!require("dplyr",quietly = T))
+  install.packages("dplyr")
+
+#if(!require("plyr",quietly = T))
+  install.packages("plyr")
+
+#if(!require("GenABEL",quietly = T))
+  install.packages("GenABEL")
+
+rdata_path = file.path(output_dir,"TP4_asbvg.RData")
+save.image(rdata_path)
+
diff --git a/workflows/Makefile b/workflows/Makefile
index 0dfdbdd49c8e7b430d91626ef8363442da033c9c..ca43cf6c2f4af8f2e2a455f07ebb1eeaf5b4b8b2 100644
--- a/workflows/Makefile
+++ b/workflows/Makefile
@@ -1,8 +1,14 @@
 # Makefile 
-all : results/tp3/TP3_asbvg.RData
+all : results/tp4/TP4_asbvg.RData
 
-results/tp3/TP3_asbvg.RData: results/tp1/plink_base.bed results/tp1/plink_base.bim results/tp1/plink_base.fam results/tp1/TP1_asbvg.RData 
-    Rscript src/tp1.R
+results/tp4/TP4_asbvg.RData:results/tp3/TP3_asbvg.RData 
+	Rscript src/tp4.R
+
+results/tp3/TP3_asbvg.RData:results/tp2/TP2_asbvg.RData 
+	Rscript src/tp3.R
+
+results/tp2/TP2_asbvg.RData:results/tp1/TP1_asbvg.RData 
+	Rscript src/tp2.R
     
 results/tp1/plink_base.bed results/tp1/plink_base.bim results/tp1/plink_base.fam results/tp1/TP1_asbvg.RData: results/data/penncath.bed results/data/penncath.bim results/data/penncath.fam
 	Rscript src/tp1.R