 So welcome everybody, now today is the biocell webinar number 75 and it will be about the VIMD. It is a software for physical analysis of molecular dynamics. The presenter are Matteo Linares from Royal Institute of Technology Stockholm, Robin Schoenberg from Leipzig University. I'm Alessandra Villa from the Royal Institute of Technology and with me it's Otto Andersson from IT centered Finland, and we are representing biocells. So the webinar is recorded, so just that you are aware of it. And during the webinar, you can ask questions using the function that you tell the bottom of the Zoom application, depending on which operating system you have, you might see this symbol of this one. You just click and you type your question. And it will be nice if you can just write if you have or not a microphone, because at the end of the webinar, we will go through the question and we will unmute you if you have a microphone, otherwise we will read the question. And Matteo or Robin will answer. After the webinar, maybe you still have some questions. Please go to the U. There there is a particular category called biocell webinar where you see a subcategory. The question and Matteo or Robin will answer to your question, in particular in the following week. And this is the correct path to get to the category. So something about the presenter of today. So Robin is a PhD student working on Link Shopping University, in particular in the group of scientific visualization at the Median Information Technology Center. His main research focus, developing technique for molecular visualization, indeed it was one of the main developer of VAMD. Matteo Linares is currently an application expert at the SES Center for Performance Computing, hosted by the Royal Institute of Technology Stockholm. He received his PhD in 2005 at the University of Pulsuzan, close to Marcel, or in Marcel, so sorry, focuses on killerity, organic electronics and molecular interaction. And then he moved, he went around and then from 2018 up to 2023, June, he was Associate Professor at Link Shopping University in the same group of Robins. And if they are put together is theoretical chemistry background and the visualization and this was made possible that VAMD is what is now today. So now the presentation will be started by Robin, and then we will follow by Matteo. I will give the word to Robins. Thank you very much Alessandra for that very nice and concise introduction. Let's see if Matteo can share his screen, he's going to share the slide, and he's muted it feels. Here we go, there we go. So welcome everyone to our talk on visual interactive analysis of molecular dynamics, which is in short VAMD. I am Robin Skånberg and Matteo Linnars is also here to present with me today. So first I want to dive into the history of VAMD, which started as a prototype back in 2018. And then Matteo was part of the theoretical chemistry group in KTH, and I was part of the same group which I am today in the scientific visualization group in Linn shopping, Nord shopping. And it was a joint collaboration for a project where they wanted to study a very specific molecular system, which consisted of stacked amyloid pibrils with fluorescent ligands. And the research question that they had at hand was where did the ligands bind and what's the favorite conformation of these ligands when bonded to the structure and what's the absorption spectra when they're bonded and when they're not bonded. So we developed some techniques or an implementation in in vivo, which is another research software which we have in Nord shopping at the prototype. And maybe you can go ahead. And what we learned from this initial prototype was that we could generalize these core principles which we have developed, which was more or less the integrated interactive analysis portion of it. It's a very common pattern which you see in visualization software that you visualize, you study the data and you analyze it and you formulate a new hypothesis based on the data and then you compute properties based on this and you repeat this pattern. And if you expose all of this in the same application, you can minimize the iteration time and reduce the friction for the end user. And it also allows us to exploit synergies between the different components in a system, software system that is. And so this is the current version of EMB and it shares some similarities to the old prototype. There's a lot of windows here because we just want to show more or less what's there. But at the bottom you can see, oh, thank you. So the first thing here in the back is the spatial view, we call it, where you look at the animation of a trajectory and see how it plays over time. And you can control your representations. And the next window is the script editor, which is kind of the main component where you define your properties which you want to compute over the set of frames, which is your data set. And once you define your properties and evaluate them, you can look at them and you can study them in the different views. And in the timeline, you look at the temporal aspect of the properties and how they evolve over time. And in the distributions view, you look at the distributions of these properties. And the density volume is also a type of distribution, but it's a three-dimensional view instead. And then we have the Ramachandran plot, which is something that you should all be familiar with, I assume, the audience here. And then there's a quirky thing which is called a shape-space, which Matteo will cover later, but it roughly gives you a linear estimate of the evolution of the geometry, the geometrical deformation over time of the structures. Yes. So, with this software, we developed our own scripting language. And the motivation for developing a new scripting language was to come up with something which is very simple and has specific end of case that can provide a very good specific feedback to the user so we can make very, very precise error messages, for example, based on input. And it also allows us to inspect expressions. So, if you hover an expression within the script editor, you can directly look at the expression and sub-expressions and look at what's the type of this, what's the length of it, so you can actually get some feedback that you're actually computing what you're supposed to compute. And it also provides us with a way of giving you visualization. So, in this case, the user is hovering an expression which is computed in an angle within three different residues. And in that case, we draw, we highlight the atoms, we draw lines between these angles which are formed, right? And we signify it also with a wedge to emphasize that it's an angle. The syntax of the language is a declarative syntax, which might not be so common these days, but it, more or less, it's, you state what you want should be accomplished, but without specifying how it should be accomplished, which would be an imperative language where you make explicit control flow statements. And in this case, controls flow is implanted to the order of the operations. And you tie these results of this expression into variables which you can reuse in later expressions and such. So, down here, we have an example of some expressions where we make some selection of residues that are matched to the name alanine, for example, and then we take a sub portion of that and we use Python. Our ranges are inspired by the Python syntax where you can have these open-ended ways that we have five column, and that means from five upwards to whatever you have there, for example. And there's more details to this, but we will cover that soon enough. One quirky aspect of the scripting language, or uncommon aspect, I would say, is the keyword in, which declares contextual operations. So, if you have the keyword in on the left-hand side, you specify your operation that you want to perform. And on the right-hand side of the keyword, you provide the context. And for n context, the resulting type will have length n. So, in the example here, the user wants to compute the angle for three residues. And on the right-hand side, you specify, oh, I want to do this operation for residue one to three, right? And then you want to compute the angle between these indices. And this replaces this traditional for loop that you would see in imperative language. And script evaluation typically occurs in three scenarios. And the first one is during static validation. And that is during the compilation page, more or less. So, when you're satisfied with the script and you stop typing, we wait a second or two and then we start compiling the script, which usually doesn't take that long. And there, we validate the script that you've written against the currently loaded topology so we can actually see and verify that everything that you've written here makes sense in the context of this data that you're working on. And the second scenario is the data evaluation. And that's when you actually want to extract a value out of my expression in order to store it for later use. And the third one is something that I already alluded to before, which is this visualization part. So, when you hover an expression, we can render some geometrical primitives such as point lines, spheres and triangles, for example, that we can show you superimpose on the structures to kind of provide you with meaningful feedback. It's what you actually mean when you wrote this expression. And we can also highlight sets of atoms to clarify that. And every implemented procedure within the scripting language must support the data evaluation, the second one, right? But it can also optionally support the static validation and the visualization part as well. So, when you evaluate your script, some of these variables which you have defined will automatically be promoted into properties. And this promotion occurs automatically. And it's based on if the variable is dynamic, which means, in our case, that it changes over the frames of the trajectory. For example, if it had the dependency on the atomic coordinates which change over time, for example. And if it's of these three base types, which we use in the language, which is flow to distribution and volume. And if it's one of these types, it will be exposed to the breadth of application of properties. And that's in the timeline window, for example, the distribution window and the volume window. And then we can look at them. So, now, Mathieu, I leave the word to you and hopefully you will enlighten us with a demo. You need to unmute yourself, Mathieu. Here we are. So, thank you, Robin. So, I hope that you can hear me well. So, I just open VMD now. And when you open it, it comes with the preloaded datasets and you can adjust the font size. So, I'm going to push it a bit more. So, it's a bit more comfortable for you. So, you can click, left click and rotate easily like that. And you can also right click and translate. If you double click somewhere in VMD, it's going to recenter the camera. And like that, it's going to be easier to jump to a specific part of your molecule you are interested in. And, of course, you can use the scroll to zoom in and out. So, as Robin mentioned here, it is the script here. And we can then evaluate it and maybe to illustrate the visual feedback that Robin was talking about. So, you see here that we have selected the residual anine, but only from the second to the eighth one. And you can see the highlights. So, here, here, probably if I play the dynamic, it's going to be a bit easier. I'm going to jump a bit here. So, here, you can see, for instance, a feedback between the distance between two atoms. And here, you can see the angle one to two, one, three for all the anine residual with some feedback provided. We here evaluate a regular distribution function and also a special distribution function. So, you can either click evaluate or you can also use the known shortcut shift enter to your evaluation. And when it's down, you can go in the timeline and in the distribution and then you can click and drag the property that you have calculated. So, here it is the first distance. You can increase the number of subplots. And when you have a variable like that, I mean a property like that that contains 15 value, for instance, or several values, you can either choose to plot all of them like this, but you can also choose to plot the mean value, the variance and the mean max, for instance, on top of it. I mean, everything is modular. You can then have them move from one to another one. And when you are tired of them, you can then throw them outside the window. The same in the property here, you can do like this and add another one. And so here you can, for instance, have the property for the aggregated value, for instance. And by doing the right click here, you can also change the plot type. So for the distribution, we also provide area or bins, bars, sorry. And you can change the color if you wish. And I don't know, change the transparency also by reducing the alpha here, something like this. If I drop on top of that now, all the values of A1, you can see that we also have some feedback between the distribution and the spatial view. So for instance, you can see that if I select this specific line, well, I don't know. Sorry. Yeah, here, for instance, you can see, now I have selected a specific residue. I mean, and I can see the feedback in there. In the same way I didn't show, but here you get also the 15 value that are accessible and you can like that turn them on and off if you wish. I would like to mention also a property that we have in the timeline, which is some filtering that you can enable. And you have a temporal window, which means that when you turn on this filtering, then in the property, another sets of property will be evaluated just for this specific section of the trajectory that lies between the two lines. So like that, I can also plot my distribution, my filter distribution if I want. I can change the color so we see it a bit better here. So like that you can superimpose the two distribution. The navigation in the timeline and the distribution, you can scroll using the wheel. You can click and drag with the left button. And if you want to zoom to a specific part of the trajectory, you can use the control plus left button like this. And if you want to go back to the initial view, you just double click and the same. So the same type of navigation happened here. Well, double click would initialize. I'm now going to show you briefly the shape space that's been mentioned before and I'm going to remove the filtering. So we get the shape space for the entirety of our trajectory. And so here that you see that we are looking at the entirety of our system, which is this aligning chain, 15 aligning chain. And you can see kind of redistribution in the shape space. So that will tell you if your object, so here my chain is linear and it's also interactive. So if I click here, I'm going to jump to the point that corresponds to linear. And this is the beginning of my trajectory. And as you can see, my chain is pretty linear. Or I can look at this conformation that would be more planar. And if I zoom on it, you can see that we are, I mean, maybe I can move that a bit so you see a bit better. Let me recent out of you here. So you see that it from kind of more like a plane actually, or we get this extreme point here that is closer to the isotropic. So here my chain is forming like kind of a sphere. So this is interesting if you want to follow the conformation of a specific molecule. And I just wanted to illustrate it here, but I will show another example much more in detail later. So via MD can read several formats. And so here this is a multiple PDB that comes loaded with the trajectory, but lately we have implemented CF file. So you can open CF file if you want. So here this is a pretty big CF that I found on the, on the PDB database. And you can also load chromax file because we have, we are working in close collaboration with the, with the chromax environments. And I will start here with the trajectory that's, that is made of an aspirin molecule and the protein it interacts with. So when I drop a grow file in via MD, as I just did, as you saw me doing, there is an automatic representation that is established by the software. So if I open to representation now, you can see that this has been created automatically by via MD. So it created something for the protein, something for the ions, something for the ligands, which is not protein protein or nucleic or water or ions. It also recognized as you understood nucleic, but we don't have any DNA or RNA in this data set. And then finally we get the water and by default via MD is not displaying the water. So I can show it to you here. That would be my box with the water, but by default we're not going to see it. So here this remaining script is from, from before. And here I showed you I just dropped the grow file, right? But if I want to drop, if I want to analyze the trajectory, I also need to drop the XTC file that correspond to the trajectory. And it needs to have the same number of atoms that in the profile. So by doing that, the animation window appear and now I can navigate in my trajectory. And as you can see, this is in this trajectory, we get this aspirin molecule that is leaving the pockets of. Of the protein. All right, so I'm going to turn off the ions for the moment and just focus on the protein and the aspirin molecule. And I'm going to clean clear my, my script here. And then I'm going to show you how to select two atoms. So using shift and click here, I can select two atom and then I can do a right click and go to script. And if I do that, it's going to propose me some options to calculate the distance because I get selected two atoms. So you can see that all those expression here are exactly will, will produce the same results. Obviously, they're just different way to express the same thing in, in, in VMD language. And for every selection, you will either have a property or just a selection that you will be able to save. And if I click, it's going to appear now in my script editor, and I can evaluate it. I'm going to move that a bit away. So we have a better view. If I select now three atoms to three. If I didn't select three atoms, so let me start over. So if I select three atoms like that and go on script, I can calculate an angle. And if I include a fourth atom, I'm going to be able to calculate the diagonal, of course. So we will do this, those evaluation later and look at them in more detail. But for the moment, we will focus on defining a pocket for the, for this SPL molecule. So you can see that right now when I interact with the molecule, I highlight atoms per atom. And this is because my selection tool here. In the selection tool, I have chosen the granularity atom, which is by default. So I can change that and go to residue. This time, every time I hover on an atom, the full residue is going to be highlighted. So like that, with one click, I can select my four aspirin molecule. All right, so now let's put it back inside the pockets. And well, you don't see the pocket because I'm just showing the backbone here. But trust me, it's there. And what I can do now is go to selection, and I want to grow my selection. And I'm going to grow my selection, not covenantly, but rightfully this time. So I can use the cursor. If I want to, I can just do a control click and then enter the value I want. It's going to be four. And then I can apply this grow of selection. So now I got selected. I have selected my molecule and the all the residue. Because of my granularity residue here, all the residue that are within four Armstrong of the protein of the molecule. So, so now I can just and select this molecule. And I can do a right click now on any of the residue that are highlighted and I can save this selection in my script editor. So now I'm going to rename this selection to pockets, for instance. And now I can use that well for several things, for instance, I can define a new representation and using this pocket keyword as a filter. And maybe can change that to licorice and I'm going to change the coloring to raise IDX and here it is so we can identify the residue that consists of constitute the pockets here. So, as I mentioned now I can also use pockets to define some properties. So for instance, I might be interested into the distance between the pockets and the residue. And which is my SPL in here. And so I'm going to move out of my pocket slightly here. And you can, if I hover on to the one you can see that here. It's actually the distance between the center of mass of the pocket and the center of mass of the aspirin molecule. And then that's by using the distance pair function by one to, and this part is just to illustrate some functionality of the language and how you can play a bit with it. So let's say now, if I use the distance pair, and I'm going to use the pockets and the aspirin molecule, just that. If I hover on top of it, or you can see that now I get 200 values in D2, and pocket is defined at the residue level, but the aspirin is defined at the atomic level. So since we have 10, 10 residue in our pocket and 20 atoms in our, in our aspirin therefore this is of dimension 200 here. And that's because maybe I'm just interested into the distance between the center of mass of the pockets and the center of mass of the molecule only there. Let's say the center of mass of the residues of the pocket and the center of mass of the molecule so I can do that this way by using the center of mass function like this. And now, if I look at D3, I forgot something I forgot a parenthesis here. If I look at D3 now it's made of only 10 values. This dimension 10 the distance between each center of mass of the residue of the pocket and the center of mass of the molecule. Right finally, I can also, if now I want to take into account all the atoms of the pockets and not only the center of mass of each residue, I can use the flatten function to flatten the pockets. And then the center of mass of the aspirin. And there we go. And if I look at D4 now you can see here that we have under 23 atoms in in in the pockets and we are looking at each of them with the center of mass of the of the aspirin. Right. When you have. Sorry about that there's a lot of noise in the building right now. Don't know if she's disturbing for you. I hope not. So, another functionality is that we can also import energy file coming from chromax. So, I can just drop it here. And then it's going to appear as a table. And so the way to do that is to import and import the energy file here. So import X VG and CSV. If later you want to plan it in the timeline. But when I hover here I can see all the terms that are contained in this energy file. So let's say if I'm interested into the particular one the Columbia interaction between the protein and and and the aspirin. Well, I can just add the. Here, add the flag that correspond to the Columbia interaction which is 68 and now if I hover you can see that this is the Columbia interaction between the protein and the molecule. In the same way, I can calculate the linear Jones interaction, or not calculate but extract I should say the linear Jones interaction from and, and then there it is, and then I can, if I want I can add them together. Simply doing it like that. Basic mathematical and here it's not working because I should use of course the same viable and here it is. And now, in my timeline, I can plot. Well, for instance, one of the distance that we have calculated. Let's say I'm going to take this one. And we can also plot for instance, now the total energy coming from, from the idea of high. So, now I'm going to show you how to define a dynamic selection. And so this was the pocket. And now I'm going to define a dynamic selection. And so to that I'm going to use the filtering and I'm going to use a function that score within. So here what I want is the solvent molecule, and within five angstrom of the aspirin molecule. And here they are. I can change in licorice but what you can see here also is that the molecule water molecule are not complete some of them are just just have an OH right this is because here I just have all the atoms star within. But if I want to consider all the residual if one of the atom is within five angstrom of the molecule, I can add this residue keyword keyword just before the expression and here. All the residuals going to appear. So if I play this trajectory obviously all the molecule are going to fly away because they have been evaluated for a specific frame. So if I want them to be evaluated for all the frames I need to click the order of the button here, and then they are re-evaluated for every frame. I can use this function again I'm going to copy this here and I can use this expression to calculate some to to count for instance what are the water molecule. So I just type in this count the resume soul and within five or so as an AI in and I can evaluate that. And if I plot it now. Well, and if I look at the value, what's evaluated here is actually the number of atoms, obviously, as it was before. But if I want the number of residual, I can use here. Residue keyword here. And if I reevaluate now, I will find a number that correspond to the number of residue of water molecule of water molecule. And what you can see here on this graph is as the molecule is leaving the pockets. And the molecule increase no more for the molecule increase here. Right so when you are, when you are here you might want to save all your progress and be able to reuse them later to not have to retype all those, all those things in your scripted detail. So you can go to file and save the workspace. And, and I do that, I can go there and save the workspace and I'm going to save it as bio Excel. And if I show you this file now. All right, so this is how it looks like this file so first, it's stored information about your your topology and your trajectory information about the cameras all the information about the different representation we have defined. If it's a dynamic selection or it's a dynamic selection here or not. So what could you use larger funds, maybe. Thank you. I'm not sure I can on this on this slide. Okay, sorry on this on the thing unfortunately, but everything is saved, basically, and also the content of your script is saved. I'm going to switch now to another data sets and I'm going to just now take this via file and then drop it immediately because you can also drop this via file into it, and then everything is going to be loaded your profile, your XTC file and and so on. Before I start by exploring this data set, I just want to give you a bit of context about the, about this data sets. So it's, it's, it's about amyloid formation of amyloid and detection of amyloid, because you all know that amyloid diseases are a big issue and Alzheimer and Parkinson are two example of them. So we are collaborating with a group in in shopping the have been developing those fluorescent markers, and we can tune the markers by changing by changing the chemical unit into it to reach different color. And those marker they also specific to different fault so they can be used to detect some, some disease but not other diseases, for instance, and because we are interested in the fluorescence of those molecules. So we, we focus a lot on the planarity of the molecule to see how the planarity is affecting, or to see how the febrile and the contact with the febrile is affecting the planarity. And we can also perform a QMM calculation to see the effect of the environment, but that's another story. All right, getting back to the data. And here you see that I already have a script. I have typed. So if we look at it in a bit more detail, what we do is we can count the residue PFT are within two angstrom of the protein. So that's is telling us how much molecule aggregating during the trajectory. So I just evaluating it right now. And when it's done, I'm going to be able to plot it. So here I can follow the number of molecules aggregating rating over time. And I'm going to zoom down on one molecule. Doesn't matter which one. Yes. So here what we do is we define diagonal angle and you see that we define it for all the PFT molecules or for all the molecules. So I forgot to tell you about this data set window that contains information about your data set your growth by your XTC, but also all your residue with visual feedback. So here I'm calculating the diagonal DH1 and DH2 and so on and so forth, but I'm doing it for all the molecule at the same time. I can also group my properties together if I want like I can combine DH2 and DH3 to define a new property that is DH center because this molecule is is symmetric and for a reason I might be interested only in the center. And then I can calculate the planarity, which is actually derived from those ideal angle like that. And here I'm also calculating the RMSD for all the molecules you can see. So I'm just going to plot quickly the proper the planarity and the RMSD here and I'm going to go to the distribution and do the same thing. I'm going to switch to some column map to make it easy to follow. Yes, it did. And I'm going to do the same thing here. All right, so what we want to do with that is actually to identify the molecule are the more planar, you know, and find the one that's actually aggregated somewhere on the protein. And what's very interesting is like by just looking at this planarity parameter, we can quickly see the outliers rights and also we get visual feedback so I don't know if you see very well but my molecule this molecule now is turning yellow on my screen and this is actually this one so if I zoom in a bit more. Now you can see here this is this molecule. That is so mean a bit. You can see this molecule that is the 39th residue. And I can also see that there is another one is just this side here that is also quite planar. This one that's the molecule 52 3952 seems pretty good. And if I look at the MSD here I got a bunch molecule are moving quite a lot but I got some molecule are quite, quite narrow distribution. And here I find again my molecule 39 and my molecule 52. I'm going to try to identify your outliers, and I can then look at the ship space and if I look at my, my pft, my pft molecule here all of them so now I have 61 molecule here and you can see how much are clustered, but they're spread, I should say, and I just want to highlight now that this molecule 39 so now you see just the highlights. See if I zoom in so you can see, oops, sorry, I'm going to try to zoom in here. All right. And if I see you so you see now molecule 39 is very very confined so it's not moving much during the simulation, as I presume the 52 here it's much more compact that if you would look at, for instance this molecule, all those molecules. Finally, the special distribution function. So, now I can define, I'm going to turn that off and turn that off so we can focus just on the special distribution function. So, I can define my amyloid that is actually the collection of my 253 chains and my pft as being all my pft molecule. And now I can use this special distribution function function to calculate where are the pft with respect to the amyloid. And this function SDF is going to look at the amyloid and recognize that this is repeating units, so I can super super impose them onto each other. And then I will have the distribution of where are the molecules with respect to this reference frame. So, opening the density, plotting the density here, it appears like here like that. And I can clip the plane. So I'm going to do that immediately around those value here. So I'm just focusing around one chain. Too much. Sorry. There we go. And, and here I can change the representation, maybe to cartoon, and I can also show the super super impose structure right because as I mentioned I get 253 chains in my system. So I can show them all. And here they are and I can use different coloring for instance. Oh, I can't get trajectory. And, and here what you see is where we are. What is the high density of pft molecule, but projected onto one single chain, basically, I can also export. If you want this property as a cube file in the export. So this time not distribution that you can choose density volume and export your, your cube file. All right. I don't know how I'm doing with time here. I think we are more or less done. Right. Yeah, I so I will just go to the conclusion here. And talk about the, the future of the MD. So we would like in the future to support analysis of multiple systems so it could either be replicas of the same system but also we are thinking about comparing system with sliver variation mutation and so on. We would like to transition to the next generation graphics IPA we are working with open GL and that goes system issue with Mac and for that we will have to move to metal and Vulcan. We would like to of course support more script operations and support more more more five format in particular grow max TPR so like that we would be able to connect the energies to topology and improve the feedback. Also on the energy. Also amber and and and we did not mention that but now you can if you're working with lamps, you can also open your trajectory with with the MD. The resources available on GitHub. So you can find, of course, the latest release, and there is a weekend tutorial for that post issues if you want and for any other related questions ideas, we really invite you to use the discussion option of GitHub. The paper has been published in December in the Journal of chemical information and methodology and modeling sorry. And if you use the MD and well of course we would appreciate if you could cite it, but also very importantly we encourage the user to publish their VMD script in supporting information, obviously together with their trajectory on Zenodo. And also for reproduced reproducibility purposes. And we have on my YouTube channel, there is some tutorial video and the MD is also available on on Twitter. And I think we would like to acknowledge people that have us along the way in our shopping martin in grade and under the supervisor of Robin and tell I would have been helping us on many, many different project Gustav we implemented in the course, parser infinity and Caroline and Patrick for the initial project and for where we are today. Also, and of course people sharing the data with us on Zenodo and other platform. So the paper has been supported by Cirque, and for a long time and it's still supported by Cirque the Swedish science research center, and lately we received some funding from infrared which is a infrastructure for financing for visualization project. And with that, I would like to thank you also for your attention. Thank you very much, Robin. Thank you very much, Matthias was very nice presentation. So now we have a couple of, I mean, more than couple of questions, but I want just to start with scan that there's a lot of question. Can I try to unmute you so you could speak. You can speak. Yes, you have. Please go ahead. You can ask your question can not can is not able to unmute him. He doesn't have that he or she doesn't have a microphone. So I will ask, I will read the question in place. Will GPS acceleration implementing movie and video rendering become available. Would you also consider making this binder plug in as well. It is mostly in C++ after all. Robin, you want to take this one. So it feels like a two part question either to capture video and the video stream as an output, I assume. Well, we had many discussions internally about this back and forth and we kind of concluded that we don't really we want to keep the software pretty light and nimble and we don't want to include any major dependencies. And if you wanted to do that properly that would introduce some major dependencies which would kind of blows the system. And I think there's a good support in the video drivers nowadays for doing video capturing if you just want to capture the application and there's other third party software which does the video capturing as well so we kind of push that on for the future so to say. Could you remind me of the other part of the question. Blender. Yeah, would you consider making this a blender plug in as well. I think there are a link. Excellent blender tool. What's it called. Molecular notes. Molecular notes by Bradley Johnstone. Yeah, so he's doing a fantastic job with that already. I'm not going to put effort and time in putting any analysis portion of this in blender I think blender is excellent software for doing 3d rendering and there's good plugins for that already I would say. Okay, thank you. So we have a following question. That is by Barbara. So I allowed her to to speak, please you can speak if you want. Hi, can you hear me. Yes. Great. So we were wondering if it is possible to define all non standard properties and how to achieve that. Robin you want to take it or. You could, I'm not sure if I followed the question but. Well, I think that's your thing like let's say how can I, how can I define my new, my new, my new function like that would do whatever I want, right. Yeah. Yeah. Well, I mean, well, there is different ways. I mean the first way is to ask us nicely to implement it. There are different ways to do it yourself by by downloading the source code and just hard coding it. But that would be the two options. I don't know if there would be a third one. Robin. Yeah, I mean, we haven't exposed any way of you to define your own functions or procedures within the language that it's in the script then right so you have to everything is implemented now in the in the back. And you're free if you wanted to implement the function like that and expose it that you could do that. But as I mentioned in the in my slides. Every, every procedure can be evaluated in different contexts so to say or in different modes right so you kind of need to have that in your back, back of your head. We're working on the refining the API in the back so that it would actually be easier for other people to contribute and produce functions for the software as well, but we haven't really gotten there yet. Thank you. Thanks. So then we have the following question that is coming from Edward, I will try to unmute him. Okay, you kind of at what you can speak. If you want. I guess it doesn't have the microphone. So, his question is, is there an option for using a custom shape space, example projection into I am vector of Cartesian coordinate Cartesian space, sorry. Currently, it's a fixed output we we just to compute the shape space based on the eigenvalues of whatever object that you have defined in your selection. So no there's no custom projection with regard to that but we do expose the parameters in the script editor so you could if you wanted to export those and do your own rendering outside if you want to do that. Then we have a other question. Can as also several question is, does the trajectory update hires structure or sorry, does the trajectory update higher order structure representation in real time or must in addition analysis be made. Are you are we talking about like secondary structure of the protein for instance here. No, but I don't know. Okay, yes, so this is this is pre calculated when you load your trajectory for instance here on the amyloid febrile. When you load it, there is a backbone calculation that is established and then this is exactly what's what used to feed the ramachandran. So for the backbone it's pre calculated. Yes, we want to do some more work on the ramachandran to so it has the same feel as other window yet so we are not completely satisfied with it, because we would like to be able to use subsets of the full protein to be able to plot the distribution of subsets. So we are going to work on that but yes the secondary structure of the protein is automatically calculated upon loading. There is also ownership in there it's like, we use a kind of simplistic model for now for determining the secondary structures of systems because we wanted to. We wanted to keep the performance right there and kind of sacrifice a precision with regard to that so it's not a it's not ideal in every scenario, it's going to wrongfully predict beta sheets for example sometimes. Yes, thank you that we have a Syria as a question I am here. Could you speak please. No, it doesn't have so yes multiple. She has a multiple question and and one is about GPU compliant. Then how much memory to require via the and and do you plan to incorporate incorporate the SSP secondary structure analysis. So, the MD is it GPU compliant I mean it can work without GPU. But if you have a large data set with a large of atom it's going to become a bit problematic in terms of memory. Well, it depends again. But usually, we, I think the recommendation was four Kiga of right Robin. Yeah, we just in the back we have something which is called a trajectory frame cash, where we cash all of, or some of the some portion of the frames for the trajectory in order to speed up the computations and view of the trajectory. But you cannot set that budget in memory, when you compile the application and you can set it for yourself if you wanted to reduce to put memory footprint for example, so we don't we don't load everything into memory. So it's not limited by that. We stream on demand the frames if you need, if you're not in memory. And for the SSP. Yeah, maybe that's kind of tight into you know better secondary structure determination and that's that's something that we're looking at. Basically all the calculation are made for the DSSP is just a way to expose it so that's something that we, we would like to do in the future. Yes. Okay, so we have a lot of questions but we just go in order and all the questions that are missing I will put in the, in the forum so you can address there, Matthew and please Matthew and and Robin if you then you can answer to the question that are missing. Absolutely, we will absolutely address all of them and I can just see one and I forgot to take it, talk about that you can export in the screenshot by clicking on screenshot and. Yeah. So but now I go to there is a question of Attila now I am muted until you if you want to speak. Not till you. Hi. Hi. Yes, please go ahead with your question. It's interesting. So, sorry, I missed the first five minutes. So, just to be sure because I would be really interested in using your software for some kind of analysis. You say that now it supports amber trajectory files already or is something you have to. Not yet, not yet on the line and number is also coming with with a lot of dependencies. And that's also why we haven't done it yet. So not yet on there for the moment, but it's support multiple PDB file. So. Okay, but even if I mean, anyway, if one, let's say, transform the trajectory. Yeah, it will work anyway. Absolutely, absolutely, you're free to use any, any tool you want to convert in any format and you and then I would work. Absolutely. Okay, thank you very much. You're welcome. So then I jump a little around to have a little different questions. So, Mohammed, as a question, I try to unmute you if you can ask your question yourself. Please go ahead. I think he doesn't have a microphone. So he thanks a lot for the nice talk. I would love to use VMD in future for trajectory analysis. I have a question. Is there any tools of VMD to do the free energy landscape of MD trajectories? No, not yet. But that's something that we, we have in mind actually with my colleague, Juan, and that's, we might, we might work on that in the future. This is something that is in the back of our heads. And yeah, we would like to do that. Please give me the possibility to. Hi, who's speaking. I don't know. So, then I have a final, I will speak up a final question. Maybe Oriel has several. There is a question, there are several questions on QMM. So, then, for example, there is one of Canada that I just read it. Is the dynamic bond representation yet available for QM or QMM MD simulation? Or if not, will be, will be, will they be? There is no, there is no dynamic bond for the moment. The bonding is attributed at the initial frame and kept all the way. Yes, that's something that we would like to do in the future. And to continue also in the QMM, because I see some some discussion about if the MD can read molecular orbital and being an MD software not for the moment, but we hope to go towards visualization of electronic structure property also in the future. Okay, so there is also connected the question if we can be used for Gramax Cp to K interface output. No, I'm not familiar with it. So, and so is no, no. Okay, so then there is I can, the last question I will ask Oriel if he can he want to ask to us to ask his question I am allowed him to talk please go ahead. Hello, can you hear me. Yes. Well, one of the questions was already answered, but the other two, one of them, if is it possible to export the computer information for further analysis and plotting. And the other one is, if the more advanced functionalities like, for instance, the three, this triangular conformation analysis is described somewhere or maybe. Yeah, absolutely. So for exports, you can still see my screen here right. Yes. Yeah. Yeah. Okay, so for export you can go here in the script and you can export them. So you get here you can export the temporal or the distribution and so on and you can choose here, which one you want to export in the format SVG or CSV. And when you're when you want to export the density is going to be in a cube file cube file. The same way you can also export to your ship space here. So you're going to be able to export them also those values of the percentage of the, of the three components for each of the political that you have chosen. And then what was the last question about sorry, the last part of the. If the more advanced functionalities like for instance three dimensional shape space is described, or maybe yes, absolutely. So in on the GitHub of VMD, if you look here in the citations here there is the citations for the specific tool. And so the, the shape space and special distribution function is actually published in this so it's published on the side. So if you look at the VMD paper that we just published in December here there is also a link where we describe more in detail about the shape space and the link to this paper that is specific to the shape space and and and special distribution function. Okay, awesome thank you. Okay. I thank you everybody now so it's a one hour that we are online. So it's time to have a break. Thank you all the attendees for the question. And in particular, Matthew, a robin for your availability to answer to the question for very nice presentation. And I close this section here. And I would just before closing I want to announce the following webinar that will come so if you can give me the opportunity to share my screen. Thank you. Okay, so the next by Excel webinar are the following we will be the fifth of March, we will have manual salud board that will speak about the Gromax 2324 new feature and improvements. And that we will have in after 15 then 19th of March, we will have Jacomo Fiorin, and collaborator probably speaking about call bars so call bars a collaborative variables model for molecular dynamic simulation programs. Okay, so you are all most welcome. Thank you for today. Have a nice evening. Bye bye. Have a nice day for who was in the day.