From d34684ca63cee908eeac095f90ce58dbb9232181 Mon Sep 17 00:00:00 2001
From: Thomas Faraut <Thomas.Faraut@inra.fr>
Date: Thu, 27 Feb 2020 13:54:05 +0100
Subject: [PATCH] new implementation of get samples in lumpy

---
 svreader/annotation.py |  1 +
 svreader/lumpy.py      | 12 +++++++++---
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/svreader/annotation.py b/svreader/annotation.py
index c1aa1cf..1197d14 100644
--- a/svreader/annotation.py
+++ b/svreader/annotation.py
@@ -145,6 +145,7 @@ class AnnotateRecord(VCFRecord):
     def add_supporting_infos(self):
         supp_reads = self.variant_read_support()
         num_supp_samples = self.num_variant_samples()
+        #print(supp_reads, num_supp_samples)
         try:
             self.record.info['MAX_SUPP_READS'] = supp_reads
             self.record.info['NUM_SUPP_SAMPLES'] = num_supp_samples
diff --git a/svreader/lumpy.py b/svreader/lumpy.py
index 618f6a4..20d2d6e 100644
--- a/svreader/lumpy.py
+++ b/svreader/lumpy.py
@@ -181,10 +181,15 @@ class LumpyReader(SVReader):
     def AreSamplesSpecified(self):
         return 1
 
+    # def getOrderedSamples(self):
+    #     if not hasattr(self.vcf_reader, "samples"):
+    #         return []
+    #     return self.vcf_reader.samples
+
     def getOrderedSamples(self):
-        if not hasattr(self.vcf_reader, "samples"):
-            return []
-        return self.vcf_reader.samples
+        samples = self.vcf_reader.header.samples
+        sample_names = [sample.rsplit('.')[0] for sample in samples]
+        return sample_names
 
     def SpecificFilterPass(self, record):
         # First try after sensibility analysis with Mathieu
@@ -219,4 +224,5 @@ class LumpyWriter(SVWriter):
         if self._isopen:
             self.vcf_writer.close()
         else:  # nothing was written
+            # Make sure appropriate samples are added to the vcf
             self._dumpemptyvcf()
-- 
GitLab