Metadata-Version: 2.1
Name: ndexutil
Version: 0.6.1
Summary: Unsupported NDEx utilities
Home-page: https://github.com/ndexbio/ndexutils
Author: The NDEx Project
Author-email: contact@ndexbio.org
License: BSD
Keywords: network analysis biology
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Natural Language :: English
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Classifier: Topic :: Scientific/Engineering :: Medical Science Apps.
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python :: 3.6
Requires-Dist: ndex2 (<=4.0.0,>=3.1.0a1)
Requires-Dist: requests
Requires-Dist: requests-toolbelt
Requires-Dist: networkx
Requires-Dist: urllib3 (>=1.16)
Requires-Dist: pandas
Requires-Dist: mygene
Requires-Dist: enum34
Requires-Dist: jsonschema
Requires-Dist: biothings-client
Requires-Dist: enum ; python_version == "2.6" or python_version == "2.7"

ndex-python-utilities
=====================

**Warning: This repository is for development and features may change.
Please use this at your own risk.**


Dependencies
------------

* `ndex2 <https://pypi.org/project/ndex2>`_
* `networkx <https://pypi.org/project/networkx>`_
* `ndexutil <https://pypi.org/project/ndexutil>`_
* `biothings_client <https://pypi.org/project/biothings-client>`_
* `requests <https://pypi.org/project/requests>`_
* `requests-toolbelt <https://pypi.org/project/requests_toolbelt>`_
* `pandas <https://pypi.org/project/pandas>`_
* `mygene <https://pypi.org/project/mygene>`_
* `enum34 <https://pypi.org/project/enum34>`_
* `jsonschema <https://pypi.org/project/jsonschema>`_
* `urllib3 <https://pypi.org/project/urllib3>`_

Compatibility
-------------

* Python 3.3+

Installation
------------

.. code-block::

   git clone https://github.com/ndexbio/ndexutils
   cd ndexutils
   make dist
   pip install dist/ndexutil*whl

OR via `PyPI <https://pypi.org/ndexutils>`_

.. code-block::

   pip install ndexutil


TSV Loader
----------

This module contains the Tab Separated Variable Loader (TSV Loader) which generates
an `NDEx CX <http://www.home.ndexbio.org/data-model/>`_ file from a tab separated
text file of edge data and attributes.

To load data a load plan must be created. This plan tells the loader how to map the
columns in the file to nodes, and edges. This load plan needs to validate against
`this load plan JSON schema <https://github.com/ndexbio/ndexutils/blob/master/ndexutil/tsv/loading_plan_schema.json>`_

**Example TSV file**

.. code-block::

    SOURCE  TARGET  WEIGHT
    ABCD    AAA1    0.555
    GGGG    BBBB    0.305

**SOURCE** is the source node, **TARGET** is target node

A schema that could be:

.. code-block::

    {
    "source_plan":
        {
            "node_name_column": "SOURCE"
        },
        "target_plan":
        {
            "node_name_column": "TARGET"
        },
        "edge_plan":
        {
            "default_predicate": "unknown",
            "property_columns": [
              {
                "column_name": "WEIGHT",
                "attribute_name": "weight",
                "data_type": "double"
              }
            ]
        }
    }



Example below assumes the following:

* **./loadplan.json** is the load plan in JSON format
* **./style.cx** is a `NDEx CX <http://www.home.ndexbio.org/data-model/>`_ with a style.

.. code-block::

    import ndex2
    from ndexutil.tsv.streamtsvloader import StreamTSVLoader

    # using ndex2 client library read CX file as NiceCXNetwork object
    style_network = ndex2.create_nice_cx_from_file('./style.cx')

    loader = StreamTSVLoader('./loadplan.json', style_network)
    with open('./input.tsv', 'r') as tsvfile:
        with open('./output.cx', 'w') as outfile:
            loader.write_cx_network(tsvfile, outfile)


Credits
-------



=======
History
=======

0.6.1 2019-07-12
----------------

* Fixed bug where **ndexmisctools.py** *networkattributeupdate* was creating
  duplicate network attributes for name, description, and value. This is
  due to server bug. To deal with this the code removes those entries when
  doing the network attribute update and forbids caller from trying to
  update those attributes

0.6.0 2019-07-10
----------------

* Added new commandline utility *ndexmisctools.py* which lets caller
  copy a network from one NDEx account to another and lets one update
  network attributes of a network in NDEx.
  WARNING: THIS IS AN UNTESTED ALPHA RELEASE AND MAY CONTAIN ERRORS

0.5.0 2019-06-06
----------------

* Added GeneSymbolSearcher class to loaderutils.py module

* Minor bug fix in NetworkIssueReport get_fullreport_as_string() where
  issue text is wrapped in str() in case its not a string 

0.4.0 2019-05-23
----------------

* Added loaderutils.py module with two new classes, NetworkIssueReport and
  an abstract class NetworkUpdator

0.3.0 2019-05-14
----------------

* tsv2nicecx2.convert_pandas_to_nice_cx_with_load_plan now loads @context
  data into a @context network attribute instead of a separate aspect

0.2.0 2019-04-01
----------------

* StreamTSVLoader class added which enables loading of TSV data into
  in streaming format to handle loading of large networks





