diff --git a/eventClusterer.py b/eventClusterer.py
index 881ad66..b1ebeb6 100644
--- a/eventClusterer.py
+++ b/eventClusterer.py
@@ -1,3 +1,4 @@
+#!/usr/bin/env python
 # -*- coding: utf-8 -*-
 """
 Created on Wed May 25 04:20:00 CEST 2016
diff --git a/eventGenerator.py b/eventGenerator.py
index 9d42b16..575bf4c 100644
--- a/eventGenerator.py
+++ b/eventGenerator.py
@@ -1,3 +1,4 @@
+#!/usr/bin/env python
 # -*- coding: utf-8 -*-
 """
 Created on Mon Feb 10 14:57:05 2014
diff --git a/fileMerger.py b/fileMerger.py
index cc88b13..f918a01 100644
--- a/fileMerger.py
+++ b/fileMerger.py
@@ -1,3 +1,4 @@
+#!/usr/bin/env python
 # -*- coding: utf-8 -*-
 """
 Created on Wed May 25 04:20:00 CEST 2016
diff --git a/multipleFieldSelection.py b/multipleFieldSelection.py
index b29b958..d9c6956 100644
--- a/multipleFieldSelection.py
+++ b/multipleFieldSelection.py
@@ -1,3 +1,4 @@
+#!/usr/bin/env python
 # -*- coding: utf-8 -*-
 """
 Created on Thu May 22 11:24:33 2014
diff --git a/psiCalculator.py b/psiCalculator.py
index 996ec9f..d1c17ca 100644
--- a/psiCalculator.py
+++ b/psiCalculator.py
@@ -1,3 +1,4 @@
+#!/usr/bin/env python
 # -*- coding: utf-8 -*-
 """
 Created on Tue May  6 12:19:45 2014
@@ -183,4 +184,4 @@ def main():
     logger.info("Done")
 
 if __name__ == '__main__':
-    main()
\ No newline at end of file
+    main()
diff --git a/psiPerGene.py b/psiPerGene.py
index 0019f17..0c350d1 100644
--- a/psiPerGene.py
+++ b/psiPerGene.py
@@ -1,3 +1,4 @@
+#!/usr/bin/env python
 # -*- coding: utf-8 -*-
 """
 Created on Fri May 23 10:17:33 2014
diff --git a/setup.py b/setup.py
new file mode 100644
index 0000000..6a53069
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,28 @@
+from setuptools import setup, find_packages
+
+setup(
+  name='SUPPA',
+  packages=find_packages(),
+  version='2.4',
+  description='A tool to study splicing across multiple conditions at high speed and accuracy.',
+  author='GP Alamancos',
+  author_email='eduardo.eyras@upf.edu',
+  license='MIT',
+  url='https://github.com/comprna/SUPPA',
+  download_url='https://github.com/comprna/SUPPA/archive/v2.4.tar.gz',
+  keywords=['alternative', 'splicing', 'analysis', 'transcriptomics'],
+  scripts=['eventClusterer.py', 'multipleFieldSelection.py', 'significanceCalculator.py',
+           'eventGenerator.py', 'psiCalculator.py', 'suppa.py', 'fileMerger.py', 'psiPerGene.py'],
+  classifiers=[
+        'Development Status :: 5 - Production/Stable',
+        'Topic :: Scientific/Engineering :: Bio-Informatics',
+        'Intended Audience :: Science/Research',
+        'License :: OSI Approved :: MIT License',
+        'Operating System :: POSIX :: Linux',
+        'Programming Language :: Python :: 3.5'],
+  install_requires=['scipy>=0.15.1',
+                    'numpy>=1.11.0',
+                    'pandas>=0.18.0',
+                    'statsmodels>=0.6.1',
+                    'scikit-learn>=0.16.1']
+)
diff --git a/significanceCalculator.py b/significanceCalculator.py
index c2cabec..7431b1c 100644
--- a/significanceCalculator.py
+++ b/significanceCalculator.py
@@ -1,3 +1,4 @@
+#!/usr/bin/env python
 # -*- coding: utf-8 -*-
 """
 Created on Wed May 25 04:20:00 CEST 2016
diff --git a/suppa.py b/suppa.py
old mode 100644
new mode 100755
index 8fa0bc8..b0818c5
--- a/suppa.py
+++ b/suppa.py
@@ -1,3 +1,4 @@
+#!/usr/bin/env python
 # -*- coding: utf-8 -*-
 """
 Created on Wed Aug 06 17:51:05 2014
@@ -25,7 +26,7 @@ description = "Description:\n\n" + \
 
 parser = argparse.ArgumentParser(description=description, formatter_class=argparse.RawTextHelpFormatter, prog='SUPPA')
 # Version
-parser.add_argument('-v','--version', action='version', version='%(prog)s 2.3')
+parser.add_argument('-v','--version', action='version', version='%(prog)s 2.4')
 subparsers = parser.add_subparsers()
 
 # EventGenerator parser
