A better resolution to a possible circular dependency.
[htsworkflow.git] / htsworkflow / pipelines / bustard.py
index dd831a197afa7bbf9d8628f29e9992cc4eea0112..b5bf7e11a925940b284e655932c4aa602b523838 100644 (file)
@@ -13,7 +13,7 @@ import re
 import sys
 import time
 
-from htsworkflow.pipelines.runfolder import \
+from htsworkflow.pipelines import \
    ElementTree, \
    VERSION_RE, \
    EUROPEAN_STRPTIME
@@ -239,6 +239,20 @@ class Bustard(object):
         self.date = date(*t[0:3])
         self.user = groups[2]
 
+    def _get_sequence_format(self):
+        """Guess sequence format"""
+        project_glob = os.path.join(self.pathname, 'Project_*')
+        LOGGER.debug("Scanning: %s" % (project_glob,))
+        projects = glob(project_glob)
+        if len(projects) > 0:
+            # Hey we look like a demultiplexed run
+            return 'fastq'
+        seqs = glob(os.path.join(self.pathname, '*_seq.txt'))
+        if len(seqs) > 0:
+            return 'srf'
+        return 'qseq'
+    sequence_format = property(_get_sequence_format)
+
     def _get_software_version(self):
         """return software name, version tuple"""
         if self.bustard_config is None:
@@ -362,7 +376,7 @@ def bustard_from_ga1(pathname):
     if len(groups) < 3:
         msg = "Not enough information to create attributes"\
               " from directory name: %s"
-        LOGGER.error(msg % (self.pathname,))
+        LOGGER.error(msg % (pathname,))
         return None
 
     b = Bustard()