From 08198f79f6bc3f540bc7c2ac431beee571cff43f Mon Sep 17 00:00:00 2001
From: Laurent Modolo <laurent.modolo@ens-lyon.fr>
Date: Thu, 16 May 2019 17:37:48 +0200
Subject: [PATCH] rmi_splitter.py: fix parse_ntuple_fastq to work with Reads
 class

---
 src/rmi_splitter/rmi_splitter.py | 37 +++++++++++++++++++++-----------
 1 file changed, 25 insertions(+), 12 deletions(-)

diff --git a/src/rmi_splitter/rmi_splitter.py b/src/rmi_splitter/rmi_splitter.py
index 8c0abdf..2391e5a 100644
--- a/src/rmi_splitter/rmi_splitter.py
+++ b/src/rmi_splitter/rmi_splitter.py
@@ -589,15 +589,22 @@ def write_seqs(reads_list, fouts, config, sample, verbose=False):
         ntuple += 1
 
 
-def read_reads(fins, reads_list, ntuple):
+def read_reads(fins, reads_list, ntuple, line_number):
     """
     read a read from handle
 
     params: fin file  handle
     return: read str()
     """
-    for reads in ntuple:
-        reads_list[reads-1].read(fin=fins[reads-1])
+    if line_number == 0:
+        for reads in ntuple:
+            reads_list[reads-1].header = fins[reads-1]
+    if line_number == 1:
+        for reads in ntuple:
+            reads_list[reads-1].seq = fins[reads-1]
+    if line_number == 3:
+        for reads in ntuple:
+            reads_list[reads-1].str2qual(fins[reads-1])
     return reads_list
 
 
@@ -616,6 +623,7 @@ def parse_ntuples_fastq(ffastqs,
     barcode_dictionary = create_barcode_dictionaries(config=config,
                                                      mismatch=mismatch)
     sequences_number = 0
+    line_number = 0
     reads_list = list()
     for read in ntuple:
         reads_list.append(Reads())
@@ -624,16 +632,21 @@ def parse_ntuples_fastq(ffastqs,
             fins=list_ffastqs,
             ntuple=ntuple,
             reads_list=reads_list,
+            line_number=line_number,
         )
-        sample = assign_reads(reads_list=reads_list,
-                              config=config,
-                              barcode_dictionary=barcode_dictionary,
-                              verbose=verbose)
-        write_seqs(reads_list=reads_list,
-                   fouts=fouts,
-                   config=config,
-                   sample=sample,
-                   verbose=verbose)
+        if line_number == 3:
+            sample = assign_reads(reads_list=reads_list,
+                                  config=config,
+                                  barcode_dictionary=barcode_dictionary,
+                                  verbose=verbose)
+            write_seqs(reads_list=reads_list,
+                       fouts=fouts,
+                       config=config,
+                       sample=sample,
+                       verbose=verbose)
+            line_number = 0
+        else:
+            line_number += 1
         sequences_number += 1
     print("number of processed sequences: " +
           str(sequences_number-1) +
-- 
GitLab