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)
Exemple #2
0
    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'))