コード例 #1
0
    def test_example_notebook(self):
        my_network_uuid = 'd3c5ca09-bb42-11e7-94d3-0ac135e8bacf'
        my_account = "drh"
        my_password = "******"

        print("downloading network and buiding NiceCX...")
        my_network = ndex2.create_nice_cx_from_server(
            server='public.ndexbio.org', uuid=my_network_uuid)
        print("done")
        my_network.print_summary()

        # (for clarity, this example code is rather verbose)

        source_attribute1 = "TYPEA"
        source_attribute2 = "TYPEB"
        target_attribute = "TYPE"

        for node_id, node in my_network.nodes.items():
            value1 = my_network.get_node_attribute(node, source_attribute1)
            value2 = my_network.get_node_attribute(node, source_attribute2)
            merged_value = value1 or value2
            if merged_value:
                my_network.set_node_attribute(node, target_attribute,
                                              merged_value)
                my_network.remove_node_attribute(node, source_attribute1)
                my_network.remove_node_attribute(node, source_attribute2)

        my_network.print_summary()
コード例 #2
0
    def test_data_types_with_special_chars2(self):
        niceCx = ndex2.create_empty_nice_cx()

        fox_node_id = niceCx.create_node(node_name='A#"')
        mouse_node_id = niceCx.create_node(node_name='B!@#$%')
        bird_node_id = niceCx.create_node(node_name='*&^%^$')

        fox_bird_edge = niceCx.create_edge(edge_source=fox_node_id,
                                           edge_target=bird_node_id,
                                           edge_interaction='&"""""""')
        fox_mouse_edge = niceCx.create_edge(edge_source=fox_node_id,
                                            edge_target=mouse_node_id,
                                            edge_interaction='//////\\\\\\')

        niceCx.add_node_attribute(property_of=fox_node_id,
                                  name='Color',
                                  values='Red')
        niceCx.add_node_attribute(property_of=mouse_node_id,
                                  name='Color',
                                  values='Gray')
        niceCx.add_node_attribute(property_of=bird_node_id,
                                  name='Color',
                                  values='Blue')

        upload_message = niceCx.upload_to(upload_server, upload_username,
                                          upload_password)
        spec_char_network_uuid = upload_message.split('\\')[-1]

        niceCx = ndex2.create_nice_cx_from_server(
            server='public.ndexbio.org',
            uuid='fc63173e-df66-11e7-adc1-0ac135e8bacf'
        )  #NiceCXNetwork(server='dev2.ndexbio.org', username='******', password='******', uuid='9433a84d-6196-11e5-8ac5-06603eb7f303')

        self.assertTrue(upload_message)
コード例 #3
0
    def test_create_from_server(self):
        print('Testing: Create from server with 548970 edges (uuid:75bf1e85-1bc7-11e6-a298-06603eb7f303)')
        #niceCx = ndex2.create_nice_cx_from_server(server='public.ndexbio.org', uuid='72ef5c3a-caff-11e7-ad58-0ac135e8bacf') #NiceCXNetwork(server='dev2.ndexbio.org', username='******', password='******', uuid='9433a84d-6196-11e5-8ac5-06603eb7f303')
        niceCx = ndex2.create_nice_cx_from_server(server='public.ndexbio.org', username='******', password='******', uuid='75bf1e85-1bc7-11e6-a298-06603eb7f303') #NiceCXNetwork(server='dev2.ndexbio.org', username='******', password='******', uuid='9433a84d-6196-11e5-8ac5-06603eb7f303')

        upload_message = niceCx.upload_to(upload_server, upload_username, upload_password)
        self.assertTrue(upload_message)
コード例 #4
0
    def test_create_from_server(self):
        print('public network')
        niceCx = ndex2.create_nice_cx_from_server(server='public.ndexbio.org', uuid='72ef5c3a-caff-11e7-ad58-0ac135e8bacf') #NiceCXNetwork(server='dev2.ndexbio.org', username='******', password='******', uuid='9433a84d-6196-11e5-8ac5-06603eb7f303')
        #niceCx = ndex2.create_nice_cx_from_server(server='public.ndexbio.org', username='******', password='******', uuid='75bf1e85-1bc7-11e6-a298-06603eb7f303') #NiceCXNetwork(server='dev2.ndexbio.org', username='******', password='******', uuid='9433a84d-6196-11e5-8ac5-06603eb7f303')

        upload_message = niceCx.upload_to(upload_server, upload_username, upload_password)
        self.assertTrue(upload_message)
コード例 #5
0
    def test_example_notebook(self):
        my_network_uuid = 'd3c5ca09-bb42-11e7-94d3-0ac135e8bacf'
        my_account = "drh"
        my_password = "******"

        print("downloading network and buiding NiceCX...")
        my_network = ndex2.create_nice_cx_from_server(server='public.ndexbio.org', uuid=my_network_uuid)
        print("done")
        my_network.print_summary()

        # (for clarity, this example code is rather verbose)

        source_attribute1 = "TYPEA"
        source_attribute2 = "TYPEB"
        target_attribute = "TYPE"

        for node_id, node in my_network.nodes.items():
            value1 = my_network.get_node_attribute(node, source_attribute1)
            value2 = my_network.get_node_attribute(node, source_attribute2)
            merged_value = value1 or value2
            if merged_value:
                my_network.set_node_attribute(node, target_attribute, merged_value)
                my_network.remove_node_attribute(node, source_attribute1)
                my_network.remove_node_attribute(node, source_attribute2)

        my_network.print_summary()
コード例 #6
0
    def test_create_nice_cx_from_server_cocanet2_network(self):
        net = ndex2.create_nice_cx_from_server(
            'public.ndexbio.org', uuid='f1dd6cc3-0007-11e6-b550-06603eb7f303')

        self.assertEqual(
            'CoCaNet2', net.get_name(), "Probably failing due to this error: "
            "https://ndexbio.atlassian.net/browse/UD-2222")
コード例 #7
0
 def test_create_from_server_1(self):
     #====================================
     # BUILD NICECX FROM SERVER
     #====================================
     niceCx = ndex2.create_nice_cx_from_server(server='dev.ndexbio.org', username='******', password='******', uuid='b7190ca4-aec2-11e7-9b0a-06832d634f41') #NiceCXNetwork(server='dev.ndexbio.org', username='******', password='******', uuid='b7190ca4-aec2-11e7-9b0a-06832d634f41')
     upload_message = niceCx.upload_to(upload_server, upload_username, upload_password)
     self.assertTrue(upload_message)
コード例 #8
0
    def test_to_netx(self):
        niceCx_from_server = ndex2.create_nice_cx_from_server(server='public.ndexbio.org',
                                                               uuid='3f08d557-1e5f-11e8-b939-0ac135e8bacf')

        niceCx_from_server_to_netx = niceCx_from_server.to_networkx()

        print(niceCx_from_server_to_netx)
        self.assertTrue(niceCx_from_server_to_netx)
コード例 #9
0
    def test_to_netx(self):
        niceCx_from_server = ndex2.create_nice_cx_from_server(server='public.ndexbio.org',
                                                               uuid='3f08d557-1e5f-11e8-b939-0ac135e8bacf')

        niceCx_from_server_to_netx = niceCx_from_server.to_networkx()

        print(niceCx_from_server_to_netx)
        self.assertTrue(niceCx_from_server_to_netx)
コード例 #10
0
 def test_create_from_server_1(self):
     print('Testing: Create from serve (uuid:b7190ca4-aec2-11e7-9b0a-06832d634f41)')
     #====================================
     # BUILD NICECX FROM SERVER
     #====================================
     niceCx = ndex2.create_nice_cx_from_server(server='dev.ndexbio.org', username='******', password='******', uuid='b7190ca4-aec2-11e7-9b0a-06832d634f41') #NiceCXNetwork(server='dev.ndexbio.org', username='******', password='******', uuid='b7190ca4-aec2-11e7-9b0a-06832d634f41')
     upload_message = niceCx.upload_to(upload_server, upload_username, upload_password)
     self.assertTrue(upload_message)
コード例 #11
0
    def test_to_pandas(self):
        niceCx_from_server = ndex2.create_nice_cx_from_server(server='public.ndexbio.org',
                                                              uuid='3f08d557-1e5f-11e8-b939-0ac135e8bacf')

        niceCx_from_server_df = niceCx_from_server.to_pandas_dataframe()
        upload_message = niceCx_from_server_df
        print(upload_message)
        self.assertFalse(upload_message.empty)
コード例 #12
0
    def test_to_pandas(self):
        niceCx_from_server = ndex2.create_nice_cx_from_server(server='public.ndexbio.org',
                                                              uuid='3f08d557-1e5f-11e8-b939-0ac135e8bacf')

        niceCx_from_server_df = niceCx_from_server.to_pandas_dataframe()
        upload_message = niceCx_from_server_df
        print(upload_message)
        self.assertFalse(upload_message.empty)
コード例 #13
0
 def test_ndex_load_cx_model(self):
     niceCxBuilder = NiceCXBuilder()
     #nice_cx_from_builder = niceCxBuilder.create_from_server('http://dev2.ndexbio.org', 'scratch', 'scratch', '94766028-934d-11e7-9743-0660b7976219')
     nice_cx = ndex2.create_nice_cx_from_server(
         server='dev2.ndexbio.org',
         username='******',
         password='******',
         uuid='94766028-934d-11e7-9743-0660b7976219')
     print(nice_cx)
コード例 #14
0
def add_pathway_info(network, network_id, cytoscape_visual_properties_template_id):
    """
    Adds network
    :param network:
    :param network_id:
    :param cytoscape_visual_properties_template_id: UUID of NDEx network to
           extract various network attributes such as description, rightsHolder,
           reference, rights

    :return:
    """
    dataframe = get_signor_pathway_description_df(network_id)
    if dataframe is not None:
        template_network = ndex2.create_nice_cx_from_server(server=my_server,
                                                            uuid=cytoscape_visual_properties_template_id,
                                                            username=my_username, password=my_password)
        if not pd.isnull(dataframe.iat[0, 1]):
            network.set_name(dataframe.iat[0, 1])
        if not pd.isnull(dataframe.iat[0, 0]):
            network.set_network_attribute("labels", [dataframe.iat[0, 0]], type='list_of_string')
        if not pd.isnull(dataframe.iat[0, 3]):
            network.set_network_attribute("author", dataframe.iat[0, 3])
        if not pd.isnull(dataframe.iat[0, 2]):
            network.set_network_attribute("description",
                                          '%s %s' % (dataframe.iat[0, 2],
                                                     template_network.get_network_attribute('description')['v']))

        network.set_network_attribute('rightsHolder',
                                      template_network.get_network_attribute('rightsHolder')['v'])
        network.set_network_attribute("rights", template_network.get_network_attribute('rights')['v'])
        network.set_network_attribute("reference", template_network.get_network_attribute('reference')['v'])
        network.set_network_attribute('dataSource',
                                      'https://signor.uniroma2.it/pathway_browser.php?organism=&pathway_list=' + str(
                                          network_id))

        network.set_network_attribute("version", f"{datetime.now():%d-%b-%Y}")

        disease_pathways = ['ALZHAIMER DISEASE', 'FSGS', 'NOONAN SYNDROME', 'PARKINSON DISEASE']

        cancer_pathways = ['ACUTE MYELOID LEUKEMIA', 'COLORECTAL CARCINOMA', 'GLIOBLASTOMA MULTIFORME',
                           'LUMINAL BREAST CANCER', 'MALIGNANT MELANOMA', 'PROSTATE CANCER',
                           'RHABDOMYOSARCOMA', 'THYROID CANCER']

        network.set_network_attribute("organism", "Human, 9606, H**o sapiens")

        if signor_id_name_mapping.get(network_id).upper() in disease_pathways:
            network.set_network_attribute("networkType", "Disease Pathway")
        elif signor_id_name_mapping.get(network_id).upper() in cancer_pathways:
            network.set_network_attribute("networkType", "Cancer Pathway")
        else:
            network.set_network_attribute("networkType", "Signalling Pathway")
        # TODO: set “networkType” property depending on network
        #    a. Signalling Pathway
        #    b. Disease Pathway
        #    c. Cancer Pathway
    else:
        print('skipping ' + network_id)
コード例 #15
0
    def test_add_int_attr(self):
        niceCx = NiceCXNetwork()
        int_node = niceCx.create_node(node_name="testint")
        niceCx.add_node_attribute(property_of=int_node, name='Size', values=1, type="integer")

        upload_message = niceCx.upload_to(upload_server, upload_username, upload_password)
        UUID = upload_message.split('/')[-1]
        time.sleep(1)
        imported_cx = ndex2.create_nice_cx_from_server(server='dev.ndexbio.org', uuid=UUID, username=upload_username, password=upload_password)
        for i in imported_cx.get_node_attributes(0):
            self.assertEqual(i.get('d'), "integer")
コード例 #16
0
    def test_get_set2(self):
        niceCx = ndex2.create_nice_cx_from_server(server='public.ndexbio.org', uuid='192ce948-1e5f-11e8-b939-0ac135e8bacf')

        context = [{'ncbigene': 'http://identifiers.org/ncbigene/',
                   'hgnc.symbol': 'http://identifiers.org/hgnc.symbol/',
                   'uniprot': 'http://identifiers.org/uniprot/'}]
        niceCx.set_context(context)
        niceCx.set_name('Testing Context')
        upload_message = niceCx.upload_to('public.ndexbio.org', 'scratch', 'scratch')

        print(niceCx.__str__())
コード例 #17
0
 def test_node_data_types(self):
     self.assertFalse(upload_username == 'username')
     niceCx = ndex2.create_nice_cx_from_server(server='public.ndexbio.org', uuid='f1dd6cc3-0007-11e6-b550-06603eb7f303')
     my_aspect = []
     my_aspect.append({'node': '1', 'value': 'test1'})
     my_aspect.append({'node': '2', 'value': 'test2'})
     my_aspect.append({'node': '3', 'value': 'test3'})
     my_aspect.append({'node': '4', 'value': 'test4'})
     my_aspect.append({'node': '5', 'value': 'test5'})
     my_aspect.append({'node': '6', 'value': 'test6'})
     niceCx.add_opaque_aspect('fakeAspect', my_aspect)
     upload_message = niceCx.upload_to(upload_server, upload_username, upload_password)
     self.assertTrue(True)
コード例 #18
0
    def test_add_lst_flt(self):
        niceCx = NiceCXNetwork()
        list_float_node = niceCx.create_node(node_name="testlstflt")

        niceCx.add_node_attribute(property_of=list_float_node, name='Too many scores', values=[15.3,43.6,-34.0,43.3], type="list_of_float")

        upload_message = niceCx.upload_to(upload_server, upload_username, upload_password)
        UUID = upload_message.split('/')[-1]
        time.sleep(1)
        imported_cx = ndex2.create_nice_cx_from_server(server='dev.ndexbio.org', uuid=UUID, username=upload_username,
                                                       password=upload_password)
        for i in imported_cx.get_node_attributes(0):
            self.assertEqual(i.get('d'), "list_of_double")
コード例 #19
0
 def test_node_data_types(self):
     self.assertFalse(upload_username == 'username')
     niceCx = ndex2.create_nice_cx_from_server(server='public.ndexbio.org', uuid='f1dd6cc3-0007-11e6-b550-06603eb7f303')
     my_aspect = []
     my_aspect.append({'node': '1', 'value': 'test1'})
     my_aspect.append({'node': '2', 'value': 'test2'})
     my_aspect.append({'node': '3', 'value': 'test3'})
     my_aspect.append({'node': '4', 'value': 'test4'})
     my_aspect.append({'node': '5', 'value': 'test5'})
     my_aspect.append({'node': '6', 'value': 'test6'})
     niceCx.add_opaque_aspect('fakeAspect', my_aspect)
     upload_message = niceCx.upload_to(upload_server, upload_username, upload_password)
     self.assertTrue(True)
コード例 #20
0
 def get_networkx_object(self, ndex_uuid):
     """
     Given a NDEx uuid, this method returns
     the network as a networkx object
     :param ndex_uuid: NDEx uuid to get
     :return: networkx object upon success or None if unable to load
     """
     if ndex_uuid is None:
         logger.error('UUID passed in is None')
         return None
     logger.info('Retreiving network with uuid:  ' + ndex_uuid)
     cxnet = create_nice_cx_from_server(server=self._ndex_server,
                                        uuid=ndex_uuid)
     return cxnet.to_networkx()
コード例 #21
0
    def _get_network_from_server(self):
        """
        """

        self._network = ndex2.create_nice_cx_from_server(
            server=self._server, uuid=self._uuid, username=self._user, password=self._pass)

        #import json
        #print('edges:\n {}'.format(json.dumps(self._network.edges, indent=4)))
        #print('\nedgeAttributes:\n {}'.format(json.dumps(self._network.edgeAttributes, indent=4)))
        #print(json.dumps(self._network.edgeAttributes, indent=4))
        #logger.info('Found {:,} unique Ensembl Ids in {}\n'.format(len(ensembl_ids), self._full_file_name))

        return 0
コード例 #22
0
    def test_create_from_server_manipulate_and_save(self):
        print('Testing: Create from server and manupulate (uuid:51247435-1e5f-11e8-b939-0ac135e8bacf)')
        niceCx = ndex2.create_nice_cx_from_server(server='public.ndexbio.org', uuid='51247435-1e5f-11e8-b939-0ac135e8bacf')

        nice_networkx = niceCx.to_networkx()

        niceCx_from_netx = ndex2.create_nice_cx_from_networkx(nice_networkx)

        # Restore template
        niceCx_from_netx.apply_template('public.ndexbio.org', '51247435-1e5f-11e8-b939-0ac135e8bacf')
        niceCx_from_netx.set_name('Round trip from server to networkx to NDEx')

        upload_message = niceCx_from_netx.upload_to(upload_server, upload_username, upload_password)
        self.assertTrue(upload_message)
コード例 #23
0
    def test_create_from_server_manipulate_and_save2(self):
        print('public network')
        niceCx = ndex2.create_nice_cx_from_server(server='public.ndexbio.org', uuid='21106ea7-cbba-11e7-ad58-0ac135e8bacf')

        nice_networkx = niceCx.to_networkx()

        niceCx_from_netx   = ndex2.create_nice_cx_from_networkx(nice_networkx)

        # Restore template
        niceCx_from_netx.apply_template('public.ndexbio.org', '72ef5c3a-caff-11e7-ad58-0ac135e8bacf')
        niceCx_from_netx.set_name('Round trip from server to networkx to NDEx')

        upload_message = niceCx_from_netx.upload_to(upload_server, upload_username, upload_password)
        self.assertTrue(upload_message)
コード例 #24
0
 def _get_style_network_from_uuid(self):
     try:
         self._style_network = ndex2.create_nice_cx_from_server(
             self._style_server
             if self._style_server is not None else self._server,
             username=self._style_user
             if self._style_user is not None else self._user,
             password=self._style_pass
             if self._style_pass is not None else self._pass,
             uuid=self._style_uuid)
     except Exception as e:
         print(e)
         print("Error while loading style network from NDEx. "
               "Default style will be used instead.")
         self._style_file = _get_default_style_file_name()
         self._get_style_network_from_file()
コード例 #25
0
    def test_node_data_types2(self):
        self.assertFalse(upload_username == 'username')
        niceCx = ndex2.create_nice_cx_from_server(server='public.ndexbio.org', uuid='a18fd45e-68d5-11e7-961c-0ac135e8bacf') #NiceCXNetwork(server='dev2.ndexbio.org', username='******', password='******', uuid='9433a84d-6196-11e5-8ac5-06603eb7f303')
        found_double_type = False
        for id, node in niceCx.get_nodes():
            abc_node_attrs = niceCx.get_node_attributes(node)

            if abc_node_attrs is not None:
                for node_attr in abc_node_attrs:
                    if node_attr.get('d') == 'double':
                        found_double_type = True
                        break

        self.assertTrue(found_double_type)

        print(niceCx.__str__())
コード例 #26
0
    def test_node_data_types2(self):
        self.assertFalse(upload_username == 'username')
        niceCx = ndex2.create_nice_cx_from_server(server='public.ndexbio.org', uuid='a18fd45e-68d5-11e7-961c-0ac135e8bacf') #NiceCXNetwork(server='dev2.ndexbio.org', username='******', password='******', uuid='9433a84d-6196-11e5-8ac5-06603eb7f303')
        found_double_type = False
        for id, node in niceCx.get_nodes():
            abc_node_attrs = niceCx.get_node_attributes(node)

            if abc_node_attrs is not None:
                for node_attr in abc_node_attrs:
                    if node_attr.get('d') == 'double':
                        found_double_type = True
                        break

        self.assertTrue(found_double_type)

        print(niceCx.__str__())
コード例 #27
0
    def from_ndex(
        self,
        uuid="f93f402c-86d4-11e7-a10d-0ac135e8bacf",  #PCNet
        node_name="name",
    ):

        del self.__dict__

        network_niceCx = ndex2.create_nice_cx_from_server(
            server='public.ndexbio.org', uuid=uuid)

        network = network_niceCx.to_networkx()

        self.__init__(network=network, node_name=node_name)

        return self
コード例 #28
0
    def test_update_style(self):
        print('!!!!! WARNING !!!!!')
        print('This test will load a network with 63 Million edges.  It will take a while to run and consume a lot of RAM')
        test_uuid = '83013c93-75ca-11e8-8b82-525400c25d22'
        test_user = '******'
        test_pass = '******'
        test_server = 'dev.ndexbio.org'
        print('loading network to nice cx')
        niceCx = ndex2.create_nice_cx_from_server(server=test_server, uuid=test_uuid, username=test_user, password=test_pass)
        print('done loading network to nice cx')

        print('applying template')
        niceCx.apply_template('public.ndexbio.org', '2ccec370-6689-11e7-a03e-0ac135e8bacf')
        print('done applying template')
        print('uploading to server')
        message = niceCx.update_to(test_uuid, test_server, test_user, test_pass)
        print('FINISHED')
コード例 #29
0
    def test_node_data_types(self):
        niceCx = ndex2.create_nice_cx_from_server(
            server='public.ndexbio.org',
            uuid='fc63173e-df66-11e7-adc1-0ac135e8bacf'
        )  #NiceCXNetwork(server='dev2.ndexbio.org', username='******', password='******', uuid='9433a84d-6196-11e5-8ac5-06603eb7f303')
        found_int_type = False
        for id, node in niceCx.get_nodes():
            abc_node_attrs = niceCx.get_node_attributes(node)

            if abc_node_attrs is not None:
                for node_attr in abc_node_attrs:
                    if node_attr.get_data_type(
                    ) == ATTRIBUTE_DATA_TYPE.INTEGER:
                        found_int_type = True

        self.assertTrue(found_int_type)

        print(niceCx.__str__())
コード例 #30
0
    def _process_network_by_id(self, networkid):
        """
        Processes network by id
        :param networkid:
        :return:
        """
        if networkid is None:
            logger.error('network id is None')
            return
        network = ndex2.create_nice_cx_from_server(self._sourceserver, username=self._sourceuser,
                                                   password=self._sourcepass,
                                                   uuid=networkid)

        logger.info('NETWORK: ' + network.get_name())
        for id, node in network.get_nodes():

            raw_type = network.get_node_attribute(id, 'WP.type')
            if raw_type is None:
                continue
            raw_type = raw_type['v']

            # some nodes have empty string for name which currently screws up enrichment
            # so going to just set the type to something else for these right now
            if 'n' not in node or node['n'] is None or len(node['n']) == 0:
                node['n'] = 'unset'
                network.add_node_attribute(property_of=id, name='type', values='unsetname' + raw_type, overwrite=True)
            else:
                network.add_node_attribute(property_of=id, name='type',
                                           values=self._remap_raw_type_new_normalized_type(raw_type),
                                           overwrite=True)

        # apply style to network
        network.apply_style_from_network(self._template)

        network_update_key = self._net_summaries.get(network.get_name().upper())

        if network_update_key is not None:
            return network.update_to(network_update_key, self._server, self._user, self._pass,
                                     user_agent=self._get_user_agent())
        else:
            upload_message = network.upload_to(self._server, self._user,
                                               self._pass,
                                               user_agent=self._get_user_agent())
        return upload_message
コード例 #31
0
    def test_create_from_server_manipulate_and_save2(self):
        print('Testing: Create from server and generate networkx (uuid:51247435-1e5f-11e8-b939-0ac135e8bacf)')
        niceCx = ndex2.create_nice_cx_from_server(server='public.ndexbio.org', uuid='51247435-1e5f-11e8-b939-0ac135e8bacf')

        #serialized = pickle.dumps(niceCx.to_cx(), protocol=0)
        #print('Serialized memory:', sys.getsizeof(serialized))

        nice_networkx = niceCx.to_networkx()

        niceCx_from_netx   = ndex2.create_nice_cx_from_networkx(nice_networkx)

        # Restore template
        niceCx_from_netx.apply_template('public.ndexbio.org', '51247435-1e5f-11e8-b939-0ac135e8bacf')
        niceCx_from_netx.set_name('Round trip from server to networkx to NDEx')

        print(niceCx_from_netx)

        upload_message = niceCx_from_netx.upload_to(upload_server, upload_username, upload_password)
        self.assertTrue(upload_message)
コード例 #32
0
    def test_add_lst_int(self):
        niceCx = NiceCXNetwork()
        list_int_node = niceCx.create_node(node_name="testlstint")
        niceCx.add_node_attribute(property_of=list_int_node,
                                  name='Too many sizes',
                                  values=[1, 2, 3, 4, 5],
                                  type="list_of_integer")

        upload_message = niceCx.upload_to(upload_server, upload_username,
                                          upload_password)
        UUID = upload_message.split('/')[-1]
        time.sleep(1)
        imported_cx = ndex2.create_nice_cx_from_server(
            server='dev.ndexbio.org',
            uuid=UUID,
            username=upload_username,
            password=upload_password)
        for i in imported_cx.get_node_attributes(0):
            self.assertEqual(i.get('d'), "list_of_integer")
コード例 #33
0
    def test_add_flt(self):
        niceCx = NiceCXNetwork()
        float_node = niceCx.create_node(node_name="testflt")
        niceCx.add_node_attribute(property_of=float_node,
                                  name='Score',
                                  values=1.0,
                                  type="float")

        upload_message = niceCx.upload_to(upload_server, upload_username,
                                          upload_password)
        UUID = upload_message.split('/')[-1]
        time.sleep(1)
        imported_cx = ndex2.create_nice_cx_from_server(
            server='dev.ndexbio.org',
            uuid=UUID,
            username=upload_username,
            password=upload_password)
        for i in imported_cx.get_node_attributes(0):
            self.assertEqual(i.get('d'), "double")
コード例 #34
0
ファイル: network.py プロジェクト: shfong/DiseaseScope
    def from_ndex(
        self,
        uuid="f93f402c-86d4-11e7-a10d-0ac135e8bacf",  #PCNet
        node_name="name",
        ndex_username=None,
        ndex_password=None,
        ndex_server="http://public.ndexbio.org",
    ):

        del self.__dict__

        network_niceCx = ndex2.create_nice_cx_from_server(
            server=ndex_server,
            username=ndex_username,
            password=ndex_password,
            uuid=uuid)

        network = network_niceCx.to_networkx()

        self.__init__(network=network, node_name=node_name)

        return self
コード例 #35
0
def get_full_signor_network(load_plan, species):
    url = "https://signor.uniroma2.it/getData.php?organism=" + species # Human 9606 # mouse 10090 - Rat 10116

    df = get_full_signor_pathway_relations_df(species)

    # filter dataframe to remove rows that are not human
    human_dataframe = df[(df["entitya"] != "") & (df["entityb"] != "") & (df["ida"] != "") & (df["idb"] != "")]

    # upcase column names
    rename = {}
    for column_name in human_dataframe.columns:
        rename[column_name] = column_name.upper()

    human_dataframe = human_dataframe.rename(columns=rename)

    network = t2n.convert_pandas_to_nice_cx_with_load_plan(human_dataframe, load_plan)

    # Fix values for "DIRECT"
    for edge_id, edge in network.get_edges():
        direct = network.get_edge_attribute_value(edge_id, "DIRECT")
        # print(direct)
        if direct:
            if direct == "t":
                network.set_edge_attribute(edge, "DIRECT", "YES")
            else:
                network.set_edge_attribute(edge, "DIRECT", "NO")

    # Set prefixes for represents based on the "DATABASE" attribute
    #
    #   Note that this is a good example of a situation that calls
    #   for custom code and does not justify an extension to the load_plan
    #   Cases of this type are too variable. Custom code is easier.
    #
    for node_id, node in network.get_nodes():
        database = network.get_node_attribute_value(node_id, "DATABASE")
        represents = node.get('r')
        if database == "UNIPROT":
            represents = "uniprot:" + represents
            node['r'] = represents
        if database == "SIGNOR":
            represents = "signor:" + represents
            node['r'] = represents
        # in all other cases, the identifier is already prefixed
        network.remove_node_attribute(node_id, "DATABASE")

    template_network = ndex2.create_nice_cx_from_server(server=my_server,
                                                        uuid=cytoscape_visual_properties_template_id,
                                                        username=my_username, password=my_password)

    network.set_network_attribute("labels", template_network.get_network_attribute('labels'))
    network.set_network_attribute("author", template_network.get_network_attribute('author'))

    full_desc = ('This network contains all the ' +
                 species_mapping.get(species) +
                 ' interactions currently available in SIGNOR' +
                 template_network.get_network_attribute('description')['v'])

    network.set_network_attribute('description', full_desc)

    network.set_network_attribute("version", f"{datetime.now():%d-%b-%Y}")  # "0.0.1")

    network.set_network_attribute('rightsHolder', template_network.get_network_attribute('rightsHolder')['v'])
    network.set_network_attribute('rights', template_network.get_network_attribute('rights')['v'])
    network.set_network_attribute("reference",
                                  template_network.get_network_attribute('reference')['v'])

    return network
コード例 #36
0
    def test_creating_from_server(self):
        niceCx_from_server = ndex2.create_nice_cx_from_server(server='public.ndexbio.org', uuid='3f08d557-1e5f-11e8-b939-0ac135e8bacf')

        upload_message = niceCx_from_server.upload_to(upload_server, upload_username, upload_password)
        self.assertTrue(upload_message)
コード例 #37
0
nice_cx_from_networkx = ndex2.create_nice_cx_from_networkx(G)

# #### *ndex2.create_nice_cx_from_pandas(dataframe)

# In[ ]:

#create an Empty Pandas Dataframe
df = pd.DataFrame()
nice_cx_from_pandas = ndex2.create_nice_cx_from_pandas(df)

# #### *ndex2.create_nice_cx_from_server(server, username=None, password=None, uuid=None)

# In[ ]:

uuid = "1c69beff-1229-11e6-a039-06603eb7f303"
nice_cx_from_server = ndex2.create_nice_cx_from_server(
    server='http://public.ndexbio.org', uuid=uuid)
nice_cx_from_server.print_summary()

# #### create_node(name, represents=None)

# In[ ]:

#Starting with an Empty Network
NiceCX_creatures = NiceCXNetwork()
node_id_list = []

#create_node() method returns the new node id. IDs are always assigned in an ascending order.
#add 10 nodes to the network
for i in range(10):
    node_name = "new node" + str(i)
    node_id = NiceCX_creatures.create_node(node_name)
コード例 #38
0
    def test_creating_from_server(self):
        niceCx_from_server = ndex2.create_nice_cx_from_server(server='public.ndexbio.org', uuid='3f08d557-1e5f-11e8-b939-0ac135e8bacf')

        upload_message = niceCx_from_server.upload_to(upload_server, upload_username, upload_password)
        self.assertTrue(upload_message)
コード例 #39
0
def netprop_zscore(seed_gene_file,
                   seed_gene_file_delimiter=None,
                   num_reps=10,
                   alpha=0.5,
                   interactome_file=None,
                   interactome_uuid='f93f402c-86d4-11e7-a10d-0ac135e8bacf',
                   ndex_server='public.ndexbio.org',
                   ndex_user=None,
                   ndex_password=None,
                   out_name='out',
                   save_final_heat=False,
                   save_random_final_heats=False):
    '''Performs network heat propagation on the given interactome with the given
    seed genes, then returns the z-scores of the final heat values of each node
    in the interactome.

    The z-scores are calculated based on a null model, which is built by running
    the network propagation multiple times using randomly selected seed genes
    with similar degree distributions to the original seed gene set.

    Args:
        seed_gene_file (str): Location of file containing a delimited list of 
            seed genes.
        seed_gene_file_delimiter (str): Delimiter used to separate genes in seed
            gene file. (Default: any whitespace)
        num_reps (int): Number of times the network propagation algorithm should
            be run using random seed genes in order to build the null model.
            (Default: 10)
        alpha (float): Number between 0 and 1. Denotes the importance of the 
            propagation step in the network propagation, as opposed to the step
            where heat is added to seed genes only. Recommended to be 0.5 or
            greater. (Default: 0.5)
        interactome_file (str): Location of file containing the interactome in
            NetworkX gpickle format. Either the interactome_file argument or the
            interactome_uuid argument must be defined.
        interactome_uuid (str): UUID of the interactome on NDEx. Either the
            interactome_file argument or the interactome_uuid argument must be
            defined. (Default: The UUID of PCNet, the Parsimonious Composite
            Network: f93f402c-86d4-11e7-a10d-0ac135e8bacf)
        ndex_server (str): The NDEx server on which the interactome is stored.
            Only needs to be defined if interactome_uuid is defined. (Default: 
            ndexbio.org)
        ndex_user (str): The NDEx user that the interactome belongs to. Only
            needs to be defined if interactome_uuid is defined, and the 
            interactome is private.
        ndex_password (str): The password of the NDEx user's account. Only needs
            to be defined if interactome_uuid is defined, and the interactome is
            private.
        out_name (str): Prefix for saving output files. (Default: out)
        save_final_heat (bool): If this is set to true, then the raw network
            propagation heat scores for the original seed gene set will be saved
            in the form of a csv file in the current directory. (Default: False)
        save_random_final_heats (bool): If this is set to true, then the raw 
            network propagation heat scores for every repetition of the 
            algorithm using random seed genes will be saved in the form of a csv
            file in the current directory. (Beware: This can be a large file if 
            num_reps is large.) (Default: False)
    '''

    # TODO: INTEGRATE OUTPUT WITH network_localization.py, and network_colocalization.py
    # TODO: IMPROVE COMMENTS

    # Process arguments

    # seed_gene_file
    seed_gene_file = os.path.abspath(seed_gene_file)

    #num_reps
    try:
        num_reps = int(num_reps)
    except:
        raise TypeError("The num_reps argument should be an integer")
    #int_file and int_uuid
    if interactome_file is None and interactome_uuid is None:
        raise TypeError(
            "Either interactome_file or interactome_uuid argument must be provided"
        )

    # Load interactome
    if interactome_file is not None:
        interactome_file = os.path.abspath(interactome_file)
        interactome = nx.Graph()
        interactome = nx.read_gpickle(interactome_file)
    else:
        interactome = ndex2.create_nice_cx_from_server(
            ndex_server,
            username=ndex_user,
            password=ndex_password,
            uuid=interactome_uuid).to_networkx()
    if 'None' in interactome.nodes():
        interactome.remove_node('None')
    nodes = list(interactome.nodes)

    # print out interactome num nodes and edges for diagnostic purposes
    print('number of nodes:')
    print(len(interactome.nodes))
    print('\nnumber of edges:')
    print(len(interactome.edges))

    # Load seed genes
    seed_file = open(seed_gene_file, 'r')
    seed_genes = list(
        np.intersect1d(nodes,
                       seed_file.read().split(seed_gene_file_delimiter)))
    print('\nnumber of seed genes in interactome:')
    print(len(seed_genes))

    # Calculate individual_heats_matrix from interactome
    print('\ncalculating w_prime')
    w_prime = get_normalized_adjacency_matrix(interactome, conserve_heat=True)
    print('\ncalculating individual_heats_matrix')
    individual_heats_matrix = get_individual_heats_matrix(w_prime, alpha)

    # Calculate the z-score
    print('\nCalculating z-scores: ' + seed_gene_file)
    z_scores, final_heat, random_final_heats = calc_zscore_heat(
        individual_heats_matrix,
        nodes,
        dict(interactome.degree),
        seed_genes,
        num_reps=num_reps)

    # Save z-score results
    z_scores.to_csv('z_' + out_name + '_' + str(num_reps) + '_reps_.tsv',
                    sep='\t')

    # If save_final_heat is true, save out the final heat vectore
    if save_final_heat == 'True':
        final_heat.to_csv('final_heat_' + out_name + '_' + str(num_reps) +
                          '_reps_.tsv',
                          sep='\t')

    # If save_random_final_heats is true, save out the vector of randoms (this can be a large file)
    if save_random_final_heats == 'True':
        pd.DataFrame(random_final_heats).to_csv('Fnew_' + out_name + '_rand' +
                                                str(num_reps) + '_reps_.tsv',
                                                sep='\t')

    return z_scores, random_final_heats
コード例 #40
0
import pandas as pd
import igraph
from ndex2.nice_cx_network import NiceCXNetwork
import ndex2.client as nc
import ndex2
import networkx as nx
from fa2 import ForceAtlas2
from . import utils

SERVER = 'public.ndexbio.org'
UUID = '0dcb39d6-43b6-11e6-a5c7-06603eb7f303'


if __name__ == '__main__':
    nice_cx_network = ndex2.create_nice_cx_from_server(
        server=SEVER, uuid=UUID)
    # show the graph detail
    nice_cx_network.print_summary()
    # convert nice_cx -> pandas
    nice_cx_from_server_df = nice_cx_network.to_pandas_dataframe()

    # convert pandas -> igraph
    edgelist = nice_cx_from_server_df.iloc[:, [0, 2]]
    tuples = [tuple(x) for x in edgelist.values]
    g_original = igraph.Graph.TupleList(tuples, directed=False)

    # Pick largest subgraph
    subgraphs = g_original.decompose()
    tmp = [i.vcount() for i in subgraphs]
largeset_subgraph = subgraphs[tmp.index(max(tmp))]