Security News
PyPI’s New Archival Feature Closes a Major Security Gap
PyPI now allows maintainers to archive projects, improving security and helping users make informed decisions about their dependencies.
.. _NDEx: http://ndexbio.org .. _NDEx REST Server API: http://home.ndexbio.org/using-the-ndex-server-api
.. image:: https://app.travis-ci.com/ndexbio/ndex2-client.svg?branch=master :target: https://app.travis-ci.com/ndexbio/ndex2-client
.. image:: https://img.shields.io/pypi/v/ndex2.svg :target: https://pypi.python.org/pypi/ndex2
.. image:: https://coveralls.io/repos/github/ndexbio/ndex2-client/badge.svg?branch=master :target: https://coveralls.io/github/ndexbio/ndex2-client?branch=master
.. image:: https://readthedocs.org/projects/ndex2/badge/?version=latest :target: https://ndex2.readthedocs.io/en/latest/?badge=latest :alt: Documentation Status
The NDEx2 Python Client provides methods to access NDEx_ via
the NDEx REST Server API
_. As well as methods for common operations on
networks via the NiceCXNetwork class.
six <https://pypi.org/project/six>
__ijson <https://pypi.org/project/ijson>
__requests <https://pypi.org/project/requests>
__requests_toolbelt <https://pypi.org/project/requests_toolbelt>
__networkx <https://pypi.org/project/networkx>
__urllib3 <https://pypi.org/project/urllib3>
__pandas <https://pypi.org/project/pandas>
__enum34 <https://pypi.org/project/enum34>
__ (Python < 3.4)numpy <https://pypi.org/project/numpy>
__enum <https://pypi.org/project/enum>
__ (Python 2.6 & 2.7)Python 3.5+
.. note::
Python < 3.5 may have some issues
The NDEx2 Python Client module can be installed from the Python Package Index (PyPI) repository using PIP:
::
pip install ndex2
If you already have an older version of the ndex2 module installed, you can use this command instead:
::
pip install --upgrade ndex2
documentation <https://ndex2.readthedocs.io/en/latest/>
_ is available on Read the Docs.Jupyter Notebook Tutorials <https://github.com/ndexbio/ndex-jupyter-notebooks>
_ GitHub repository for code examples to work with networks using the NDEx2 Python Client and NiceCX object class.See LICENSE.txt <https://github.com/ndexbio/ndex2-client/blob/master/LICENSE.txt>
_
Enhancements
store_layout_in_pos
argument in get_graph
method of CX2NetworkXFactory
that saves layout
coordinates in G.pos (x and y) and G.zpos (z).get_layout_from_pos
argument in get_cx2network
method of NetworkXToCX2NetworkFactory
that
determines the source of the layout coordinates. If True, the layout is derived from G.pos (x and y) and G.zpos.
If False, the layout uses the (x, y, z) values specified as the node attributes.interaction_col
argument in get_cx2network
of PandasDataFrameToCX2NetworkFactory
that allows to
specify the name of the column with edge interactionsBug fixes
Enhancements
set_name()
, remove_node_attribute()
, remove_edge_attribute
,
get_opaque_aspect()
, and set_opaque_aspect()
to CX2Network
class.Bug fixes
add_network_attribute()
, add_node_attribute()
, add_edge_attribute()
, lookup_node_id_by_name()
to CX2Network
class.get_cx2network
in PandasDataFrameToCX2NetworkFactory
to make it easier to convert Pandas Dataframe.get_nodelist_table()
to CX2NetworkPandasDataFrameFactory
class.CX2NetworkXFactory
under cx2.py
module to convert
CX2Network
object to NetworkX Graph <https://networkx.org>
__NetworkXToCX2NetworkFactory
under cx2.py
module to convert
NetworkX Graph <https://networkx.org>
__ to CX2Network
objectPandasDataFrameToCX2NetworkFactory
under cx2.py
module to
convert Pandas DataFrame <https://pandas.org>
__ to CX2Network
objectCX2NetworkPandasDataFrameFactory
under cx2.py
module to convert
CX2Network
object to Pandas DataFrame <https://pandas.org>
__Enhancements
CX2Network
class under cx2.py
module to represent networks CX2 format <https://cytoscape.org/cx/cx2/specification/cytoscape-exchange-format-specification-(version-2)/>
__RawCX2NetworkFactory
class under cx2.py
to create CX2Network
objectsNoStyleCXToCX2NetworkFactory
class under cx2.py
to convert NiceCXNetwork
to CX2Network
Bug fixes
Issue #92 <https://github.com/ndexbio/ndex2-client/issues/92>
__ndex2.create_nice_cx_from_networkx()
fails with numpy version 1.24
Issue #96 <https://github.com/ndexbio/ndex2-client/issues/96>
__client.py
to only pass credentials if they are
set. This change is to accommodate changes in upcoming version 3 of requests libraryEnhancements
Added skip_version_check parameter to Ndex2()
constructor to let caller
optionally bypass NDEx server call to see if v2 endpoint is supported
Added the following CX2 methods to Ndex2()
client:
get_network_as_cx2_stream()
, get_network_aspect_as_cx2_stream()
,
save_cx2_stream_as_new_network()
,
save_new_cx2_network()
, and update_cx2_network()
Issue #87 <https://github.com/ndexbio/ndex2-client/issues/87>
__
In Ndex2()
client, methods that raise NDExError
exceptions from calls
to NDEx server will now raise the more specific NDExUnauthorizedError
subclass when the response from NDEx server is a 401 aka unauthorized.
Added new parameters dataconverter and include_attributes to NiceCXNetwork.to_pandas_dataframe()
.
dataconverter parameter specifies data type conversion and include_attributes parameter lets
caller specify whether all node/edge attributes are added to the resulting DataFrame
Added new parameter to ndex2.create_nice_cx_from_server()
named ndex_client
that lets caller specify NDex2()
client object to use.
Passing None
for the server positional parameter into ndex2.create_nice_cx_from_server(None, uuid='XXXX')
will default to the production
NDEx server
Bug fixes
Fixed bug where creation of NiceCXNetwork
from networkx via ndex2.create_nice_cx_from_networkx()
incorrectly set the data type for boolean values to integer.
Issue #83 <https://github.com/ndexbio/ndex2-client/issues/83>
__
Fixed bug where converting NiceCXNetwork
to networkx and back does not handle
name attribute correctly. Issue #84 <https://github.com/ndexbio/ndex2-client/issues/84>
__
Fixed bug where @context
was lost if it was set as aspect in CX format and loaded
into NiceCXNetwork object.
Issue #88 <https://github.com/ndexbio/ndex2-client/issues/88>
__
Fixed bug where creation of NiceCXNetwork
from networkx via ndex2.create_nice_cx_from_networkx()
incorrectly set the data type for empty list to string.
Issue #90 <https://github.com/ndexbio/ndex2-client/issues/90>
__
Fixed bug where Y coordinates of nodes would be inverted when converting to/from
networkx from NiceCXNetwork
. This was due to differences in coordinate systems
between networkx and NiceCXNetwork
DefaultNetworkXFactory
networkx converter (used by NiceCXNetwork.to_networkx(mode='default')
)
no longer converts edge attributes that are of type list into strings delimited by
commas
Fixed bug where ndex2.create_nice_cx_from_server()
failed on networks
with provenanceHistory
aspect
Removals
Removed unused test methods from internal class NiceCXBuilder
:
load_aspect()
, stream_aspect()
, stream_aspect_raw()
Removed the following deprecated methods from NiceCXNetwork
:
add_node()
, add_edge()
, get_edge_attribute_object()
,
get_node_attribute_objects()
, get_edge_attribute_objects()
,
add_metadata()
, get_provenance()
, set_provenance()
,
__merge_node_attributes()
, create_from_pandas()
,
create_from_networkx()
, create_from_server()
, upload_new_network_stream()
, &
create_from_cx()
Added offset and limit parameters to Ndex2.get_network_ids_for_user()
to enable
retrieval of all networks for a user.
Issue #78 <https://github.com/ndexbio/ndex2-client/issues/78>
__
Switched NiceCXNetwork.upload_to()
to named arguments and added client parameter.
Issue #80 <https://github.com/ndexbio/ndex2-client/issues/80>
__
Switched NiceCXNetwork.update_to()
to named arguments and added client parameter.
Issue #81 <https://github.com/ndexbio/ndex2-client/issues/81>
__
Fixed documentation NiceCXNetwork.update_to()
to correctly state method returns empty
string upon success.
Issue #82 <https://github.com/ndexbio/ndex2-client/issues/82>
__
Fixed bug in NiceCXNetwork.set_opaque_aspect()
where passing None
in the aspect_elements
parameter raised an error instead of removing the aspect
Added Ndex2.get_user_by_id()
method to get user information by NDEx user Id.
Added Ndex2.get_id_for_user()
method to get NDEx user Id by username.
Added Ndex2.get_networksets_for_user_id()
to get Network Sets for a given user Id.
Issue #61 <https://github.com/ndexbio/ndex2-client/issues/61>
__
Improved documentation by adding intersphinx to provide links to python documentation for python objects.
NiceCXNetwork.to_networkx()
fails with ValueError
when installed
networkx version has X.Y.Z format (example: 2.5.1)
Issue #79 <https://github.com/ndexbio/ndex2-client/issues/79>
_Fixed bug where NiceCXNetwork.create_node()
and .create_edge()
overwrote existing nodes/edges.
Issue #60 <https://github.com/ndexbio/ndex2-client/issues/60>
_
Fixed bug where enum34
package would be unnecessarily installed on versions of Python 3.4 and newer.
Issue #76 <https://github.com/ndexbio/ndex2-client/issues/76>
_
Improved documentation for Ndex2.set_network_properties()
method.
Issue #77 <https://github.com/ndexbio/ndex2-client/issues/77>
_
Added MANIFEST.in
file to include README.rst, HISTORY.rst, and LICENSE.txt
files as well as documentation and tests so python setup.py install
will work properly on distribution of this client on PyPI. Thanks to Ben G. for catching this. Issue #62 <https://github.com/ndexbio/ndex2-client/pull/62>
_
Minor updates to README.rst
Fixed bug where if server version is not 2.0 exactly then Ndex2()
object incorrectly falls back to version of 1.3 of REST calls
Issue #40 <https://github.com/ndexbio/ndex2-client/issues/40>
_
Fixed bug in NiceCXNetwork.add_network_attribute()
method where type not properly reset when adding duplicate attribute
Issue #50 <https://github.com/ndexbio/ndex2-client/issues/50>
_
Added delete_networksets()
method to Ndex2 client to allow deletion of networksets Issue #59 <https://github.com/ndexbio/ndex2-client/issues/59>
_
Verify consistent conversion of CX for networkx 1.11 and 2.0+
Issue #30 <https://github.com/ndexbio/ndex2-client/issues/30>
_
NiceCXNetwork.get_nodes()
, NiceCXNetwork.get_edges()
, NiceCXNetwork.get_metadata()
needs to make correct iterator call in Python 2
Issue #44 <https://github.com/ndexbio/ndex2-client/issues/44>
_
Add NiceCXNetwork.get_network_attribute_names()
function enhancement
Issue #45 <https://github.com/ndexbio/ndex2-client/issues/45>
_
NiceCXNetwork.create_edge()
fails to correctly create edge when node dict passed in
Issue #46 <https://github.com/ndexbio/ndex2-client/issues/46>
_
Issue #43 <https://github.com/ndexbio/ndex2-client/issues/43>
_In NiceCXNetwork class ability to add to User-Agent for calls to NDEx service
Issue #36 <https://github.com/ndexbio/ndex2-client/issues/36>
_
Methods in ndex2/client.py
should raise an NDExError for invalid credentials
Issue #39 <https://github.com/ndexbio/ndex2-client/issues/39>
_
Add timeout flag to all web request calls
Issue #33 <https://github.com/ndexbio/ndex2-client/issues/33>
_
Update User-Agent
to reflect actual version of software
Issue #35 <https://github.com/ndexbio/ndex2-client/issues/35>
_
NiceCXNetwork.set_node_attribute()
incorrectly handles duplicate attributes
Issue #41 <https://github.com/ndexbio/ndex2-client/issues/41>
_
NiceCXNetwork.set_node_attribute()
fails if node object passed to it
Issue #42 <https://github.com/ndexbio/ndex2-client/issues/42>
_
Passing None to user_agent parameterin Ndex2()
constructor raises TypeError
Issue #34 <https://github.com/ndexbio/ndex2-client/issues/34>
_
Ndex2()
constructor does not properly handle invalid json from server
Issue #28 <https://github.com/ndexbio/ndex2-client/issues/28>
_
Eliminate circular import between ndex2 and ndex2cx/nice_cx_builder.py
Issue #31 <https://github.com/ndexbio/ndex2-client/issues/31>
_
Replace print statements with logging calls in ndex2/client.py
Issue #32 <https://github.com/ndexbio/ndex2-client/issues/32>
_
Issue #26 <https://github.com/ndexbio/ndex2-client/issues/26>
_FAQs
Nice CX Python includes a client and a data model.
We found that ndex2 demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
PyPI now allows maintainers to archive projects, improving security and helping users make informed decisions about their dependencies.
Research
Security News
Malicious npm package postcss-optimizer delivers BeaverTail malware, targeting developer systems; similarities to past campaigns suggest a North Korean connection.
Security News
CISA's KEV data is now on GitHub, offering easier access, API integration, commit history tracking, and automated updates for security teams and researchers.