Package: ndexstringloader
NDEx STRING Content LoaderPython application for loading STRING data intoNDEx.This tool downloads and unpacks theSTRINGfiles below9606.protein.links.full.v11.0.txt.gzhuman.name_2_string.tsv.gzhuman.entrez_2_string.2018.tsv.gzhuman.uniprot_2_string.2018.tsv.gzThis loader generates one or more TSV files, converts them to CX, and uploads them to NDEx server.
The number of networks generated is dictated by the--cutoffscoreparameter which by
default generates two networks, one with all edges0.0 cutoffscoreand one with edges with score0.7and aboveDuplicate edges (edges that have the same Source and Target nodes and the same value ofcombined_score)
are included to the generated TSV and CX files only once.Name of the newly generated network includes the value ofcutoffscoreargument, for example,STRING - Human Protein Links - High Confidence (Score >= 0.7).In case user didn’t specify--update UUIDargument, then the network with this name gets over-written in case if already exists on NDEx server;
otherwise, a new network is created.Specifying--update UUIDcommand line argument will over-write network with this UUID if it is found.
If not, then user is asked if (s)he wants to create a new network. When network is updated, only edges and nodes are
changed; network attributes other thenversionare not modified.Note--stringversionoverrides default version of11.5for all files with a version when downloaded1)Below is an example of a record
from9606.protein.links.full.v11.0.txt.gz9606.ENSP00000261819 9606.ENSP00000353549 0 0 0 0 0 102 90 987 260 900 0 754 622 999To generate a STRING network, the loader reads rows from that file one by one and compares the value of the last
columncombined_scorewith the valuecutoffscoreargument.  The row is not added to the network generated in casecombined_scoreis less than the commad-line argumentcutoffscore.2)Ifcombined_scoreis no than lesscutoffscore, the loader process two first columnscolumn 1 - protein1 (9606.ENSP00000261819)
column 2 - protein2 (9606.ENSP00000353549)When processing first columnprotein1, the scriptreplacesEnsembl Idwith adisplay name, for example9606.ENSP00000261819becomesANAPC5. Mapping of
display names toEnseml Idsis found inhuman.name_2_string.tsv.gzuseshuman.uniprot_2_string.2018.tsv.gzto createrepresentsvalue.  For example,representsfor9606.ENSP00000261819isuniprot:Q9UJX4useshuman.entrez_2_string.2018.tsv.gzto create list of aliases for the current protein.  Thus, list of aliases for9606.ENSP00000261819isncbigene:51433|ensembl:ENSP000002618193)The second columnprotein2is processed the same way ascolumn 1.4)In the generated tsv file9606.protein.links.tsv,protein1andprotein2values from the original file are replaced withprotein_display_name_1 represents_1 alias_1 protein_display_name_2 represents_2 alias_2So, the original9606.ENSP00000261819 9606.ENSP00000353549 0 0 0 0 0 102 90 987 260 900 0 754 622 999becomesANAPC5 uniprot:Q9UJX4 ncbigene:51433|ensembl:ENSP00000261819 CDC16 uniprot:Q13042  ncbigene:8881|ensembl:ENSP00000353549 0 0 0 0 0 102 90 987 260 900 0 754 622 9995)The generated tsv file9606.protein.links.tsvis then transformed to CX9606.protein.links.cx.
The default style defined instyle.cxdistributed with this loader is applied to the
generated network in case neither--stylenor--templateis specified.
User can specify style template file with either--styleargument or
style template network UUID--template UUID_of_style_template_network.
Specifying both--templateand--styleis not allowed.6)9606.protein.links.cxis then uploaded to NDEx server either replacing
an existing network (in case--update UUIDis specified),
or creating a new network.Dependenciesndex2ndexutilnetworkxscipyrequestspy4cytoscapepandasCompatibilityPython 3.6+Installationgit clone https://github.com/ndexcontent/ndexstringloader
cd ndexstringloader
make dist
pip install dist/ndexloadstring*whlRunmakecommand with no arguments to see other build/deploy options including creation of Docker imagemakeOutput: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 dockerhubConfigurationThendexloadstring.pyrequires a configuration file to be created.
The default path for this configuration is~/.ndexutils.confbut can be overridden with--confflag.Configuration fileNetworks listed in[network_ids]section need to be visible to theuser[ndexstringloader]
user = joe123
password = somepassword123
server = dev.ndexbio.orgNeeded filesLoad plan is required for running this script.string_plan.jsonfound atndexstringloader/ndexstringloadercan be used for this purpose.UsageFor information invokendexloadstring.py -hExample usageHere is how this command can be run fordevandprodtargets:ndexloadstring.py --profile dev tmpdir/

ndexloadstring.py --profile prod tmpdir/ --cutoffscore 0.99 0.95CreditsThis package was created withCookiecutterand theaudreyr/cookiecutter-pypackageproject template.History1.0.3 (2023-09-20)Updated URL paths to data files because they moved on STRING serverSet default STRING version to “12.0”Version of STRING data used is now appended to the network name.Updated default network description and default style template file1.0.2 (2022-06-29)Fixed bug where--stringversionwas being ignored when
downloading data filesSet default version to11.5Fixed bug whereversionnetwork attribute was not being updated
with value of--stringversionChanged URL tohuman.entrez_2_string.2018.tsv.gzcause it
moved on STRING server--cutoffscoreparameter can now take multiple values and a network
for each value will be generated and uploaded to NDEx. The default
is set to generate a network with all edges (0.0 –cutoffscore) and a
network with edges 0.7 and above1.0.0 (2020-11-11)New default behavior:force-directed-cllayout is now applied on
networks via py4cytoscape library and a running instance of Cytoscape.
Alternate Cytoscape layouts and the networkx “spring” layout can be
run by setting appropriate value via the new–layoutflag0.3.0 (2020-10-28)Added--skipuploadthat lets caller skip upload of network to NDExSpring layout applied by default for all networks that have less then 2,000,000
edges. This can be overridden with new flag--layoutedgecutoff0.2.4 (2019-12-01)Fixed defect UD-462 Verify new network attributes are correctly set in ndexstringloader (https://ndexbio.atlassian.net/browse/UD-462).0.2.3 (2019-09-13)If user loads the entire STRING network (i.e., runs the script with –cutoffscore 0), the name of the resulting netwpork should be “STRING - Human Protein Links”, not “STRING - Human Protein Links - High Confidence”.0.2.2 (2019-09-12)Added new featured specified by UD-577 Quick improvement for new String loader (added optional –update argument that allows to specify the UUID of a target network to update; added optional –template argument that allows to specify the UUID of a target network to use as style template, the update operation now only changes nodes and edges, but leaves network properties untouched).0.2.1 (2019-08-23)Improved README file.Added new JUnit tests (JUnit test coverage is 87%).0.2.0 (2019-07-26)Removed duplicate edges. Every pair of connected nodes in STRING networks had the same edge duplicated (one edge going from A to B, and another going from B to A).  Since edges in STRING are not directed, we can safely remove half of them.Added new arguments to command line:optional –cutoffscore (default is 0.7) - used to filter on combined_score column. To include edges with combined_score of 800 or higher, –cutoffscore 0.8 should be specifiedrequired –datadir specifies a working directory where STRING files will be downloaded to and processed style.cx file that contains style is supplied with the STRING loader and used by default. It can be overwritten with –style argument.0.1.0 (2019-03-13)First release on PyPI.