X-Git-Url: http://woldlab.caltech.edu/gitweb/?p=erange.git;a=blobdiff_plain;f=test%2FtestCommoncode.py;fp=test%2FtestCommoncode.py;h=ce8be55e8c9d9aed892a8eba023af0e79b812a8d;hp=43eb96bc2a3153e7cbf0bb5719fa13320195512c;hb=77dccd7c98d8cdb60caaf178b1123df71ea662c9;hpb=bc30aca13e5ec397c92e67002fbf7a103130b828 diff --git a/test/testCommoncode.py b/test/testCommoncode.py index 43eb96b..ce8be55 100644 --- a/test/testCommoncode.py +++ b/test/testCommoncode.py @@ -8,6 +8,7 @@ import os import string from array import array from erange import commoncode +from erange import Region from cistematic.genomes import Genome @@ -122,8 +123,10 @@ class TestCommoncode(unittest.TestCase): regionEntry = string.join(["1", "chr1", "10", "20", "5"], "\t") testfile.write(regionEntry) testfile.close() - result = {"1": [(10, 20, 10)]} - self.assertEquals(result, commoncode.getMergedRegions("regionTestFile")) + result = commoncode.getMergedRegions("regionTestFile") + self.assertEquals(10, result["1"][0].start) + self.assertEquals(20, result["1"][0].stop) + self.assertEquals(10, result["1"][0].length) os.remove("regionTestFile") @@ -132,108 +135,277 @@ class TestCommoncode(unittest.TestCase): regionEntry = string.join(["1", "chr1", "10", "20", "5"], "\t") regionList = [regionEntry] - result = {"1": [(10, 20, 10)]} - self.assertEquals(result, commoncode.getMergedRegionsFromList(regionList)) - result = {"1": [(5, 25, 20)]} - self.assertEquals(result, commoncode.getMergedRegionsFromList(regionList, pad=5)) - result = {"1": [(12, 18, 6)]} - self.assertEquals(result, commoncode.getMergedRegionsFromList(regionList, pad=-2)) - result = {"chr1": [(10, 20, 10)]} - self.assertEquals(result, commoncode.getMergedRegionsFromList(regionList, fullChrom=True)) + result = commoncode.getMergedRegionsFromList(regionList) + self.assertEquals(10, result["1"][0].start) + self.assertEquals(20, result["1"][0].stop) + self.assertEquals(10, result["1"][0].length) + + result = commoncode.getMergedRegionsFromList(regionList, pad=5) + self.assertEquals(5, result["1"][0].start) + self.assertEquals(25, result["1"][0].stop) + self.assertEquals(20, result["1"][0].length) + + result = commoncode.getMergedRegionsFromList(regionList, pad=-2) + self.assertEquals(12, result["1"][0].start) + self.assertEquals(18, result["1"][0].stop) + self.assertEquals(6, result["1"][0].length) + + result = commoncode.getMergedRegionsFromList(regionList, fullChrom=True) + self.assertEquals(10, result["chr1"][0].start) + self.assertEquals(20, result["chr1"][0].stop) + self.assertEquals(10, result["chr1"][0].length) regionEntry = string.join(["1", "chr1:10-20", "5"], "\t") regionList = [regionEntry] - result = {"1": [(10, 20, 10)]} - self.assertEquals(result, commoncode.getMergedRegionsFromList(regionList, compact=True, scoreField=2)) + result = commoncode.getMergedRegionsFromList(regionList, compact=True, scoreField=2) + self.assertEquals(10, result["1"][0].start) + self.assertEquals(20, result["1"][0].stop) + self.assertEquals(10, result["1"][0].length) regionEntry = string.join(["1", "chr1", "10", "20", "5"], "\t") regionList = [regionEntry] regionEntry = string.join(["2", "chr1", "15", "40", "10"], "\t") regionList.append(regionEntry) - result = {"1": [(10, 40, 30)]} - self.assertEquals(result, commoncode.getMergedRegionsFromList(regionList)) - result = {"1": [(10, 20, 10), (15, 40, 25)]} - self.assertEquals(result, commoncode.getMergedRegionsFromList(regionList, doMerge=False)) - result = {"1": [("1", 10, 20, 10), ("2", 15, 40, 25)]} - self.assertEquals(result, commoncode.getMergedRegionsFromList(regionList, doMerge=False, keepLabel=True)) + result = commoncode.getMergedRegionsFromList(regionList) + self.assertEquals(10, result["1"][0].start) + self.assertEquals(40, result["1"][0].stop) + self.assertEquals(30, result["1"][0].length) + + result = commoncode.getMergedRegionsFromList(regionList, doMerge=False) + self.assertEquals(10, result["1"][0].start) + self.assertEquals(20, result["1"][0].stop) + self.assertEquals(10, result["1"][0].length) + self.assertEquals(15, result["1"][1].start) + self.assertEquals(40, result["1"][1].stop) + self.assertEquals(25, result["1"][1].length) + + result = commoncode.getMergedRegionsFromList(regionList, doMerge=False, keepLabel=True) + self.assertEquals(10, result["1"][0].start) + self.assertEquals(20, result["1"][0].stop) + self.assertEquals(10, result["1"][0].length) + self.assertEquals("1", result["1"][0].label) + self.assertEquals(15, result["1"][1].start) + self.assertEquals(40, result["1"][1].stop) + self.assertEquals(25, result["1"][1].length) + self.assertEquals("2", result["1"][1].label) regionEntry = string.join(["1", "spacer", "chr1", "10", "20", "5"], "\t") regionList = [regionEntry] regionEntry = string.join(["2", "spacer2", "chr1", "15", "40", "10"], "\t") regionList.append(regionEntry) - result = {"1": [("1\tspacer", 10, 20, 10), ("2\tspacer2", 15, 40, 25)]} - self.assertEquals(result, commoncode.getMergedRegionsFromList(regionList, doMerge=False, keepLabel=True, chromField=2)) + result = commoncode.getMergedRegionsFromList(regionList, doMerge=False, keepLabel=True, chromField=2) + self.assertEquals(10, result["1"][0].start) + self.assertEquals(20, result["1"][0].stop) + self.assertEquals(10, result["1"][0].length) + self.assertEquals("1\tspacer", result["1"][0].label) + self.assertEquals(15, result["1"][1].start) + self.assertEquals(40, result["1"][1].stop) + self.assertEquals(25, result["1"][1].length) + self.assertEquals("2\tspacer2", result["1"][1].label) regionEntry = string.join(["1", "chr1", "10", "20", "5"], "\t") regionList = [regionEntry] regionEntry = string.join(["2", "chr1", "2030", "2040", "15"], "\t") regionList.append(regionEntry) - result = {"1": [(10, 20, 10), (2030, 2040, 10)]} - self.assertEquals(result, commoncode.getMergedRegionsFromList(regionList)) - result = {"1": [(10, 2040, 2030)]} - self.assertEquals(result, commoncode.getMergedRegionsFromList(regionList, maxDist=3000)) - result = {"1": [(10, 20, 10), (2030, 2040, 10)]} - self.assertEquals(result, commoncode.getMergedRegionsFromList(regionList, minHits=5)) - result = {"1": [(2030, 2040, 10)]} - self.assertEquals(result, commoncode.getMergedRegionsFromList(regionList, minHits=12)) - self.assertEquals(result, commoncode.getMergedRegionsFromList(regionList, returnTop=1)) + result = commoncode.getMergedRegionsFromList(regionList) + self.assertEquals(10, result["1"][0].start) + self.assertEquals(20, result["1"][0].stop) + self.assertEquals(10, result["1"][0].length) + self.assertEquals(2030, result["1"][1].start) + self.assertEquals(2040, result["1"][1].stop) + self.assertEquals(10, result["1"][1].length) + + result = commoncode.getMergedRegionsFromList(regionList, maxDist=3000) + self.assertEquals(10, result["1"][0].start) + self.assertEquals(2040, result["1"][0].stop) + self.assertEquals(2030, result["1"][0].length) + + result = commoncode.getMergedRegionsFromList(regionList, minHits=5) + self.assertEquals(10, result["1"][0].start) + self.assertEquals(20, result["1"][0].stop) + self.assertEquals(10, result["1"][0].length) + self.assertEquals(2030, result["1"][1].start) + self.assertEquals(2040, result["1"][1].stop) + self.assertEquals(10, result["1"][1].length) + + result = commoncode.getMergedRegionsFromList(regionList, minHits=12) + self.assertEquals(2030, result["1"][0].start) + self.assertEquals(2040, result["1"][0].stop) + self.assertEquals(10, result["1"][0].length) + result = commoncode.getMergedRegionsFromList(regionList, minHits=12) + self.assertEquals(2030, result["1"][0].start) + self.assertEquals(2040, result["1"][0].stop) + self.assertEquals(10, result["1"][0].length) regionEntry = string.join(["1", "chr1", "10", "20", "+", "5"], "\t") regionList = [regionEntry] regionEntry = string.join(["2", "chr2", "15", "40", "+", "15"], "\t") regionList.append(regionEntry) - result = {"2": [(15, 40, 25)]} - self.assertEquals(result, commoncode.getMergedRegionsFromList(regionList, scoreField=5, minHits=12)) + result = commoncode.getMergedRegionsFromList(regionList, scoreField=5, minHits=12) + self.assertEquals(15, result["2"][0].start) + self.assertEquals(40, result["2"][0].stop) + self.assertEquals(25, result["2"][0].length) self.assertRaises(IndexError, commoncode.getMergedRegionsFromList, regionList, scoreField=6, returnTop=1) self.assertEquals({}, commoncode.getMergedRegionsFromList(regionList, scoreField=6)) self.assertEquals({}, commoncode.getMergedRegionsFromList(regionList, scoreField=1)) regionEntry = string.join(["1", "chr1", "10", "20", "5", "3", "40"], "\t") regionList = [regionEntry] - result = {"1": [(10, 20, 10)]} - self.assertEquals(result, commoncode.getMergedRegionsFromList(regionList)) - result = {"1": [(10, 20, 10, 3, 40)]} - self.assertEquals(result, commoncode.getMergedRegionsFromList(regionList, keepPeak=True)) - result = {"1": [("1", 10, 20, 10, 3, 40)]} - self.assertEquals(result, commoncode.getMergedRegionsFromList(regionList, keepPeak=True, keepLabel=True)) + result = commoncode.getMergedRegionsFromList(regionList) + self.assertEquals(10, result["1"][0].start) + self.assertEquals(20, result["1"][0].stop) + self.assertEquals(10, result["1"][0].length) + + result = commoncode.getMergedRegionsFromList(regionList, keepPeak=True) + self.assertEquals(10, result["1"][0].start) + self.assertEquals(20, result["1"][0].stop) + self.assertEquals(10, result["1"][0].length) + self.assertEquals(3, result["1"][0].peakPos) + self.assertEquals(40, result["1"][0].peakHeight) + + result = commoncode.getMergedRegionsFromList(regionList, keepPeak=True, keepLabel=True) + self.assertEquals(10, result["1"][0].start) + self.assertEquals(20, result["1"][0].stop) + self.assertEquals(10, result["1"][0].length) + self.assertEquals(3, result["1"][0].peakPos) + self.assertEquals(40, result["1"][0].peakHeight) + self.assertEquals("1", result["1"][0].label) + regionEntry = string.join(["2", "chr2", "15", "40", "32", "17"], "\t") regionList.append(regionEntry) - result = {"1": [("1", 10, 20, 10, 3, 40)], "2": [("2", 15, 40, 25, 32, 17)]} - self.assertEquals(result, commoncode.getMergedRegionsFromList(regionList, keepPeak=True, keepLabel=True)) + result = commoncode.getMergedRegionsFromList(regionList, keepPeak=True, keepLabel=True) + self.assertEquals(10, result["1"][0].start) + self.assertEquals(20, result["1"][0].stop) + self.assertEquals(10, result["1"][0].length) + self.assertEquals(3, result["1"][0].peakPos) + self.assertEquals(40, result["1"][0].peakHeight) + self.assertEquals("1", result["1"][0].label) + self.assertEquals(15, result["2"][0].start) + self.assertEquals(40, result["2"][0].stop) + self.assertEquals(25, result["2"][0].length) + self.assertEquals(32, result["2"][0].peakPos) + self.assertEquals(17, result["2"][0].peakHeight) + self.assertEquals("2", result["2"][0].label) + regionEntry = string.join(["3", "chr1", "15", "40", "32", "17"], "\t") regionList.append(regionEntry) - result = {"1": [("3", 10, 40, 30, 3, 40)], "2": [("2", 15, 40, 25, 32, 17)]} - self.assertEquals(result, commoncode.getMergedRegionsFromList(regionList, keepPeak=True, keepLabel=True)) + result = commoncode.getMergedRegionsFromList(regionList, keepPeak=True, keepLabel=True) + self.assertEquals(10, result["1"][0].start) + self.assertEquals(40, result["1"][0].stop) + self.assertEquals(30, result["1"][0].length) + self.assertEquals(3, result["1"][0].peakPos) + self.assertEquals(40, result["1"][0].peakHeight) + self.assertEquals("3", result["1"][0].label) + self.assertEquals(15, result["2"][0].start) + self.assertEquals(40, result["2"][0].stop) + self.assertEquals(25, result["2"][0].length) + self.assertEquals(32, result["2"][0].peakPos) + self.assertEquals(17, result["2"][0].peakHeight) + self.assertEquals("2", result["2"][0].label) + regionEntry = string.join(["4", "chr2", "65", "88", "72", "7"], "\t") regionList.append(regionEntry) - result = {"1": [("3", 10, 40, 30, 3, 40)], "2": [("4", 15, 88, 73, 32, 17)]} - self.assertEquals(result, commoncode.getMergedRegionsFromList(regionList, keepPeak=True, keepLabel=True)) - result = {"1": [("1", 10, 20, 10, 3, 40), ("3", 15, 40, 25, 32, 17)], - "2": [("2", 15, 40, 25, 32, 17), ("4", 65, 88, 23, 72, 7)] - } - self.assertEquals(result, commoncode.getMergedRegionsFromList(regionList, keepPeak=True, keepLabel=True, doMerge=False)) + result = commoncode.getMergedRegionsFromList(regionList, keepPeak=True, keepLabel=True) + self.assertEquals(10, result["1"][0].start) + self.assertEquals(40, result["1"][0].stop) + self.assertEquals(30, result["1"][0].length) + self.assertEquals(3, result["1"][0].peakPos) + self.assertEquals(40, result["1"][0].peakHeight) + self.assertEquals("3", result["1"][0].label) + self.assertEquals(15, result["2"][0].start) + self.assertEquals(88, result["2"][0].stop) + self.assertEquals(73, result["2"][0].length) + self.assertEquals(32, result["2"][0].peakPos) + self.assertEquals(17, result["2"][0].peakHeight) + self.assertEquals("4", result["2"][0].label) + + result = commoncode.getMergedRegionsFromList(regionList, keepPeak=True, keepLabel=True, doMerge=False) + self.assertEquals(10, result["1"][0].start) + self.assertEquals(20, result["1"][0].stop) + self.assertEquals(10, result["1"][0].length) + self.assertEquals(3, result["1"][0].peakPos) + self.assertEquals(40, result["1"][0].peakHeight) + self.assertEquals("1", result["1"][0].label) + self.assertEquals(15, result["1"][1].start) + self.assertEquals(40, result["1"][1].stop) + self.assertEquals(25, result["1"][1].length) + self.assertEquals(32, result["1"][1].peakPos) + self.assertEquals(17, result["1"][1].peakHeight) + self.assertEquals("3", result["1"][1].label) + self.assertEquals(15, result["2"][0].start) + self.assertEquals(40, result["2"][0].stop) + self.assertEquals(25, result["2"][0].length) + self.assertEquals(32, result["2"][0].peakPos) + self.assertEquals(17, result["2"][0].peakHeight) + self.assertEquals("2", result["2"][0].label) + self.assertEquals(65, result["2"][1].start) + self.assertEquals(88, result["2"][1].stop) + self.assertEquals(23, result["2"][1].length) + self.assertEquals(72, result["2"][1].peakPos) + self.assertEquals(7, result["2"][1].peakHeight) + self.assertEquals("4", result["2"][1].label) regionList = ["# comment"] regionEntry = string.join(["1", "chr1", "10", "20", "5", "3", "40"], "\t") regionList.append(regionEntry) - result = {"1": [(10, 20, 10, 3, 40)]} - self.assertEquals(result, commoncode.getMergedRegionsFromList(regionList, keepPeak=True)) + result = commoncode.getMergedRegionsFromList(regionList, keepPeak=True) + self.assertEquals(10, result["1"][0].start) + self.assertEquals(20, result["1"][0].stop) + self.assertEquals(10, result["1"][0].length) + self.assertEquals(3, result["1"][0].peakPos) + self.assertEquals(40, result["1"][0].peakHeight) + regionList = ["# pvalue"] regionEntry = string.join(["1", "chr1", "10", "20", "5", "3", "40", "any value"], "\t") regionList.append(regionEntry) - result = {"1": [(10, 20, 10, 3, 40)]} - self.assertEquals(result, commoncode.getMergedRegionsFromList(regionList, keepPeak=True)) - self.assertEquals(result, commoncode.getMergedRegionsFromList(regionList, keepPeak=True, returnTop=1)) + result = commoncode.getMergedRegionsFromList(regionList, keepPeak=True) + self.assertEquals(10, result["1"][0].start) + self.assertEquals(20, result["1"][0].stop) + self.assertEquals(10, result["1"][0].length) + self.assertEquals(3, result["1"][0].peakPos) + self.assertEquals(40, result["1"][0].peakHeight) + + result = commoncode.getMergedRegionsFromList(regionList, keepPeak=True, returnTop=1) + self.assertEquals(10, result["1"][0].start) + self.assertEquals(20, result["1"][0].stop) + self.assertEquals(10, result["1"][0].length) + self.assertEquals(3, result["1"][0].peakPos) + self.assertEquals(40, result["1"][0].peakHeight) + regionList = ["# readShift"] regionEntry = string.join(["1", "chr1", "10", "20", "5", "3", "40", "any value"], "\t") regionList.append(regionEntry) - self.assertEquals(result, commoncode.getMergedRegionsFromList(regionList, keepPeak=True)) - self.assertEquals(result, commoncode.getMergedRegionsFromList(regionList, keepPeak=True, returnTop=1)) + result = commoncode.getMergedRegionsFromList(regionList, keepPeak=True) + self.assertEquals(10, result["1"][0].start) + self.assertEquals(20, result["1"][0].stop) + self.assertEquals(10, result["1"][0].length) + self.assertEquals(3, result["1"][0].peakPos) + self.assertEquals(40, result["1"][0].peakHeight) + + result = commoncode.getMergedRegionsFromList(regionList, keepPeak=True, returnTop=1) + self.assertEquals(10, result["1"][0].start) + self.assertEquals(20, result["1"][0].stop) + self.assertEquals(10, result["1"][0].length) + self.assertEquals(3, result["1"][0].peakPos) + self.assertEquals(40, result["1"][0].peakHeight) + regionList = ["# pvalue readShift"] regionEntry = string.join(["1", "chr1", "10", "20", "5", "3", "40", "any value", "any shift"], "\t") regionList.append(regionEntry) - self.assertEquals(result, commoncode.getMergedRegionsFromList(regionList, keepPeak=True)) - self.assertEquals(result, commoncode.getMergedRegionsFromList(regionList, keepPeak=True, returnTop=1)) + result = commoncode.getMergedRegionsFromList(regionList, keepPeak=True) + self.assertEquals(10, result["1"][0].start) + self.assertEquals(20, result["1"][0].stop) + self.assertEquals(10, result["1"][0].length) + self.assertEquals(3, result["1"][0].peakPos) + self.assertEquals(40, result["1"][0].peakHeight) + + result = commoncode.getMergedRegionsFromList(regionList, keepPeak=True, returnTop=1) + self.assertEquals(10, result["1"][0].start) + self.assertEquals(20, result["1"][0].stop) + self.assertEquals(10, result["1"][0].length) + self.assertEquals(3, result["1"][0].peakPos) + self.assertEquals(40, result["1"][0].peakHeight) + #Test fails - the header line is required if there are fields after the peak which isn't so good #self.assertEquals(result, commoncode.getMergedRegionsFromList(regionList[1:], keepPeak=True)) @@ -274,28 +446,61 @@ class TestCommoncode(unittest.TestCase): #TODO: write test def testFindPeak(self): hitList = [] - result = ([], 0.0, array("f"), 0.0) - self.assertEquals(result, commoncode.findPeak(hitList, 0, 0)) + result = commoncode.findPeak(hitList, 0, 0) + self.assertEquals([], result.topPos) + self.assertEquals(0.0, result.numHits) + self.assertEquals(array("f"), result.smoothArray) + self.assertEquals(0.0, result.numPlus) hitList= [{"start": 4, "sense": "+", "weight": 0.5}] - result = ([6, 7], 1.0, array("f", [0.0, 0.0, 0.1111111119389534, 0.3333333432674408, 0.66666668653488159, 0.8888888955116272, 1.0, 1.0, 0.0, 0.0]), 1.0) - self.assertEquals(result, commoncode.findPeak(hitList, 0, 10)) - result = ([6, 7], 0.5, array('f', [0.0, 0.0, 0.0555555559694767, 0.1666666716337204, 0.3333333432674408, 0.4444444477558136, 0.5, 0.5, 0.0, 0.0]), 0.5) - self.assertEquals(result, commoncode.findPeak(hitList, 0, 10, doWeight=True)) - result = ([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 0.0, array("f", [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), 0.0) - self.assertEquals(result, commoncode.findPeak(hitList, 0, 10, shift="auto")) - result = ([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 0.0, array("f", [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), 0.0, 6) - self.assertEquals(result, commoncode.findPeak(hitList, 0, 10, shift="auto", returnShift=True)) + result = commoncode.findPeak(hitList, 0, 10) + self.assertEquals([6, 7], result.topPos) + self.assertEquals(1.0, result.numHits) + self.assertEquals(array("f", [0.0, 0.0, 0.1111111119389534, 0.3333333432674408, 0.66666668653488159, 0.8888888955116272, 1.0, 1.0, 0.0, 0.0]), result.smoothArray) + self.assertEquals(1.0, result.numPlus) + + result = commoncode.findPeak(hitList, 0, 10, doWeight=True) + self.assertEquals([6, 7], result.topPos) + self.assertEquals(0.5, result.numHits) + self.assertEquals(array('f', [0.0, 0.0, 0.0555555559694767, 0.1666666716337204, 0.3333333432674408, 0.4444444477558136, 0.5, 0.5, 0.0, 0.0]), result.smoothArray) + self.assertEquals(0.5, result.numPlus) + + result = commoncode.findPeak(hitList, 0, 10, shift="auto") + self.assertEquals([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], result.topPos) + self.assertEquals(0.0, result.numHits) + self.assertEquals(array("f", [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), result.smoothArray) + self.assertEquals(0.0, result.numPlus) + + result = commoncode.findPeak(hitList, 0, 10, shift="auto") + self.assertEquals([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], result.topPos) + self.assertEquals(0.0, result.numHits) + self.assertEquals(array("f", [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), result.smoothArray) + self.assertEquals(0.0, result.numPlus) + self.assertEquals(6, result.shift) hitList= [{"start": 4, "sense": "+", "weight": 0.5}] - result = ([7], 1.0, array('f', [0.0, 0.0, 0.0, 0.0, 0.0, 0.1111111119389534, 0.3333333432674408, 0.66666668653488159, 0.0, 0.0]), 1.0, 3) - self.assertEquals(result, commoncode.findPeak(hitList, 0, 10, shift=3, returnShift=True)) + result = commoncode.findPeak(hitList, 0, 10, shift=3) + self.assertEquals([7], result.topPos) + self.assertEquals(1.0, result.numHits) + self.assertEquals(array('f', [0.0, 0.0, 0.0, 0.0, 0.0, 0.1111111119389534, 0.3333333432674408, 0.66666668653488159, 0.0, 0.0]), result.smoothArray) + self.assertEquals(1.0, result.numPlus) + self.assertEquals(3, result.shift) hitList= [{"start": 4, "sense": "+", "weight": 0.5}] - result = ([6, 7], 1.0, array('f', [0.0, 0.0, 0.1111111119389534, 0.3333333432674408, 0.66666668653488159, 0.8888888955116272, 1.0, 1.0, 0.0, 0.0]), 1.0, 1.0) - self.assertEquals(result, commoncode.findPeak(hitList, 0, 10, leftPlus=True)) - result = ([7], 1.0, array('f', [0.0, 0.0, 0.0, 0.0, 0.0, 0.1111111119389534, 0.3333333432674408, 0.66666668653488159, 0.0, 0.0]), 1.0, 1.0, 3) - self.assertEquals(result, commoncode.findPeak(hitList, 0, 10, leftPlus=True, shift=3, returnShift=True)) + result = commoncode.findPeak(hitList, 0, 10, leftPlus=True) + self.assertEquals([6, 7], result.topPos) + self.assertEquals(1.0, result.numHits) + self.assertEquals(array('f', [0.0, 0.0, 0.1111111119389534, 0.3333333432674408, 0.66666668653488159, 0.8888888955116272, 1.0, 1.0, 0.0, 0.0]), result.smoothArray) + self.assertEquals(1.0, result.numPlus) + self.assertEquals(1.0, result.numLeftPlus) + + result = commoncode.findPeak(hitList, 0, 10, leftPlus=True, shift=3) + self.assertEquals([7], result.topPos) + self.assertEquals(1.0, result.numHits) + self.assertEquals(array('f', [0.0, 0.0, 0.0, 0.0, 0.0, 0.1111111119389534, 0.3333333432674408, 0.66666668653488159, 0.0, 0.0]), result.smoothArray) + self.assertEquals(1.0, result.numPlus) + self.assertEquals(1.0, result.numLeftPlus) + self.assertEquals(3, result.shift) #TODO: write test @@ -354,10 +559,13 @@ class TestCommoncode(unittest.TestCase): } self.assertEquals(result, complementDict) - regionDict = {"I": [("new feature", 100, 150, 50)]} + additionalRegion = Region.Region(100, 150) + additionalRegion.label = "new feature" + regionDict = {"I": [additionalRegion]} featureDict = commoncode.getFeaturesByChromDict(self.genome, additionalRegionsDict=regionDict) result = (100, 150, "new feature", "+", "custom") self.assertEquals(result, featureDict["I"][0]) + def testGetLocusByChromDict(self): @@ -382,7 +590,9 @@ class TestCommoncode(unittest.TestCase): self.assertTrue(chrom in self.celegansChroms) self.assertEquals(firstLoci[chrom], locusDict[chrom][0]) - regionDict = {"I": [("new region", 100, 150, 50)]} + additionalRegion = Region.Region(100, 150) + additionalRegion.label = "new region" + regionDict = {"I": [additionalRegion]} locusDict = commoncode.getLocusByChromDict(self.genome, additionalRegionsDict=regionDict) self.assertEquals((100, 150, "new region", 50), locusDict["I"][0]) locusDict = commoncode.getLocusByChromDict(self.genome, additionalRegionsDict=regionDict, keepSense=True)