Proteins are biomolecules with amino acids as their monomers, or basic building blocks. Carbon atoms build up the backbone of proteins and are called ‘alpha carbons’. Each carbon atom can form four bonds. Every amino acid has a basic structure of an alpha carbon bonded to a carboxyl and an amino group on either side. The other two bonds that it forms are to a hydrogen atom and an R group. There are 20 amino acids, out of which 9 of them are essential (the amino acids I will be focusing on). In this computational essay I will be using the Resource Function, ‘ESMFoldProteinSequence’. This function helps in predicting the location of alpha carbons and hence creates the structure of the backbone. This will help me understand how essential amino acids change the structure of proteins.
Essential Amino Acids
Essential Amino Acids
There are twenty amino acids, out of which nine are essential amino acids. These amino acids are not produced by the body. Therefore, they must be obtained from food. In this essay, I will be focusing on the nine essential amino acids.
Elementary information of amino acids
"Amino Acid" | "Structure" | "One Letter Code" |
"L-leucine" | "L" | |
"L-lysine" | "K" | |
"L-valine" | "K" | |
"L-isoleucine" | "I" | |
"L-threonine" | "T" | |
"L-phenylalanine" | "F" | |
"L-methionine" | "M" | |
"L-histidine" | "H" | |
"L-tryptophan" | "W" |
Gathering Data
Gathering Data
The preliminary step before beginning the analysis of proteins is to collect and clean the data. For this essay I have decided to focus on a small group of proteins, since the program is computationally heavy. The input of ESMFoldProteinSequence is a string of one letter codes of amino acids which then computes the predicted model of the protein.
Generate six letter amino acid sequences without any duplicates.
In[]:=
aminoAcidsLength6=Module[{x="HILMFTWVK"},Partition[StringJoin[ToString/@#]&/@Select[Tuples[Characters[x],6],DuplicateFreeQ],10]];
Out of the 6048 proteins I have decided to look at 50 proteins for this computational essay and understand their characteristics.
Extract five groups of ten proteins in the following code.
In[]:=
list=Flatten[Take[aminoAcidsLength6,5]];
The shapes are extracted from an external server. In order to prevent overwhelming the serer I have used the ‘Pause’ function to induce 15 second breaks between each prediction. I have linked the sequence of amino acids to the predicted shape of the protein.
Create an association between the protein and its shape.
In[]:=
fiftyProteinShapes=Association[(Pause[15];Association[{#->ResourceFunction["ESMFoldProteinSequence"][#]}])&/@list]
Out[]=
HILMFT
,HILMFW
,HILMFV
,HILMFK
,HILMTF
,HILMTW
,HILMTV
,HILMTK
,HILMWF
,HILMWT
,HILMWV
,HILMWK
,HILMVF
,HILMVT
,HILMVW
,HILMVK
,HILMKF
,HILMKT
,HILMKW
,HILMKV
,HILFMT
,HILFMW
,HILFMV
,HILFMK
,HILFTM
,HILFTW
,HILFTV
,HILFTK
,HILFWM
,HILFWT
,HILFWV
,HILFWK
,HILFVM
,HILFVT
,HILFVW
,HILFVK
,HILFKM
,HILFKT
,HILFKW
,HILFKV
,HILTMF
,HILTMW
,HILTMV
,HILTMK
,HILTFM
,HILTFW
,HILTFV
,HILTFK
,HILTWM
,HILTWF
Cleaning up the Data
Cleaning up the Data
I have extracted the coordinates of each protein shape for further analysis. The coordinates will help in calculating different parameters of the protein shape like radius, length and torsion angle. I have used the first function to extract the coordinates of the protein. However, the function used to graph the protein; ‘ListLinePlot3D’, has the tendency to connect all points on the graph. To solve this I have eliminated points with a distance of 400 pixels.
Select coordinates with a distance lesser than 400 pixels.
Graphing the Structure of a Protein on a 3D Plane
Graphing the Structure of a Protein on a 3D Plane
To ease the process of analysing data I have graphed the coordinates of the protein on a 3D plane.
Plot it on a 3D plane.
Getting a line of Best Fit
Getting a line of Best Fit
To calculate the radius we need to pass a line of best fit through the structure of the protein. For this I have broken the equation into x, y and z parameters.
Get the line of best fit for the x parameter.
Get the line of best fit for the y parameter .
Get the line of best fit for the z parameter .
Calculate the coordinates of the line of best fit .
Graph the line of best fit using ListLinePlot3D
Calculating the Radius
Calculating the Radius
To calculate the radius of the protein I passed a central axis through the structure of the protein.
Display the line of best fit and protein structure.
To calculate the radius of the protein, I calculated the nearest point on the protein to the central axis. After repeating this process multiple times I calculated the mean radius.
Measure the radius using the EuclideanDistance function.
Calculate the mean radius for my dataset of 50 proteins.
Display the results on a histogram.
It is observable that data is slightly skewed to the left. This implies that most of the proteins have smaller radii. Most proteins have a radius; 37 out of 50 proteins, between 130 to 145 pixels.
Calculating Length
Calculating Length
Another parameter I have used to analyse the shape of proteins is their respective lengths. The length of the proteins spans across the x axis. Hence, I have considered the points with the minimum and maximum x coordinates to calculate their lengths.
Calculate the length of the protein using the formula.
Calculate the lengths of the fifty proteins in my dataset.
Display the results on a histogram.
It is evident that the data is skewed to the right, implying that most proteins have longer lengths than 800. 46 proteins out of 50; 92% of proteins, are towards the right end of the graph.
Calculating the Angle of Torsion
Calculating the Angle of Torsion
Another parameter I have measured is the angle of torsion. The angle of torsion is the angle of rotation between four atoms and its three bonds. It is the measure of the angle of rotation between the alpha carbon- nitrogen plane and the alpha carbon- carbon plane.
In order to calculate the angle of torsion we need to install Wolfram’s chemistry functions.
The following piece of code accesses these functions from the internet.
The code below loads the chemistry functions into memory.
The first step to calculating the angle of torsion is building the protein molecule back up using the coordinates of alpha carbons.
Build the protein molecule using the coordinates of alpha carbon.
The code below collects the coordinates of carbon alpha atoms and predicts the location of all the other atoms. Finally, the code converts it into a molecule object.
I am calculating the angle of torsion for the amino functional group. MoleculePattern helps in matching a group of atoms to a specified pattern. In this case it matches a group of molecules which has carbon bonded to nitrogen and nitrogen bonded to two hydrogen atoms. FindMoleculeSubstructure identifies the location of each molecule in the specified group.
Find indexes of specified atoms.
Finally, I have consolidated these steps into one function.
Representation of the dihedral angle
Display the results on a histogram.
The data is slightly skewed to the right. 45 proteins ; 90% of proteins, have acute torsion angles. Additionally, 35 proteins; 70% of the proteins have positive angles of proteins, implying that 70% of proteins turn in a clockwise direction.
Conclusion and Further Research
Conclusion and Further Research
I have measured and classified three parameters of proteins: the length, radius, and torsion angle of the the carbon backbone and nitrogen. Most proteins have a radius between 130 to 145, length between 800 to 1600, and 70% of the proteins in the dataset turn in a clockwise-turning torsion angle. I enjoyed working on this project and would like to delve deeper into this area by measuring the moment of inertia to align the proteins and efficiently compare physical characteristics. Furthermore, I would like to work with larger proteins and a greater sample set. Other areas of exploration include using random sampling to select proteins and understanding how repeated sequences of amino acids manipulate the shapes of proteins.
Acknowledgements
Acknowledgements
I would like to thank my mentor, Jason Sonnenberg, for guiding me through the project. Additionally, I am grateful for the help I received from the directors of the program and the teacher assistants.
Citations
Citations
1) “Amino acids.” MedlinePlus, 19 January 2023, https://medlineplus.gov/ency/article/002222.htm. Accessed 12 July 2023.
2) Richter, Amy. “Essential Amino Acids: Definition, Benefits and Food Sources.” Healthline, 26 January 2022, https://www.healthline.com/nutrition/essential-amino-acids#how-many-are-there. Accessed 12 July 2023.
3) Steward, Karen. “Essential Amino Acids: Chart, Abbreviations and Structure.” Technology Networks, 26 September 2019, https://www.technologynetworks.com/applied-sciences/articles/essential-amino-acids-chart-abbreviations-and-structure-324357. Accessed 12 July 2023.
4) “Amino Acid Structure | Amino Acid Abbreviations | Molecular Weight.” Promega Corporation, https://www.promega.com/resources/tools/amino-acid-chart-amino-acid-structure/. Accessed 12 July 2023.
5) No author. “Torsion Angles and the Ramachnadran Plot in Protein Structures.” Protein Structure, Structural Bioinformatics, https://proteinstructures.com/structure/ramachandran-plot/. Accessed 12 July 2023.
2) Richter, Amy. “Essential Amino Acids: Definition, Benefits and Food Sources.” Healthline, 26 January 2022, https://www.healthline.com/nutrition/essential-amino-acids#how-many-are-there. Accessed 12 July 2023.
3) Steward, Karen. “Essential Amino Acids: Chart, Abbreviations and Structure.” Technology Networks, 26 September 2019, https://www.technologynetworks.com/applied-sciences/articles/essential-amino-acids-chart-abbreviations-and-structure-324357. Accessed 12 July 2023.
4) “Amino Acid Structure | Amino Acid Abbreviations | Molecular Weight.” Promega Corporation, https://www.promega.com/resources/tools/amino-acid-chart-amino-acid-structure/. Accessed 12 July 2023.
5) No author. “Torsion Angles and the Ramachnadran Plot in Protein Structures.” Protein Structure, Structural Bioinformatics, https://proteinstructures.com/structure/ramachandran-plot/. Accessed 12 July 2023.
CITE THIS NOTEBOOK
CITE THIS NOTEBOOK
Categorizing protein sequences based on foldings
by Tvesha Ghosh
Wolfram Community, STAFF PICKS, July 14, 2023
https://community.wolfram.com/groups/-/m/t/2964475
by Tvesha Ghosh
Wolfram Community, STAFF PICKS, July 14, 2023
https://community.wolfram.com/groups/-/m/t/2964475