def generate_expressions(gene_ids, path): """Generate random expression data.""" genes = {} with gzip.open(os.path.join(path, 'expressions.tab.gz'), 'wb') as f: f.write('{}\t{}\n'.format('Gene', 'Expression').encode('utf-8')) with gzopen(gene_ids) as gene_ids: all_genes = [line.strip() for line in gene_ids] for gene in all_genes: expression = random.gammavariate(1, 100) f.write('{}\t{}\n'.format(gene, expression).encode('utf-8')) genes[escape_mongokey(gene)] = expression with open(os.path.join(path, 'expressions.json'), 'w') as json_file: js_out = '{{"exp_json":{}}}'.format(json.dumps({'genes': genes}, separators=(',', ':'))) json_file.write(js_out)
def create_etc(gene_ids, path, file_name): """Generate an expression time course.""" genes = {} with open(os.path.join(path, file_name), 'w') as f: csvwriter = csv.writer(f, delimiter=str('\t')) times = [0, 4, 8, 12, 16, 20, 24] csvwriter.writerow(['Gene'] + times) with gzopen(gene_ids) as gene_ids: all_genes = [line.strip() for line in gene_ids] for gene in all_genes: expression = [str(random.gammavariate(1, 100)) for _ in range(7)] genes[gene] = expression csvwriter.writerow([gene] + expression) with open(os.path.join(path, 'etc.json'), 'w') as json_file: js_out = '{{"etc":{}}}'.format(json.dumps({'genes': genes, 'timePoints': times}, separators=(',', ':'))) json_file.write(js_out) gzip.open(os.path.join(path, 'etc.json.gz'), 'wb').write(js_out.encode('utf-8'))