# How did researchers derive the Ramachandran "validation" contours?

I'm a beginner to structural biology and for fun, calculated the tortional angles of some 100, 000 proteins. Here is my Ramachandran plot: When I went to look for "canonical" Ramachandran plots, I discovered most researchers overlay a "contour" plot of allowed torsional angles (see below). My two questions are:

• How are the distributions (ie. countours) of protein secondary structures calculated/derived? (ie. How do I "cluster" these into beta-sheets, alpha helices?)
• How can I derive them myself? • You have already calculated you &psi; and &phi; angles, hence your plot and you simply wish to do a contour map, correct? A contour map is a 2D histogram basically. There are many plotting programs. I use plotly, eg. plotly/contour. Your scatter plot looks like it's in MS Excel blue, but with Matlab style ticks set outwards. For the former, I have zero idea, while for the latter there is a function called contour. So could you specify the program? Mar 30 '20 at 16:02
• Alternative, a commonly done thing is setting the alpha of the markers to something like 0.2 so that the overlapping ones are shown better. And also worth mentioning, that hexbin plots are becoming increasing popular this year for 2D histograms (via ggplots or py matplotlib) Mar 30 '20 at 16:06
• Hi @MatteoFerla, thanks for your response. To clarify, the plot was generated in matplotlib. I have a better appreciation for how the plot is generated, but my question is: how do I know which cluster belongs to alpha helix, beta pleated sheets, etc. Mar 30 '20 at 18:31
• It is derived from the crystal structure and is a known variable. It can be spotted by eye by plotting the scatter plot (or hexbin plot...) with the data filtered by secondary structure. There is no fancy k-mer clustering of similar needed. Alternatively it can be argued a priori: residues on a &beta; sheet go up-down so the &psi; must be about 180&deg;, while the turn on a helix is 3 and a bit, so must be about 60 &deg;... Mar 30 '20 at 20:30