From d3aa48bae6192d21301697de54ed3febee5d31da Mon Sep 17 00:00:00 2001 From: Diane Trout Date: Mon, 11 Jun 2012 17:03:49 -0700 Subject: [PATCH] Add a software (name) property to firecrest, ipar, bustard, gerald This property should return the proper illumina name for any of their various software components I've been trying to capture. NOTE: Now requires lxml. I prefer the xpath searching api, and that's not in element tree. so this now requires lxml. --- htsworkflow/pipelines/bustard.py | 41 ++++++++++++---- htsworkflow/pipelines/firecrest.py | 4 ++ htsworkflow/pipelines/gerald.py | 47 +++++++++++++++---- htsworkflow/pipelines/ipar.py | 13 +++++ htsworkflow/pipelines/runfolder.py | 5 +- .../pipelines/test/test_runfolder026.py | 21 +++++---- .../pipelines/test/test_runfolder030.py | 21 +++++---- .../pipelines/test/test_runfolder110.py | 6 +++ .../test/test_runfolder_casava_1_7.py | 13 +++-- .../pipelines/test/test_runfolder_ipar100.py | 6 +++ .../pipelines/test/test_runfolder_ipar130.py | 6 +++ .../pipelines/test/test_runfolder_pair.py | 6 +++ .../pipelines/test/test_runfolder_rta160.py | 2 + .../pipelines/test/test_runfolder_rta180.py | 4 ++ .../pipelines/test/test_runfolder_rta1_12.py | 12 +++-- 15 files changed, 162 insertions(+), 45 deletions(-) diff --git a/htsworkflow/pipelines/bustard.py b/htsworkflow/pipelines/bustard.py index acdc60e..2c68f67 100644 --- a/htsworkflow/pipelines/bustard.py +++ b/htsworkflow/pipelines/bustard.py @@ -208,7 +208,7 @@ class Bustard(object): BUSTARD_CONFIG = 'BaseCallAnalysis' def __init__(self, xml=None): - self.version = None + self._path_version = None # version number from directory name self.date = None self.user = None self.phasing = {} @@ -233,11 +233,40 @@ class Bustard(object): groups = name.split("_") version = re.search(VERSION_RE, groups[0]) - self.version = version.group(1) + self._path_version = version.group(1) t = time.strptime(groups[1], EUROPEAN_STRPTIME) self.date = date(*t[0:3]) self.user = groups[2] + def _get_software_version(self): + """return software name, version tuple""" + if self.bustard_config is None: + if self._path_version is not None: + return 'Bustard', self._path_version + else: + return None + software_nodes = self.bustard_config.xpath('Run/Software') + if len(software_nodes) == 0: + return None + elif len(software_nodes) > 1: + raise RuntimeError("Too many software XML elements for bustard.py") + else: + return (software_nodes[0].attrib['Name'], + software_nodes[0].attrib['Version']) + + def _get_software(self): + """Return software name""" + software_version = self._get_software_version() + return software_version[0] if software_version is not None else None + software = property(_get_software) + + def _get_version(self): + """Return software name""" + software_version = self._get_software_version() + return software_version[1] if software_version is not None else None + version = property(_get_version) + + def _get_time(self): if self.date is None: return None @@ -283,7 +312,7 @@ class Bustard(object): LOGGER.warn('Bustard XML tree is a higher version than this class') for element in list(tree): if element.tag == Bustard.SOFTWARE_VERSION: - self.version = element.text + self._path_version = element.text elif element.tag == Bustard.DATE: self.date = date.fromtimestamp(float(element.text)) elif element.tag == Bustard.USER: @@ -339,7 +368,7 @@ def bustard_from_ga1(pathname): b.pathname = pathname b.update_attributes_from_pathname() version = re.search(VERSION_RE, groups[0]) - b.version = version.group(1) + b._path_version = version.group(1) t = time.strptime(groups[1], EUROPEAN_STRPTIME) b.date = date(*t[0:3]) b.user = groups[2] @@ -371,8 +400,6 @@ def bustard_from_ga2(pathname, config_filename): b.bustard_config = bustard_config_root.getroot() b.crosstalk = crosstalk_matrix_from_bustard_config(b.pathname, b.bustard_config) - software = bustard_config_root.find('*/Software') - b.version = software.attrib['Version'] add_phasing(b) return b @@ -382,8 +409,6 @@ def bustard_from_hiseq(pathname, config_filename): b.pathname = pathname bustard_config_root = ElementTree.parse(config_filename) b.bustard_config = bustard_config_root.getroot() - software = bustard_config_root.find('*/Software') - b.version = software.attrib['Version'] add_phasing(b) return b diff --git a/htsworkflow/pipelines/firecrest.py b/htsworkflow/pipelines/firecrest.py index 7d92050..de6b042 100644 --- a/htsworkflow/pipelines/firecrest.py +++ b/htsworkflow/pipelines/firecrest.py @@ -49,6 +49,10 @@ class Firecrest(object): if xml is not None: self.set_elements(xml) + def _get_software(self): + return "Firecrest" + software = property(_get_software) + def _get_time(self): return time.mktime(self.date.timetuple()) time = property(_get_time, doc='return run time as seconds since epoch') diff --git a/htsworkflow/pipelines/gerald.py b/htsworkflow/pipelines/gerald.py index 12d8302..f768b22 100644 --- a/htsworkflow/pipelines/gerald.py +++ b/htsworkflow/pipelines/gerald.py @@ -126,17 +126,31 @@ class Gerald(Alignment): runfolder_name = property(_get_runfolder_name) - def _get_version(self): + def _get_software_version(self): if self.tree is None: return None ga_version = self.tree.findtext( 'ChipWideRunParameters/SOFTWARE_VERSION') if ga_version is not None: - match = re.match("@.*GERALD.pl,v (?P\d+(\.\d+)+)", + gerald = re.match("@.*GERALD.pl,v (?P\d+(\.\d+)+)", ga_version) - if match: - return match.group('version') - return ga_version + if gerald: + return ('GERALD', gerald.group('version')) + casava = re.match('CASAVA-(?P\d+[.\d]*)', + ga_version) + if casava: + return ('CASAVA', casava.group('version')) + + def _get_software(self): + """Return name of analysis software package""" + software_version = self._get_software_version() + return software_version[0] if software_version is not None else None + software = property(_get_software) + + def _get_version(self): + """Return version number of software package""" + software_version = self._get_software_version() + return software_version[1] if software_version is not None else None version = property(_get_version) class CASAVA(Alignment): @@ -156,12 +170,29 @@ class CASAVA(Alignment): runfolder_name = property(_get_runfolder_name) - def _get_version(self): + def _get_software_version(self): + if self.tree is None: + return None if self.tree is None: return None hiseq_software_node = self.tree.find('Software') - hiseq_version = hiseq_software_node.attrib['Version'] - return hiseq_version + software_version = hiseq_software_node.attrib.get('Version',None) + if software_version is None: + return None + return software_version.split('-') + + def _get_software(self): + software_version = self._get_software_version() + if software_version is None: + return None + return software_version[0] + software = property(_get_software) + + def _get_version(self): + software_version = self._get_software_version() + if software_version is None: + return None + return software_version[1] version = property(_get_version) diff --git a/htsworkflow/pipelines/ipar.py b/htsworkflow/pipelines/ipar.py index e17db4b..7a55fa2 100644 --- a/htsworkflow/pipelines/ipar.py +++ b/htsworkflow/pipelines/ipar.py @@ -75,6 +75,19 @@ class IPAR(object): if xml is not None: self.set_elements(xml) + def _get_software(self): + """Return software name""" + if self.tree is None: + raise ValueError("Can't determine software name, please load a run") + software = self.tree.xpath('Software') + if len(software) == 0: + return None + elif len(software) > 1: + raise RuntimeError("Too many software tags, please update ipar.py") + else: + return software[0].attrib['Name'] + software = property(_get_software) + def _get_time(self): return time.mktime(self.date.timetuple()) def _set_time(self, value): diff --git a/htsworkflow/pipelines/runfolder.py b/htsworkflow/pipelines/runfolder.py index 04c1377..0fce8f8 100644 --- a/htsworkflow/pipelines/runfolder.py +++ b/htsworkflow/pipelines/runfolder.py @@ -12,10 +12,7 @@ import sys import tarfile import time -try: - from xml.etree import ElementTree -except ImportError, e: - from elementtree import ElementTree +import lxml.etree as ElementTree LOGGER = logging.getLogger(__name__) diff --git a/htsworkflow/pipelines/test/test_runfolder026.py b/htsworkflow/pipelines/test/test_runfolder026.py index 9ab1722..218ba44 100644 --- a/htsworkflow/pipelines/test/test_runfolder026.py +++ b/htsworkflow/pipelines/test/test_runfolder026.py @@ -273,6 +273,7 @@ class RunfolderTests(unittest.TestCase): Construct a firecrest object """ f = firecrest.firecrest(self.firecrest_dir) + self.failUnlessEqual(f.software, 'Firecrest') self.failUnlessEqual(f.version, '1.8.28') self.failUnlessEqual(f.start, 1) self.failUnlessEqual(f.stop, 33) @@ -284,17 +285,19 @@ class RunfolderTests(unittest.TestCase): xml_str = ElementTree.tostring(xml) f2 = firecrest.Firecrest(xml=xml) - self.failUnlessEqual(f.version, f2.version) - self.failUnlessEqual(f.start, f2.start) - self.failUnlessEqual(f.stop, f2.stop) - self.failUnlessEqual(f.user, f2.user) - self.failUnlessEqual(f.date, f2.date) + self.failUnlessEqual(f.software, f2.software) + self.failUnlessEqual(f.version, f2.version) + self.failUnlessEqual(f.start, f2.start) + self.failUnlessEqual(f.stop, f2.stop) + self.failUnlessEqual(f.user, f2.user) + self.failUnlessEqual(f.date, f2.date) def test_bustard(self): """ construct a bustard object """ b = bustard.bustard(self.bustard_dir) + self.failUnlessEqual(b.software, 'Bustard') self.failUnlessEqual(b.version, '1.8.28') self.failUnlessEqual(b.date, date(2008,4,12)) self.failUnlessEqual(b.user, 'diane') @@ -303,9 +306,10 @@ class RunfolderTests(unittest.TestCase): xml = b.get_elements() b2 = bustard.Bustard(xml=xml) - self.failUnlessEqual(b.version, b2.version) - self.failUnlessEqual(b.date, b2.date ) - self.failUnlessEqual(b.user, b2.user) + self.failUnlessEqual(b.software, b2.software) + self.failUnlessEqual(b.version, b2.version) + self.failUnlessEqual(b.date, b2.date ) + self.failUnlessEqual(b.user, b2.user) self.failUnlessEqual(len(b.phasing), len(b2.phasing)) for key in b.phasing.keys(): self.failUnlessEqual(b.phasing[key].lane, @@ -319,6 +323,7 @@ class RunfolderTests(unittest.TestCase): # need to update gerald and make tests for it g = gerald.gerald(self.gerald_dir) + self.failUnlessEqual(g.software, 'GERALD') self.failUnlessEqual(g.version, '1.68.2.2') self.failUnlessEqual(g.date, datetime(2008,4,19,19,8,30)) self.failUnlessEqual(len(g.lanes), len(g.lanes.keys())) diff --git a/htsworkflow/pipelines/test/test_runfolder030.py b/htsworkflow/pipelines/test/test_runfolder030.py index a995c39..2958d1d 100644 --- a/htsworkflow/pipelines/test/test_runfolder030.py +++ b/htsworkflow/pipelines/test/test_runfolder030.py @@ -695,6 +695,7 @@ class RunfolderTests(unittest.TestCase): Construct a firecrest object """ f = firecrest.firecrest(self.firecrest_dir) + self.failUnlessEqual(f.software, 'Firecrest') self.failUnlessEqual(f.version, '1.8.28') self.failUnlessEqual(f.start, 1) self.failUnlessEqual(f.stop, 33) @@ -706,17 +707,19 @@ class RunfolderTests(unittest.TestCase): xml_str = ElementTree.tostring(xml) f2 = firecrest.Firecrest(xml=xml) - self.failUnlessEqual(f.version, f2.version) - self.failUnlessEqual(f.start, f2.start) - self.failUnlessEqual(f.stop, f2.stop) - self.failUnlessEqual(f.user, f2.user) - self.failUnlessEqual(f.date, f2.date) + self.failUnlessEqual(f.software, f2.software) + self.failUnlessEqual(f.version, f2.version) + self.failUnlessEqual(f.start, f2.start) + self.failUnlessEqual(f.stop, f2.stop) + self.failUnlessEqual(f.user, f2.user) + self.failUnlessEqual(f.date, f2.date) def test_bustard(self): """ construct a bustard object """ b = bustard.bustard(self.bustard_dir) + self.failUnlessEqual(b.software, 'Bustard') self.failUnlessEqual(b.version, '1.8.28') self.failUnlessEqual(b.date, date(2008,4,12)) self.failUnlessEqual(b.user, 'diane') @@ -725,9 +728,10 @@ class RunfolderTests(unittest.TestCase): xml = b.get_elements() b2 = bustard.Bustard(xml=xml) - self.failUnlessEqual(b.version, b2.version) - self.failUnlessEqual(b.date, b2.date ) - self.failUnlessEqual(b.user, b2.user) + self.failUnlessEqual(b.software, b2.software) + self.failUnlessEqual(b.version, b2.version) + self.failUnlessEqual(b.date, b2.date ) + self.failUnlessEqual(b.user, b2.user) self.failUnlessEqual(len(b.phasing), len(b2.phasing)) for key in b.phasing.keys(): self.failUnlessEqual(b.phasing[key].lane, @@ -741,6 +745,7 @@ class RunfolderTests(unittest.TestCase): # need to update gerald and make tests for it g = gerald.gerald(self.gerald_dir) + self.failUnlessEqual(g.software, 'GERALD') self.failUnlessEqual(g.version, '1.68.2.2') self.failUnlessEqual(g.date, datetime(2008,4,19,19,8,30)) self.failUnlessEqual(len(g.lanes), len(g.lanes.keys())) diff --git a/htsworkflow/pipelines/test/test_runfolder110.py b/htsworkflow/pipelines/test/test_runfolder110.py index d9c57a0..f9508b4 100644 --- a/htsworkflow/pipelines/test/test_runfolder110.py +++ b/htsworkflow/pipelines/test/test_runfolder110.py @@ -75,6 +75,7 @@ class RunfolderTests(unittest.TestCase): Construct a firecrest object """ f = firecrest.firecrest(self.image_analysis_dir) + self.failUnlessEqual(f.software, 'Firecrest') self.failUnlessEqual(f.version, '1.9.6') self.failUnlessEqual(f.start, 1) self.failUnlessEqual(f.stop, 37) @@ -86,6 +87,7 @@ class RunfolderTests(unittest.TestCase): xml_str = ElementTree.tostring(xml) f2 = firecrest.Firecrest(xml=xml) + self.failUnlessEqual(f.software, f2.software) self.failUnlessEqual(f.version, f2.version) self.failUnlessEqual(f.start, f2.start) self.failUnlessEqual(f.stop, f2.stop) @@ -96,6 +98,7 @@ class RunfolderTests(unittest.TestCase): construct a bustard object """ b = bustard.bustard(self.bustard_dir) + self.failUnlessEqual(b.software, 'Bustard') self.failUnlessEqual(b.version, '1.9.6') self.failUnlessEqual(b.date, date(2008,10,20)) self.failUnlessEqual(b.user, 'diane') @@ -104,6 +107,7 @@ class RunfolderTests(unittest.TestCase): xml = b.get_elements() b2 = bustard.Bustard(xml=xml) + self.failUnlessEqual(b.software, b2.software) self.failUnlessEqual(b.version, b2.version) self.failUnlessEqual(b.date, b2.date ) self.failUnlessEqual(b.user, b2.user) @@ -120,6 +124,7 @@ class RunfolderTests(unittest.TestCase): # need to update gerald and make tests for it g = gerald.gerald(self.gerald_dir) + self.failUnlessEqual(g.software, 'GERALD') self.failUnlessEqual(g.version, '1.171') self.failUnlessEqual(g.date, datetime(2009,2,22,21,15,59)) self.failUnlessEqual(len(g.lanes), len(g.lanes.keys())) @@ -175,6 +180,7 @@ class RunfolderTests(unittest.TestCase): g2 = gerald.Gerald(xml=xml) # do it all again after extracting from the xml file + self.failUnlessEqual(g.software, g2.software) self.failUnlessEqual(g.version, g2.version) self.failUnlessEqual(g.date, g2.date) self.failUnlessEqual(len(g.lanes.keys()), len(g2.lanes.keys())) diff --git a/htsworkflow/pipelines/test/test_runfolder_casava_1_7.py b/htsworkflow/pipelines/test/test_runfolder_casava_1_7.py index 5a792d7..9f26a43 100644 --- a/htsworkflow/pipelines/test/test_runfolder_casava_1_7.py +++ b/htsworkflow/pipelines/test/test_runfolder_casava_1_7.py @@ -71,6 +71,7 @@ class RunfolderTests(unittest.TestCase): def test_bustard(self): """Construct a bustard object""" b = bustard.bustard(self.bustard_dir) + self.failUnlessEqual(b.software, 'RTA') self.failUnlessEqual(b.version, '1.10.36.0') self.failUnlessEqual(b.date, None) self.failUnlessEqual(b.user, None) @@ -78,16 +79,17 @@ class RunfolderTests(unittest.TestCase): xml = b.get_elements() b2 = bustard.Bustard(xml=xml) - self.failUnlessEqual(b.version, b2.version) - self.failUnlessEqual(b.date, b2.date ) - self.failUnlessEqual(b.user, b2.user) + self.failUnlessEqual(b.software, b2.software) + self.failUnlessEqual(b.version, b2.version) + self.failUnlessEqual(b.date, b2.date ) + self.failUnlessEqual(b.user, b2.user) def test_gerald(self): # need to update gerald and make tests for it g = gerald.gerald(self.gerald_dir) - self.failUnlessEqual(g.version, - 'CASAVA-1.7.0') + self.failUnlessEqual(g.software, 'CASAVA') + self.failUnlessEqual(g.version, '1.7.0') self.failUnlessEqual(g.date, datetime(2011,5,2,19,19,49)) self.failUnlessEqual(len(g.lanes), len(g.lanes.keys())) self.failUnlessEqual(len(g.lanes), len(g.lanes.items())) @@ -150,6 +152,7 @@ class RunfolderTests(unittest.TestCase): g2 = gerald.Gerald(xml=xml) # do it all again after extracting from the xml file + self.failUnlessEqual(g.software, g2.software) self.failUnlessEqual(g.version, g2.version) self.failUnlessEqual(g.date, g2.date) self.failUnlessEqual(len(g.lanes.keys()), len(g2.lanes.keys())) diff --git a/htsworkflow/pipelines/test/test_runfolder_ipar100.py b/htsworkflow/pipelines/test/test_runfolder_ipar100.py index ec647b8..7913ed0 100644 --- a/htsworkflow/pipelines/test/test_runfolder_ipar100.py +++ b/htsworkflow/pipelines/test/test_runfolder_ipar100.py @@ -75,6 +75,7 @@ class RunfolderTests(unittest.TestCase): Construct a firecrest object """ i = ipar.ipar(self.image_analysis_dir) + self.failUnlessEqual(i.software, 'IPAR') self.failUnlessEqual(i.version, '2.01.192.0') self.failUnlessEqual(i.start, 1) self.failUnlessEqual(i.stop, 37) @@ -84,6 +85,7 @@ class RunfolderTests(unittest.TestCase): xml_str = ElementTree.tostring(xml) i2 = ipar.IPAR(xml=xml) + self.failUnlessEqual(i.software, i2.software) self.failUnlessEqual(i.version, i2.version) self.failUnlessEqual(i.start, i2.start) self.failUnlessEqual(i.stop, i2.stop) @@ -95,6 +97,7 @@ class RunfolderTests(unittest.TestCase): construct a bustard object """ b = bustard.bustard(self.bustard_dir) + self.failUnlessEqual(b.software, 'Bustard') self.failUnlessEqual(b.version, '1.8.28') self.failUnlessEqual(b.date, date(2008,4,12)) self.failUnlessEqual(b.user, 'diane') @@ -103,6 +106,7 @@ class RunfolderTests(unittest.TestCase): xml = b.get_elements() b2 = bustard.Bustard(xml=xml) + self.failUnlessEqual(b.software, b2.software) self.failUnlessEqual(b.version, b2.version) self.failUnlessEqual(b.date, b2.date ) self.failUnlessEqual(b.user, b2.user) @@ -119,6 +123,7 @@ class RunfolderTests(unittest.TestCase): # need to update gerald and make tests for it g = gerald.gerald(self.gerald_dir) + self.failUnlessEqual(g.software, 'GERALD') self.failUnlessEqual(g.version, '1.171') self.failUnlessEqual(g.date, datetime(2009,2,22,21,15,59)) self.failUnlessEqual(len(g.lanes), len(g.lanes.keys())) @@ -172,6 +177,7 @@ class RunfolderTests(unittest.TestCase): g2 = gerald.Gerald(xml=xml) # do it all again after extracting from the xml file + self.failUnlessEqual(g.software, g2.software) self.failUnlessEqual(g.version, g2.version) self.failUnlessEqual(g.date, g2.date) self.failUnlessEqual(len(g.lanes.keys()), len(g2.lanes.keys())) diff --git a/htsworkflow/pipelines/test/test_runfolder_ipar130.py b/htsworkflow/pipelines/test/test_runfolder_ipar130.py index 46a26f0..011a993 100644 --- a/htsworkflow/pipelines/test/test_runfolder_ipar130.py +++ b/htsworkflow/pipelines/test/test_runfolder_ipar130.py @@ -73,6 +73,7 @@ class RunfolderTests(unittest.TestCase): Construct a firecrest object """ i = ipar.ipar(self.image_analysis_dir) + self.failUnlessEqual(i.software, 'IPAR') self.failUnlessEqual(i.version, '2.01.192.0') self.failUnlessEqual(i.start, 1) self.failUnlessEqual(i.stop, 37) @@ -82,6 +83,7 @@ class RunfolderTests(unittest.TestCase): xml_str = ElementTree.tostring(xml) i2 = ipar.IPAR(xml=xml) + self.failUnlessEqual(i.software, i2.software) self.failUnlessEqual(i.version, i2.version) self.failUnlessEqual(i.start, i2.start) self.failUnlessEqual(i.stop, i2.stop) @@ -114,6 +116,7 @@ class RunfolderTests(unittest.TestCase): self.failUnlessAlmostEqual(crosstalk.base['G'][3], -0.02) b = bustard.bustard(self.bustard_dir) + self.failUnlessEqual(b.software, 'Bustard') self.failUnlessEqual(b.version, '1.3.2') self.failUnlessEqual(b.date, date(2008,3,15)) self.failUnlessEqual(b.user, 'diane') @@ -124,6 +127,7 @@ class RunfolderTests(unittest.TestCase): xml = b.get_elements() b2 = bustard.Bustard(xml=xml) + self.failUnlessEqual(b.software, b2.software) self.failUnlessEqual(b.version, b2.version) self.failUnlessEqual(b.date, b2.date ) self.failUnlessEqual(b.user, b2.user) @@ -141,6 +145,7 @@ class RunfolderTests(unittest.TestCase): # need to update gerald and make tests for it g = gerald.gerald(self.gerald_dir) + self.failUnlessEqual(g.software, 'GERALD') self.failUnlessEqual(g.version, '1.171') self.failUnlessEqual(g.date, datetime(2009,2,22,21,15,59)) self.failUnlessEqual(len(g.lanes), len(g.lanes.keys())) @@ -194,6 +199,7 @@ class RunfolderTests(unittest.TestCase): g2 = gerald.Gerald(xml=xml) # do it all again after extracting from the xml file + self.failUnlessEqual(g.software, g2.software) self.failUnlessEqual(g.version, g2.version) self.failUnlessEqual(g.date, g2.date) self.failUnlessEqual(len(g.lanes.keys()), len(g2.lanes.keys())) diff --git a/htsworkflow/pipelines/test/test_runfolder_pair.py b/htsworkflow/pipelines/test/test_runfolder_pair.py index 1ef2797..7483fe2 100644 --- a/htsworkflow/pipelines/test/test_runfolder_pair.py +++ b/htsworkflow/pipelines/test/test_runfolder_pair.py @@ -75,6 +75,7 @@ class RunfolderTests(unittest.TestCase): Construct a firecrest object """ f = firecrest.firecrest(self.image_analysis_dir) + self.failUnlessEqual(f.software, 'Firecrest') self.failUnlessEqual(f.version, '1.9.6') self.failUnlessEqual(f.start, 1) self.failUnlessEqual(f.stop, 152) @@ -88,6 +89,7 @@ class RunfolderTests(unittest.TestCase): xml_str = ElementTree.tostring(xml) f2 = firecrest.Firecrest(xml=xml) + self.failUnlessEqual(f.software, f2.software) self.failUnlessEqual(f.version, f2.version) self.failUnlessEqual(f.start, f2.start) self.failUnlessEqual(f.stop, f2.stop) @@ -98,6 +100,7 @@ class RunfolderTests(unittest.TestCase): construct a bustard object """ b = bustard.bustard(self.bustard_dir) + self.failUnlessEqual(b.software, 'Bustard') self.failUnlessEqual(b.version, '1.8.28') self.failUnlessEqual(b.date, date(2008,4,12)) self.failUnlessEqual(b.user, 'diane') @@ -106,6 +109,7 @@ class RunfolderTests(unittest.TestCase): xml = b.get_elements() b2 = bustard.Bustard(xml=xml) + self.failUnlessEqual(b.software, b2.software) self.failUnlessEqual(b.version, b2.version) self.failUnlessEqual(b.date, b2.date ) self.failUnlessEqual(b.user, b2.user) @@ -122,6 +126,7 @@ class RunfolderTests(unittest.TestCase): # need to update gerald and make tests for it g = gerald.gerald(self.gerald_dir) + self.failUnlessEqual(g.software, 'GERALD') self.failUnlessEqual(g.version, '1.171') self.failUnlessEqual(g.date, datetime(2009,2,22,21,15,59)) self.failUnlessEqual(len(g.lanes), len(g.lanes.keys())) @@ -180,6 +185,7 @@ class RunfolderTests(unittest.TestCase): g2 = gerald.Gerald(xml=xml) # do it all again after extracting from the xml file + self.failUnlessEqual(g.software, g2.software) self.failUnlessEqual(g.version, g2.version) self.failUnlessEqual(g.date, g2.date) self.failUnlessEqual(len(g.lanes.keys()), len(g2.lanes.keys())) diff --git a/htsworkflow/pipelines/test/test_runfolder_rta160.py b/htsworkflow/pipelines/test/test_runfolder_rta160.py index 75ca37e..137fc41 100644 --- a/htsworkflow/pipelines/test/test_runfolder_rta160.py +++ b/htsworkflow/pipelines/test/test_runfolder_rta160.py @@ -75,6 +75,7 @@ class RunfolderTests(unittest.TestCase): # need to update gerald and make tests for it g = gerald.gerald(self.gerald_dir) + self.failUnlessEqual(g.software, 'GERALD') self.failUnlessEqual(g.version, '1.171') self.failUnlessEqual(g.date, datetime(2009,2,22,21,15,59)) self.failUnlessEqual(len(g.lanes), len(g.lanes.keys())) @@ -129,6 +130,7 @@ class RunfolderTests(unittest.TestCase): return # do it all again after extracting from the xml file + self.failUnlessEqual(g.software, g2.software) self.failUnlessEqual(g.version, g2.version) self.failUnlessEqual(g.date, g2.date) self.failUnlessEqual(len(g.lanes.keys()), len(g2.lanes.keys())) diff --git a/htsworkflow/pipelines/test/test_runfolder_rta180.py b/htsworkflow/pipelines/test/test_runfolder_rta180.py index 5cb2822..8340064 100644 --- a/htsworkflow/pipelines/test/test_runfolder_rta180.py +++ b/htsworkflow/pipelines/test/test_runfolder_rta180.py @@ -68,6 +68,7 @@ class RunfolderTests(unittest.TestCase): def test_bustard(self): """Construct a bustard object""" b = bustard.bustard(self.bustard_dir) + self.failUnlessEqual(b.software, 'RTA') self.failUnlessEqual(b.version, '1.8.70.0') self.failUnlessEqual(b.date, None) self.failUnlessEqual(b.user, None) @@ -75,6 +76,7 @@ class RunfolderTests(unittest.TestCase): xml = b.get_elements() b2 = bustard.Bustard(xml=xml) + self.failUnlessEqual(b.software, b2.software) self.failUnlessEqual(b.version, b2.version) self.failUnlessEqual(b.date, b2.date ) self.failUnlessEqual(b.user, b2.user) @@ -83,6 +85,7 @@ class RunfolderTests(unittest.TestCase): # need to update gerald and make tests for it g = gerald.gerald(self.gerald_dir) + self.failUnlessEqual(g.software, 'GERALD') self.failUnlessEqual(g.version, '1.171') self.failUnlessEqual(g.date, datetime(2009,2,22,21,15,59)) self.failUnlessEqual(len(g.lanes), len(g.lanes.keys())) @@ -137,6 +140,7 @@ class RunfolderTests(unittest.TestCase): return # do it all again after extracting from the xml file + self.failUnlessEqual(g.software, g2.version) self.failUnlessEqual(g.version, g2.version) self.failUnlessEqual(g.date, g2.date) self.failUnlessEqual(len(g.lanes.keys()), len(g2.lanes.keys())) diff --git a/htsworkflow/pipelines/test/test_runfolder_rta1_12.py b/htsworkflow/pipelines/test/test_runfolder_rta1_12.py index 9b7d3b9..0f46761 100644 --- a/htsworkflow/pipelines/test/test_runfolder_rta1_12.py +++ b/htsworkflow/pipelines/test/test_runfolder_rta1_12.py @@ -72,6 +72,7 @@ class RunfolderTests(unittest.TestCase): def test_bustard(self): """Construct a bustard object""" b = bustard.bustard(self.bustard_dir) + self.failUnlessEqual(b.software, 'RTA') self.failUnlessEqual(b.version, '1.12.4.2') self.failUnlessEqual(b.date, None) self.failUnlessEqual(b.user, None) @@ -79,15 +80,17 @@ class RunfolderTests(unittest.TestCase): xml = b.get_elements() b2 = bustard.Bustard(xml=xml) - self.failUnlessEqual(b.version, b2.version) - self.failUnlessEqual(b.date, b2.date ) - self.failUnlessEqual(b.user, b2.user) + self.failUnlessEqual(b.software, b2.software) + self.failUnlessEqual(b.version, b2.version) + self.failUnlessEqual(b.date, b2.date ) + self.failUnlessEqual(b.user, b2.user) def test_gerald(self): # need to update gerald and make tests for it g = gerald.gerald(self.gerald_dir) - self.failUnlessEqual(g.version, 'CASAVA-1.8.1') + self.failUnlessEqual(g.software, 'CASAVA') + self.failUnlessEqual(g.version, '1.8.1') self.failUnlessEqual(len(g.lanes), len(g.lanes.keys())) self.failUnlessEqual(len(g.lanes), len(g.lanes.items())) @@ -129,6 +132,7 @@ class RunfolderTests(unittest.TestCase): return # do it all again after extracting from the xml file + self.failUnlessEqual(g.software, g2.software) self.failUnlessEqual(g.version, g2.version) self.failUnlessEqual(g.date, g2.date) self.failUnlessEqual(len(g.lanes.keys()), len(g2.lanes.keys())) -- 2.30.2