saezlab / Omnipath_Cytoscape

a plug-in to access Omnipath from Cytoscape
http://apps.cytoscape.org/apps/omnipath
GNU General Public License v3.0
7 stars 0 forks source link

Is it possible to access all data in OmniPath via the Cytoscape plugin? #5

Open MafGal opened 2 years ago

MafGal commented 2 years ago

Dear Omnipath team, I would like to know if it is currently possible to access all data in Omnipath using the Cytoscape plugin? Or will it miss certain interactions when compared to OmnipathR and pypath-omnipath?

For example, all the following interactions are available via the Cytoscape plugin?

Interactions: protein-protein interactions organized in different datasets:

omnipath: the OmniPath data as defined in the original publication (Türei, Korcsmáros, and Saez-Rodriguez 2016) and collected from different databases.
pathwayextra: activity flow interactions without literature reference.
kinaseextra: enzyme-substrate interactions without literature reference.
ligrecextra: ligand-receptor interactions without literature reference.
tfregulons: transcription factor (TF)-target interactions from DoRothEA (Garcia-Alonso et al. 2019).
tf-miRNA: transcription factor-miRNA interactions
miRNA-target: miRNA-mRNA interactions.
lncRNA-mRNA: lncRNA-mRNA interactions.
small molecule-protein: interactions between small molecules (metabolites, intrinsic ligands, drug compounds) and proteins.

Many thanks in advance, Mafalda.

deeenes commented 2 years ago

Hi Mafalda,

The Cytoscape plugin supports only a limited set of features. If you want to go beyond that, using the R or Python client is recommended. Not only because those (especially the R one) support all features of OmniPath, but also because Cytoscape is not the best environment for flexible and reproducible research.

As I see, at the moment only the omnipath, dorothea (tfregulons) and mirna_target interaction datasets and the enzyme-substrate database are supported. This could be easily extended to all network datasets, and I will probably do that at some point. Or if you feel like doing that, a PR is very much appreciated! :)

Best,

Denes

MafGal commented 2 years ago

Many thanks for the reply, Denes.

I'm also a bit confused on that, whether to use OmnipathR or pypath-omnipath, are they both equally complete and it's just a matter of preference on R or python environment, or are there some reasons for choosing one given that I would like to make a human network with all interactions available and annotations and most likely later on load into Cytoscape and merge/filter with other networks or proteins of interest?

As to extending and the link you shared, is it just adding the remaining network datasets in the doc, l60-78:

        //start query formulation for interactions or ptms 
        // interactions query
        if (database.equals("Signaling networks") || database.equals("miRNA-mRNA") || database.equals("TF-target interactions")) {

            query = "https://omnipathdb.org/interactions?fields=sources&fields=references&genesymbols=1";
            //add extra text if it is TF query
            if (database.equals("TF-target interactions")) {

                query= query +"&types=transcriptional";

            }
            //add extra text if it is miRNA query
            if (database.equals("miRNA-mRNA")) {

                query = query +"&datasets=mirnatarget";

            }

        }

Where can I see the exact syntax for the databases, like database.equals("Signaling networks") || database.equals("miRNA-mRNA") || database.equals("TF-target interactions") to know exactly how the remaining are named?

Thank you, Mafalda.

deeenes commented 2 years ago

Many thanks for the reply, Denes.

I'm also a bit confused on that, whether to use OmnipathR or pypath-omnipath, are they both equally complete and it's just a matter of preference on R or python environment, or are there some reasons for choosing one given that I would like to make a human network with all interactions available and annotations and most likely later on load into Cytoscape and merge/filter with other networks or proteins of interest?

Pypath is our database builder software, use it only if you want to build a custom database, otherwise it's just unnecessary trouble. The Python client for OmniPath is another module, and it supports all query types and almost all parameters to query the OmniPath web service. The R client covers all of that and even more, it has many further utilities built in. Hence my recommendation is to create your network by the R client, you can get all interactions easily, you can add annotations to the network. Then save the data frame as CSV and load it into Cytoscape (or even better, analyse your network in R).

As to extending and the link you shared, is it just adding the remaining network datasets in the doc, l60-78:

      //start query formulation for interactions or ptms 
      // interactions query
      if (database.equals("Signaling networks") || database.equals("miRNA-mRNA") || database.equals("TF-target interactions")) {

          query = "https://omnipathdb.org/interactions?fields=sources&fields=references&genesymbols=1";
          //add extra text if it is TF query
          if (database.equals("TF-target interactions")) {

              query= query +"&types=transcriptional";

          }
          //add extra text if it is miRNA query
          if (database.equals("miRNA-mRNA")) {

              query = query +"&datasets=mirnatarget";

          }

      }

Where can I see the exact syntax for the databases, like database.equals("Signaling networks") || database.equals("miRNA-mRNA") || database.equals("TF-target interactions") to know exactly how the remaining are named?

miRNA-mRNA is the label shown in the menu, the query parameter, as we see here under the datasets key, should be datasets=mirnatarget. And if more than one dataset, it could be comma separated list: datasets=mirnatarget,dorothea,pathwayextra. However, the interaction types should be provided too: types=post_transcriptional,transcriptional,post_translational.

Best,

Denes

Thank you, Mafalda.