Exemplo n.º 1
0
    def __init__(self, fromH1, a, b):  #a=0.5, b=25):
        self._fromH1 = fromH1
        self._a = a
        self._b = b

        if self._fromH1:
            self._underlyingPval = r.rbeta(1, self._a, self._b)  #[0]
        else:
            self._underlyingPval = r.runif(1)  #[0]
    def __iter__(self):
        from proto.RSetup import r
        pos = 0
        maxPos = self._getChrLen()
        while True:
            #dist between segs
            if r.runif(1) < self.interProb:
                pos += int(max(1, r.rexp(1, self.interRate)))
            else:
                pos += int(max(1, r.rexp(1, self.intraRate)))
            start = pos

            #segLen
            pos += int(r.runif(1, self.minSegLen, self.maxSegLen))
            end = pos

            if pos < maxPos:
                yield [start, end]
            else:
                break
    def __iter__(self):
        from proto.RSetup import r
        pos = 0
        maxPos = self._getChrLen()
        while True:
            if r.runif(1) < self.interProb:
                pos += int(max(1, r.rexp(1, self.interRate)))
            else:
                pos += int(max(1, r.rexp(1, self.intraRate)))

            if pos < maxPos:
                yield [pos, pos + 1]
            else:
                break
    def __iter__(self):
        from proto.RSetup import r
        chr = self.chr
        trackName1, genome = self.trackName1, self.genome
        factor = self.factor
        region = GenomeRegion(genome, chr, 0,
                              GenomeInfo.getChrLen(genome, chr))

        track1 = PlainTrack(trackName1)
        tv1 = track1.getTrackView(region)
        vals1 = tv1.valsAsNumpyArray()

        #scale between 0 and 1..:
        minVal, maxVal = vals1.min(), vals1.max()
        vals1 = (vals1 - minVal) * (1 / (maxVal - minVal))
        for pos in xrange(len(vals1)):
            #print r.runif(1), vals1[pos]
            if r.runif(1) < factor * vals1[pos]:
                yield [pos, pos + 1]
    def __iter__(self):
        from proto.RSetup import r

        #maxPos = self._getChrLen()
        maxPos = self.chrMax
        minPos = self.chrMin

        pos = minPos

        while True:
            runif = r.runif(1)

            if runif < self.interProb:
                rexp = r.rexp(1, self.interRate)
                pos += int(max(1, rexp))  # among clusters
            else:
                rexp = r.rexp(1, self.intraRate)  # inside cluster
                pos += int(max(1, rexp))

            if pos < maxPos:
                yield [pos, pos + 1]
            else:
                break