Does anyone help me fix bugs here?
It works well when I type a.seqtosymbols() first and then a.periods().
But what I want to do is to call a.periods() separately without the seqtosymbols() first.
Many thanks,
My link: https://bpaste.net/raw/OUNQ
It works well when I type a.seqtosymbols() first and then a.periods().
But what I want to do is to call a.periods() separately without the seqtosymbols() first.
Many thanks,
My link: https://bpaste.net/raw/OUNQ
import numpy from numpy import array, exp, pi, arange, float64 class ipdft(object): def __init__(self, seq, dints,period = None): self.seq = seq self.length = len(seq) self.dints = dints def seqtosymbols(self): self.result = numpy.zeros(self.length, numpy.uint8) #create arrays array([1, 0], dtype=uint8) for i in range(0,self.length-1): if self.seq[i:i+2] in self.dints: self.result[i] = 1 return self.result def ipdft_inner(self, X, W, ulim, N): for p in range(ulim): w = 1 for n in range(N): if n != 0: w *= W[p] X[p] = X[p] + self.result[n] * w return X def period(self, llim = None, ulim = None): self.llim = 2 self.ulim = self.length - 1 self.periods = array(range(self.llim, self.ulim + 1)) self.W = exp(-1j*2*pi/arange(1, self.ulim + 1)) self.X = array([0 + 0j]*self.length) self.X = self.ipdft_inner(self.X, self.W, self.ulim, self.length) power = abs(self.X[self.llim-1:self.ulim]) #if self.period is not None: #return power[self.period-2] #return array(power), self.period return self.periods a = ipdft("ATGTATTGCTAAAAATAGCAATAAATAGCATAATTAAGCTTATTTATTTT","GC")