def _preCalculation(self): t1 = self._tracks[0] t2 = self._tracks[1] print("**************") print(t1.trackFormat) print(t2.trackFormat) print("**************") if t1.trackFormat.isLinked(): u = UniquifyLinks(t1, identifier="track-1") t1 = u.calculate() if t2.trackFormat.isLinked(): u = UniquifyLinks(t2, identifier="track-2") t2 = u.calculate() self._tracks = [t1, t2]
def _runTest(self, ids, edges, expIds, expEdges, starts=None, ends=None, values=None, strands=None, weights=None, expStarts=None, expEnds=None, expValues=None, expStrands=None, expWeights=None, expExtras=None, expTrackFormatType=None, trackIdentifier=None, customChrLength=None, debug=False): track = createSimpleTestTrackContent(startList=starts, endList=ends, valList=values, strandList=strands, idList=ids, edgeList=edges, weightsList=weights, customChrLength=customChrLength) u = UniquifyLinks(track, identifier=trackIdentifier, debug=debug) result = u.calculate() self.assertTrue(result is not None) resFound = False for (k, v) in result.getTrackViews().iteritems(): if cmp(k, self.chr1) == 0 or cmp(k, self.chr1Small) == 0: # All test tracks are in chr1 resFound = True newStarts = v.startsAsNumpyArray() newEnds = v.endsAsNumpyArray() newValues = v.valsAsNumpyArray() newStrands = v.strandsAsNumpyArray() newIds = v.idsAsNumpyArray() newEdges = v.edgesAsNumpyArray() newWeights = v.weightsAsNumpyArray() newExtras = v.allExtrasAsDictOfNumpyArrays() if debug: print("newTrackFormatType: {}".format(v.trackFormat)) print("expTrackFormatType: {}".format(expTrackFormatType)) print("newStarts: {}".format(newStarts)) print("expStarts: {}".format(expStarts)) print("newEnds: {}".format(newEnds)) print("expEnds: {}".format(expEnds)) print("newStrands: {}".format(newStrands)) print("expStrands: {}".format(expStrands)) print("newIds: {}".format(newIds)) print("expIds: {}".format(expIds)) print("newEdges: {}".format(newEdges)) print("expEdges: {}".format(expEdges)) print("newWeights: {}".format(newWeights)) print("expWeights: {}".format(expWeights)) if expTrackFormatType is not None: self.assertTrue(v.trackFormat.getFormatName() == expTrackFormatType) if expEnds is None and expStarts is not None: # Assuming a point type track. Creating the expected ends. expEnds = np.array(expStarts) + 1 if expStarts is not None: self.assertTrue(newStarts is not None) self.assertTrue(np.array_equal(newStarts, expStarts)) else: self.assertTrue(newStarts is None) if expEnds is not None: self.assertTrue(newEnds is not None) self.assertTrue(np.array_equal(newEnds, expEnds)) else: self.assertTrue(newEnds is None) if expValues is not None: self.assertTrue(newValues is not None) self.assertTrue(np.array_equal(newValues, expValues)) else: self.assertTrue(newValues is None) if expStrands is not None: self.assertTrue(newStrands is not None) self.assertTrue(np.array_equal(newStrands, expStrands)) else: self.assertTrue(newStrands is None) if expIds is not None: self.assertTrue(newIds is not None) self.assertTrue(np.array_equal(newIds, expIds)) else: self.assertTrue(newIds is None) if expEdges is not None: self.assertTrue(newEdges is not None) self.assertTrue(np.array_equal(newEdges, expEdges)) else: self.assertTrue(newEdges is None) if expWeights is not None: self.assertTrue(newWeights is not None) self.assertTrue(np.array_equal(newWeights, expWeights)) else: self.assertTrue(newWeights is None) if expExtras is not None: for key in expExtras.keys(): self.assertTrue(v.hasExtra(key)) expExtra = expExtras[key] newExtra = newExtras[key] self.assertTrue(np.array_equal(newExtra, expExtra)) else: self.assertTrue(len(newExtras) == 0) else: # Tests if all tracks no in chr1 have a size of 0. self.assertEqual(v.size, 0) self.assertTrue(resFound)