  Structural classification shows that the number of different protein folds is
surprisingly small. It also appears that proteins are built in a modular
fashion, from a relatively small number of components. Here we propose to
identify the modular building blocks of proteins with the dark soliton solution
of a generalized discrete nonlinear Schrodinger equation. For this we show that
practically all protein loops can be obtained simply by scaling the size and by
joining together a number of copies of the soliton, one after another. The
soliton has only two loop specific parameters and we identify their possible
values in Protein Data Bank. We show that with a collection of 200 sets of
parameters, each determining a soliton profile that describes a different short
loop, we cover over 90% of all proteins with experimental accuracy. We also
present two examples that describe how the loop library can be employed both to
model and to analyze the structure of folded proteins.
