Ejemplo n.º 1
0
    def setUp(self):
        genomeAnchor = [0, 101]
        self.bins = [
            GenomeRegion('TestGenome', 'chr21', 0, 50),
            GenomeRegion('TestGenome', 'chr21', 50, 101)
        ]

        self.ts = defaultdict(TrackStructureV2)
        allSegmentSetNoOverlap = [[[10, 20]],
                                  [[5, 10], [25, 50], [55, 70], [75, 80],
                                   [90, 95]],
                                  [[5, 15], [20, 30], [45, 55], [75, 80]],
                                  [[0, 20], [60, 65], [85, 100]]]
        allSegmentSetOverlap = [[[10, 25]],
                                [[5, 10], [20, 50], [55, 70], [75, 80],
                                 [90, 95]],
                                [[5, 20], [15, 30], [45, 55], [75, 80]],
                                [[0, 20], [60, 65], [85, 100]]]
        excludedSegments = [[45, 55], [70, 75]]

        for allowOverlaps, allSegmentSet in \
                zip([False, True], [allSegmentSetNoOverlap, allSegmentSetOverlap]):
            for i, segmentSet in enumerate(allSegmentSet):
                track = SampleTrack(
                    SampleTV(segments=segmentSet,
                             anchor=genomeAnchor,
                             allowOverlaps=allowOverlaps))
                track.getUniqueKey = MagicMock(return_value=i)
                self.ts[allowOverlaps]['dummy' + str(i)] = SingleTrackTS(
                    track, {})

            track = SampleTrack(
                SampleTV(segments=[],
                         anchor=genomeAnchor,
                         allowOverlaps=allowOverlaps))
            track.getUniqueKey = MagicMock(return_value=i + 1)
            self.ts[allowOverlaps]['emptyTrack'] = SingleTrackTS(track, {})

        exclusionTrack = SampleTrack(
            SampleTV(segments=excludedSegments,
                     anchor=genomeAnchor,
                     allowOverlaps=False))
        self.exclusionTs = SingleTrackTS(exclusionTrack, {})
Ejemplo n.º 2
0
    def setUp(self):
        """
        Create a fake trackstructure containing empty tracks,
        this is only used to ensure the randomization pool knows there should be 3 input tracks.
        """
        genomeAnchor = [0, 101]
        self.amountTracks = 3
        self.region = GenomeRegion('TestGenome', 'chr21', genomeAnchor[0],
                                   genomeAnchor[1])

        self.ts = TrackStructureV2()

        for i, segmentSet in enumerate([[]] * self.amountTracks):
            track = SampleTrack(
                SampleTV(segments=segmentSet, anchor=genomeAnchor))
            track.getUniqueKey = MagicMock(return_value=i)
            self.ts[str(i)] = SingleTrackTS(track, {})

        self.shufflePool = ShuffleElementsBetweenTracksPool(
            self.ts, self.region, None)