Exemplo n.º 1
0
    def evaluate(self,seqs):
        # Check seqs container
        if isinstance(seqs,pd.DataFrame):
            seq_col = qc.get_cols_from_df(seqs,'seqs')[0]
            seqs_to_use = list(seqs[seq_col])
        elif not (isinstance(seqs,list) or isinstance(seqs,pd.Series)):
            raise SortSeqError('Sequences must be input as a list, pd.Series, or pd.DataFrame')
        else:
            seqs_to_use = list(seqs)

        # Check length
        if len(seqs_to_use[0]) != self.length:
            raise SortSeqError(\
                'Energy Matrix Length does not equal Sequence Length')

        # Compute seqmats
        t0 = time.time()
        seqarray = fast.seqs2array_for_matmodel(list(seqs_to_use),self.seqtype)
        t1 = time.time()

        # Compute and return values
        vals = self.evaluate_on_seqarray(seqarray)
        t2 = time.time()

        #print 't1-t0 = %.4f, t1-t2 = %.4f'%(t1-t0,t2-t1)
        return vals 
Exemplo n.º 2
0
sites = fast.seq2sitelist(seq, 20)
site_length = len(sites[0])
num_sites = len(sites)

t = time.time()
seq_dict, inv_dict = utils.choose_dict(seqtype, modeltype='MAT')
sitearray_p = np.zeros([num_sites, (site_length * len(seq_dict))], dtype=int)
for i, site in enumerate(sites):
    sitearray_p[i, :] = utils.seq2mat(site, seq_dict).ravel()
p_time = time.time() - t
print 'python, seqs2array_for_matmodel: %f sec to convert %d %s seqs of length %d'%\
    (p_time,num_sites,seqtype,site_length)

t = time.time()
sitearray = fast.seqs2array_for_matmodel(sites, seqtype, safe=False)
c_time = time.time() - t
print 'cython, seqs2array_for_matmodel: %f sec to convert %d %s seqs of length %d'%\
    (c_time,num_sites,seqtype,site_length)

print '%.1f-fold speedup.' % (p_time / c_time)

print '-----------------------------'
# Test seqs2array_for_nbrmodel

sites = fast.seq2sitelist(seq, 20)
site_length = len(sites[0])
num_sites = len(sites)

t = time.time()
seq_dict, inv_dict = utils.choose_dict(seqtype, modeltype='NBR')
Exemplo n.º 3
0
sites = fast.seq2sitelist(seq,20)
site_length = len(sites[0])
num_sites = len(sites)

t = time.time()
seq_dict,inv_dict = utils.choose_dict(seqtype,modeltype='MAT')
sitearray_p = np.zeros([num_sites,(site_length*len(seq_dict))],dtype=int)
for i, site in enumerate(sites):
    sitearray_p[i,:] = utils.seq2mat(site,seq_dict).ravel()
p_time = time.time()-t
print 'python, seqs2array_for_matmodel: %f sec to convert %d %s seqs of length %d'%\
    (p_time,num_sites,seqtype,site_length)

t = time.time()
sitearray = fast.seqs2array_for_matmodel(sites,seqtype,safe=False)
c_time = time.time()-t
print 'cython, seqs2array_for_matmodel: %f sec to convert %d %s seqs of length %d'%\
    (c_time,num_sites,seqtype,site_length)

print '%.1f-fold speedup.'%(p_time/c_time)

print '-----------------------------'
# Test seqs2array_for_nbrmodel

sites = fast.seq2sitelist(seq,20)
site_length = len(sites[0])
num_sites = len(sites)

t = time.time()
seq_dict,inv_dict = utils.choose_dict(seqtype,modeltype='NBR')