def make_network(stoichiometry, info={}):
    """
	Makes a gephi network
	info can contain node_sizes, node_types
	info = {
		'node_sizes': node_sizes (dict),
		'node_types': node_types (dict)
	}
	"""
    node_types = info.get('node_types', {})
    node_sizes = info.get('node_sizes', {})
    reaction_fluxes = info.get('reaction_fluxes', {})
    nodes = {}
    edges = []
    for reaction_id, stoich in stoichiometry.iteritems():
        flux = reaction_fluxes.get(reaction_id, 1)
        n_type = node_types.get(reaction_id, 'reaction')
        n_size = node_sizes.get(reaction_id, 1)
        nodes[reaction_id] = {'label': reaction_id, 'type': n_type, 'size':
            n_size}
        for molecule_id, coeff in stoich.iteritems():
            n_type = node_types.get(molecule_id, 'molecule')
            n_size = node_sizes.get(molecule_id, 1)
            nodes[molecule_id] = {'label': molecule_id, 'type': n_type,
                'size': n_size}
            if coeff < 0:
                edge = [molecule_id, reaction_id, flux]
            elif coeff > 0:
                edge = [reaction_id, molecule_id, flux]
            else:
                print(reaction_id + ', ' + molecule_id + ': coeff = 0')
                break
            edges.append(edge)
    return nodes, edges
