diff --git a/deep_sequencing_unit/source/Python/calculateCRC32.py b/deep_sequencing_unit/source/Python/calculateCRC32.py
new file mode 100644
index 0000000000000000000000000000000000000000..a60eefe6b6e0a792f128be86f9b23829dfe14a44
--- /dev/null
+++ b/deep_sequencing_unit/source/Python/calculateCRC32.py
@@ -0,0 +1,56 @@
+#! /usr/bin/env python
+'''
+@copyright:
+Copyright 2012 ETH Zuerich, CISD
+ 
+ @license:
+ Licensed under the Apache License, Version 2.0 (the 'License');
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+  
+  http://www.apache.org/licenses/LICENSE-2.0
+   
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an 'AS IS' BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+   @author:
+   Manuel Kohler
+
+   @description:
+   Calulates the crc32 checksum of a file and returns it in a hexadecimal number
+'''
+
+import zlib
+from optparse import OptionParser
+
+
+def parseOptions():
+    parser = OptionParser(version='%prog 1.0')
+    parser.add_option('-f', '--file', dest='file', 
+    help='File for calculation of crc32 checksum',
+    metavar='<file>') 
+
+    (options, args) = parser.parse_args()
+    if options.file is None:
+      parser.print_help()
+      exit(-1)
+    return options
+
+
+def crc(fileName):
+  prev = 0
+  for eachLine in open(fileName,"rb"):
+    prev = zlib.crc32(eachLine, prev)
+  return "%X"%(prev & 0xFFFFFFFF)
+
+def main():
+
+  myoptions = parseOptions()
+  value = crc(myoptions.file)
+  print(value)
+
+if __name__ == "__main__":
+  main()