Ejemplo n.º 1
0
    def __call__(self, garray):
        if callable(self.gsize):
            gsize = self.gsize()
            seqs = self.gsize.seqs
        else:
            gsize = self.gsize
            seqs = self.seqs
        order = self.order
        dtype = garray.typecode

        bar = Bar('Loading sequences', max=len(gsize))
        for region, seq in zip(gsize, seqs):

            indarray = np.asarray(seq2ind(seq), dtype=dtype)

            if order > 1:
                # for higher order motifs, this part is used
                filter_ = np.asarray([
                    pow(len(seq.seq.alphabet.letters), i) for i in range(order)
                ])
                indarray = np.convolve(indarray, filter_, mode='valid')

            garray[region, 0] = indarray.reshape(-1, 1)
            bar.next()
        bar.finish()
Ejemplo n.º 2
0
    def __call__(self, garray):
        if callable(self.gsize):
            gsize = self.gsize()
            seqs = self.gsize.seqs
        else:
            gsize = self.gsize
            seqs = self.seqs
        order = self.order

        bar = Bar('Loading sequences', max=len(gsize))
        for region, seq in zip(gsize, seqs):

            indarray = np.asarray(seq2ind(seq))

            if order > 1:
                # for higher order motifs, this part is used
                filter_ = np.asarray([
                    pow(len(seq.seq.alphabet.letters), i) for i in range(order)
                ])
                indarray = np.convolve(indarray, filter_, mode='valid')
                # the specific type int8 is not irrelevant, as long as
                # the negative values are maintained correctly.
                indarray[indarray < np.iinfo('int8').min] = np.iinfo(
                    'int8').min

            garray[region, 0] = indarray.reshape(-1, 1)
            bar.next()
        bar.finish()
Ejemplo n.º 3
0
        def _seq_loader(cover, seqs, order):
            print('Convert sequences to index array')
            for seq in seqs:
                if cover._full_genome_stored:
                    interval = GenomicInterval(seq.id, 0,
                                               len(seq) - order + 1, '.')
                else:
                    interval = GenomicInterval(
                        *_str_to_iv(seq.id, template_extension=0))

                indarray = np.asarray(seq2ind(seq), dtype=dtype)

                if order > 1:
                    # for higher order motifs, this part is used
                    filter_ = np.asarray([
                        pow(len(seq.seq.alphabet.letters), i)
                        for i in range(order)
                    ])
                    indarray = np.convolve(indarray, filter_, mode='valid')

                cover[interval, 0] = indarray
Ejemplo n.º 4
0
    def __call__(self, garray):
        seqs = self.seqs
        order = self.order
        dtype = garray.typecode

        print('Convert sequences to index array')
        for seq in seqs:
            if garray._full_genome_stored:
                interval = GenomicInterval(seq.id, 0,
                                           len(seq) - order + 1, '.')
            else:
                interval = GenomicInterval(*_str_to_iv(seq.id,
                                                       template_extension=0))

            indarray = np.asarray(seq2ind(seq), dtype=dtype)

            if order > 1:
                # for higher order motifs, this part is used
                filter_ = np.asarray([pow(len(seq.seq.alphabet.letters),
                                          i) for i in range(order)])
                indarray = np.convolve(indarray, filter_, mode='valid')

            garray[interval, 0] = indarray.reshape(-1, 1)