From 8df19b0f76599ef51e776cc7861eb6bc121d5cca Mon Sep 17 00:00:00 2001
From: kohleman <kohleman>
Date: Wed, 14 Sep 2016 13:38:15 +0000
Subject: [PATCH] added possibility to provide pre-computed checksums in a txt
 file

SVN: 37078
---
 .../register-flowlane/register-flowlane.py    | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)

diff --git a/deep_sequencing_unit/sourceTest/core-plugins/illumina-qgf/2/dss/drop-boxes/register-flowlane/register-flowlane.py b/deep_sequencing_unit/sourceTest/core-plugins/illumina-qgf/2/dss/drop-boxes/register-flowlane/register-flowlane.py
index 5c1b0519ae2..e733f9640a5 100644
--- a/deep_sequencing_unit/sourceTest/core-plugins/illumina-qgf/2/dss/drop-boxes/register-flowlane/register-flowlane.py
+++ b/deep_sequencing_unit/sourceTest/core-plugins/illumina-qgf/2/dss/drop-boxes/register-flowlane/register-flowlane.py
@@ -58,6 +58,7 @@ CRC32_PATH='lib/crc32'
 if System.getProperty('os.name')  == 'Mac OS X':
     CRC32_PATH='lib/a.out'
 NOHUP_REGEX = 'nohup*.txt'
+CHECKSUMS_REGEX = 'checksums.txt'
 COMMAND_LINE_INVOCATION = 'Command-line invocation'
 MISMATCH_REGEX = r'(barcode-mismatches) ([0-9])'
 mismatch_dict = {0: 'NONE', 1:'ONE', 2:'TWO'}
@@ -122,6 +123,8 @@ def writeMetadataFile(transaction, folder_name, meta_data_file_name, sequencing_
     Writes a file of meta data related to one sample
     '''
 
+    incoming_path = transaction.getIncoming().getAbsolutePath()
+    
     sequencing_sample_properties_list = sequencing_sample_properties_dict.keys()
     sequencing_sample_properties_list.sort()
 
@@ -154,8 +157,19 @@ def writeMetadataFile(transaction, folder_name, meta_data_file_name, sequencing_
             meta_data_file.write(k.encode('utf-8') + "\t" + fcMetaDataDict[k].encode('utf-8') + "\n")
       
         meta_data_file.write("\nFASTQ_FILES\n".encode('utf-8'))
-        for file in fastqFileList:
-            meta_data_file.write(os.path.basename(file) + "\t" + str(CRC32_from_file(file, transaction)) + "\n")
+        
+        checksums_file = get_file_names(incoming_path, CHECKSUMS_REGEX)
+        if checksums_file:
+            with open(checksums_file[0]) as checksums:
+                for line in checksums:
+                    meta_data_file.write(line)
+        else:
+            print("File " + str(checksums_file) + " not found!")     
+            
+            # Use slow fall back solution
+            for file in fastqFileList:
+                print("Using fall back solution for creation of CRC32 checksums")
+                meta_data_file.write(os.path.basename(file) + "\t" + str(CRC32_from_file(file, transaction)) + "\n")
 
         meta_data_file.write("\nDATASET PROPERTIES\n".encode('utf-8'))
         # Data Set Property:
@@ -414,6 +428,7 @@ def process(transaction):
     if nohup_file:
         command_line_list, mismatches = get_mismatches(nohup_file)
         
+
     # get all fastqs
     fastq_files = get_file_names(incoming_path, FASTQ_GZ_PATTERN)
     
-- 
GitLab