def neurommsig_hubs(graph: BELGraph, genes: List[Gene], top_percent: Optional[float] = None) -> float:
top_percent = top_percent or <NUM_LIT><EOL>if graph.number_of_nodes() < <NUM_LIT:20>:<EOL><INDENT>logger.debug('<STR_LIT>')<EOL>return <NUM_LIT:0.0><EOL><DEDENT>graph_genes = set(get_nodes_by_function(graph, GENE))<EOL>bc = Counter({<EOL>node: betweenness_centrality<EOL>for node, betweenness_centrality in calculate_betweenness_centality(graph).items()<EOL>if node in graph_genes<EOL>})<EOL>number_central_nodes = int(len(graph_genes) * top_percent)<EOL>if number_central_nodes < <NUM_LIT:1>:<EOL><INDENT>number_central_nodes = <NUM_LIT:1><EOL><DEDENT>number_mappable_central_nodes = sum(<EOL>node in genes<EOL>for node in bc.most_common(number_central_nodes)<EOL>)<EOL>return number_mappable_central_nodes / number_central_nodes<EOL>
Calculate the percentage of target genes mappable to the graph.

    Assume: graph central dogma inferred, collapsed to genes, collapsed variants, graph has more than 20 nodes

    :param graph: A BEL graph
    :param genes: A list of nodes
    :param top_percent: The percentage of top genes to use as hubs. Defaults to 5% (0.05).