Ejemplo n.º 1
0
class CytoscapeClient:
    """This is a wrapper to the py2cytoscape wrapper. The local installation of Py2cytoscape has been modified for it to work"""
    def __init__(self, host="localhost", port="1234", version="v1"):
        self.cy = CyRestClient(ip=host, port=port, version=version)

    def gc(self):
        self.cy.gc()

    def free_memory(self):
        self.cy.gc()
        X = self.cy.status()
        return max(
            X['memoryStatus']['maxMemory'] - X['memoryStatus']['usedMemory'],
            X['memoryStatus']['freeMemory'])

    def random_id(self, prefix="MY_"):
        import random
        s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
        return prefix + ''.join(
            [s[random.randint(0,
                              len(s) - 1)] for i in range(10)])

    def cynet_from_xgmml(self,
                         s_file,
                         name=None,
                         s_layout="force-directed",
                         l_bundle=True,
                         t_xy=None,
                         l_digraph=False):
        """If t_xy is provided, s_layout is ignored
        return CyNetwork"""
        import os
        if not os.path.exists(s_file):
            import util
            util.warn_msg('Missing file: %s' % s_file)
            return None
        if not l_digraph:
            net = xgmml.Network(s_file, name=name)
        else:
            import digraph
            net = digraph.Digraph(s_file, name=name)
        if t_xy is not None:
            net.set_XY(t_xy)
            s_layout = None
        S = net.T_node.header()
        #print "---------------->", S
        #S=[x for x in S if x not in ('Gene','Name','Symbol')]
        #net.T_node.drop(S, axis=1, inplace=True)
        ##############################
        return self.cynet_from_network(net,
                                       name=name,
                                       s_layout=s_layout,
                                       l_bundle=l_bundle)

    def cynet_from_network(self,
                           net,
                           name=None,
                           s_layout="force-directed",
                           l_bundle=True):
        """Input net: xgmml.Network object
        return CyNetwork"""
        #print "====>>>>>>>>", net.T_node.header()
        data = net.to_json()
        if name is None:
            name = data['data']['name']
        #cynet=self.cy.create(suid=net)
        cynet = None
        for trial in range(
                3):  # something Cytoscape errors, try up to three times
            try:
                if cynet is None:
                    cynet = self.cy.network.create(name=name, data=data)
            except:
                cynet = None
                print("Fail at trail %d" % (trial + 1))
                print("JSON data>", data)
        if cynet is None:
            import sys
            util.warn_msg('Error during plot_go_network(): %s' %
                          sys.exc_info()[0])
            print(traceback.format_exc())

        id = cynet.get_id()

        if s_layout is not None:
            #print "apply layout %s" % s_layout
            self.cy.layout.apply(name=s_layout, network=cynet)
        if l_bundle:
            self.cy.edgebundling.apply(cynet)
            #print "apply bundle %s" % s_layout
        self.cy.layout.fit(cynet)
        return cynet

    def delete_cynet(self, cynet=None):
        """None means delete all networks"""
        if cynet is None:
            self.cy.network.delete_all()
        else:
            self.cy.network.delete(cynet)

    def get_network(self, suid):
        """Get xgmml.Network with X,Y coordinates"""
        cynet = self.cy.network.create(suid=suid)
        net = xgmml.Network.from_json(cynet.to_json())
        net.T_node.drop([
            x for x in ['graphics_x', 'graphics_y', 'SUID', 'id_original']
            if x in net.T_node.header()
        ],
                        axis=1,
                        inplace=True)
        t_xy = self.cynet_get_XY(cynet)
        if t_xy is not None:
            t_xy.drop('Gene', axis=1, inplace=True)
            t_xy.rename2({'x': 'graphics_x', 'y': 'graphics_y'})
            net.T_node = net.T_node.merge(t_xy,
                                          left_on='id',
                                          right_on='id',
                                          how='left')
        return net

    def get_cynet(self, cynet):
        """make sure we return a cynet object"""
        if type(cynet) in (str, int):
            return self.cy.network.create(suid=int(cynet))
        return cynet

    def cynet_get_XY(self, cynet):
        cynet = self.get_cynet(cynet)
        data = cynet.get_first_view()
        if data is None: return None  # view does not exist
        nodes = data['elements']['nodes']
        X = []
        for node in nodes:
            # id is an internal id, Gene is our key
            X.append({
                'id': str(node['data']['id']),
                'x': node['position']['x'],
                'y': node['position']['y'],
                'Gene': node['data']['Gene']
            })
        t_xy = pd.DataFrame(X)
        return t_xy

    def cynet_save(self, cynet, s_file="x.png"):
        def save_image(s_file, data):
            f = open(s_file, 'wb')
            f.write(data)
            f.close()

        cynet = self.get_cynet(cynet)
        s_ext = s_file.upper()
        if s_ext.endswith('.PNG'):
            save_image(s_file, cynet.get_png())
        elif s_ext.endswith('.PDF'):
            save_image(s_file, cynet.get_pdf())
Ejemplo n.º 2
0
class CyRestClientTests(unittest.TestCase):

    def setUp(self):
        self.client = CyRestClient()
        # cleanup
        self.client.network.delete_all()

    def test_cyrest_client(self):
        print('\n---------- Client status tests start -----------\n')
        # Make sure CyREST server is running
        status = self.client.status()
        self.assertIsNotNone(status)
        pp(status)
        self.assertEqual('v1', status['apiVersion'])

        print('\n---------- Client status tests finished! -----------\n')

    def test_create_network(self):
        print('\n---------- Create network Tests Start -----------\n')
        # Create empty network
        num_networks = 5
        for i in range(num_networks):
            self.client.network.create()

        networks = self.client.network.get_all()
        self.assertIsNotNone(networks)
        self.assertEqual(num_networks, len(networks))

    def test_create_from(self):
        print('\n---------- Loading network tests start -----------\n')
        # Create from URL
        locations = [
            'http://chianti.ucsd.edu/cytoscape-data/galFiltered.sif',
            'http://www.ebi.ac.uk/Tools/webservices/psicquic/intact/'
            + 'webservices/current/search/interactor/brca2_human?format=xml25'

        ]

        networks = self.client.network.create_from(locations)
        print(networks)
        self.assertIsNotNone(networks)
        print('---------- Loading networks done! -----------\n')

    def test_network_api(self):
        print('\n---------- Network API Tests Start -----------\n')
        # Create empty network
        for i in range(5):
            self.client.network.create()

        networks = self.client.network.get_all(format='json')
        self.assertIsNotNone(networks)
        pp(networks)

    def test_cynetwork(self):
        print('\n---------- CyNetwork Tests Start -----------\n')
        network = self.client.network.create()
        self.assertIsNotNone(network)
        nodes = network.get_nodes()
        pp(nodes)
        new_nodes = ['a', 'b', 'c']
        nd = network.add_nodes(new_nodes)

        self.assertIsNotNone(nd)
        pp(nd)

        edge = network.add_edge(nd['a'], nd['b'])
        self.assertIsNotNone(edge)
        print(edge)

        new_edges = ((nd['a'], nd['b'], 'i1'), (nd['a'], nd['c'], 'i1'))
        new_edges_result = network.add_edges(new_edges)
        print(new_edges_result)
        self.assertEqual(2, len(new_edges_result))

        node_table = network.get_node_table()
        print(node_table)
        node_table = network.get_node_table(format='tsv')
        print(node_table)
        node_table = network.get_node_table(format='csv')
        print(node_table)

        edge_table = network.get_edge_table()
        print(edge_table)

        print('\n---------- CyNetwork Tests Finished! -----------\n')

    def test_create_view(self):
        print('\n---------- CyNetworkView Tests Start -----------\n')
        network = self.client.network.create()
        self.assertIsNotNone(network)
        nodes = network.get_nodes()
        pp(nodes)
        new_nodes = ['a', 'b', 'c']
        nd = network.add_nodes(new_nodes)
        views = network.get_views()
        print('Views: ')
        print(views)
        view_id = views[0]
        view = network.get_view(view_id, format='view')
        self.assertIsNotNone(view)
        self.assertEqual(view_id, view.get_id())

        node_views = view.get_node_views()
        self.assertIsNotNone(node_views)
        self.assertEqual(3, len(node_views))

        view1 = node_views[0]
        self.assertIsNotNone(view1)
        all_values = view1.get_values()
        print(all_values)

    def test_view_api(self):
        print('\n---------- View API test start -----------\n')
        network = self.client.network.create()
        self.assertIsNotNone(network)
        nodes = network.get_nodes()
        pp(nodes)
        new_nodes = ['a', 'b', 'c']
        nd = network.add_nodes(new_nodes)
        print(nd)
        views = network.get_views()
        print('Views: ')
        print(views)
        view_id = views[0]
        view = network.get_view(view_id, format='view')
        self.assertIsNotNone(view)
        self.assertEqual(view_id, view.get_id())

        node_views = view.get_node_views()
        self.assertIsNotNone(node_views)
        self.assertEqual(3, len(node_views))

        view1 = node_views[0]
        self.assertIsNotNone(view1)
        self.assertEqual(0, view1.get_x())
        view1.set_x(100)
        self.assertEqual(100, view1.get_value('NODE_X_LOCATION'))

        new_values = {}
        for key in nd.keys():
            suid = nd[key]
            new_values[suid] = 'red'

        view.update_node_views('NODE_FILL_COLOR', new_values)

        new_values_name = {}
        for node_name in new_nodes:
            new_values_name[node_name] = 'pink'

        print('---------- New Fill colors -----------')
        print(new_values_name)

        view.update_node_views('NODE_FILL_COLOR', new_values_name, key_type='name')
        view.update_network_view('NETWORK_BACKGROUND_PAINT', 'red')
        net_view = view.get_network_view_as_dict()
        bg_paint = net_view['NETWORK_BACKGROUND_PAINT']
        self.assertEqual('#FF0000', bg_paint)

    def test_convert(self):
        print('\n---------- DataFrame Conversion Tests Start -----------\n')

        import os
        import pandas as pd

        # Clean up Cytoscape session
        self.client.session.delete()

        dir_name = os.path.dirname(os.path.realpath(__file__))
        df = pd.read_csv(
            dir_name + '/data/galFiltered.sif',
            names=['source', 'interaction', 'target'], sep=' ')
        print(df.head(3))
        net = df_util.from_dataframe(df)

        network = self.client.network.create(data=net, name='Created from DataFrame')

        original_column_count = len(network.get_node_columns())

        dir_name = os.path.dirname(os.path.realpath(__file__))
        file_name = dir_name + '/data/galFiltered.nodeAttrTable.txt'
        data_table = pd.read_csv(file_name, sep='\t')

        network.update_node_table(df=data_table, data_key_col='ID')
        table_column_count = len(data_table.columns)
        total_column_count = len(network.get_node_columns())

        self.assertEqual(total_column_count, (original_column_count+table_column_count-1))

        print('\n---------- DataFrame Conversion Tests Finished! -----------\n')

    def test_delete_network(self):
        network = self.client.network.create()
        suids = self.client.network.get_all()
        self.assertEqual(1, len(suids))
        self.client.network.delete(network)
        suids = self.client.network.get_all()
        self.assertEqual(0, len(suids))

    def test_create_from_networkx(self):
        networkx1 = nx.scale_free_graph(100)

        network = self.client.network.create_from_networkx(networkx1)
        self.assertIsNotNone(network)
Ejemplo n.º 3
0
class CyRestClientTests(unittest.TestCase):
    def setUp(self):
        self.client = CyRestClient()
        # cleanup
        self.client.network.delete_all()

    def test_cyrest_client(self):
        print('\n---------- Client status tests start -----------\n')
        # Make sure CyREST server is running
        status = self.client.status()
        self.assertIsNotNone(status)
        pp(status)
        self.assertEqual('v1', status['apiVersion'])

        print('\n---------- Client status tests finished! -----------\n')

    def test_create_network(self):
        print('\n---------- Create network Tests Start -----------\n')
        # Create empty network
        num_networks = 5
        for i in range(num_networks):
            self.client.network.create()

        networks = self.client.network.get_all()
        self.assertIsNotNone(networks)
        self.assertEqual(num_networks, len(networks))

    def test_create_from(self):
        print('\n---------- Loading network tests start -----------\n')
        # Create from URL
        locations = [
            'http://chianti.ucsd.edu/cytoscape-data/galFiltered.sif',
            'http://www.ebi.ac.uk/Tools/webservices/psicquic/intact/' +
            'webservices/current/search/interactor/brca2_human?format=xml25'
        ]

        networks = self.client.network.create_from(locations)
        print(networks)
        self.assertIsNotNone(networks)
        print('---------- Loading networks done! -----------\n')

    def test_network_api(self):
        print('\n---------- Network API Tests Start -----------\n')
        # Create empty network
        for i in range(5):
            self.client.network.create()

        networks = self.client.network.get_all(format='json')
        self.assertIsNotNone(networks)
        pp(networks)

    def test_cynetwork(self):
        print('\n---------- CyNetwork Tests Start -----------\n')
        network = self.client.network.create()
        self.assertIsNotNone(network)
        nodes = network.get_nodes()
        pp(nodes)
        new_nodes = ['a', 'b', 'c']
        nd = network.add_nodes(new_nodes)

        self.assertIsNotNone(nd)
        pp(nd)

        edge = network.add_edge(nd['a'], nd['b'])
        self.assertIsNotNone(edge)
        pp(edge)

        new_edges = ((nd['a'], nd['b'], 'i1'), (nd['a'], nd['c'], 'i1'))
        new_edges_result = network.add_edges(new_edges)
        print(new_edges_result)
        self.assertEqual(2, len(new_edges_result))

        node_table = network.get_node_table()
        print(node_table)
        node_table = network.get_node_table(format='tsv')
        print(node_table)
        node_table = network.get_node_table(format='csv')
        print(node_table)

        edge_table = network.get_edge_table()
        print(edge_table)

        print('\n---------- CyNetwork Tests Finished! -----------\n')

    def test_create_view(self):
        print('\n---------- CyNetworkView Tests Start -----------\n')
        network = self.client.network.create()
        self.assertIsNotNone(network)
        nodes = network.get_nodes()
        pp(nodes)
        new_nodes = ['a', 'b', 'c']
        nd = network.add_nodes(new_nodes)
        views = network.get_views()
        print('Views: ')
        print(views)
        view_id = views[0]
        view = network.get_view(view_id, format='view')
        self.assertIsNotNone(view)
        self.assertEqual(view_id, view.get_id())

        node_views = view.get_node_views()
        self.assertIsNotNone(node_views)
        self.assertEqual(3, len(node_views))

        view1 = node_views[0]
        self.assertIsNotNone(view1)
        all_values = view1.get_values()
        print(all_values)

    def test_view_api(self):
        print('\n---------- View API test start -----------\n')
        network = self.client.network.create()
        self.assertIsNotNone(network)
        nodes = network.get_nodes()
        pp(nodes)
        new_nodes = ['a', 'b', 'c']
        nd = network.add_nodes(new_nodes)
        print(nd)
        views = network.get_views()
        print('Views: ')
        print(views)
        view_id = views[0]
        view = network.get_view(view_id, format='view')
        self.assertIsNotNone(view)
        self.assertEqual(view_id, view.get_id())

        node_views = view.get_node_views()
        self.assertIsNotNone(node_views)
        self.assertEqual(3, len(node_views))

        view1 = node_views[0]
        self.assertIsNotNone(view1)
        self.assertEqual(0, view1.get_x())
        view1.set_x(100)
        self.assertEqual(100, view1.get_value('NODE_X_LOCATION'))

        new_values = {}
        for key in nd.keys():
            suid = nd[key]
            new_values[suid] = 'red'

        view.update_node_views('NODE_FILL_COLOR', new_values)

        new_values_name = {}
        for node_name in new_nodes:
            new_values_name[node_name] = 'pink'

        view.update_node_views('NODE_FILL_COLOR',
                               new_values_name,
                               key_type='name')
        view.update_network_view('NETWORK_BACKGROUND_PAINT', 'red')
        net_view = view.get_network_view_as_dict()
        bg_paint = net_view['NETWORK_BACKGROUND_PAINT']
        self.assertEqual('#FF0000', bg_paint)

    def test_convert(self):
        print('\n---------- DataFrame Conversion Tests Start -----------\n')

        import os
        import pandas as pd

        # Clean up Cytoscape session
        self.client.session.delete()

        dir_name = os.path.dirname(os.path.realpath(__file__))
        df = pd.read_csv(dir_name + '/data/galFiltered.sif',
                         names=['source', 'interaction', 'target'],
                         sep=' ')
        print(df.head(3))
        net = df_util.from_dataframe(df)

        network = self.client.network.create(data=net,
                                             name='Created from DataFrame')

        original_column_count = len(network.get_node_columns())

        dir_name = os.path.dirname(os.path.realpath(__file__))
        file_name = dir_name + '/data/galFiltered.nodeAttrTable.txt'
        data_table = pd.read_csv(file_name, sep='\t')

        network.update_node_table(df=data_table, data_key_col='ID')
        table_column_count = len(data_table.columns)
        total_column_count = len(network.get_node_columns())

        self.assertEqual(total_column_count,
                         (original_column_count + table_column_count - 1))

        print(
            '\n---------- DataFrame Conversion Tests Finished! -----------\n')

    def test_delete_network(self):
        network = self.client.network.create()
        suids = self.client.network.get_all()
        self.assertEqual(1, len(suids))
        self.client.network.delete(network)
        suids = self.client.network.get_all()
        self.assertEqual(0, len(suids))

    def test_create_from_networkx(self):
        networkx1 = nx.scale_free_graph(100)

        network = self.client.network.create_from_networkx(networkx1)
        self.assertIsNotNone(network)
Ejemplo n.º 4
0
g.get_adjacency()
type(g.get_adjacency())
g.get_adjacency()._get_data()
type(g.get_adjacency()._get_data())
type(g.get_adjacency().data)
g.get_adjacency().data
g.get_adjacency()._hash_()
g.get_adjacency().__hash__()
g.get_adjacency().__hash__(h)
g.get_adjacency().__hash__(g)
g.get_adjacency().shape
pip install py2cytoscape
import json
from py2cytoscape.data.cyrest_client import CyRestClient
cy = CyRestClient()
print(json.dumps(cy.status(), indent=4))
from igraph import *
g = Graph.Read_Adjacency('r_data_science_ch2_fig2.1.txt')
cy.network.create_from_igraph(g)
help(Graph.Read_GML)
from lesmis import *
loadGraphFromGml()
g
from lesmis import LesMis as lm
lm._g
from lesmis import LesMis as lm
lm.getGraph()
from lesmis import LesMis as lm
from lesmis import LesMis
lm = LesMis()
from lesmis import LesMis
Ejemplo n.º 5
0
class CyRestClientTests(unittest.TestCase):

    def setUp(self):
        self.client = CyRestClient()
        # cleanup
        self.client.network.delete_all()

    def test_cyrest_client(self):
        print('\n---------- Client status tests start -----------\n')
        # Make sure CyREST server is running
        status = self.client.status()
        self.assertIsNotNone(status)
        pp(status)
        self.assertEqual('v1', status['apiVersion'])

        print('\n---------- Client status tests finished! -----------\n')

    def test_create_network(self):
        print('\n---------- Create network Tests Start -----------\n')
        # Create empty network
        num_networks = 5
        for i in range(num_networks):
            self.client.network.create()

        networks = self.client.network.get_all()
        self.assertIsNotNone(networks)
        self.assertEqual(num_networks, len(networks))

    def test_create_from(self):
        print('\n---------- Loading network tests start -----------\n')
        # Create from URL
        locations = [
            'http://chianti.ucsd.edu/cytoscape-data/galFiltered.sif',
            'http://www.ebi.ac.uk/Tools/webservices/psicquic/intact/'
            + 'webservices/current/search/interactor/brca2_human?format=xml25'

        ]

        networks = self.client.network.create_from(locations)
        print(networks)
        self.assertIsNotNone(networks)
        print('---------- Loading networks done! -----------\n')

    def test_network_api(self):
        print('\n---------- Network API Tests Start -----------\n')
        # Create empty network
        for i in range(5):
            self.client.network.create()

        networks = self.client.network.get_all(format='json')
        self.assertIsNotNone(networks)
        pp(networks)

    def test_cynetwork(self):
        print('\n---------- CyNetwork Tests Start -----------\n')
        network = self.client.network.create()
        self.assertIsNotNone(network)
        nodes = network.get_nodes()
        pp(nodes)
        new_nodes = ['a', 'b', 'c']
        nd = network.add_nodes(new_nodes)

        self.assertIsNotNone(nd)
        pp(nd)

        edge = network.add_edge(nd['a'], nd['b'])
        self.assertIsNotNone(edge)
        pp(edge)

        new_edges = ((nd['a'], nd['b'], 'i1'), (nd['a'], nd['c'], 'i1'))
        new_edges_result = network.add_edges(new_edges)
        print(new_edges_result)
        self.assertEqual(2, len(new_edges_result))

        node_table = network.get_node_table()
        print(node_table)
        node_table = network.get_node_table(format='tsv')
        print(node_table)
        node_table = network.get_node_table(format='csv')
        print(node_table)

        edge_table = network.get_edge_table()
        print(edge_table)

        print('\n---------- CyNetwork Tests Finished! -----------\n')

    def test_convert(self):
        print('\n---------- DataFrame Conversion Tests Start -----------\n')

        import os
        import pandas as pd

        # Clean up Cytoscape session
        self.client.session.delete()

        dir_name = os.path.dirname(os.path.realpath(__file__))
        df = pd.read_csv(
            dir_name + '/data/galFiltered.sif',
            names=['source', 'interaction', 'target'], sep=' ')
        print(df.head(3))
        net = df_util.from_dataframe(df)

        network = self.client.network.create(data=net, name='Created from DataFrame')

        original_column_count = len(network.get_node_columns())

        dir_name = os.path.dirname(os.path.realpath(__file__))
        file_name = dir_name + '/data/galFiltered.nodeAttrTable.txt'
        data_table = pd.read_csv(file_name, sep='\t')

        network.update_node_table(df=data_table, data_key_col='ID')
        table_column_count = len(data_table.columns)
        total_column_count = len(network.get_node_columns())

        self.assertEqual(total_column_count, (original_column_count+table_column_count-1))

        print('\n---------- DataFrame Conversion Tests Finished! -----------\n')

    def test_delete_network(self):
        network = self.client.network.create()
        suids = self.client.network.get_all()
        self.assertEqual(1, len(suids))
        self.client.network.delete(network)
        suids = self.client.network.get_all()
        self.assertEqual(0, len(suids))

    def test_create_from_networkx(self):
        networkx1 = nx.scale_free_graph(100)

        network = self.client.network.create_from_networkx(networkx1)
        self.assertIsNotNone(network)
Ejemplo n.º 6
0
class CyRestClientTests(unittest.TestCase):
    def setUp(self):
        self.client = CyRestClient()
        # cleanup
        self.client.network.delete_all()

    def test_cyrest_client(self):
        print('\n---------- Client status tests start -----------\n')
        # Make sure CyREST server is running
        status = self.client.status()
        self.assertIsNotNone(status)
        pp(status)
        self.assertEqual('v1', status['apiVersion'])

        print('\n---------- Client status tests finished! -----------\n')

    def test_create_network(self):
        print('\n---------- Create network Tests Start -----------\n')
        # Create empty network
        num_networks = 5
        for i in range(num_networks):
            self.client.network.create()

        networks = self.client.network.get_all()
        self.assertIsNotNone(networks)
        self.assertEqual(num_networks, len(networks))

    def test_create_from(self):
        print('\n---------- Loading network tests start -----------\n')
        # Create from URL
        locations = [
            'http://chianti.ucsd.edu/cytoscape-data/galFiltered.sif',
            'http://www.ebi.ac.uk/Tools/webservices/psicquic/intact/' +
            'webservices/current/search/interactor/brca2_human?format=xml25'
        ]

        networks = self.client.network.create_from(locations)
        print(networks)
        self.assertIsNotNone(networks)
        print('---------- Loading networks done! -----------\n')

    def test_network_api(self):
        print('\n---------- Network API Tests Start -----------\n')
        # Create empty network
        for i in range(5):
            self.client.network.create()

        networks = self.client.network.get_all(format='json')
        self.assertIsNotNone(networks)
        pp(networks)

    def test_cynetwork(self):
        print('\n---------- CyNetwork Tests Start -----------\n')
        network = self.client.network.create()
        self.assertIsNotNone(network)
        nodes = network.get_nodes()
        pp(nodes)
        new_nodes = ['a', 'b', 'c']
        nd = network.add_nodes(new_nodes)

        self.assertIsNotNone(nd)
        pp(nd)

        edge = network.add_edge(nd['a'], nd['b'])
        self.assertIsNotNone(edge)
        pp(edge)

        new_edges = ((nd['a'], nd['b'], 'i1'), (nd['a'], nd['c'], 'i1'))
        new_edges_result = network.add_edges(new_edges)
        print(new_edges_result)
        self.assertEqual(2, len(new_edges_result))

        node_table = network.get_node_table()
        print(node_table)
        node_table = network.get_node_table(format='tsv')
        print(node_table)
        node_table = network.get_node_table(format='csv')
        print(node_table)

        edge_table = network.get_edge_table()
        print(edge_table)

        print('\n---------- CyNetwork Tests Finished! -----------\n')

    def test_convert(self):
        print('\n---------- DataFrame Conversion Tests Start -----------\n')

        import os
        import pandas as pd

        # Clean up Cytoscape session
        self.client.session.delete()

        dir_name = os.path.dirname(os.path.realpath(__file__))
        df = pd.read_csv(dir_name + '/data/galFiltered.sif',
                         names=['source', 'interaction', 'target'],
                         sep=' ')
        print(df.head(3))
        net = df_util.from_dataframe(df)

        network = self.client.network.create(data=net,
                                             name='Created from DataFrame')

        original_column_count = len(network.get_node_columns())

        dir_name = os.path.dirname(os.path.realpath(__file__))
        file_name = dir_name + '/data/galFiltered.nodeAttrTable.txt'
        data_table = pd.read_csv(file_name, sep='\t')

        network.update_node_table(df=data_table, data_key_col='ID')
        table_column_count = len(data_table.columns)
        total_column_count = len(network.get_node_columns())

        self.assertEqual(total_column_count,
                         (original_column_count + table_column_count - 1))

        print(
            '\n---------- DataFrame Conversion Tests Finished! -----------\n')

    def test_delete_network(self):
        network = self.client.network.create()
        suids = self.client.network.get_all()
        self.assertEqual(1, len(suids))
        self.client.network.delete(network)
        suids = self.client.network.get_all()
        self.assertEqual(0, len(suids))

    def test_create_from_networkx(self):
        networkx1 = nx.scale_free_graph(100)

        network = self.client.network.create_from_networkx(networkx1)
        self.assertIsNotNone(network)