diff --git a/non-regression-tests/run_nrt.sh b/non-regression-tests/run_nrt.sh
deleted file mode 100755
index e1c477d11f1a3367341ccb1f908a4d8605de0a90..0000000000000000000000000000000000000000
--- a/non-regression-tests/run_nrt.sh
+++ /dev/null
@@ -1,97 +0,0 @@
-#/bin/bash
-DATA_PATH=./data
-REF_RES_PATH=./reference_results
-
-## VL: decided to write the checking of results in python scripts rather than shel script for portability.
-
-
-echo "running non regression tests with default options"
-./run_HK97.sh || exit 1
-./run_lamda.sh || exit 1
-./run_P1.sh ||exit 1
-./run_N1.sh ||exit 1
-#./run_T4.sh || exit 1
-./run_T7.sh || exit 1
-
-
-
-
-#echo " running PhageTerm on lamda genome"
-#python ../PhageTerm.py -f $DATA_PATH/R1_1M_READS_EACH_PHAGE.fastq.20 -p $DATA_PATH/R2_1M_READS_EACH_PHAGE.fastq.20 -r $DATA_PATH/Lambda_assembly.fasta
-#check_lamda_T7_res
-#ret_code=$?
-#if [ "$ret_code" -ne "0" ]; then
-#    exit $ret_code
-#fi
-#copy_lamda_T7_res res_lamda.20
-
-#echo "running PhageTerm on T7 genome"
-#python ../PhageTerm.py -f $DATA_PATH/R1_1M_READS_EACH_PHAGE.fastq.20 -p $DATA_PATH/R2_1M_READS_EACH_PHAGE.fastq.20 -r $DATA_PATH/T7_assembly.fasta
-#check_StaphN1_T7_res
-#ret_code=$?
-#echo "ret_code="$ret_code
-#if [ "$ret_code" -ne "0" ]; then
-#    exit $ret_code
-#fi
-#copy_StaphN1_T7_res res_T7.20
-
-#echo "running PhageTerm on P1 genome"
-#python ../PhageTerm.py -f $DATA_PATH/R1_1M_READS_EACH_PHAGE.fastq.20 -p $DATA_PATH/R2_1M_READS_EACH_PHAGE.fastq.20 -r $DATA_PATH/P1_assembly.fasta
-#check_HK97_P1_T4_res
-#ret_code=$?
-#echo "ret_code="$ret_code
-#if [ "$ret_code" -ne "0" ]; then
-#    exit $ret_code
-#fi
-#copy_HK97_P1_T4_res res_P1.20
-
-#echo "running PhageTerm on Staph1N genome"
-#python ../PhageTerm.py -f $DATA_PATH/R1_1M_READS_EACH_PHAGE.fastq.20 -p $DATA_PATH/R2_1M_READS_EACH_PHAGE.fastq.20 -r $DATA_PATH/Staph1N_assembly.fasta
-#check_StaphN1_T7_res
-#ret_code=$?
-#if [ "$ret_code" -ne "0" ]; then
-#    exit $ret_code
-#fi
-#copy_StaphN1_T7_res res_1N.20
-#
-#echo "running PhageTerm on T4 genome"
-#python ../PhageTerm.py -f $DATA_PATH/R1_1M_READS_EACH_PHAGE.fastq.20 -p $DATA_PATH/R2_1M_READS_EACH_PHAGE.fastq.20 -r $DATA_PATH/T4_assembly.fasta
-#check_HK97_P1_T4_res
-#ret_code=$?
-#if [ "$ret_code" -ne "0" ]; then
-#    exit $ret_code
-#fi
-#copy_HK97_P1_T4_res res_T4.20
-#
-#echo "running PhageTerm on Virome"
-#python ../PhageTerm.py -f $DATA_PATH/R1_1M_READS_EACH_PHAGE.fastq.20 -p $DATA_PATH/R2_1M_READS_EACH_PHAGE.fastq.20 -r $DATA_PATH/virome_assembly_raw.fa
-
-
-
-
-#echo "Performing non regression tests with -l option"
-#python -l 10000 ../PhageTerm.py -f $DATA_PATH/R1_1M_READS_EACH_PHAGE.fastq.20 -p $DATA_PATH/R2_1M_READS_EACH_PHAGE.fastq.20 -r $DATA_PATH/HK97_assembly.fasta
-#if [ ! -f NA_cohesive-sequence.fasta ]; then
-#    echo "NA_cohesive-sequence.fasta does not exist!"
-#    exit 11
-#fi
-#if [ ! -f NA_PhageTerm_report.pdf ]; then
-#    echo "NA_PhageTerm_report.pdf does not exist!"
-#    exit 12
-#fi
-#if [ ! -f NA_cohesive-sequence.fasta ]; then
-#    echo "NA_cohesive-sequence.fasta does not exist!"
-#    exit 13
-#fi
-#if [ ! -f NA_statistics.csv ]; then
-#    echo "NA_statistics.csv does not exist!"
-#    exit 14
-#fi
-#python -l 10000 ../PhageTerm.py -f $DATA_PATH/R1_1M_READS_EACH_PHAGE.fastq.20 -p $DATA_PATH/R2_1M_READS_EACH_PHAGE.fastq.20 -r $DATA_PATH/Lambda_assembly.fasta
-#python -l 10000 ../PhageTerm.py -f $DATA_PATH/R1_1M_READS_EACH_PHAGE.fastq.20 -p $DATA_PATH/R2_1M_READS_EACH_PHAGE.fastq.20 -r $DATA_PATH/T7_assembly.fasta
-#python -l 10000 ../PhageTerm.py -f $DATA_PATH/R1_1M_READS_EACH_PHAGE.fastq.20 -p $DATA_PATH/R2_1M_READS_EACH_PHAGE.fastq.20 -r $DATA_PATH/P1_assembly.fasta
-#python -l 10000 ../PhageTerm.py -f $DATA_PATH/R1_1M_READS_EACH_PHAGE.fastq.20 -p $DATA_PATH/R2_1M_READS_EACH_PHAGE.fastq.20 -r $DATA_PATH/Staph1N_assembly.fasta
-#python -l 10000 ../PhageTerm.py -f $DATA_PATH/R1_1M_READS_EACH_PHAGE.fastq.20 -p $DATA_PATH/R2_1M_READS_EACH_PHAGE.fastq.20 -r $DATA_PATH/Staph1N_assembly.fasta
-#python -l 10000 ../PhageTerm.py -f $DATA_PATH/R1_1M_READS_EACH_PHAGE.fastq.20 -p $DATA_PATH/R2_1M_READS_EACH_PHAGE.fastq.20 -r $DATA_PATH/T4_assembly.fasta
-#python -l 10000 ../PhageTerm.py -f $DATA_PATH/R1_1M_READS_EACH_PHAGE.fastq.20 -p $DATA_PATH/R2_1M_READS_EACH_PHAGE.fastq.20 -r $DATA_PATH/virome_assembly_raw.fa
-#exit 0
diff --git a/pyproject.toml b/pyproject.toml
index fa7093a33c048d9db6e0eb3b4d8daa57426754e3..8aa788b7a4c853f91b63c2d59e4a2b54ca4d061a 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,3 +1,27 @@
 [build-system]
 requires = ["setuptools>=42"]
-build-backend = "setuptools.build_meta"
\ No newline at end of file
+build-backend = "setuptools.build_meta"
+
+[project]
+name = "phageTermVirome"
+version = "4.1"
+authors = [
+{name="Marc Monot", email="marc.monot@pasteur.fr"},
+{name="Julian Garneau", email="julian.garneau@pasteur.fr"},
+{name="David Bikard", email="david.bikard@pasteur.fr"},
+{name="Véronique Legrand", email="vlegrand@pasteur.fr"}
+]
+description ="PhageTermVirome software is a tool to determine phage genome termini and genome packaging mode on single phage or multiple contigs at once."
+readme = "README.txt"
+
+license = { file="LICENSE" }
+requires-python = ">=3.7.8"
+classifiers = [
+    "Programming Language :: Python :: 3",
+    "License :: OSI Approved :: GNU Affero General Public License v3",
+    "Operating System :: OS Independent",
+]
+
+[project.urls]
+"Homepage" = "https://gitlab.pasteur.fr/vlegrand/ptv"
+"Bug Tracker" = "https://gitlab.pasteur.fr/vlegrand/ptv/-/issues"
\ No newline at end of file
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..a06b7a6debe656435c7be37a8cc056bda5b941ce
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,25 @@
+backports
+backports.functools_lru_cache
+backports_abc
+cycler
+libwebp-base
+lz4-c
+matplotlib
+numpy
+openssl
+pandas
+patsy
+pillow
+pip
+pyparsing
+python3.6
+python-dateutil
+python_abi
+pytz
+readline
+reportlab
+scikit-learn
+scipy
+setuptools
+statsmodels
+tk
\ No newline at end of file
diff --git a/setup.cfg b/setup.cfg
index 98c4b582c569fbe1126d8d0cbe66e0202a0a474a..5ab250f58e558274234932761e131074cb2c725c 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,18 +1,20 @@
 [metadata]
-name = phageTerm
-version = 4.1
+name = phageTermVirome
+version = 2.0
 author = Marc Monot
 author_email = marc.monot@pasteur.fr
 description = Using sequencing bias to identify phages terminii and phage genome packaging.
 long_description = file: README.txt
-long_description_content_type = text
+long_description_content_type = text/plain
 url = https://gitlab.pasteur.fr/vlegrand/ptv
 project_urls =
     Bug Tracker = https://gitlab.pasteur.fr/vlegrand/ptv/-/issues
 classifiers =
     Programming Language :: Python :: 3
-    License :: OSI Approved :: GNU AFFERO GENERAL PUBLIC LICENSE, Version 3, 19 November 2007
+    License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
     Operating System :: OS Independent
+    Development Status :: 5 - Production/Stable
+platforms=any
 
 [options]
 package_dir =
@@ -21,4 +23,47 @@ packages = find:
 python_requires = >=3.6
 
 [options.packages.find]
-where = .
\ No newline at end of file
+where = .
+
+install_requires =
+    backports
+    backports.functools_lru_cache
+    backports_abc
+    cycler
+    libwebp-base
+    lz4-c
+    matplotlib
+    numpy
+    openssl
+    pandas
+    patsy
+    pillow
+    pip
+    pyparsing
+    python3.6
+    python-dateutil
+    python_abi
+    pytz
+    readline
+    reportlab
+    scikit-learn
+    scipy
+    setuptools
+    statsmodels
+    tk
+
+[options.package_data]=
+    test-data=test-data/COS-3.500.fastq,test-data/COS-3.fasta,test-data/COS-3.fastq,test-data/COS-5.fasta
+              test-data/COS-5.fastq,test-data/DTR-long.fasta,test-data/DTR-long.fastq,test-data/DTR-short.fasta
+              test-data/DTR-short.fastq,test-data/Headful.fasta,test-data/Headful.fastq,test-data/Mu-like.fasta
+              test-data/Mu-like_R1.fastq,test-data/Mu-like_R2.fastq,test-data/Virome.fasta
+              test-data/Virome.fastq,test-data/chk_0_2_10_0.npz
+    data-virome=data-virome/Contigs_30min.fasta,data-virome/SRR4295172_2_div6.fastq,data-virome/SRR4295172_1_div6.fastq
+    unit-tests-data=unit-tests/data/G-janv_S2_R1_001.fastq.500,unit-tests/data/G-janv_S2_R2_001.fastq.500
+                    unit-tests/data/chk_0_0_38_863.npz,unit-tests/data/coverage0_0.npz,unit-tests/data/seq1_2_3.fasta
+    non-regression-tests-data=non-regression-tests/data/HK97_assembly.fasta,non-regression-tests/data/Lambda_assembly.fasta
+                              non-regression-tests/data/P1_assembly.fasta,non-regression-tests/data/R1_1M_READS_EACH_PHAGE(1).fastq.4
+                              non-regression-tests/data/R1_1M_READS_EACH_PHAGE.fastq.20,non-regression-tests/data/R2_1M_READS_EACH_PHAGE(1).fastq.4
+                              non-regression-tests/data/R2_1M_READS_EACH_PHAGE.fastq.20,non-regression-tests/data/Staph1N_assembly.fasta
+                              non-regression-tests/data/T4_assembly.fasta,non-regression-tests/data/T7_assembly.fasta
+                              non-regression-tests/data/virome_6seq.fa
diff --git a/setup.py b/setup.py
new file mode 100644
index 0000000000000000000000000000000000000000..0407ad7928fd4da073f06236c39237e1abee34e6
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,17 @@
+"""A setuptools based setup module.
+See:
+https://packaging.python.org/guides/distributing-packages-using-setuptools/
+https://github.com/pypa/sampleproject
+"""
+
+# Always prefer setuptools over distutils
+from setuptools import setup, find_packages
+import pathlib
+
+here = pathlib.Path(__file__).parent.resolve()
+
+# Get the long description from the README file
+# long_description = (here / "README.md").read_text(encoding="utf-8")
+#long_description = (here / "README.txt").read_text(encoding="utf-8")
+
+setup()
\ No newline at end of file