Protein Visualization in Wolfram Language

Shotik Shaha from the Wolfram Alpha chemistry team shows how to visualize protein structures using Wolfram Language. The talk covers visualization techniques and future directions for the protein visualization packlet.
Chapters
Hi, welcome to my talk. My name is Shotik Shaha. I'm a bioinformatics developer working with the Wolfram Alpha chemistry team. And today I'm going to talk about protein visualization in the Wolfram language. So this is the outline of my talk. So at first I will give a brief introduction to the Wolfram protein visualization packet. So this is the packlet that mostly talk about today. Then I'll go into what are proteins? A brief introduction to that. Then I'll go into protein structure and ribbon diagram, which is a very common way to visualize proteins. I'll mention other ways to visualize proteins using the packlet. Then I'll go into better understanding of dihedral angles in proteins, which is another very important feature of protein structures. Finally, I will explain analyzing residue residue distances and interactions in proteins using the packlet. And finally I'll go into future directions. So let's get started. So this is a nice figure that explains the different functionalities of protein visualizations that you can do using the recently published Woolframe protein visualization packlet. So the latest version of the packlet, which is 1.1.0, was published last week and the first version was published earlier this year in summer. And I will go into all these different ways to visualize and analyze protein structures throughout my talk. So to get started, we need to install the packlet. Just make sure that you have the latest version of the packlet, which is 1.1.0, and then you can load the packlet once you have installed it using this command. So what are proteins? Proteins are covalently linked chains of amino acids that folds into very specific structures and that structures lead to specific biological functions and it's ubiquitous in the biological world. So amino acids are biological molecules which are extremely simple in nature. So here you can see the general structure of an amino acid. You have an alpha carbon, you have an hydrogen, you have an amide group and a carboxyl group, which are common to all amino acids. And then you have a variable R group which gives different properties to different amino acids. So using molecule plot, you can see I have generated 20 most commonly seen amino acids in proteins. And if you look closely, you can see the common structures in every amino acid here, like the amide group, carboxyl group, alpha carbon, the hydrogen is not shown here, and the side chain which is the R group. And peptide bonds are one of the most important bonds in proteins, I would say, because peptide bonds are the bonds between two adjacent amino acids. So here you can see I have used the resource function biosequence molecule plot and biosequence molecule plot 3D created by Yan in our team to show peptide bonds here. So here is a peptide bond between tryptophan and Alanine in 2D and 3D respectively. So let's dive deep into the organization of protein structures. So proteins are at the same time extremely simple and incredibly complex in the sense that they are just covalently linked chains of amino acids which we can call as primary structure. And you can think here, these are, each of these beads are amino acids covariantly linked to each other. And this is the N terminal and C terminal of the amino acids. But these amino acids can form hydrogen bond along the backbone and form secondary structures like alpha helix and beta sheet, as you can see here. And these are the two most commonly seen secondary structures in proteins. These secondary structures can then further fold into tertiary structure owing to interactions between the side chains. And here you can see one single chain of a continuous chain of amino acids fold folded into a very specific structure here. And multiple chains can come together to form a protein complex which is called the quaternary structure. And here is an example of that. This is a structure of the human deoxy hemoglobin complex. So as you can see, this is the most common way to visualize proteins and it's called the ribbon diagram and the function Biomolecules Plot 3D in the packlet can be used to see visualize ribbon diagrams in proteins. So here I'm using, using this function with an input which is the four letter unique PDB ID code for this protein. And this is a structure of myoglobin, which is a very important protein present in our muscles. And as you can see, when I hover my mouse over the structure, you can, you can see the information about 3amino acid chain and residue numbers. And you can also see the ligand that it binds to. So this is the heme B ligand which has a iron atom at the center of it. So two of some of the most useful options I think in this function is one of them is backbone color rules, which basically gives you the option to define the color of the residues by chains or amino acids or basically secondary structure. So here you can see this is the structure of the COVID 19 main protease, which is the most important, one of the most important proteins in the COVID 19 virus and is a very important therapeutic target. And as you can see, you can see the 3D structure of the COVID 19 Protease here. And it's colored by chains. So you have four different colors for four different chains. And here it's colored by residue. So it's colored by different amino acids as you can see here. And finally you can also color it by secondary structure. So the helix and sheets are colored by red and blue respectively. And the portion which are not helix or sheets are colored in gray. So you can customize this further. So automatic is the second part that this option can take and you can change it to to define your own set of colors that you want to. So you can change the color of chains that I have done here or am I no assets for the case of residues or specific colors for the secondary structure. And you get then your custom custom plot that you want. So another important option is backbone atoms. So this is what it does is basically it shows the structure of the protein, the molecule structure of the protein overlaid on the ribbon diagram. So in this case you can see both the coarse grained structure of the protein with secondary structures and also just where the amino acids lie. And this is the structure of the human insulin growth factor, which is one of the most important molecules when it comes to growth in all different cell types. And when we set backbone atoms to true, true, this can take all options of protein backbone atom plot, which is a plot which is a function I will mention in a minute, but it can be used to plot the molecular structure of proteins. And show side chance is one of the option for protein backbone atom plot which when set to true shows the site chance of amino acids. And this can also be very useful to teach protein structures to students because they can then visualize where individual amino acids lie in this coarse grained ribbon diagram. So other ways to visualize proteins. So alpha carbon trace is another very common way to visualize proteins. So it alpha carbon trace basically is a smooth trace that passes through the alpha carbons of amino acids and it does not show the secondary structure details. And here you can see using this function alpha carbon path plot 3D. You can see the alpha carbon trace of the human G protein coupled receptor here colored by amino acids. And this is a very important protein in the sense that it lies on the cell surface and it can it is useful to transduce signals between outside of the cell to inside the cell. And it has many alpha helices even though the secondary structures are not shown. You can clearly understand it. So another really cool feature for that the packlet has now is you can fold an arbitrary amino acid sequence and this is applicable to all functions in the Packlet. So you just take an input which is just a bio sequence or a peptide sequence, and this does this is achieved using the ESM Fold API. So ESM fold was developed by some research scientists at Meta and they have kindly offered an API and we are using that to fold proteins. And the only restriction here for the sequences, it has to be less than or equal to 400amino acid long and it has to be a continuous chain. And here I am folding this sequence where you can see that this sequence has been folded like this. And this, since this is a prediction, you can see how confident we are in its in the prediction made by this model. Right. So this is. This region is not that confident. And this region is pretty well confidently predicted. When I hover my mouse over residue, it shows not only the residue information, but the exact confidence score that the model gives us, which can be really useful, which can be a really useful functionality. Moving on, I briefly mentioned about protein backbone atom plot. So, so this helps us visualize just the molecular nature of the protein. So here is the four letter PDB ID code for a human short coil coil protein, which is a very common type of protein structure. So this is how it looks if we just see the molecular structure of the protein with side chains. But it is also well known literature that coiled coils are basically just a bunch of alpha helices coiling or turning around each other. And to see that, we can again use this biomolecule plot 3D and overlay this protein backbone atom plot on top of it to see how this happens. Right. You can clearly see now that this three alpha helices coils around each other and hence it's a coiled coil, which again you can imagine this can be very useful to teach students fundamental concepts and protein structure. Right. Another important thing that you can see here, which you could not see from this plot, is it is known that for alpha helices, the side chains lie outside the helix because to avoid steric interactions. And this is what you exactly see here also in the context of this structure, which is, I think, pretty cool. So another important aspect of protein structure is basically amide planes. So this is a peptide bond, which is a bond between two amino acids. And the peptide bond has a partial double bond character because of resonance. And because of this partial double bond character, the peptide bonds, along with other atoms of the protein backbone, lies in a plane which is called amide planes. So I developed this function to see that if how well this is applicable to real protein structures and hence this name amide plane plot and using the amide plane plot here we show the amide planes along with the protein backbones of the human program cell death protein, which is another very important protein in mediating immune responses and avoiding like autoimmune diseases in humans. And as you can see here, you can see the amide planes and how the peptide bonds, which is the bond between two adjacent amino acids, lie in the same amino, same plane along with the other atoms. And this can again be a very, very useful tool to teach fundamental concepts of protein structures to students. So finally, let's talk about the role of dihedral angles in proteins. So what are dihedral angles? So the common notion of angles we have is the angle between two planes, but dihedral angle two lines. And the dihedral angles are angles between two planes. So here you can see, you can visualize dihedral angles in Wolfram language using graphic 3D and half plane. And you can calculate the dihedral angle between the two planes here, which is 45 degrees, as you can see imagine here. So how does dihedral angles arise in proteins? Right? And what are its importance? So this is a snippet of protein molecule generated using the protein backbone atom plus function. And, and what you can see here that there are these triangles between amino acids. And for a given amino acid, this is alpha carbon, and these are the two axes. And you can have two triangles like between an axis. So that's how you get two dihedral angles per amino acid, which is called phi and psi. And these dihedral angles are largely governed by the side chains of the amino acid, because the side chains wants to avoid steric interactions with each other, which in turn basically limits the values of dihedral angles that amino acids can take in a protein. So you can get the values of the dihedral angles for this human Kras protein, which is an extremely important protein, and it is the most important, most mutated protein in cancer. So you can get the dihedral angles for proteins like this using the Ramachandran angles function. And it is named after G.N. ramachandran, who did a lot of research in the context of dihedral angles and proteins. So when you use this function, you get the values of the dihedral angle pairs for each residue in radians, you can convert this into degrees. And basically you can see the distribution of the dihedral angles using the Ramachandran plot form function. So as you can see here, this is the distribution of the dihedral angles for the Kras protein. And when I hover my mouse over a particular point, it tells you the residue information. And this is how the distribution looks. And already you can see that the dihedral angles are pretty much concentrated in these areas. And that's because these are the most likely areas where you will find dihedral angles if they lie in sheets or helices, which happens to be the case for most proteins. And these regions were calculated in the Wolfram language from roughly 4,500 high resolution human proteins and roughly a million dihedral angle pairs for secondary structures. And this is what we see when it comes to like the regions, if an amino acid lies in either sheets or helices, they are more likely to lie in this region. So now we have seen like the 2D distribution of dihedral angle. But you can use the dihedral angle plot function to basically see how dihedral angles are formed in the context of 3D structure of protein. And using command, you can basically, if you just press the command key, you can zoom in and zoom out on a particular residue. And using the shift, you can move it and then you can turn it to see how dihedral angles originate in the context of a real protein. And this is really helpful because when you hover your mouse over a specific atom here, the atom not only shows the residue it belongs to, but also the dihedral angles for that particular amino acid, which can be really helpful. Coupled with this functionality to visualize how specific values of dihedral angles occur in the context of protein structure. One more important analysis that you can do since the dihedral angle plot takes all options from the protein backbone atom plot, is you can set show side chance to true to see the side chance and the effect of side chains in the origin of dihedral angles and proteins. And I believe again this can be a really, really useful tool to teach the complex concept of dihedral angles to students. So finally we'll go into residue residue interactions, which is of like great interest to biochemists and protein structure enthusiasts. So here we see the structure of the human histone DNA complex, which is an extremely important protein when it comes to DNA packing. And this is the histone protein and this is the DNA around it. And suppose we want to know like what is how does the map of the residue residue inter residue distances look? You can use the protein contact map to see the residue residue distances in the whole protein. And basically this is just the flattened residue. So this doesn't demarcate between chains explicitly. So there are total of 1041 residues in this protein. And as you can see like it, if you see the diagonal here, you can see like, okay, this is probably One chain, this is another chain. But otherwise this is just a flattened residue number. So you can use the cutoff option for this function to binarize this plot. And see like these are the residue pairs that has a distance of within 15 Angstroms. And you can change this value to see different kind of residue interactions. Until now what I have shown is it these are basically just a geometric signature because this just tells you the residual residue distances. But you can create a unique fingerprint of a protein if we can have the sequence information here too along with this plot, because that there is a unique mapping between sequence and structure in proteins. And by setting show residues to true. You can now basically see how you can overlay the sequence information on top of the protein contact map to show like this unique fingerprint for this protein. So you can also see the interaction between individual chains and interaction between different chains using the chains option. So here you can see I am seeing the interaction between chain A and chain A. And this is how the contact map looks. And here I am seeing the interaction between chain A and chain I, where chain A lies in the row and chain I lies in the column where A is basically a protein and chain I is a DNA. So you can see here the interaction between protein gen and DNA chain. Using this option, you can also extract the raw residue residue distance data using the residual distance matrix function. And this gives you the pairwise distances in angstroms. And you can do much more with it and build your custom functions since you have access to the data now. So maps is one way to visualize protein structure interaction. But you can also see this in the form of graph using protein contact graph plot function where the nodes, which are very small here because there are too many residues are individual amino acid or nucleic acid residues here. And you can see that two residues are connected by an edge only if the residue residue distance is in 8 Angstrom, which you can set and you can change to see different kind of graphs. And here you can basically see that there are lots of interactions from this chain to this chain and so on. So you can also coarse grain the interchange interactions using this graph version of the plot. And one of my favorite options for this function is scale vertex size, which basically scales the vertex size based on its connectivity. So if one vertex is really well connected to another other vertices, then that will be larger. So that helps you understand the relative importance of residues in the context of residual residue interactions, which I think is really cool. So you can get the raw data for this graph using the residual Distance graph function, which if you set the cutoff it will tell you this is just residue numbers and which residues or which nodes are connected to each other when the residues are flattened, as I did for the protein contact map. And using this and with using the residual distance matrix, you can build again your own graph or your own visualization as you want to. So the data basically gives you more flexibility with where you are not restricted, just the visualization that we are offering in this packlet. So, future directions. So we want. So right now we are mostly getting experimentally determined structures from rcsvpdb, but we in future we would like to connect it to computed structural database like ESM fold and AlphaFold EMBL database which has a lot more computer structures compared to what we have now. In the experimentally determined protein structure database, we'd like to incorporate relevant genome information from database like UniProt. We would also like to have this plot as a part of our packlet, which is a surface plot for protein visualization, which is another very useful way to visualize proteins. Would also like to incorporate clinical significance for specific mutations in particular to human proteins into the visualization. Finally, with this, I'd like to thank you for your time. I'd like to thank my supervisor, Jason Biggs for helping me in developing and improving this packlet and members of the Wolfram Alpha chemistry team for their useful feedback and suggestions. So with this I would like to take any questions that you might have. Thank you. What about displaying surrounding fields? Can you clarify? Does this mean like the electronic clouds or something like that? What. So the question is what about displaying surrounding fields in case you can't see it? And yeah, can you clarify what fields mean in this case and which. Is there any function in particular you are referring to? Yeah, there's another question in chat that Will sugar depressions on proteins be added later? Yeah, that's I think the plan. We have to look into it more. We just have the basic ligand structure now in the form of molecule plot. So definitely we would want to have as many realistic representations as there can be in terms of like ligands and sugars in proteins. Yeah, we definitely look into that. Oh yeah, local. So there's another question like local hydrophobicity. Yeah, so definitely like when in the next version that's in my mind that I would like to have a color scheme particularly for hydrophobicity because I know that's a very useful functionality. And when I'm developing the surface plot, definitely that's, that's in my mind because I think That's a very like common and useful way to see proteins because like often you can have like, like brain shaped proteins or pores where outside of the force can be like hydrophilic, inside of the force pores can be hydrophobic and so on. Yeah, so that's, that's definitely in the world, in the worksmith, like in the planning and yeah, I would like to incorporate that. Yeah, available hydrogen bonds. Yeah, that's like a very interesting question. So the question is like will we have hydrogen bonding I guess shown in proteins? Yeah, that, that's another goal. So yeah, we need to definitely figure out if, how to calculate like hydrogen bond efficient computationally efficiently for large proteins on the fly. Once that's figured out, that would be a really nice addition to have. Yeah, so that's, that's the answer for now. Yep. Yeah. So I guess if you don't have any more questions, I'd again like to thank you for your time and if you have more questions in the future like feel free to reach out to me. I guess like I'll just share my email here if you want to email me. So I'm sharing my email in the chat. Yeah. Thank you, Jeff. Yeah, so my email is S O U T I c k s ulframe.com. i don't know, I'm not able to probably send it properly and thank you so much for coming.
More from Guy

Cheryl Strauss Einhorn | The Human Edge: Smarter Decisions in the Age of AI | Talks at Google

Rachel Glennerster | Innovation and the Center for Global Development | Talks at Google

Rebecca Winthrop | Rethinking the Purpose of Education in the Age of AI | Talks at Google

Dr. Robert Wachter | A Giant Leap: How AI Is Transforming Healthcare... | Talks at Google






