Advertisement
Guest User

Untitled

a guest
Dec 8th, 2016
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.28 KB | None | 0 0
  1. def get_data(gene_intron, cid, **_):
  2.     from ..fetch_data import get_intron_events, get_chromossome, get_kinship
  3.     from ..fetch_data import get_positions
  4.  
  5.     gene, intron = gene_intron.split('_')
  6.     intron = int(intron)
  7.  
  8.     pos = get_positions()
  9.     pos = pos.query("(gene == '%s') & (intron == %d)" % (gene, intron))
  10.     start_pos, end_pos = pos['start_pos'].values[0], pos['end_pos'].values[0]
  11.  
  12.     df = get_intron_events()
  13.     df = df.loc[(gene, intron)]
  14.     df['iid'] = df['assay'].apply(lambda x: x.split('_')[0].split('.')[0])
  15.  
  16.     K = get_kinship()
  17.     ws = 5000
  18.  
  19.     (bim, fam, G) = get_chromossome(cid)
  20.     query = "(chrom == '%d') & (pos >= %d) & (pos <= %d)" % (cid, start_pos-ws, end_pos+ws)
  21.     bim = bim.query(query).sort_index(level=[1])
  22.  
  23.     snp_idx = bim['i'].values
  24.     snp_ids = bim['snp'].values
  25.  
  26.     G = G[:,snp_idx]
  27.  
  28.     data = dict(ntri=[], nsuc=[], idx=[], snp_id=snp_ids)
  29.  
  30.     for r in df.iterrows():
  31.         data['nsuc'].append(r[1][1])
  32.         data['ntri'].append(r[1][2])
  33.         q = "iid == '%s'" % r[1][3]
  34.         data['idx'].append(fam.query(q)['i'].values[0])
  35.  
  36.     G = G[data['idx'],:]
  37.     K = K[data['idx'],:][:,data['idx']]
  38.  
  39.     data['K'] = K
  40.     data['G'] = G
  41.     data['gene'] = gene
  42.     data['intron'] = intron
  43.  
  44.     return data
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement