Exemple #1
0
 def testIncompatibleTracks(self):
     self._assertIncompatibleTracks(
         SampleTV(starts=[0, 3, 5], anchor=[10, 20]))
     self._assertIncompatibleTracks(
         SampleTV(ends=[0, 3, 5, 10], anchor=[10, 20]))
     self._assertIncompatibleTracks(
         SampleTV(segments=[[3, 5], [7, 9]], anchor=[10, 20]))
Exemple #2
0
 def test_compute(self):
     self._assertCompute([10], \
                         SampleTV( segments=[], vals=[], anchor=[10,20], valDType='S2', allowOverlaps=True ))
     self._assertCompute([4,4,2], \
                         SampleTV( segments=[[3,7], [5,9]], vals=['AA','BB'], anchor=[10,20], valDType='S', allowOverlaps=True ))
     self._assertCompute([4,4,1,1], \
                         SampleTV( segments=[[3,7], [6,7], [5,9]], vals=['AA','BB','CC'], anchor=[10,20], valDType='S', allowOverlaps=True ))
 def test_compute(self):
     self._assertCompute([1.119203,1.891642,2.989013], SampleTV( starts = [10,30,60], vals = [1,2,3], anchor = [0,100], valDType='int32'),\
                                  markReq='number' ,windowSize=3, windowBpSize=5000, sdOfGaussian=10,guaranteeBpCoverByWindow='False',assertFunc=self.assertListsOrDicts)
     #self._assertCompute([1.119203,1.891642,2.989013,1.119203,1.891642,2.989013], SampleTV( starts = [10,30,60,110,130,160], vals = [1,2,3,1,2,3], anchor = [0,200], valDType='int32'),\
     #                             markReq='number' ,windowSize=3, windowBpSize=5000, sdOfGaussian=10,guaranteeBpCoverByWindow='False',assertFunc=self.assertListsOrDicts)
     self._assertCompute([], SampleTV( starts=[], anchor = [0,100], valDType='int32'),\
                                  markReq='number' )
 def test_compute(self):
     self._assertCompute(90, SampleTV_Num(anchor=[10, 100]))
     self._assertCompute(
         20, SampleTV(segments=[[10, 20], [80, 90]], anchor=[10, 100]))
     self._assertCompute(3, SampleTV(starts=[2, 15, 60], anchor=[10, 100]))
     self._assertCompute(90, SampleTV(ends=[15, 90], anchor=[10, 100]))
     self._assertCompute(0, SampleTV(segments=[], anchor=[10, 100]))
Exemple #5
0
 def test_createChildren(self):
     self._assertCreateChildren([CountStatUnsplittable, SumStatUnsplittable],\
                                 SampleTV( anchor=[10,100], numElements=5 ),\
                                 SampleTV_Num( anchor=[10,100] ), CountStat, SumStat)
     self._assertCreateChildren([CountStatSplittable, SumStatSplittable],\
                                 SampleTV( anchor=[10,121], numElements=5 ),\
                                 SampleTV_Num( anchor=[10,121] ), CountStat, SumStat)
 def test_compute(self):
     self._assertCompute(111, SampleTV_Num(anchor=[10, 121]))
     self._assertCompute(
         41, SampleTV(segments=[[10, 20], [80, 111]], anchor=[10, 121]))
     self._assertCompute(3, SampleTV(starts=[2, 15, 110], anchor=[10, 121]))
     self._assertCompute(111, SampleTV(ends=[15, 111], anchor=[10, 121]))
     self._assertCompute(0, SampleTV(segments=[], anchor=[10, 121]))
 def testIncompatibleTracks(self):
     self._assertIncompatibleTracks(SampleTV_Num( anchor=[10,100] ), \
                                    SampleTV( anchor=[10,100], numElements=10 ))
     self._assertIncompatibleTracks(SampleTV( anchor=[10,100], numElements=10 ), \
                                    SampleTV_Num( anchor=[10,100] ))
     self._assertIncompatibleTracks(SampleTV( starts=False, anchor=[10,100], numElements=10 ), \
                                    SampleTV( starts=False, anchor=[10,100], numElements=10 ))
    def test_compute(self):
        resultA = { 'Result': {'sdOfMean': [0.24748737, 0.35355339, 0.28284271, 0.35355339], \
                                         'mean':[0.35, 0.5, 0.6, 0.5]} }
        self._assertCompute(resultA, \
            SampleTV( segments=[[50,100], [100,105], [108,122]], anchor=[0,140] ), numSubBins=4, binRegs = \
            (GenomeRegion('TestGenome','chr21',0,100), GenomeRegion('TestGenome','chr21',100,140)), \
            assertFunc=self.assertListsOrDicts)

        self._assertCompute({ 'Result': {'sdOfMean': [0,0,0,0], 'mean':[0,0,0,0]} }, \
            SampleTV( segments=[], anchor=[0,4] ), numSubBins=4, binRegs = \
            (GenomeRegion('TestGenome','chr21',0,4), GenomeRegion('TestGenome','chr21',4,4)),\
            assertFunc=self.assertListsOrDicts)

        #Manually force use of _computeThatHandlesOverlap, and check that it gives equal result as above.
        self._assertCompute(resultA, \
            SampleTV( segments=[[50,100], [100,105], [108,122]], anchor=[0,140] ), numSubBins=4, binRegs = \
            (GenomeRegion('TestGenome','chr21',0,100), GenomeRegion('TestGenome','chr21',100,140)), \
            assertFunc=self.assertListsOrDicts, withOverlaps='yes')

        resultB = { 'Result': {'sdOfMean': [0.24748737, 0.35355339, 0.63639610306789274, 0.35355339], \
                                         'mean':[0.35, 0.5, 1.1, 0.5]} }

        self._assertCompute(resultB, \
            SampleTV( segments=[[50,100],[50,75], [100,105], [108,122]], anchor=[0,140] ), numSubBins=4, binRegs = \
            (GenomeRegion('TestGenome','chr21',0,100), GenomeRegion('TestGenome','chr21',100,140)), \
            assertFunc=self.assertListsOrDicts, withOverlaps='yes')
Exemple #9
0
 def test_compute(self):
     self._assertCompute({
                          'BinSize': 21,
                          (True, 0, 0):3,
                          (True, 0, 1):4,
                          (True, 0, 2):1,
                          (True, 1, 0):1,
                          (True, 1, 1):6,
                          (True, 1, 2):1,
                          (True, 2, 0):3,
                          (True, 2, 1):4,
                          (True, 2, 2):1,
                          (False, 0, 0):7,
                          (False, 0, 1):4,
                          (False, 0, 2):3,
                          (False, 1, 0):7,
                          (False, 1, 1):6,
                          (False, 1, 2):1,
                          (False, 2, 0):7,
                          (False, 2, 1):4,
                          (False, 2, 2):3
                          }, \
                         SampleTV( segments=[[2,4], [10,14], [18,20]], anchor=[1,22] ), \
                         SampleTV( segments=[[1,3], [9,11], [17,21]], anchor=[1,22] ),\
                         SampleTV( segments=[[1,5], [8,10], [20,22]], anchor=[1,22] ),\
                         assertFunc=self.assertListsOrDicts)
 def test_compute(self):
     self._assertCompute([13, 15, 17], SampleTV_Num( vals=range(10, 20), anchor=[0,10], valDType='float32' ), \
                         SampleTV( starts=[3,5,7], anchor=[0,10] ), assertFunc=self.assertListsOrDicts)
     self._assertCompute([13, 14, 15, 17], SampleTV_Num( vals=range(10, 20), anchor=[0,10], valDType='float32' ), \
                         SampleTV( starts=[3,7], ends=[6,8], anchor=[0,10] ), assertFunc=self.assertListsOrDicts)
     self._assertCompute([], SampleTV_Num( vals=range(10, 20), anchor=[0,10], valDType='float32' ), \
                         SampleTV( starts=[], anchor=[0,10] ), assertFunc=self.assertListsOrDicts)
    def _doRandTestSegsAndPoints(self,
                                 segments,
                                 anchor,
                                 vals=False,
                                 strands=False,
                                 ids=False,
                                 edges=False,
                                 weights=False,
                                 extras=False):
        origTV = SampleTV(starts=[x[0] for x in segments],
                          vals=vals,
                          strands=strands,
                          ids=ids,
                          edges=edges,
                          weights=weights,
                          extras=extras,
                          anchor=anchor)
        self._doRandTest(origTV, [
            PermutedSegsAndIntersegsTrack,
            PermutedSegsAndSampledIntersegsTrack, SegsSampledByIntensityTrack
        ])

        origTV = SampleTV(segments=segments,
                          vals=vals,
                          strands=strands,
                          ids=ids,
                          edges=edges,
                          weights=weights,
                          extras=extras,
                          anchor=anchor)
        self._doRandTest(origTV, [
            PermutedSegsAndIntersegsTrack, PermutedSegsAndSampledIntersegsTrack
        ])
Exemple #12
0
 def testIncompatibleTracks(self):
     self._assertIncompatibleTracks(
         SampleTV(anchor=[10, 100], numElements=5))
     self._assertIncompatibleTracks(
         SampleTV(starts=False, anchor=[10, 100], numElements=5))
     self._assertIncompatibleTracks(
         SampleTV(ends=False, anchor=[10, 100], numElements=5))
    def test_compute(self):
        #self._assertCompute(1, SampleTV( 2 ))
        ans = {
            '&&': 1 / 90.0,
            '*&': 0.1 * 0.2,
            '&*': 0.1 * 0.2,
            '**': 0.1 * 0.2
        }
        answer = dict([(k + '_GivenBinPresence', v * 90)
                       for k, v in ans.items()])
        self._assertCompute(answer, \
                            SampleTV( segments=[[10,28]], anchor=[10,100] ), \
                            SampleTV( segments=[[27,36]], anchor=[10,100] ),\
                            assertFunc=self.assertListsOrDicts)

        exp = 0.5 * (0.1 * 0.2) + 0.5 * (1.0 * 1.0)
        ans = {'&&': 91 / 180.0, '*&': exp, '&*': exp, '**': exp}
        answer = dict([(k + '_GivenBinPresence', v * 180)
                       for k, v in ans.items()])
        #NB! This test assumes splittable statistic is applied below. This is not done as of now, since ThreeWayExpectedBpOverlapGivenBinPresenceAsWholeBpsStatSplittable inherits OnlyGloballySplittable
        #Must for now remove this inheritance to make test work. Should be changed to allow tests to split globally, but how?
        self._assertCompute(answer, \
                            SampleTV( segments=[[10,28], [90,180]], anchor=[10,190] ), \
                            SampleTV( segments=[[27,36], [90,180]], anchor=[10,190] ),\
                            assertFunc=self.assertListsOrDicts, \
                            binRegs = (GenomeRegion('TestGenome','chr21',10,100), GenomeRegion('TestGenome','chr21',100,190)))
 def test_compute(self):
     self._assertCompute([1,2,3], SampleTV( starts = [10,30,50], vals = [1,2,3], anchor = [0,100], valDType='int32' ), \
                         assertFunc=self.assertListsOrDicts, markType='number (integer)')
     self._assertCompute([1,2,3], SampleTV_Num( vals = [1,2,3], anchor = [0,3], valDType='int32' ), \
                         assertFunc=self.assertListsOrDicts, markType='number (integer)')
     self._assertCompute([], SampleTV( vals = [], ends=False, numElements = 0, anchor = [0,100], valDType='int32' ), \
                         assertFunc=self.assertListsOrDicts, markType='number (integer)')
 def test_compute(self):
     self._assertCompute(
         0.0, SampleTV(segments=[], anchor=[0, 200]),
         SampleTV_Num(vals=[1.0 * x for x in range(200)], anchor=[0, 200]))
     self._assertCompute(
         1497.0,
         SampleTV(segments=[[3, 5], [50, 70], [99, 102]], anchor=[0, 200]),
         SampleTV_Num(vals=[1.0 * x for x in range(200)], anchor=[0, 200]))
Exemple #16
0
 def test_compute(self):
     self._assertCompute(0.0, SampleTV(starts=[], anchor=[0, 0]),
                         SampleTV_Num(vals=[], anchor=[0, 0]))
     self._assertCompute(
         0.0, SampleTV(starts=[], anchor=[0, 100]),
         SampleTV_Num(vals=[1.0 * x for x in range(100)], anchor=[0, 100]))
     self._assertCompute(
         128.0, SampleTV(starts=[3, 5, 50, 70], anchor=[0, 100]),
         SampleTV_Num(vals=[1.0 * x for x in range(100)], anchor=[0, 100]))
Exemple #17
0
 def test_compute(self):
     self._assertCompute(([3,2,1],[0.8,0.6,0.5]), \
                         SampleTV(segments = [[10,20],[30,40],[50,55]], vals = [1,2,3], valDType='int32'),\
                         SampleTV(segments = [[15,25],[34,40],[51,55]]), markReq='number (integer)', \
                         assertFunc=self.assertListsOrDicts)
     self._assertCompute(([],[]), \
                         SampleTV(numElements = 0, vals=[], valDType='int32'),\
                         SampleTV(segments = [[15,25],[34,40],[51,55]]), markReq='number (integer)', \
                         assertFunc=self.assertListsOrDicts)
    def test_compute(self):
        self._assertCompute( [0]*5 + [5]*5 + [10]*5 + [15]*5, SampleTV(numElements=0, anchor=[0,20]), numDiscreteVals=4, reducedNumDiscreteVals=4, \
            marksStat='MarksListStat', controlTrackNameList='^^'.join([encodeTn(range(10,30)), encodeTn(range(10,30))]) )

        self._assertCompute( [0,0,1,1,2,6,11,15], SampleTV(numElements=0, anchor=[0,8]), numDiscreteVals=4, reducedNumDiscreteVals=4, \
            marksStat='MarksListStat', controlTrackNameList='^^'.join([ encodeTn(range(0,8)), encodeTn([0,0,0,0,0,1,2,3]) ]) )

        self._assertCompute( [0]*5 + [1]*5 + [2]*5 + [3]*5, SampleTV(numElements=0, anchor=[0,20]), numDiscreteVals=4, reducedNumDiscreteVals=4, \
            marksStat='MarksListStat', controlTrackNameList=encodeTn(range(10,30)) )
Exemple #19
0
 def test_compute(self):
     self._assertCompute(([3,2,1], [52.0, 34.5, 14.5]), \
                         SampleTV( segments = [[10,20],[30,40],[50,55]], vals = [1,2,3], anchor = [0,100], valDType='int32'),\
                         SampleTV_Num( vals = range(100), anchor = [0,100] ), markReq='number (integer)',\
                         assertFunc=self.assertListsOrDicts)
     self._assertCompute(([],[]), \
                         SampleTV( numElements = 0, vals = [], anchor = [0,100], valDType='int32'),\
                         SampleTV_Num( vals = range(100),anchor = [0,100]), markReq='number (integer)',\
                         assertFunc=self.assertListsOrDicts)
Exemple #20
0
    def test_compute(self):
        self._assertCompute( [0.2]*16, SampleTV(starts=[0,5,10,15], anchor=[0,20]), numDiscreteVals=4, reducedNumDiscreteVals=4, \
            controlTrackNameList='^^'.join([encodeTn(range(10,30)), encodeTn(range(10,30))]) )
        #[1,0.5,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
        self._assertCompute( [1, 0.5, 0, 0.5, 0.5, 0.5, 0, 0.5, 0.5, 0.5, 0.5, 0, 0.5, 0.5, 0.5, 1], SampleTV(starts=[0,1,2,7], anchor=[0,8]), numDiscreteVals=4, reducedNumDiscreteVals=4, \
            controlTrackNameList='^^'.join([ encodeTn(range(0,8)), encodeTn([0,0,0,0,0,1,2,3]) ]) )

        self._assertCompute( [0.2,0.2,0,0], SampleTV(starts=[0,5], anchor=[0,20]), numDiscreteVals=4, reducedNumDiscreteVals=4, \
            controlTrackNameList=encodeTn(range(10,30)) )
 def test_compute(self):
     self._assertCompute({ 'Both':15, 'Neither':125, 'Only1':35, 'Only2':5 }, \
                         SampleTV( segments=[[10,20], [130,170]], anchor=[10,190] ), \
                         SampleTV( segments=[[15,25], [137,147]], anchor=[10,190] ),\
                         assertFunc=self.assertListsOrDicts)
     self._assertCompute({ 'Both':0, 'Neither':180, 'Only1':0, 'Only2':0 }, \
                         SampleTV( segments=[], anchor=[10,190] ), \
                         SampleTV( segments=[], anchor=[10,190] ),\
                         assertFunc=self.assertListsOrDicts)
 def test_compute(self):
     self._assertCompute(20, SampleTV_Num( vals=[2]*90, anchor=[10,100] ), \
                         SampleTV( segments=[[0,10]], anchor=[10,100] ), method='sum_of_sum')
     self._assertCompute(40, SampleTV( segments=[[10,20], [80,85]], vals=[1,10], anchor=[10,100] ), \
                         SampleTV( segments=[[10,20], [80,83]], anchor=[10,100] ), method='sum_of_sum')
     #self._assertCompute(10,  SampleTV( starts=[2,15,60], vals=[1,10,100], anchor=[10,100] ), \
     #                    SampleTV( segments=[[10,20], [80,85]], anchor=[10,100] ), method='sum_of_sum')
     #self._assertCompute(205, SampleTV( ends=[15,90], vals=[1,10], anchor=[10,100] ), \
     #                    SampleTV( segments=[[10,20], [40,55]], anchor=[10,100] ), method='sum_of_sum')
     self._assertCompute(0, SampleTV( segments=[], vals=[], anchor=[10,100] ), \
                         SampleTV( segments=[], anchor=[10,100] ), method='sum_of_sum')
    def test_compute(self):
        #self._assertCompute([0.7, 1.0, 0.2, 0.0], \
        #    SampleTV( segments=[[0,5], [8,22]], anchor=[0,40] ), numSubBins=4, assertFunc=self.assertListsOrDicts)

        self._assertCompute([0.0, 0.0, 0.2, 1.0, 0.3, 0.0, 0.0], \
            SampleTV( segments=[[28,42],[44,45]], anchor=[0,70] ), numSubBins=7, assertFunc=self.assertListsOrDicts)

        self._assertCompute([0,0,0,0], \
            SampleTV( segments=[]), numSubBins=4,assertFunc=self.assertListsOrDicts)

        self._assertCompute(None, \
            SampleTV( segments=[], anchor=[0,1]), numSubBins=4)
Exemple #24
0
    def setUp(self):
        self.emptyTv = SampleTV(starts=[], ids=[], edges=[], anchor = [10,100])
        self.emptyPgv = LazyProtoGraphView.createInstanceFromTrackView(self.emptyTv)

        self.emptyTv2 = SampleTV(starts=[], ids=[], edges=[], anchor = [100,200])
        self.emptyPgv2 = LazyProtoGraphView.createInstanceFromTrackView(self.emptyTv2)
        
        self.tv = SampleTV(starts=[1,2,3,5], ids=list('1235'), edges=[list('236'), list('125'), [], list('26')], anchor = [10,100])
        self.pgv = LazyProtoGraphView.createInstanceFromTrackView(self.tv)

        self.tv2 = SampleTV(starts=[0,99], ids=list('69'), edges=[list('3'), list('6')], anchor = [100,200])
        self.pgv2 = LazyProtoGraphView.createInstanceFromTrackView(self.tv2)
Exemple #25
0
 def test_compute(self):
     self._assertCompute(0.0, SampleTV(segments=[], anchor=[0, 0]),
                         SampleTV_Num(vals=[], anchor=[0, 0]))
     self._assertCompute(numpy.nan,
                         SampleTV(segments=[[0, 2]], anchor=[0, 2]),
                         SampleTV_Num(vals=[1.0, numpy.nan], anchor=[0, 2]))
     self._assertCompute(
         0.0, SampleTV(segments=[], anchor=[0, 100]),
         SampleTV_Num(vals=[1.0 * x for x in range(100)], anchor=[0, 100]))
     self._assertCompute(
         13555.0, SampleTV(segments=[[3, 5], [50, 55]], anchor=[0, 100]),
         SampleTV_Num(vals=[1.0 * x for x in range(100)], anchor=[0, 100]))
 def test_compute(self):
     self._assertCompute({
         'totNodes': 0,
         'totEdges': 0
     }, SampleTV(starts=[], ids=[], edges=[]))
     self._assertCompute({
         'totNodes': 3,
         'totEdges': 4
     },
                         SampleTV(starts=[0, 10, 20],
                                  ids=['a', 'b', 'c'],
                                  edges=[['b', 'c'], ['a', 'c'], []]))
 def test_compute(self):
     from gold.application.StatRunner import StatJob
     #from quick.application.UserBinSource import UserBinSource
     from gold.track.GenomeRegion import GenomeRegion
     
     StatJob.USER_BIN_SOURCE = [GenomeRegion('TestGenome', 'chr21', 0, 100), GenomeRegion('TestGenome', 'chr21', 100, 200)]
     self._assertCompute([2.0,None], \
                         SampleTV( starts=[0,10,120,130], ids=['a','b','c','d'], edges=[['d'],['d'],['d'],list('abc')], anchor=[0,200] ), \
                         globalSource='userbins', weightThreshold='0')
     
     self._assertCompute([None,None], \
                         SampleTV( starts=[], ids=[], edges=[], anchor=[0,200] ), \
                         globalSource='userbins', weightThreshold='0')
    def test_compute(self):
        #self._assertCompute(1, SampleTV( 2 ))
        #answer = {'11': 1, '10': 18, '01': 9}        
        #self._assertCompute(answer, \
        #                    SampleTV( segments=[[10,28]], anchor=[10,100] ), \
        #                    SampleTV( segments=[[27,36]], anchor=[10,100] ),\
        #                    assertFunc=self.assertListsOrDicts)

        answer = {'Proportion of extra coverage given depth 0':116.0/180, 'Proportion of extra coverage given depth 1':91.0/116, 'BinSize':180}
        self._assertCompute(answer, \
                            SampleTV( segments=[[10,28], [90,180]], anchor=[10,190] ), \
                            SampleTV( segments=[[27,36], [90,180]], anchor=[10,190] ),\
                            assertFunc=self.assertListsOrDicts)
    def test_compute(self):
        #self._assertCompute(1, SampleTV( 2 ))
        answer = {'11': 1 / 90.0, '10': 18 / 90.0, '01': 9 / 90.0}
        self._assertCompute(answer, \
                            SampleTV( segments=[[10,28]], anchor=[10,100] ), \
                            SampleTV( segments=[[27,36]], anchor=[10,100] ),\
                            assertFunc=self.assertListsOrDicts)

        answer = {'11': 91 / 180.0, '10': 108 / 180.0, '01': 99 / 180.0}
        self._assertCompute(answer, \
                            SampleTV( segments=[[10,28], [90,180]], anchor=[10,190] ), \
                            SampleTV( segments=[[27,36], [90,180]], anchor=[10,190] ),\
                            assertFunc=self.assertListsOrDicts)
 def test_compute(self):
     self._assertCompute({'c1':2,'c2':1}, SampleTV_Num( anchor=[99,102], valDType='S', vals=['c1','c2','c1']  ),\
                         assertFunc=self.assertListsOrDicts)
     self._assertCompute({'c1':120,'c2':105}, SampleTV( segments=[[10,20], [50,155], [80,190]], vals=['c1','c2','c1'], valDType='S', anchor=[10,200] ),\
                         assertFunc=self.assertListsOrDicts)
     self._assertCompute({'c1':180,'c2':115}, SampleTV( segments=[[10,50], [40,155], [40,170], [40,190]], vals=['c1','c2','c1','c1'], valDType='S', anchor=[10,200] ),\
                         assertFunc=self.assertListsOrDicts)
     self._assertCompute({'c1':2,'c2':1},  SampleTV( starts=[2,15,160], vals=['c1','c2','c1'], valDType='S', anchor=[10,200] ),\
                         assertFunc=self.assertListsOrDicts)
     self._assertCompute({'c1':185,'c2':5}, SampleTV( ends=[15,20,190], vals=['c1','c2','c1'], valDType='S', anchor=[10,200] ),\
                         assertFunc=self.assertListsOrDicts)
     self._assertCompute({}, SampleTV( segments=[], vals=[], valDType='S2', anchor=[10,200] ),\
                         assertFunc=self.assertListsOrDicts)