stringApp imports functional associations or physical interactions between protein-protein and protein-chemical pairs from STRING, Viruses.STRING, STITCH, DISEASES and from PubMed text mining into Cytoscape. Users provide a list of one or more gene, protein, compound, disease, or PubMed queries, the species, the network type, and a confidence score and stringApp queries the database to return the matching network. Currently, four different queries are supported:
- STRING: protein query - enter a list of protein names (e.g. gene symbols or UniProt identifiers/accession numbers) to obtain a STRING network for the proteins
- STRING: PubMed query - enter a PubMed query and utilize text mining to get a STRING network for the top N proteins associated with the query
- STRING: disease query - enter a disease name to retrieve a STRING network of the top N proteins associated with the specified disease
- STITCH: protein/compound query - enter a list of protein or compound names to obtain a network for them from STITCH
For each query, the user can choose to retrieve a full STRING network of functional associations or a physical subnetwork.
stringApp also allows users to change the confidence score and to expand the resulting network by adding an arbitrary number of nodes; this can be either proteins from the same organism, proteins involved in virus-host interactions, or chemical compounds. All STRING networks are visualized using a "String Style" custom graphic, which closely resembles the networks on the STRING web site.
In addition, stringApp can retrieve functional enrichment for Gene Ontology terms, KEGG & Reactome Pathways, and protein domains at a user-specified significance threshold and show the results in a new table in the Table Panel. The app provides several different types of charts to show the enriched terms. Note that you need to install the enhancedGraphics app for the charts to show.
Since version 1.6, stringApp is also integrated with the clusterMaker and EnrichmentMap apps. With the former, users can quickly cluster a STRING network using MCL clustering, while with the latter it is possible to create an enrichment map from the STRING enrichment results.
stringApp supports automation from both commands and CyREST.
See also:
- stringApp tutorials
- stringApp automation documentation
- Cite stringApp 2018 paper or stringApp 2022 paper
stringApp is an OSGi bundle built with Maven (Java 11 source level, Cytoscape API 3.10):
mvn clean package
The bundle is written to target/stringApp-<version>.jar and can be installed in Cytoscape via Apps -> App Manager -> Install from File. Releases are distributed through the Cytoscape App Store.
All code lives under src/main/java/edu/ucsf/rbvi/stringApp/internal/:
CyActivatoris the bundle activator. It creates theStringManagerand registers every task factory, menu item, command and custom graphics factory with Cytoscape.model/holds the app state.StringManageris the central service hub (configuration, server URLs, settings, panels, the set of STRING networks) andStringNetworkholds per-network state such as resolved query terms and enrichment settings.Species,Annotation,EnrichmentTermand theDatabases/NetworkTypeenums describe the data returned by STRING.tasks/contains the Cytoscape tasks and task factories behind every menu item andstringcommand: network queries (protein, compound, PubMed, disease, cross-species), expanding and changing networks, enrichment and publication retrieval, and view toggles.ui/contains the Swing panels and dialogs: the query panels shown in the network search bar, the STRING Results panel (node and edge tabs), the enrichment and publication table panels and their renderers.view/draws the STRING-style "pill" node graphics as Cytoscape custom graphics.utils/contains shared helpers for parsing STRING and Jensenlab API responses (JSONUtils), building networks and columns (ModelUtils), styles and views (ViewUtils) and enrichment tables (EnrichmentUtils).io/containsHttpUtils, the low-level HTTP client used for all API calls.
The species lists bundled in src/main/resources/species_v*.tsv and pairs_v*.tsv are generated from the files in data/species by scripts/make_files.py (run it from inside data/species).
Server URLs are loaded at startup from a JSON config file (see StringManager.CONFIGURI). User preferences are stored in Cytoscape's stringApp.props. See doc_alternative_config.md for pointing stringApp at another STRING version.