Skip to main content

Loads SIGNOR data into NDEx

Project description

NDEx Signor Content Loader

https://img.shields.io/pypi/v/ndexsignorloader.svg https://img.shields.io/travis/ndexcontent/ndexsignorloader.svg https://coveralls.io/repos/github/ndexcontent/ndexsignorloader/badge.svg?branch=master Documentation Status

Python application that loads Signor data into NDEx

This tool downloads data files from Signor and performs the following operations:

1) The text files are loaded into a network using this loadplan

2) The edge attribute direct is set to True if value is ‘t’ otherwise its set to False

3) Using values in the databasea and databaseb data files, the represents field found on each node is prefixed with uniprot: if the database value is UNIPROT and signor: if the database value is SIGNOR

4) The location node attribute is set to cytoplasm if its not set (which is case for all nodes in Signor Complete - Human, Signor Complete - Rat, and Signor Complete - Mouse networks)

5) The location node attribute with value phenotypeList is set to empty string

6) Any negative or non-numeric citations are removed from the citation edge attribute (There were multiple cases of -1 and Other). In addition, a specific PMC:## is updated to its pubmed id.

7) IF --edgecollapse flag is set on commandline, then edges between same nodes are collapsed if they have same interaction with attributes stored in lists with exception of direct which is a bool. The pubmed id is prepended (as html link) to each sentence attribute entry.

In addition, a network attribute named notes is added with following text: Edges have been collapsed with attributes converted to lists with exception of direct attribute

8) The layout of the network is created using the spring layout, but with additional logic that positions nodes in a vertical based on value of the location node attribute. The ordering is as follows:

  • extracellular are placed at the top

  • receptor are below extracellular

  • cytoplasm are placed in the middle

  • factor are below cytoplasm

  • If attribute is empty, nodes are placed at the bottom

9) The following network attributes are set

  • name is set to data from Signor service getPathwayData.php?pathway= (except for the full/complete networks which have a more generic description)

  • author is set to data from Signor service getPathwayData.php?pathway= (unless its empty in which case its not added to network)

  • organism is set to Human, 9606, Homo sapiens (except for Signor Complete - Rat, and Signor Complete - Mouse networks)

  • prov:wasGeneratedBy is set to ndexsignorloader <VERSION> (example: ndexsignorloader 1.1.0)

  • prov:wasDerivedFrom set to URL to download data file (or in case of full networks its set to Signor site)

  • version is set to Abbreviated day-month-year (example: 05-Jun-2019)

  • description is taken from Signor service getPathwayData.php?pathway=

  • rightsHolder is set to Prof. Gianni Cesareni

  • rights is set to Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)

  • reference is set to citation for SIGNOR: a database of causal relationships between biological entities

  • labels is set to data from Signor service getPathwayData.php?pathway= (not set for full networks)

  • type is set to a list with pathway and if known type of pathway

  • __normalizationversion is set to 0.1

The script will attempt to update in place on NDEx any matching networks. The matching is performed by looking for (ignore case) match of the labels network attribute of any networks owned by the user configured. If no match there is found then (ignore case) match of the network name is used to update. In scenario of multiple matches in labels or by name, one randomly is chosen and updated.

Dependencies

Compatibility

  • Python 3.4+

Installation

git clone https://github.com/ndexcontent/ndexsignorloader
cd ndexsignorloader
make dist
pip install dist/ndexloadsignor*whl

Run make command with no arguments to see other build/deploy options including creation of Docker image

make

Output:

clean                remove all build, test, coverage and Python artifacts
clean-build          remove build artifacts
clean-pyc            remove Python file artifacts
clean-test           remove test and coverage artifacts
lint                 check style with flake8
test                 run tests quickly with the default Python
test-all             run tests on every Python version with tox
coverage             check code coverage quickly with the default Python
docs                 generate Sphinx HTML documentation, including API docs
servedocs            compile the docs watching for changes
testrelease          package and upload a TEST release
release              package and upload a release
dist                 builds source and wheel package
install              install the package to the active Python's site-packages
dockerbuild          build docker image and store in local repository
dockerpush           push image to dockerhub

Configuration

The ndexloadsignor.py requires a configuration file in the following format be created. The default path for this configuration is ~/.ndexutils.conf but can be overridden with --conf flag.

Format of configuration file

[<value in --profile (default ndexsignorloader)>]

user = <NDEx username>
password = <NDEx password>
server = <NDEx server(omit http) ie public.ndexbio.org>

Example configuration file

[ndexsignorloader_dev]

user = joe123
password = somepassword123
server = dev.ndexbio.org

Usage

For information invoke ndexloadsignor.py -h

Example usage

TODO: Add information about example usage

mkdir signor
ndexloadsignor.py signor/

Via Docker

Example usage

TODO: Add information about example usage

docker run -v `pwd`:`pwd` -w `pwd` coleslawndex/ndexsignorloader:1.1.1 ndexloadsignor.py --conf conf # TODO Add other needed arguments here

Credits

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

History

1.2.0 (2022-07-06)

  • Uploaded networks are now public, searchable, showcased, and fully indexed by default

  • The search for networks to update is done by matching the labels network attribute first and if no match is found, the name is used

  • Fixed bug where some networks were laid out on a single horizontal line. This happened when the location attribute for all nodes in a network were all the same

  • Fixed bug where duplicate symbols ended up in member attribute of nodes UD-2078

  • Uses labels network attribute (if found) to find network on NDEx to update instead of upload as new. If no labels match, then any network matching the name of network is updated otherwise network is uploaded as a new network. UD-1677

1.1.1 (2020-10-16)

  • Removed NODE_LABEL_POSITION discrete mapping from style since it is not compatible with CX 2.0

1.1.0 (2020-02-19)

  • Fixed bug where an empty pathway description file would cause loader to fail. Issue #1

  • Removed network visual properties: NETWORK_CENTER_*, NETWORK_ HEIGHT, NODE_SELECTION, SCALE_FACTOR, SIZE, WIDTH cause they caused problems when displaying the network in Cytoscape

  • Fixed bug where URL for DOI in reference network attribute was incorrect

  • Set minimum version of ndex2 python client to 3.3.1 and maximum to less then 4.0.0

  • Set maximum version of ndexutil package to less then 2.0.0

1.0.0 (2019-07-30)

  • –edgecollapse flag added which collapses all edges putting all attributes minus direct into lists. For sentence attribute each entry the list is now prepended with href link to citation labeled pubmed:#### In addition, if –edgecollapse flag is set then a notes network attribute is added to let user know.

  • –style can also accept NDEx UUID for network style. Network needs to be on same server set in –profile

0.3.0 (2019-07-29)

  • Added commandline flag –visibility that lets user dictate whether NEW networks are public or private (default is public)

  • Signor Full Human, Signor Full Rat, and Signor Full Mouse networks have been renamed to Signor Complete - Human, Signor Complete - Rat, Signor Complete - Mouse

  • On edges, replaced location attribute value of phenotypesList with empty string NSU-75

  • Added __iconurl network attribute and renamed type network attribute to networkType

0.2.0 (2019-06-28)

  • Changed prov:wasDerivedFrom network attribute to just signor website URL for full networks

  • Removed author network attribute if no value is found

  • Removed labels attribute for full networks

0.1.0 (2019-06-27)

  • First release on PyPI.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ndexsignorloader-1.2.0.tar.gz (39.9 kB view hashes)

Uploaded Source

Built Distribution

ndexsignorloader-1.2.0-py2.py3-none-any.whl (59.7 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page