This is a test version of Biostars. For the public version, visit https://www.biostars.org.
String Database download data including interactions

I'm working on a project where I need a large network for about 100k to 200k protein ( node) . I thought of building a network for a specific disease, such as cancer so proceeding by getting oncogenes and suppressors genes , and then I got interactions and neighbors using R STRINGdb package .

The maximum number I got is 5826 mapping identifier , yet I'm still far from the needed size. I'm open to any proposition in condition of the 100k to 200k protein . Thank you .

proteomics string #interaction #protein # neo4j

Yes I did , I have downloaded the proteins_links_file but I'm interested in a specific disease, using R I have extracted as a maximum of 3916 interaction yet I need about 200k protein

As I've already written in answer to one of your previous questions, the human genome doesn't have 200k proteins. You could reach that number by combining all proteins from many different organisms. If you want us to help you, you should tell us more about what you're trying to do. By itself, it doesn't make sense to need 200k proteins. I suspect it's another case of the XY problem.

Okay I'm editing the question then . Looking forward for an answer thank you

Hello amroumouna!

We believe that this post does not fit the main topic of this site.

Question is lacking biological context, not a bioinformatics question. OP wants a network for performance testing of a graph database.

For this reason we have closed your question. This allows us to keep the site focused on the topics that the community can help with.

If you disagree please tell us why in a reply below, we'll be happy to talk about it.

Cheers!

2 answers

Yes I did , I have downloaded the proteins_links_file but I'm interested in a specific disease, using R I have extracted as a maximum of 3916 interaction yet I need about 200k protein

You can download all interactions from the downloads page: http://string-db.org/cgi/download.pl then filter the data based on identifiers. As others have said, there is little hope for a biologically meaningful protein interaction network of that size. A biological network cannot have more nodes than there are entities of that type in the organism. If we could build a multi-scale network model of everything from transcriptional and post-transcription regulation, over protein-protein interaction and metabolic reaction, that might result in even more nodes. Unfortunately, we are not right there yet.

If you simply want to do performance testing, then you better simulate a random scale-free topology.

Okay , then you say I choose randomly proteins from the download page . Thank you

No, you generate a random network whose property is to have a scale-free topology and has as many nodes as you want. The igraph R package can do this for example. Again, I want to emphasize that there is currently no biological network of the size you require simply because, at the moment, no single organism has more than 100k identified proteins. So either you're interested in the biology behind the network and you have to accept that its size is limited or you don't care about the biology and in this case you build a simulated network. As long as you don't say what you're trying to do, we can't really help you more.

What I'm trying to do is the integration of the network in Neo4j for performance testing . I need big data (100k as you said ) and the network should have depth . these are the conditions to respect. And it would be great if the data was of human species

OK so you could either generate one artificial network of the size required or download available data such as from STRING if it has enough nodes for you, knowing that this would be many different networks (or one network with many connected components, i.e. at least one per species). If it's for testing purposes, I think the easiest is to go with simulated data unless you care about some particular aspects of biological data that can't be simulated.

I don't want an artificial network, For String data , how am I going to manipulate it? because the data I have already mentioned in question has been extracted from STRINGdb. The question is how am I going to reach 100k , still don't get it

I haven't counted what's in STRING but I wouldn't be surprised that it doesn't get up to 100k proteins even across all the interactions type and species it covers. Biological data may be complex but not all of it is big. If all you want is to test Neo4j's performance, I don't see why an artificial network wouldn't do. If you want big biological graphs, look at De Bruijn graphs for genome assembly.

You are wrong because I already downloaded for homo spiens and it has 11.353.057 interaction . the question is how do I extract from these interactions tumor ones that's it and the final size should fit 100k

Those are interactions, i.e. edges of the graph. You said you wanted >100k proteins i.e. nodes. For all I know, those 11 millions interactions may be between 5000 different proteins only.

Sorry I got you wrong , would you please tell me how many proteins does the human genom codesfor ?

That may be a hard question to answer (due to alternate splicing, changing annotations). But you can find the current sequence of human proteins here*. Actual number of coding genes is likely in the neighborhood of 20000.

* There are 43092 NP_entries in that protein file at the time of this writing.

This got me curious so I researched it a little. The human proteome map has 30057 proteins for 17294 genes. Then this paper gets on average 1.7 proteins per gene based on 10% of the protein coding genes so that would be ~34000 proteins for ~20000 genes. The neXtprot website has 42164 isoforms for 20179 genes.

Log in to answer this question.