Creating NiceCXNetwork objects

Note

Using the newer data model CX2Network is encouraged since all networks on NDEx can be retrieved in newer CX2 format via the NDEx REST Service

ndex2.create_nice_cx_from_file(path)[source]

Create a NiceCXNetwork() from a file that is in the CX format

Parameters:

path (str) – the path of the CX file

Raises:
  • Exception – if path is not a file

  • OSError – if there is an error opening the path file

  • JSONDecodeError – if there is an error parsing the path file with json.load()

Returns:

NiceCXNetwork

Return type:

NiceCXNetwork()

ndex2.create_nice_cx_from_raw_cx(cx)[source]

Create a NiceCXNetwork() from a as a list of dict objects in CX format

Example:

import json
import ndex2

# cx_as_str is a str containing JSON in CX format above
net_cx = ndex2.create_nice_cx_from_raw_cx(json.loads(cx_as_str))
Parameters:

cx (list) – CX as a list of dict objects

Returns:

NiceCXNetwork

Return type:

NiceCXNetwork()

ndex2.create_nice_cx_from_server(server, username=None, password=None, uuid=None, ndex_client=None)[source]

Create a NiceCXNetwork() based on a network retrieved from NDEx, specified by its UUID.

Changed in version 3.5.0: Code refactor and ndex_client parameter has been added

If the network is not public, then username and password arguments (or ndex_client with username and password set) for an account on the server with permission to access the network must be supplied.

Example usage:

import ndex2

# Download BioGRID: Protein-Protein Interactions (SARS-CoV) from NDEx
# https://www.ndexbio.org/viewer/networks/669f30a3-cee6-11ea-aaef-0ac135e8bacf
net_cx = ndex2.create_nice_cx_from_server(None, uuid='669f30a3-cee6-11ea-aaef-0ac135e8bacf')

Note

If ndex_client is not passed in, this function internally creates Ndex2 using values from parameters passed into this function.

Parameters:
  • server (str) – the URL of the NDEx server hosting the network

  • username (str) – the user name of an account with permission to access the network

  • password (str) – the password of an account with permission to access the network

  • uuid (str) – the UUID of the network

  • ndex_client (Ndex2) – Used as NDEx REST client overriding server, username and password parameters if set

Raises:

NDExError – If uuid is not specified

Returns:

NiceCXNetwork

Return type:

NiceCXNetwork()

Networkx

ndex2.create_nice_cx_from_networkx(G)[source]

Creates a NiceCXNetwork based on a networkx.Graph graph.

Changed in version 3.5.0: Major refactor to fix multiple bugs #83, #84, #90

import ndex2
import networkx as nx

G = nx.Graph()
G.add_node(1, someval=1.5, name='node 1')
G.add_node(2, someval=2.5, name='node 2')
G.add_edge(1, 2, weight=5)

print(ndex2.create_nice_cx_from_networkx(G).to_cx())

The resulting NiceCXNetwork contains the nodes, edges and their attributes from the networkx.Graph graph and also preserves the graph ‘pos’ attribute as a CX cartesian coordinates aspect CARTESIAN_LAYOUT_ASPECT with the values of Y inverted

Description of how conversion is performed:

Network:

  • Network name is set value of G.graph.get('name') or to created from networkx by ndex2.create_nice_cx_networkx() if name is None or not present

Nodes:

  • Node id is value of n from this for loop: for n, d G.nodes(data=True): if n is NOT an int, new ids starting from 0 are used

  • Node name is value of name attribute on the node or is set to id of node if name is not present.

  • Node represents is value of represents attribute on the node or set is to node name if None or not present

Edges:

  • Interaction is value of interaction attribute on the edge or is set to neighbor-of if None or not present

Note

Data types are inferred by using isinstance() and converted to corresponding CX data types. For list items, only the 1st item is examined to determine type

Parameters:

G (networkx.Graph) – Graph to convert

Raises:

Exception – if G parameter is None or there is another error in conversion

Returns:

Converted network

Return type:

NiceCXNetwork

Pandas

ndex2.create_nice_cx_from_pandas(df, source_field=None, target_field=None, source_node_attr=[], target_node_attr=[], edge_attr=[], edge_interaction=None, source_represents=None, target_represents=None)[source]

Create a NiceCXNetwork() from a pandas.DataFrame in which each row specifies one edge in the network.

Changed in version 3.5.0: Removed print statements showing progress and network name is now being set

If only the df argument is provided the pandas.DataFrame is treated as ‘SIF’ format, where the first two columns specify the source and target node ids of the edge and all other columns are ignored. The edge interaction is defaulted to “interacts-with”

If both the source_field and target_field arguments are provided, then those and any other arguments refer to headers in the pandas.DataFrame, controlling the mapping of columns to the attributes of nodes, and edges in the resulting NiceCXNetwork().

If a header is not mapped, the corresponding column is ignored.

If the edge_interaction is not specified, interaction is set to “interacts-with”

import ndex2
import pandas as pd

data = {'source': ['Node 1','Node 2'],
        'target': ['Node 2','Node 3'],
        'interaction': ['helps', 'hurts']}
df = pd.DataFrame.from_dict(data)

net = ndex2.create_nice_cx_from_pandas(df, source_field='source',
                                       target_field='target',
                                       edge_interaction='interaction')

print(net.get_nodes())
print(net.get_edges())

Note

The datatype for everything added to the network is the CX string type

Warning

This method does not handle multi-edges, use PandasDataFrameToCX2NetworkFactory from ndex2.cx2 to handle multi-edges.

Parameters:
  • df (pandas.DataFrame) – Pandas dataframe to process

  • source_field (str) – header name specifying the name of the source node.

  • target_field (str) – header name specifying the name of the target node.

  • source_node_attr (list) – list of header names specifying attributes of the source node.

  • target_node_attr (list) – list of header names specifying attributes of the target node.

  • edge_attr (list) – list of header names specifying attributes of the edge.

  • edge_interaction (str) – the relationship between the source node and the target node, defaulting to “interacts-with”

  • source_represents (str) –

  • target_represents (str) –

Returns:

NiceCXNetwork

Return type:

NiceCXNetwork()