Exemple #1
0
def plot_summary_axes(graph, lax, rax):
    """Plots your graph summary statistics on the given axes.

    After, you should run :func:`plt.tight_layout` and you must run :func:`plt.show` to view.

    Shows:
    1. Count of nodes, grouped by function type
    2. Count of edges, grouped by relation type

    :param pybel.BELGraph graph: A BEL graph
    :param lax: An axis object from matplotlib
    :param rax: An axis object from matplotlib

    Example usage:

    >>> import matplotlib.pyplot as plt
    >>> from pybel import from_pickle
    >>> from pybel_tools.summary import plot_summary_axes
    >>> graph = from_pickle('~/dev/bms/aetionomy/parkinsons.gpickle')
    >>> fig, axes = plt.subplots(1, 2, figsize=(10, 4))
    >>> plot_summary_axes(graph, axes[0], axes[1])
    >>> plt.tight_layout()
    >>> plt.show()
    """
    ntc = count_functions(graph)
    etc = count_relations(graph)

    df = pd.DataFrame.from_dict(dict(ntc), orient='index')
    df_ec = pd.DataFrame.from_dict(dict(etc), orient='index')

    df.sort_values(0, ascending=True).plot(kind='barh', logx=True, ax=lax)
    lax.set_title('Number of nodes: {}'.format(graph.number_of_nodes()))

    df_ec.sort_values(0, ascending=True).plot(kind='barh', logx=True, ax=rax)
    rax.set_title('Number of edges: {}'.format(graph.number_of_edges()))
Exemple #2
0
    def test_functions_egf(self):
        """Test counting nodes and grouping by function on the EGF graph."""
        result = {
            PROTEIN: 10,
            COMPLEX: 1,
            BIOPROCESS: 1,
        }

        self.assertEqual(set(result), get_functions(egf_graph))
        self.assertEqual(result, count_functions(egf_graph))
Exemple #3
0
    def test_functions_sialic(self):
        """Test counting nodes and grouping by function on the sialic acid graph."""
        result = {
            PROTEIN: 7,
            COMPLEX: 1,
            ABUNDANCE: 1,
        }

        self.assertEqual(set(result), get_functions(sialic_acid_graph))
        self.assertEqual(Counter(result), count_functions(sialic_acid_graph))
Exemple #4
0
    def test_functions_egf(self):
        result = {PROTEIN: 10, COMPLEX: 1, BIOPROCESS: 1}

        self.assertEqual(set(result), get_functions(egf_graph))
        self.assertEqual(result, count_functions(egf_graph))
Exemple #5
0
    def test_functions_sialic(self):
        result = {PROTEIN: 7, COMPLEX: 1, ABUNDANCE: 1}

        self.assertEqual(set(result), get_functions(sialic_acid_graph))
        self.assertEqual(result, count_functions(sialic_acid_graph))
Exemple #6
0
    def test_bel_nodes(self):
        """Test transforming kgml into bel nodes."""
        notch_summary_flatten_nodes = count_functions(self.notch_bel_flatten)
        notch_summary_unflatten_edges = count_relations(
            self.notch_bel_unflatten)
        notch_summary_unflatten_nodes = count_functions(
            self.notch_bel_unflatten)

        glycolysis_summary_unflatten_nodes = count_functions(
            self.glycolysis_bel_unflatten)
        glycolysis_summary_flatten_nodes = count_functions(
            self.glycolysis_bel_flatten)

        ppar_bel_unflatten_nodes = count_functions(self.ppar_bel_unflatten)
        ppar_bel_unflatten_edges = count_relations(self.ppar_bel_unflatten)
        ppar_bel_flatten_nodes = count_functions(self.ppar_bel_flatten)
        ppar_bel_flatten_edges = count_relations(self.ppar_bel_flatten)

        self.assertEqual(notch_summary_unflatten_nodes['Protein'], 48)
        self.assertEqual(notch_summary_unflatten_nodes['Composite'], 15)
        self.assertEqual(notch_summary_unflatten_nodes['Complex'], 4)
        self.assertEqual(notch_summary_unflatten_nodes['BiologicalProcess'], 2)
        self.assertEqual(notch_summary_unflatten_edges['decreases'], 6)
        self.assertEqual(notch_summary_unflatten_edges['increases'], 9)
        self.assertEqual(notch_summary_unflatten_edges['association'], 1)

        self.assertEqual(notch_summary_flatten_nodes['Protein'], 48)
        self.assertEqual(notch_summary_flatten_nodes['Composite'], 0)
        self.assertEqual(notch_summary_flatten_nodes['Complex'], 4)
        self.assertEqual(notch_summary_flatten_nodes['BiologicalProcess'], 2)

        self.assertEqual(glycolysis_summary_flatten_nodes['Protein'], 68)
        self.assertEqual(glycolysis_summary_flatten_nodes['Composite'], 0)
        self.assertEqual(glycolysis_summary_flatten_nodes['Complex'], 0)
        self.assertEqual(glycolysis_summary_flatten_nodes['Abundance'], 31)
        self.assertEqual(glycolysis_summary_flatten_nodes['BiologicalProcess'],
                         7)

        self.assertEqual(glycolysis_summary_unflatten_nodes['Protein'], 68)
        self.assertEqual(glycolysis_summary_unflatten_nodes['Composite'], 18)
        self.assertEqual(glycolysis_summary_unflatten_nodes['Complex'], 0)
        self.assertEqual(glycolysis_summary_flatten_nodes['Abundance'], 31)
        self.assertEqual(
            glycolysis_summary_unflatten_nodes['BiologicalProcess'], 7)

        self.assertEqual(
            self.ppar_bel_unflatten.summary_dict()['Number of Nodes'], 5)
        self.assertEqual(ppar_bel_unflatten_nodes['Abundance'], 2)
        self.assertEqual(ppar_bel_unflatten_nodes['Composite'], 1)
        # 1 protein BEL node and 1 phosphorylated protein BEL node
        self.assertEqual(ppar_bel_unflatten_nodes['Protein'], 2)
        self.assertEqual(
            self.ppar_bel_unflatten.summary_dict()['Number of Edges'], 5)
        self.assertEqual(ppar_bel_unflatten_edges['increases'], 2)
        self.assertEqual(ppar_bel_unflatten_edges['hasComponent'], 2)
        self.assertEqual(ppar_bel_unflatten_edges['hasVariant'], 1)

        self.assertEqual(
            self.ppar_bel_flatten.summary_dict()['Number of Nodes'], 4)
        self.assertEqual(ppar_bel_flatten_nodes['Abundance'], 2)
        self.assertEqual(ppar_bel_flatten_nodes['Composite'], 0)
        self.assertEqual(ppar_bel_flatten_nodes['Protein'], 2)
        self.assertEqual(
            self.ppar_bel_flatten.summary_dict()['Number of Edges'], 5)
        self.assertEqual(ppar_bel_flatten_edges['increases'], 4)
        self.assertEqual(ppar_bel_flatten_edges['hasVariant'], 1)