def test_add_member_genes(self):

        net = NiceCXNetwork()
        aid = net.create_node('a')
        net.set_node_attribute(aid, NodeMemberUpdator.TYPE, 'proteinfamily')

        notinid = net.create_node('x')
        net.set_node_attribute(notinid, NodeMemberUpdator.TYPE,
                               'proteinfamily')

        mock = GeneSymbolSearcher(bclient=None)
        mock.get_symbol = MagicMock(side_effect=['', None])
        updator = NodeMemberUpdator(None, None, genesearcher=mock)

        aidnode = net.get_node(aid)
        res = updator._add_member_genes(net, aidnode, [])
        self.assertEqual(['No proteins obtained for node: ' + str(aidnode)],
                         res)

        notinidnode = net.get_node(notinid)
        res = updator._add_member_genes(net, notinidnode, ['x'])
        self.assertTrue('For node ' + str(notinidnode) +
                        ' No gene symbol found for x. Skipping.' in res)

        self.assertTrue('Not a single gene symbol found. Skipping insertion '
                        'of member attribute for node ' +
                        str(notinidnode) in res)
Exemple #2
0
 def test_set_node_attribute_passing_empty_dict(self):
     # try int
     net = NiceCXNetwork()
     try:
         net.set_node_attribute({}, 'attrname', 5)
         self.fail('Expected NDExError')
     except NDExError as ne:
         self.assertEqual(str(ne), 'No id found in Node')
Exemple #3
0
 def test_set_node_attribute_passing_node_object(self):
     # try int
     net = NiceCXNetwork()
     node_id = net.create_node(node_name='foo')
     node = net.get_node(node_id)
     net.set_node_attribute(node, 'attrname', 5)
     res = net.get_node_attributes(node_id)
     self.assertEqual(len(res), 1)
     self.assertEqual(res[0][constants.NODE_ATTR_PROPERTYOF], node_id)
     self.assertEqual(res[0][constants.NODE_ATTR_NAME], 'attrname')
     self.assertEqual(res[0][constants.NODE_ATTR_VALUE], 5)
     self.assertEqual(res[0][constants.NODE_ATTR_DATATYPE], 'integer')
Exemple #4
0
    def test_set_node_attribute_none_values(self):
        net = NiceCXNetwork()
        try:
            net.set_node_attribute(None, 'foo', 'blah')
            self.fail('Expected exception')
        except NDExError as ne:
            self.assertEqual(str(ne), 'Node attribute requires property_of')

        try:
            net.set_node_attribute('hi', None, 'blah')
            self.fail('Expected exception')
        except NDExError as ne:
            self.assertEqual(str(ne), 'Node attribute requires the name and '
                                      'values property')
Exemple #5
0
    def test_set_node_attribute_empty_add_overwrite_toggled(self):
        net = NiceCXNetwork()
        net.set_node_attribute(1, 'attrname', 'value')
        res = net.get_node_attributes(1)
        self.assertEqual(len(res), 1)
        self.assertEqual(res[0][constants.NODE_ATTR_PROPERTYOF], 1)
        self.assertEqual(res[0][constants.NODE_ATTR_NAME], 'attrname')
        self.assertEqual(res[0][constants.NODE_ATTR_VALUE], 'value')

        net = NiceCXNetwork()
        net.set_node_attribute(1, 'attrname', 1, type='double')
        res = net.get_node_attributes(1)
        self.assertEqual(len(res), 1)
        self.assertEqual(res[0][constants.NODE_ATTR_PROPERTYOF], 1)
        self.assertEqual(res[0][constants.NODE_ATTR_NAME], 'attrname')
        self.assertEqual(res[0][constants.NODE_ATTR_VALUE], 1)

        net = NiceCXNetwork()
        net.set_node_attribute(1, 'attrname', 'value', overwrite=True)
        res = net.get_node_attributes(1)
        self.assertEqual(len(res), 1)
        self.assertEqual(res[0][constants.NODE_ATTR_PROPERTYOF], 1)
        self.assertEqual(res[0][constants.NODE_ATTR_NAME], 'attrname')
        self.assertEqual(res[0][constants.NODE_ATTR_VALUE], 'value')

        net = NiceCXNetwork()
        net.set_node_attribute(1, 'attrname', 1, type='double',
                               overwrite=True)
        res = net.get_node_attributes(1)
        self.assertEqual(len(res), 1)
        self.assertEqual(res[0][constants.NODE_ATTR_PROPERTYOF], 1)
        self.assertEqual(res[0][constants.NODE_ATTR_NAME], 'attrname')
        self.assertEqual(res[0][constants.NODE_ATTR_VALUE], 1)
Exemple #6
0
    def test_set_node_attribute_add_duplicate_attributes_overwriteset(self):
        net = NiceCXNetwork()
        net.set_node_attribute(1, 'attrname', 'value', overwrite=True)
        res = net.get_node_attributes(1)
        self.assertEqual(len(res), 1)
        self.assertEqual(res[0][constants.NODE_ATTR_PROPERTYOF], 1)
        self.assertEqual(res[0][constants.NODE_ATTR_NAME], 'attrname')
        self.assertEqual(res[0][constants.NODE_ATTR_VALUE], 'value')

        net.set_node_attribute(1, 'attrname', 'value2', overwrite=True)
        res = net.get_node_attributes(1)
        self.assertEqual(len(res), 1)
        self.assertEqual(res[0][constants.NODE_ATTR_PROPERTYOF], 1)
        self.assertEqual(res[0][constants.NODE_ATTR_NAME], 'attrname')
        self.assertEqual(res[0][constants.NODE_ATTR_VALUE], 'value2')
    def test_update_network_containing_all_types(self):
        pfdict = {'a': ['2', '3'], 'SIGNOR-PF10': ['7', '8']}
        cdict = {'e': ['5', '6'], 'SIGNOR-C1': ['9', '10']}

        net = NiceCXNetwork()
        aid = net.create_node('a')
        net.set_node_attribute(aid, NodeMemberUpdator.TYPE, 'proteinfamily')

        eid = net.create_node('e')
        net.set_node_attribute(eid, NodeMemberUpdator.TYPE, 'complex')

        oid = net.create_node('c')

        o2id = net.create_node('d')
        net.set_node_attribute(o2id, NodeMemberUpdator.TYPE, 'protein')

        notinid = net.create_node('x')
        net.set_node_attribute(notinid, NodeMemberUpdator.TYPE,
                               'proteinfamily')

        notinid2 = net.create_node('y')
        net.set_node_attribute(notinid2, NodeMemberUpdator.TYPE, 'complex')

        mock = GeneSymbolSearcher(bclient=None)
        mock.get_symbol = MagicMock(side_effect=['AA', 'BB', 'CC', 'DD'])
        updator = NodeMemberUpdator(pfdict, cdict, genesearcher=mock)
        res = updator.update(net)
        self.assertTrue(
            "No entry in proteinfamily map for node: {'@id': 4, 'n': 'x', 'r': 'x'}"
            in res)
        self.assertTrue(
            "No entry in complexes map for node: {'@id': 5, 'n': 'y', 'r': 'y'}"
            in res)

        res = net.get_node_attribute(aid, NodeMemberUpdator.MEMBER)
        self.assertTrue('hgnc.symbol:AA' in res['v'])
        self.assertTrue('hgnc.symbol:BB' in res['v'])

        res = net.get_node_attribute(eid, NodeMemberUpdator.MEMBER)
        self.assertTrue('hgnc.symbol:CC' in res['v'])
        self.assertTrue('hgnc.symbol:DD' in res['v'])

        res = net.get_node_attribute(oid, NodeMemberUpdator.MEMBER)
        self.assertEqual(None, res)

        res = net.get_node_attribute(o2id, NodeMemberUpdator.MEMBER)
        self.assertEqual(None, res)
Exemple #8
0
    def test_remove_node_from_network_with_edges_and_attrs(self):
        net = NiceCXNetwork()
        node_id = net.create_node('node1', node_represents='ha')
        other_node_id = net.create_node('node2', node_represents='ha')
        edge_id = net.create_edge(edge_source=node_id,
                                  edge_target=other_node_id,
                                  edge_interaction='activates')

        net.set_node_attribute(node_id, 'nodeattr', values='foo')
        net.set_node_attribute(node_id, 'nodeattr2', values='foo2')

        net.set_edge_attribute(edge_id, 'edgeattr', values='hello')
        net.set_edge_attribute(edge_id, 'edgeattr2', values='hello2')

        nef = NetworkNodeFactory()
        nn = nef.get_network_node_from_network(net_cx=net, node_id=node_id)

        nn.remove_node_from_network(net_cx=net)

        self.assertEqual(1, len(net.get_nodes()))
        self.assertEqual(0, len(net.get_edges()))
Exemple #9
0
    def test_set_node_attribute_empty_add_autodetect_datatype(self):

        # try int
        net = NiceCXNetwork()
        net.set_node_attribute(1, 'attrname', 5)
        res = net.get_node_attributes(1)
        self.assertEqual(len(res), 1)
        self.assertEqual(res[0][constants.NODE_ATTR_PROPERTYOF], 1)
        self.assertEqual(res[0][constants.NODE_ATTR_NAME], 'attrname')
        self.assertEqual(res[0][constants.NODE_ATTR_VALUE], 5)
        self.assertEqual(res[0][constants.NODE_ATTR_DATATYPE], 'integer')

        # try double/float
        net = NiceCXNetwork()
        net.set_node_attribute(1, 'attrname', 5.5)
        res = net.get_node_attributes(1)
        self.assertEqual(len(res), 1)
        self.assertEqual(res[0][constants.NODE_ATTR_PROPERTYOF], 1)
        self.assertEqual(res[0][constants.NODE_ATTR_NAME], 'attrname')
        self.assertEqual(res[0][constants.NODE_ATTR_VALUE], 5.5)
        self.assertEqual(res[0][constants.NODE_ATTR_DATATYPE], 'double')

        # try list of string
        net = NiceCXNetwork()
        net.set_node_attribute(1, 'attrname', ['hi', 'bye'])
        res = net.get_node_attributes(1)
        self.assertEqual(len(res), 1)
        self.assertEqual(res[0][constants.NODE_ATTR_PROPERTYOF], 1)
        self.assertEqual(res[0][constants.NODE_ATTR_NAME], 'attrname')
        self.assertEqual(res[0][constants.NODE_ATTR_VALUE], ['hi', 'bye'])
        self.assertEqual(res[0][constants.NODE_ATTR_DATATYPE],
                         'list_of_string')
    def test_update_network_containing_all_types(self):
        updator = UpdatePrefixesForNodeRepresents()
        net = NiceCXNetwork()

        uni_one = net.create_node('somenode', node_represents='rep1')
        net.set_node_attribute(uni_one, 'DATABASE', 'UNIPROT')

        uni_two = net.create_node('somenode2', node_represents='uniprot:rep2')
        net.set_node_attribute(uni_two, 'DATABASE', 'UNIPROT')

        sig_one = net.create_node('somenode3', node_represents='rep3')
        net.set_node_attribute(sig_one, 'DATABASE', 'SIGNOR')

        sig_two = net.create_node('somenode4', node_represents='signor:rep4')
        net.set_node_attribute(sig_two, 'DATABASE', 'SIGNOR')

        other = net.create_node('somenode5', node_represents='blah:rep5')
        net.set_node_attribute(other, 'DATABASE', 'other')

        self.assertEqual([], updator.update(net))

        res = net.get_node(uni_one)
        self.assertEqual('uniprot:rep1', res['r'])
        self.assertEqual(None, net.get_node_attribute(uni_one, 'DATABASE'))

        res = net.get_node(uni_two)
        self.assertEqual('uniprot:rep2', res['r'])
        self.assertEqual(None, net.get_node_attribute(uni_two, 'DATABASE'))

        res = net.get_node(sig_one)
        self.assertEqual('signor:rep3', res['r'])
        self.assertEqual(None, net.get_node_attribute(sig_one, 'DATABASE'))

        res = net.get_node(sig_two)
        self.assertEqual('signor:rep4', res['r'])
        self.assertEqual(None, net.get_node_attribute(sig_two, 'DATABASE'))

        res = net.get_node(other)
        self.assertEqual('blah:rep5', res['r'])
        self.assertEqual(None, net.get_node_attribute(other, 'DATABASE'))
    def test_update_network_containing_all_types(self):
        updator = SpringLayoutUpdator()
        net = NiceCXNetwork()

        comp_attr = NodeLocationUpdator.LOCATION
        ecnode = net.create_node(node_name='ecnode', node_represents='ecnoder')
        net.set_node_attribute(ecnode, comp_attr,
                               SpringLayoutUpdator.EXTRACELLULAR)

        rnode = net.create_node(node_name='rnode', node_represents='rnoder')
        net.set_node_attribute(rnode, comp_attr,
                               SpringLayoutUpdator.RECEPTOR)

        cnode = net.create_node(node_name='cnode', node_represents='cnoder')
        net.set_node_attribute(cnode, comp_attr,
                               SpringLayoutUpdator.CYTOPLASM)

        fnode = net.create_node(node_name='fnode', node_represents='fnoder')
        net.set_node_attribute(fnode, comp_attr,
                               SpringLayoutUpdator.FACTOR)

        pnode = net.create_node(node_name='pnode', node_represents='pnoder')
        net.set_node_attribute(pnode, comp_attr,
                               SpringLayoutUpdator.PHENOTYPESLIST)

        xnode = net.create_node(node_name='xnode', node_represents='xnoder')
        self.assertEqual([], updator.update(net))

        res = net.get_opaque_aspect(SpringLayoutUpdator.CARTESIAN_LAYOUT)

        ydict = {}
        for entry in res:
            ydict[entry['node']] = entry['y']
        self.assertTrue(ydict[ecnode] < 0.0)
        self.assertTrue(ydict[rnode] < 0.0)
        self.assertTrue(ydict[cnode] > -100.0)

        self.assertTrue(ydict[fnode] > 0.0)
        self.assertTrue(ydict[pnode] > 0.0)
Exemple #12
0
    def test_update_network_containing_all_types(self):
        updator = NodeLocationUpdator()
        net = NiceCXNetwork()

        comp_attr = NodeLocationUpdator.LOCATION
        no_attr = net.create_node('somenode', node_represents='rep1')

        e_attr = net.create_node('somenode2', node_represents='uniprot:rep2')
        net.set_node_attribute(e_attr, NodeLocationUpdator.LOCATION, '')

        o_attr = net.create_node('somenode2', node_represents='uniprot:rep2')
        net.set_node_attribute(o_attr, NodeLocationUpdator.LOCATION, 'blah')

        self.assertEqual([], updator.update(net))

        self.assertEqual(NodeLocationUpdator.CYTOPLASM,
                         net.get_node_attribute(no_attr, comp_attr)['v'])

        self.assertEqual(NodeLocationUpdator.CYTOPLASM,
                         net.get_node_attribute(e_attr, comp_attr)['v'])

        self.assertEqual('blah',
                         net.get_node_attribute(o_attr, comp_attr)['v'])
Exemple #13
0
    node_id_list.append(node_id)
print(node_id_list)

# #### add_node(node)

# In[ ]:

#This method has been deprecated. Please use create_node()

# #### set_node_attribute(node, attribute_name, values, type=None, subnetwork=None)

# In[ ]:

NiceCX_creatures = NiceCXNetwork()
node_id = NiceCX_creatures.create_node("new node")
NiceCX_creatures.set_node_attribute(node_id, "new attribute",
                                    "new attribute value is xxxx")

# #### *add_node_attribute(node,  attribute_name, values)

# In[ ]:

NiceCX_creatures = NiceCXNetwork()
node_id = NiceCX_creatures.create_node("new node")
NiceCX_creatures.add_node_attribute(node_id, "new attribute",
                                    "new attribute value is xxxx")

# #### get_node_attribute(node, attribute_name, subnetwork=None)

# In[ ]:

NiceCX_creatures = NiceCXNetwork()
Exemple #14
0
    def test_one_node_network(self):
        net = NiceCXNetwork()
        node_one = net.create_node('first')

        net.set_node_attribute(node_one,
                               'booleanattrib',
                               'false',
                               type='boolean')
        net.set_node_attribute(node_one, 'integerattrib', '1', type='integer')
        net.set_node_attribute(node_one, 'doubleattrib', '2.0', type='double')
        net.set_node_attribute(node_one, 'longattrib', '3', type='long')
        net.set_node_attribute(node_one,
                               'stringattrib',
                               'false',
                               type='string')

        net.set_node_attribute(node_one,
                               'list_of_booleanattrib', ['True'],
                               type='list_of_boolean')
        net.set_node_attribute(node_one,
                               'list_of_doubleattrib', ['4.0'],
                               type='list_of_double')
        net.set_node_attribute(node_one,
                               'list_of_integerattrib', ['5'],
                               type='list_of_integer')
        net.set_node_attribute(node_one,
                               'list_of_longattrib', ['6'],
                               type='list_of_long')
        net.set_node_attribute(node_one,
                               'list_of_stringattrib', ['false'],
                               type='list_of_string')

        net.set_name('bob')
        fac = DefaultNetworkXFactory()
        g = fac.get_graph(net)
        self.assertEqual('bob', g.graph['name'])
        self.assertEqual(1, len(g))
        self.assertEqual(0, g.number_of_edges())
        self.assertTrue(0 in g)

        if NETWORKX_MAJOR_VERSION >= 2:
            nodelist = list(g.nodes(data=True))
        else:
            nodelist = g.nodes(data=True)

        self.assertEqual('false', nodelist[0][1]['booleanattrib'])
        self.assertEqual('1', nodelist[0][1]['integerattrib'])
        self.assertEqual('2.0', nodelist[0][1]['doubleattrib'])
        self.assertEqual('3', nodelist[0][1]['longattrib'])
        self.assertEqual('false', nodelist[0][1]['stringattrib'])

        self.assertEqual(['True'], nodelist[0][1]['list_of_booleanattrib'])
        self.assertEqual(['4.0'], nodelist[0][1]['list_of_doubleattrib'])
        self.assertEqual(['5'], nodelist[0][1]['list_of_integerattrib'])
        self.assertEqual(['6'], nodelist[0][1]['list_of_longattrib'])
        self.assertEqual(['false'], nodelist[0][1]['list_of_stringattrib'])