diff --git a/pbcore/io/align/BamIO.py b/pbcore/io/align/BamIO.py index 1aea5460..2cb2199e 100644 --- a/pbcore/io/align/BamIO.py +++ b/pbcore/io/align/BamIO.py @@ -86,6 +86,7 @@ def _loadReadGroupInfo(self): rgReadType = ds["READTYPE"] rgChem = "unknown" rgFrameRate = 0.0 + rgSample = rg.get("SM", "UnnamedSample") if rgReadType != "TRANSCRIPT": if set(("BASECALLERVERSION", "SEQUENCINGKIT", "BINDINGKIT")) <= set(ds): pass @@ -110,8 +111,9 @@ def _loadReadGroupInfo(self): self._baseFeatureNameMappings[rgID] = baseFeatureNameMapping self._pulseFeatureNameMappings[rgID] = pulseFeatureNameMapping - readGroupTable_.append((rgID, rgName, rgReadType, rgChem, rgFrameRate, - frozenset(baseFeatureNameMapping.iterkeys()))) + readGroupTable_.append( + (rgID, rgName, rgReadType, rgChem, rgFrameRate, rgSample, + frozenset(baseFeatureNameMapping.iterkeys()))) self._readGroupTable = np.rec.fromrecords( readGroupTable_, @@ -120,6 +122,7 @@ def _loadReadGroupInfo(self): ("ReadType" , "O"), ("SequencingChemistry", "O"), ("FrameRate", float), + ("SampleName", "O"), ("BaseFeatures", "O")]) assert len(set(self._readGroupTable.ID)) == len(self._readGroupTable), \ "First 8 chars of read group IDs must be unique!" diff --git a/pbcore/io/align/CmpH5IO.py b/pbcore/io/align/CmpH5IO.py index 4446676b..58777f99 100755 --- a/pbcore/io/align/CmpH5IO.py +++ b/pbcore/io/align/CmpH5IO.py @@ -778,12 +778,14 @@ def _loadReadGroupInfo(self): [self.readType] * len(self._movieInfoTable.ID), self.sequencingChemistry, self._movieInfoTable.FrameRate, + ["UnnamedSample"] * len(self._movieInfoTable.ID), [frozenset(self.baseFeaturesAvailable())] * len(self._movieInfoTable.ID)), dtype=[("ID" , np.int32), ("MovieName" , "O"), ("ReadType" , "O"), ("SequencingChemistry", "O"), ("FrameRate" , float), + ("SampleName" , "O"), # XXX dummy column ("BaseFeatures" , "O")]) self._readGroupDict = { rg.ID : rg for rg in self._readGroupTable } diff --git a/tests/test_pbcore_io_AlnFileReaders.py b/tests/test_pbcore_io_AlnFileReaders.py index 9bc4daed..522d8d8f 100644 --- a/tests/test_pbcore_io_AlnFileReaders.py +++ b/tests/test_pbcore_io_AlnFileReaders.py @@ -325,7 +325,7 @@ def testReadsInRange(self): def testReadGroupTable(self): rgFwd = self.fwdAln.readGroupInfo - EQ([('ID', '