I have a list of 100 genes that are called as hits in a genetic screening. I want to have a network of the interactions between the proteins of these 100 genes. I am using both STRINGdb web and its R API.

In both situations you can select the threshold of confidence of interaction (default 0.4) for displaying the network. Changing this parameter drastically changes the network that I am generating. I have read the FAQ section of STRINGdb and they recommend to choose some arbitrary number based on the number of interactions you need for you analysis. If I use the default threshold, I have few interactions and I don't know if lowering the threshold would be correct.

Therefore, my question is, is there any established threshold based on habitual user's experience used for that, beyond the recommendation of setting an arbitrary one?


2 Answers 2


I have used STRING pretty heavily, and have compared it to various other databases of protein interactions and signaling pathways. I do feel like it has a lot of quality interaction annotations, but you have to sift through a lot of noise to get to them. The simplest method I have found for doing this is to look at the individual scores for each interaction, and accept it if it passes one of the following tests:

  • Experiment Score > 0.4
  • Database Score > 0.9

Anything that passes one of these thresholds we consider at least an interaction of acceptable quality. Those interactions with Experiment Scores > 0.9 are high-quality, and have been experimentally validated. The other scores represent inaccurate methods for determining signaling events, and should be ignored.

You are not going to catch every actual protein signaling event this way, but you will at least be spared a lot of false positives. The best way to construct an actual network of signaling events is to combine interaction records from multiple databases.


This depends on what you are trying to do and whether you value specificity over sensitivity. We can't tell you since it is entirely dependent on the biological question you want to answer.

However, I would recommend two things:

  1. Don't use STRING. The creators of STRING made the choice to value sensitivity over all else, so they include any interaction they can get their hands on. That is sometimes fine, depending on what you want to do, but is more often a problem. Personally, I tend to avoid STRING as much as possible and instead use more curated databases like APID or IntAct. You can find a list of many PPI databases in the EBI's Psiqcuick View page. You might also be interested in my answer here which gives an example script using APID which can easily be modified to query other DBs.

  2. Whatever you use, I recommend you filter by detection method. There are many different interaction detection methods ranging from those that only identify direct, binary interactions between two proteins (e.g. Yeast two-hybrid), those that also find proteins that are in the same complex even if there is no direct interaction between them (e.g. ChIP), to various non-experimental methods which are used to infer interactions.

    Luckily, all of these have been collected into a controlled vocabulary which you can see in the Interaction Detection Method Ontology Lookup Service page. Go there, collect the interaction detection methods you consider good enough for whatever you want to do and filter your interactions using those.

For example, for a high quality human interactome I built for a project I used to work on, I was only interested in direct binary interactions, so I only kept interactions detected by the following methods:

    "MI:0008" => "array technology",
    "MI:0009" => "bacterial display",
    "MI:0010" => "beta galactosidase complementation",
    "MI:0011" => "beta lactamase complementation",
    "MI:0012" => "bioluminescence resonance energy transfer",
    "MI:0013" => "biophysical",
    "MI:0014" => "adenylate cyclase complementation",
    "MI:0016" => "circular dichroism",
    "MI:0017" => "classical fluorescence spectroscopy",
    "MI:0018" => "two hybrid",
    "MI:0020" => "transmission electron microscopy",
    "MI:0030" => "cross-linking study",
    "MI:0031" => "protein cross-linking with a bifunctional reagent",
    "MI:0034" => "display technology",
    "MI:0040" => "electron microscopy",
    "MI:0041" => "electron nuclear double resonance",
    "MI:0042" => "electron paramagnetic resonance",
    "MI:0043" => "electron resonance",
    "MI:0047" => "far western blotting",
    "MI:0048" => "filamentous phage display",
    "MI:0049" => "filter binding",
    "MI:0051" => "fluorescence technology",
    "MI:0052" => "fluorescence correlation spectroscopy",
    "MI:0053" => "fluorescence polarization spectroscopy",
    "MI:0055" => "fluorescent resonance energy transfer",
    "MI:0065" => "isothermal titration calorimetry",
    "MI:0066" => "lambda phage display",
    "MI:0073" => "mrna display",
    "MI:0081" => "peptide array",
    "MI:0084" => "phage display",
    "MI:0089" => "protein array",
    "MI:0090" => "protein complementation assay",
    "MI:0091" => "chromatography technology",
    "MI:0092" => "protein in situ array",
    "MI:0095" => "proteinchip(r) on a surface-enhanced laser desorption/ionization",
    "MI:0097" => "reverse ras recruitment system",
    "MI:0098" => "ribosome display",
    "MI:0099" => "scintillation proximity assay",
    "MI:0107" => "surface plasmon resonance",
    "MI:0108" => "t7 phage display",
    "MI:0111" => "dihydrofolate reductase reconstruction",
    "MI:0112" => "ubiquitin reconstruction",
    "MI:0114" => "x-ray crystallography",
    "MI:0115" => "yeast display",
    "MI:0226" => "ion exchange chromatography",
    "MI:0227" => "reverse phase chromatography",
    "MI:0231" => "mammalian protein protein interaction trap",
    "MI:0232" => "transcriptional complementation assay",
    "MI:0255" => "post transcriptional interference",
    "MI:0369" => "lex-a dimerization assay",
    "MI:0370" => "tox-r dimerization assay",
    "MI:0397" => "two hybrid array",
    "MI:0398" => "two hybrid pooling approach",
    "MI:0399" => "two hybrid fragment pooling approach",
    "MI:0400" => "affinity technology",
    "MI:0401" => "biochemical",
    "MI:0405" => "competition binding",
    "MI:0406" => "deacetylase assay",
    "MI:0410" => "electron tomography",
    "MI:0411" => "enzyme linked immunosorbent assay",
    "MI:0415" => "enzymatic study",
    "MI:0416" => "fluorescence microscopy",
    "MI:0419" => "gtpase assay",
    "MI:0420" => "kinase homogeneous time resolved fluorescence",
    "MI:0423" => "in-gel kinase assay",
    "MI:0424" => "protein kinase assay",
    "MI:0425" => "kinase scintillation proximity assay",
    "MI:0426" => "light microscopy",
    "MI:0428" => "imaging technique",
    "MI:0432" => "one hybrid",
    "MI:0434" => "phosphatase assay",
    "MI:0435" => "protease assay",
    "MI:0437" => "protein three hybrid",
    "MI:0440" => "saturation binding",
    "MI:0508" => "deacetylase radiometric assay",
    "MI:0509" => "phosphatase homogeneous time resolved fluorescence",
    "MI:0510" => "homogeneous time resolved fluorescence",
    "MI:0511" => "protease homogeneous time resolved fluorescence",
    "MI:0512" => "zymography",
    "MI:0513" => "collagen film assay",
    "MI:0514" => "in gel phosphatase assay",
    "MI:0515" => "methyltransferase assay",
    "MI:0516" => "methyltransferase radiometric assay",
    "MI:0655" => "lambda repressor two hybrid",
    "MI:0657" => "systematic evolution of ligands by exponential enrichment",
    "MI:0678" => "antibody array",
    "MI:0695" => "sandwich immunoassay",
    "MI:0696" => "polymerase assay",
    "MI:0726" => "reverse two hybrid",
    "MI:0727" => "lexa b52 complementation",
    "MI:0728" => "gal4 vp16 complementation",
    "MI:0809" => "bimolecular fluorescence complementation",
    "MI:0813" => "proximity enzyme linked immunosorbent assay",
    "MI:0824" => "x-ray powder diffraction",
    "MI:0825" => "x-ray fiber diffraction",
    "MI:0827" => "x-ray tomography",
    "MI:0841" => "phosphotransferase assay",
    "MI:0870" => "demethylase assay",
    "MI:0872" => "atomic force microscopy",
    "MI:0879" => "nucleoside triphosphatase assay",
    "MI:0880" => "atpase assay",
    "MI:0887" => "histone acetylase assay",
    "MI:0889" => "acetylase assay",
    "MI:0892" => "solid phase assay",
    "MI:0894" => "electron diffraction",
    "MI:0895" => "protein kinase A complementation",
    "MI:0899" => "p3 filamentous phage display",
    "MI:0900" => "p8 filamentous phage display",
    "MI:0905" => "amplified luminescent proximity homogeneous assay",
    "MI:0916" => "lexa vp16 complementation",
    "MI:0920" => "ribonuclease assay",
    "MI:0921" => "surface plasmon resonance array",
    "MI:0946" => "ping",
    "MI:0947" => "bead aggregation assay",
    "MI:0949" => "gdp/gtp exchange assay",
    "MI:0953" => "polymerization",
    "MI:0968" => "biosensor",
    "MI:0969" => "bio-layer interferometry",
    "MI:0972" => "phosphopantetheinylase assay",
    "MI:0976" => "total internal reflection fluorescence spectroscopy",
    "MI:0979" => "oxidoreductase assay",
    "MI:0984" => "deaminase assay",
    "MI:0989" => "amidase assay",
    "MI:0990" => "cleavage assay",
    "MI:0991" => "lipid cleavage assay",
    "MI:0992" => "defarnesylase assay",
    "MI:0993" => "degeranylase assay",
    "MI:0994" => "demyristoylase assay",
    "MI:0995" => "depalmitoylase assay",
    "MI:0996" => "deformylase assay",
    "MI:0997" => "ubiquitinase assay",
    "MI:0998" => "deubiquitinase assay",
    "MI:0999" => "formylase assay",
    "MI:1000" => "hydroxylase assay",
    "MI:1001" => "lipidase assay",
    "MI:1002" => "myristoylase assay",
    "MI:1003" => "geranylgeranylase assay",
    "MI:1004" => "palmitoylase assay",
    "MI:1005" => "adp ribosylase assay",
    "MI:1006" => "deglycosylase assay",
    "MI:1007" => "glycosylase assay",
    "MI:1008" => "sumoylase assay",
    "MI:1009" => "desumoylase assay",
    "MI:1010" => "neddylase assay",
    "MI:1011" => "deneddylase assay",
    "MI:1016" => "fluorescence recovery after photobleaching",
    "MI:1019" => "protein phosphatase assay",
    "MI:1024" => "scanning electron microscopy",
    "MI:1026" => "diphtamidase assay",
    "MI:1030" => "excimer fluorescence",
    "MI:1031" => "protein folding/unfolding",
    "MI:1036" => "nucleotide exchange assay",
    "MI:1037" => "Split renilla luciferase complementation",
    "MI:1038" => "silicon nanowire field-effect transistor",
    "MI:1087" => "monoclonal antibody blockade",
    "MI:1088" => "phenotype-based detection assay",
    "MI:1089" => "nuclear translocation assay",
    "MI:1111" => "two hybrid bait or prey pooling approach",
    "MI:1112" => "two hybrid prey pooling approach",
    "MI:1113" => "two hybrid bait and prey pooling approach",
    "MI:1137" => "carboxylation assay",
    "MI:1138" => "decarboxylation assay",
    "MI:1142" => "aminoacylation assay",
    "MI:1145" => "phospholipase assay",
    "MI:1147" => "ampylation assay"

If you also want those that might not be direct binary but simply in the same complex, include:

      "MI:0019" => "coimmunoprecipitation",
      "MI:0006" => "anti bait coimmunoprecipitation",
      "MI:0007" => "anti tag coimmunoprecipitation",
      "MI:0858" => "immunodepleted coimmunoprecipitation",
      "MI:0096" => "pull down",
      "MI:0963" => "interactome parallel affinity capture",
      "MI:0676" => "tandem affinity purification"
  • $\begingroup$ Thank you for the answer, Terdon. Could you tell me how to retrieve MI's from String for a particular network? $\endgroup$ Apr 29, 2020 at 18:28
  • $\begingroup$ @SashkoLykhenko please ask a new question about that. It is hard to answer in the comments. $\endgroup$
    – terdon
    Apr 30, 2020 at 8:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.