Disclaimer: I’m a computer science student with minimum knowledge of biology.

I’m working on an algorithm to cluster proteins in Protein-Protein-Interaction Networks to find protein-complexes. While working on that I stumbled upon the question how many different proteins can be part of a protein complex. (I'll call this the size of the complex from this point.)

I started by counting the the participants from all Corum complexes. I got sizes ranging from 1 to 143:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 33, 36, 37, 38, 40, 44, 45, 47, 48, 62, 68, 78, 80, 104, 143]

The distribution is skewed to smaller sizes with 3 participants counted 1465 times and most of the bigger sizes from around 30 counted 1 or 2 times.

{44: 1, 36: 1, 32: 1, 47: 1, 78: 1, 48: 1, 31: 1, 143: 1, 40: 1, 26: 1, 38: 1, 62: 1, 104: 1, 23: 1, 20: 2, 22: 2, 33: 2, 80: 2, 37: 2, 45: 2, 28: 2, 68: 2, 27: 2, 30: 3, 19: 3, 24: 4, 25: 4, 18: 6, 17: 11, 15: 19, 1 6: 21, 14: 23, 11: 25, 12: 28, 13: 30, 10: 55, 9: 57, 8: 72, 7: 83, 6: 100, 1: 127, 5: 237, 4: 499, 2: 1370, 3: 1465}[Sorry for not sorting...]

My main question from this first dip into data is, are there any assumptions to make about the size of complexes? Are these big complexes for example special cases and normally complexes are limited to a size of around n? Is there maybe even an upper limit of participants in a complex?

Anything would be helpful for me to minimize runtime.

  • $\begingroup$ This is suggestion as to how you could clarify the question to help us help you, without your having to resort to socializing, as per my answer. Could you sort the non-redundant list by number of participants and then present us with say 20 entries that span your putative cut-off, just showing the number of participants and the name of the complex? That way the question becomes, can we apply some different descriptor to complexes above the cut-off, which you can use in your report. Btw. I downloaded one of the files. I would advise having only one instance of a complex, e.g. not mice and man. $\endgroup$
    – David
    Commented May 28, 2020 at 11:34
  • $\begingroup$ Hi. At first thanks for the answer. I can do that, but it'll probably take me some time as I'm right now working at several different spots concerning this project. $\endgroup$
    – obvg
    Commented May 28, 2020 at 11:59
  • $\begingroup$ [Was to slow to edit...] Still I want to clarify more what my project is. The Idea is can we find protein complex candidates just by looking at the structure of PPI's. I'm especially working with quasi-cliques. So I try to find a configuration where my algorithm finds all known complexes and more. These extra findings are then seen as candidates. That's my reasoning for asking this question. The project itself is more like "Let's see what happens and if we want to further work in this direction" Also it's my bachelor thesis, so the scope is definitively limited. $\endgroup$
    – obvg
    Commented May 28, 2020 at 12:10

1 Answer 1


The problem with coming into bioinformatics from a non-biological background is all too apparent in your question, and very real. You are dealing with a category of object called a protein complex, you suspect that it will be reasonable to exclude a proportion of them, but as you don’t really know what they are (other than at a basic level) you don’t understand the implications of doing so. As generally in such cases, you need to find an appropriate biologist to help you.

All I can do is try to make an analogy. Consider an entity that the biologist who knows nothing about computing calls a ‘program’. As a surrogate for the number of components, let us consider that it is written in Java and so that one can judge its complexity by counting the number of classes. (I know that the examples I am giving are not all normally written in Java, but in theory they could be.) I could write a simple program that just parses a file and outputs a second file in a different format. That would use very few classes (especially without a GUI interface). Then I might write a modest web application to query a database and return biological information to the user. That could have perhaps two dozen classes. A more sophisticated commercial web application would have more. And then we get into commercial desktop applications from the relatively modest utilities to the monsters like Microsoft Word.

But just classifying computer programs on the number of Java classes would have severe limitations, just as would an alternative approach such as programming language (python for scripts, C++ for large applications). What I would really need to decide is what kind of program to include or exclude.

Likewise with protein complexes. I am not familiar with Corum (I just checked the website on my phone) but one might assume that the protein complexes it contains range from basic enzymes and proteins with two different subunits (perhaps in two or more copies, generally in a regular structure) like haemoglobin or immunoglobulin G, through proteins that interact with several species and posses half a dozen different subunits, to what are in effect machines of greater or lesser complexity, like the ribosome, the two subunits of which may together have 70 to 80 proteins.

So, yes, it would be reasonable to exclude the relatively small number of very large complexes which constitute a class of “machines” (and your size distribution suggests where the cut-off might be). But for your work to be valid you need to know specifically what class of complex you are excluding so as to be able to state that you had deliberately decided to ignore large complexes like ribosomes, splicesomes etc. And name them.

It’s tough at the moment, I know, but in my opinion you do need to sit down with a biologist and have this explained in more detail, reviewing the names of the complexes in the Corum list that you are considering excluding.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .