Live CEOing Ep 813: Design Review of BioMolecule and BioMoleculePlot3D continued

Stephen Wolfram and team review Wolfram Language's biomolecular tools for version 14.1/14.2, discussing API naming conventions, how to handle molecular variants and substructures, and visualization options like Gaussian surfaces and water inclusion in BiomoleculePlot3D. They also plan integration with ESMFold for protein folding.
Chapters
All right. Hello, everyone. We are here to do some final review of biomolecular functionality for version 14.1. What's the function? We start looking at biomolecule. And am I looking at the source documentation or am I looking at the built documentation? The source.
So we mainly want to stick above the fold. It doesn't have it. The examples below haven't been filled in yet. But we want to really kind of nail all this stuff down.
Okay, well, obviously we need to put Biomolecule as a spell spelling function, but I don't understand why, if we're calling it biomolecule as biological bios, then this should be bio space molecule. You understand what I'm saying?
Y.
Okay, yeah, I agree. Unless we want to unlowercase. Unuppercase that.
No, I think it's. It. It reads more natural to me. Even if today many people use it as one world.
Well, awesome.
If it's going to become one word, we might as well, you know, sort of be ahead of that and just call this biomolecule with a lowercase m.
I think many people do.
Well, then we should do it then. That's what we should do.
Okay.
It reminds on the file name discussion.
Say it again.
It reminds on the file name discussion.
Oh, yeah. Well, things change in 30 years.
Yeah.
Right.
I mean, website used to be two words.
The reason I find the capital M to be convenient, which is probably not a reason to choose, that is the. The. Let's see. The. The case sensitive completion.
Yeah.
Just DMP and boom, you've got biomolecule right there.
That's not a reason, right? Yeah.
Okay. I'll make it lowercase.
But then that means biomolecule plot has to be lowercase and so on.
Yeah.
Yep. Why are you saying typically large.
Mute discussions is because they are typically large.
Okay. All right, fine. You know, this is not the style we usually use. We usually say with the input identifier ID or something like that. We don't usually do this. Right here we say sequence sec. Right. So, yeah. Yeah. And where do you say what kind of identifier that can be puzzled down somewhere in the notes.
No, where? I thought I had. I thought I had it closer up to the top.
Well, I don't see it at all. Where is it?
No, no. A little bit up. Did we. We looked at it. Just identify R10B of type.
Type.
Oh, that's a typo. Sorry.
Why don't you give that as a little table so people can actually find it. Also, we don't start things, whatever. Just get the style of this consistent. I mean, I'm still worrying a little bit about this biomolecule. What are the functions that go around this function? What are the other ones? Is there a guide page we can look at?
No, I haven't added it to the guide page yet, but so so far it only gets fed to molecule or bio.
It's not the question I'm asking. I'm asking what other things are there? Because there's also biomolecule, plot, 3D and so on. What are the other functions that have the biomolecule base, biomolecule value, biomolecule, plot, 3D. What other ones? That's it. I'm recanting my comment because I think biosequence is nice to have as this bio family thing.
I agree. And biosequence also some that many people use as one world.
What should we do with this?
I, I, I think capital, I think it's, it feels much more natural to me. I think it's easier mentally to read. Yeah, but typically biosequence is chemical case this way. And, and biomolecules always lowercase. Biosequence has also many, many instances where it's one world. Make a Google search. Everything on page one is one world for me. For me, everything is camel case or the biosequence I see on my initial page.
No, I just. Well, I mean, camel case is just going to happen. In Wolfram language, camel case is not.
Used at all in the world.
The question is first hit here.
A Google Scholar page has only concatenated one word, biosequences.
What should we do here? I mean, these are the three functions. Biosequence, biomolecule, value, biomolecule, plot, and biomolecule itself. Right?
Yes. I personally like the symmetry of it with molecules and everything just having the.
Capital M with A and the symmetry to biosequence. Yeah. Well, given that biosequence has a capital S. Exactly. Okay, leave it. All right. It's okay.
Yeah. The factor in the literature of biosequence is five times more common one word than hyphenated.
Well, you know, that's not our usual convention. Our usual convention is when it becomes a word.
Yes, I understand. But readability we should also take into account, I think, this. I read the word omo. I'm confused for it. Tenths of a second.
Less than that. Yeah, less than that.
But you see what I mean.
Yeah, I understand.
I think biomolecule is Much easier to read, in my opinion.
With uppercase m. All right. Okay. Okay. We may yet do some alias later on, but yes. Okay. All right. So what do you want to ask me about in this. In this documentation?
Let's see. So there's a couple of, like, text heavy bits at the. At the front.
You really want me to edit this documentation? No, no, no, no.
I just think so. It talks about. It's a hierarchical object with models containing chains, containing residues. That's kind of unusual for Wolfram language. I think so.
So it's.
But it is something that is not mathematics, so it needs some explanation to people.
What do you mean with models containing chains? Where's the model? There's no model. It's just a list of chains. Right, right. So what the hell is this one? What the hell does that mean?
Right, so this is. Hasn't been seen before. So a model is. Let's see. It represents different measurements of the same biomolecule. You will find many of these structure files with multip confirmations of the same biomolecule taken from different measurements and combined together. They are typically. There is typically going to be only one, but if we are moving into this, we need to support those.
That's just not the right name. It's completely not the right name.
But it's the name used in the field.
Look, we need to decorate that name. It's not. What is it. What is that? What is the fuller name for that? It is the. It's. It's the thing. It's the structure model of some kind or something like this, right? Yes.
I mean, the way it's typically written is the whole thing is a structure which has models, which has chains. And so it could be structure model.
That would be. Wait, wait, wait. The. I don't understand. You know, so the whole point is that this is one particular structure that was found. Right? This is. This is one structure. And somebody else might have measured it differently and they got a different structure. Correct.
But biomolecule might contain multiple once.
So typically, when you see multiple models, it's from a measurement type that can. Can result. It's in solution rather than crystal form.
I get it. I get it.
And so you. You capture multiple different of the flexible type of bio.
But it's still the same molecule.
I understand. I understand. I mean, in the sense that when you say biomol, there arrow part. The biomol is some external identifier of some PDB structure that has multiple structures in the thing that is described by that external Identifier, Is that correct?
No. So biomol goes to part. Part is describing part of the molecule. So it's a way to take the biomolecule.
I think what Stephen asked. The answer to Stephen's question is yes.
Okay, thank you. Right, so biomol is the whole ball of wax that came from an external source, correct? Yes. Okay. And part is saying, which part of that whole ball of wax you actually want to sample? Correct?
Yes.
Sample is maybe not the right word.
But you want to use.
Yeah.
Now, is there a way of resolving that from the external identifier? Is there a way of resolving that thing so you don't carry around all the seven other structures that you don't care about? Or are you always referring back to the whole ball of wax and then sub casing it for the thing you care about?
Well, no. So the. Let's see, the last usage line, biomolecule of biomol goes to part, does just that. It's. It sheds everything else.
So that would be returns. Let me understand. So the thing it returns is a biomolecule that doesn't have the other structures in it. Is that correct? Yes. Okay. All right, fine.
And then we also have some convenient sub values for getting, for instance, models. Returns a list of biomolecules with one model each assemblies. Returns a list of biomolecules with one of the listed assemblies each day.
Spell out the word one here.
Okay.
Yeah. Because that's a cardinal one, whereas this is an ordinal one here.
Yep.
Number of models. That's. Oh, I see. Number of models. Okay, that's right. That's a reasonable thing. Biomol just. That has to be italic. There's a lot of sloppiness here, which I'm sure will get fixed. Yeah, yeah, absolutely. I mean, this isn't always available, right? The PDB version is. If you didn't get it from pdb, if you got it from your own measurement, there's no pdb. Oh, no, it's a format. Yeah. Okay, fine, fine, fine, fine. Okay, so we're still back to talking about this. So can you show me an example? Can you give me a link to an example of where one of these. Or can I just see one of these? How do I get one of these?
Let's see. I believe if you scroll down in the biomolecule, I do have an example with multiple models and it does even work in this one. Scroll down the last one there. And the. Let's see, the summary box needs to show what the model count there. It doesn't at the moment, but it will. So this Guy actually has 30 different models in it. And so if I like Flip View for viewing those, all the perhaps list animate would be better.
Okay, so. Cool.
And it's known that. Let's see. Currently I know there's too much white space I need to. Okay, let's see. This comes up with all the plotting functions. I need to add it by default to use shrink wrap.
I'm aware. Okay. I mean, I don't know why that's the right thing in the sense that. I mean, isn't it just that there's bugs in the plotting functions that cause them to have too much white space? Have you determined that it isn't a bug?
I have not. It's just.
So please do that because I think it's a bug.
Okay.
I mean, the shrink wrap thing should not be necessary. The shrink back thing is kind of a hack that will cause a bunch of things not to work in terms of rotation and stability under rotation and so on. So please don't use that unless you have to. So that looks like a bug to me. This is just a plain, simple bug. Okay. Because if I rotate this. Why can't I rotate this? Because it's an image.
Reverse into if you.
Okay, so why not.
That one's wrapped in flip view, so it'll be difficult.
I know, I know. I see that. Okay, so if I say. If I just say Biomolecular Biomolecule Plot 3D. Of percent 1 I will get the first. Look, this is just a bug. Oh, no, wait a minute. Look, look. See that tentacle goes up that high because.
Yeah.
Okay, so now here can I put the options. Plot 3D options here. Can I put this shrink wrap option right here?
Yes. So what do I say method goes to.
As it goes to what list.
Shrink wrap goes to. True.
That's an incredible. Why isn't that. Wasn't it showing up in the autocomplete? It does.
Let's see. You might need the W to be.
I think so too.
Yeah. What the W has. Okay, so I don't know why this isn't autocompleted correctly.
Once Biomolecule Plot 3D is registered as having the method option, I believe those come along like. So when you do molecule plot 3D method goes to. Shrink wrap shows up as a. As an auto.
We should discuss having that option be a proper top level option for the graphics 3D family. Could you please bring that up with. And get Some design review done with Brett about that. Do we have some project management in this meeting? Supposed to. We're always supposed to. Can you write up something copy me, please? And. Okay, so. I mean this behavior seems pretty reasonable, I guess this default behavior. But it's really obscure if we don't have some proper top level option. I mean, don't we have this thing called spherical region arrow true or false.
Yep.
Yes. And isn't this. What is this here? This is. Isn't shrink wrap to true, just spherical region to false?
I don't think so.
Okay, but I can't name the distinction. Exactly.
Yeah, so let's find out why not. Okay. I mean if we. Well, we have too much to go over here. We can't do this right now. Okay. So the question here is.
We were looking for another name for models. We wanted to rename model to something more.
What happens if I say arrow 2 or something here? Does that get me the second variant?
It's not hooked up yet. No. So the way it should work and it won't at the moment. But percent one goes to association.
I understand that. I'm asking if I just give a naked number, presumably it should go to the second structure, so to speak.
That does seem unambiguous. Right. So if it's doing A, B, C, then we know it's one of the chains that they're asking for.
Yeah, but if it's already a model, we don't go one level down and interpret it as a chain.
No.
Okay, good.
Yeah. Okay, so let's just talk about.
What about folding model.
I don't think we should say that because I think it might be other things on.
Former is a. You is the word that's used in. When speaking about molecules for different sets of coordinates for the same molecule.
I'm sorry, confirmation or what?
Confirmer. So it's. Yeah, we say different confirmers of the same molecule for having.
When it have confirmation arrow 1, 2, 3. But. But what you're saying is this is a measurement often.
Yes. And so sometimes the models actually do contain slightly different numbers of atoms based on the resolution of the.
Yeah, but that's. Yeah, I'm thinking about the words like variant, like model variant or something. I just.
It seems to me like it's a variant of the model.
I know. Which is not.
Right. Good representation.
Maybe too vague, too general.
I mean the problem is that this thing is not really a model in most people's senses of model.
Correct.
It's, you know, which makes it super confusing.
What about confirmation Confirma models or confirmation models.
Well, as you say, it's not just the confirmation.
Yeah.
I mean, for me, variant would be a decent word. But you say that the term of art here is typically model. Yes.
So all the other software that works on this stuff and it uses that hierarchy nomenclature.
But what does PDB use?
Model. So with that One, that has 30 models, when you look at the plot, it'll have a little slider allowing you to move between them and it says models.
You know, if we called it model.
Number, I was just going to say this because it's an integer, so the number will already help.
Yeah, I think model number is a reasonable thing. It's clearly a hack by the time it's called a model number.
But then we stay with model count, not model number count.
Yeah, model count is fine. Yeah, I mean, you count and they are numbered. Yeah, I think that's fine. It's just model. You know, it's like, Like. Oh, yeah, right.
For somebody who. Who is not from the field, it's confusing.
Right.
And then. So the rest of the page list properties number.
Yeah, we made some changes earlier today.
Okay, so this part where it lists all the properties will eventually be copied once we get it set, will be also present on the biomolecule value page. But right now it's just on listing the properties here.
Okay. Which are available as sub values, right? Yeah. And what does biomolecule value give us other than subvalue stuff?
So sub values, but also allows that partial access, like to get the coordinates for chain B without creating a whole nother biomolecule sloughing off everything except chain B and asking it for its coordinates. So biomolecule value.
I see, I see. So I mean, otherwise it would be biomolecule, biomol Are apart and then sub. Whatever it is. But you're saying you can do that directly with biomolecule value. Yes. Okay. All right, what's next?
Right, so then there are some. Let's see. So some of the properties are global to the whole biomolecule. Like biosequence will give you just one hybrid strand, whereas then the next group of properties would. Would be per chain. And so should be in the. In the list would be. Ah, so let's see. So you've got biosequence. And then you would have. The next ones would be at the. At the chain level. And so you would have biosequences and you would have an association. A goes to.
So what. What do you mean would have it's not listed here. Right, Right. So what. What are you talking about? So there or is that not there?
This is about something that I. That I missed. It should go in the third table down under residue counts, residue labels, residue IDs. You would have bio sequences.
I don't understand. So essentially molecule encompassing. What does that mean?
That is a typo that I should have erased before the meeting. And that whole line shouldn't be there.
Okay, so that should be biosequences, plural. Right. Going across different chains or different models or what?
Different chains.
Okay, fine. Now how is that labeled? This biosequence is coming back as an association of the form. Chain name goes to biosequence. Yes, exactly that. Right?
Yeah, I will definitely spell that out here.
But is it exactly. Yeah, yeah, yeah. Yes. Okay, definitely.
So then maybe the last thing to look at would be the note down at the bottom on this page.
Lots of typos here. Okay, go ahead.
This is where we make the comment about more info.
Doing.
So that's. If you click that, that takes you out to the about page for ESM folder.
Well, don't we have a service connection that is the direct calling mechanism for this?
We have not written the service connection just yet.
Probably should have that.
Yeah.
Yes, definitely. So for, for 14.2, the plan is to actually write a few service connections to. To different databases where we can look up information on biomolecules where we can ESM fold actually has a database of pre. Of computer structures. They've already got to get information about them. So that's. That's definitely the next thing we want to do. So then why don't you say that.
Biomolecule is currently set up by default to. To attempt to fold the sequence by calling this external service. Making it clear that that's not always going to be how it works.
Yeah, yeah.
Or currently attempts to whatever how you want to say it. So it's clear it's not always going to work this way.
Correct. That's why we used intention as the attempt.
Now really what this is is there should be a, you know, an option to buy a molecule. That is the. Whatever it is the two that you use to fault. Yeah. So what's. What's the option name going to be? I mean it's kind of like geoserver. So this is really like Biomolecule folding method.
Yeah, exactly. Yeah, that's just what I thought.
Okay, so why don't we just call it Biomolecule folding method and have the. Have it currently Set to ESM fold. And that's the only thing it can be set to right now. And we just document that biomolecule folding.
Method and it will be in the future either something from the neural net repository or an external service connector.
Yeah, right. But I mean, it can be just a string. But, but. And you know, eventually there may be options to that string and, you know, all kinds of things. Yeah, but why don't we do that rather than just having this comment here? I mean, that can be the default, but that becomes the default by virtue of having an option that might.
So it would be a proper system symbol option?
I think so. I mean, for now, we could possibly just put in a method option to this. But I think it should be a system symbol because I think it's going to. It's not going to go away. That is not going to go away.
No.
Yep.
So that makes it the only option for Biomolecule at the moment.
That's fine. Yep.
Biomolecule folding method. Yeah.
Yep.
Okay.
I think so.
Yeah, I agree.
So then after this we should look at the Biomolecule Plot 3D ref page. It is a mouthful. I believe we'll want to untentitivize that second bullet point. I just. When coding up the things like after you suggested, I mean, using that syntax.
The same as the include hydrogens, which is an option for molecule. Right. For molecule plot. Right.
The thought was that it wasn't as important as.
Isn't it. I mean, I don't know why is. Why is it any less important?
Typically. Typically those waters are not useful to look at in the.
I think it's. Yeah, I think it's different.
Okay.
I mean, the. The hydrogen is really part of the molecule. The water is slightly different story.
But if it were. Let's see, putting. Making it into a plot theme is just a way of hiding it, I think. I mean, so the. Like, if. If the. There were a system symbol include or an option name include waters, that would. That would make it.
By the way, can you have also include hydrogens here? I mean, you're saying that it's shown as.
There are no think hydrogens ever shown.
Because include hydrogens is firmly false.
Because these files tend not to have the hydrogens in them. They either don't show up in the NMR or the. Or the crystal structure. And then they're not included in predicted structure. The models don't include them there either.
So. Sorry, I got distracted for a second. Could you say it again, please?
Right, so the experimental Structures, you don't have the hydrogen because they don't have the resolution to see them. And then since they were trained on those experimental structures, the predicted structures leave out the hydrogens as well.
For now. Yeah.
Right. So going for. I mean, so what does. If I could make.
What do these mean? What does Gaussian surface mean? Right, so that.
Let's see. So you make a function that is a Gaussian centered on every atom with a particular. What do you call it, a decay function. And then you plot an isosurface. It's a. It's a common way to view these.
Which isosurface. I mean, essentially it's a P value of the Gaussian or something. Which one?
No, it's the edit sum of all Gaussians.
No, I understand that. But then you're plotting the actual surface is an isosurface of that sum of Gaussians. So in other words, it's a particular standard deviation. In effect, if there was a single Gaussian, you'd be plotting the isosurface for some standard deviation. Which one?
Right, so here I forget the exact value. I think it might be 1.6. But it really depends on what the pre factor is that you put in the upper Gaussian. This is something that I think should be a system symbol that we should make a molecule surface. I just didn't get it fully finished in time for this release.
Well, molecule surface should generate computational geometries data, right? Yeah.
And I've basically got it ready. And so it's making that right now under the. It's calling that and generating this. And that's what I use to make the, the, the plot here. And so name should be something like.
I mean, it will end up being a biomolecule. Or is it a molecule surface? Can we do this for other molecules? Yeah. Okay, So I mean, it'd probably be something like molecule surface, region or something or molecule. Because what it's going to return is a region object, presumably. Yes, yes.
Well, the way I have it right now, it can return a mesh region, a boundary mesh region, or a graphics complex, which is the. What I use here.
I see.
So but since that's not for 14 2, should I add a paragraph explaining like the, the three different surfaces, because there it takes a little bit more than would. Would fill up in the table. Or I could just make the. Make all three of those kind of drop.
I think you should make some comment about it underneath.
Okay.
For now, I mean, look, you could. This is not consistent. I mean, all of A display, I guess it's okay.
Yeah.
I don't think it was supposed to do this with the hyphenation. I thought it was supposed to go across here and push this down. That looks like a bug to me. Am I making sense?
So if we don't hate it, we could make that SA surface people in the.
No, no, no. We're not going to do that. It's a bug in the documentation setup. Okay. We're not going to change the name because of a silly.
Nobody will understand sa. But this one.
We're not even going there. We're not even going there. We're going there to hack around a bug and we're not going to do that. We're going to fix the bug. Okay, so that's something for the documentation team. Please feed it to them. Make sense?
Yeah.
Okay. I mean, it'll be great when this. When this thing is available as computational geometry. Maybe you could at least make a WFR that does that right now.
Yes.
But then I think it should always return the boundary measure.
Well, I would think so, except what about the colors?
They can have stars.
A boundary mesh region can have styles. Yeah, yeah, that's what I would do. Yes.
Well, so, right. I mean, if it's a wfr, if it's cool, I might set boundary mesh region for default. But being able to return a graphics complex I find to be useful and.
Have the same document that says.
Yeah, but I think the default should be. I mean, I think it should be molecule, surface, region or something. Yeah, molecule region. I don't know. Molecule something. Yeah, yeah.
Or, you know, it could be molecular surface. It would be enough. No, it cannot be.
Sorry, I don't think it can be.
No, I agree.
All right. Anyway, this is lovely. It's really nice. Okay, what's next to look at?
I think. I mean, that's basically. So we've got biomolecule value, which right now explains what the function does. But it doesn't have the list of properties yet because that's going to be copied over.
It's just copied over from the other. From biomolecule. Right. Whose sub values? Yeah, it is a way of using its sub values. It's pretty weird. I mean, doesn't molecule value have a lot of stuff that isn't a sub value of molecule?
No, I mean, so the. The use case of molecule value, I guess, is the multiple properties at once, multiple molecules and you can specify a part access. But looking back years later, it's not obvious that there needed to be a Molecule value. And in this case I was going to go without a biomolecule value and just use sub values. Except for the fact that part like getting just the coordinates of chain A or chain B is. Is incredibly useful.
So that's, I think for more tabular.
Work where you wrote many things at once, the value feels much more natural than.
Yeah, I agree.
Lists of sub values.
But by the way, in molecule, I assume you do list all those sub values. Oh, no, don't tell.
No, no. So we talked about this and it's. I was, I was asking the documentation team like, so we noticed how plot functions have this. Yes, let's.
Yes, let's see.
We discussed it. You bought it up to last time.
Okay, fine. Yeah, you're consistent. Anything else we need to go over here?
No, I mean, just to make clear, having include waters as a system symbol that just works on this function.
I don't think it's necessary. You've convinced me it isn't necessary. That it is or isn't it is not necessary.
Okay.
I think.
And so then what do you think? Well, then, then the only way to actually turn them on and to see them is to use this plot theme.
If not, well, we could have a method option. I mean, how important is it?
Okay. Here.
Not important, but you should, you should be able to. So actually a method goes to show waters goes to true would be fine.
Okay.
Jason, how important is the waters for computing molecular masses?
I think they, they tend to just get in the way because you think that you're getting the molecular mass.
So you never, you never, you never want the mass of the sink with the water.
Right.
Okay, so it's really something just for plotting.
Or, or perhaps there are computations where it really helps you see where there are pockets into which some drug that you're designing could go at that case or something like, to let you know, if you're doing computations and you want to know where hydrogen bond acceptors are, you look for where the waters are and then possibly they're nearby there. It's getting a little bit out of my.
Yeah, no, I was just wondering like, how important the option would be for outside the plotting.
Right.
It would just be for plotting.
Okay, Let's see. This. Oh, I was going to ask, once you have that molecule surface, do we already have computational geometry functions that do essentially docking computations?
We do not, but that is definitely, or not to my knowledge.
Probably that they're not factored in a way that you expect.
You would have to fight your own move around and then compute intersections and.
Right. We want a general computational geometry function that finds how things fit into other things. Yeah, absolutely. So it would work for, you know, how it doesn't need to be a molecule, but then we would get molecule, surface, and that would. Molecule, surface, region. I don't really like that term. But anyway.
We want to give it, say, two regions and a distance function, and we want the geometric constellations of the two regions so that the specified function becomes minimal.
Yes. And where the regions don't overlap.
That's what I mean.
Yeah. Right. Okay.
I can discuss with Charles.
Sounds good. All right. Anything else?
No at all.
Thank you.
Okay. Good stuff.
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






