Founder Stories: Eric Kelsic & Sam Sinai, Dyno Therapeutics and ML-Guided Capsid Engineering

Sam Sinai and Eric Kelsic explain how machine learning can design better DNA and protein sequences, like AAV capsids for gene therapy. They describe the workflow: sample sequences, measure how well they work, fit a model to the results, then use that model to propose better candidates. The fitness landscape is rugged and complex, so they compare different exploration strategies, from neural networks to simple genetic algorithms, and release FLEX, a benchmarking platform to test which methods work best.
Chapters
So thank you for having me here. It's a pleasure. As Alex said, it's been a long time coming. I initially intended to present something related to this when I was at Harvard, and it just took a very long time to finally get here. So I am now a co-founder and a lead ML scientist at Dynotherapeutics. And today I want to give you a primer on model-guided biological sequence design. Just a little bit of background on myself: I did my PhD at Harvard with Martin Novak and George Church, where I spent the last couple years of my PhD thinking about model-guided sequence design. I actually started out completely on the theory side and evolutionary biology, and then Through George, I met Eric, who you will hear from also today, and he was working on this very interesting problem of trying to use machine learning to design better AAV capsids. And that really was a very attractive problem for me for multiple reasons. One was the ML aspect of it, but also because from early in my PhD I worked on origins of life, and working on viruses and fitness landscapes sort of tied the original theme of my PhD, which was on sort of complexity of finding good solutions in biology, to the later part, which was an actually applied problem of designing better viral capsids, pretty well. The goal of this primer is to give you a high-level overview of different approaches that I found interesting from that perspective, from a perspective of a computational biologist who was interested in machine learning and evolution at the same time. So I won't go into a lot of details for many of the things I will present, but just to like familiarize you with what is available out there. As Alex said, there is a primer associated with this talk, there's a write-up associated with this that I'm also working on and would welcome any feedback. It's the first version that I've finally managed to send you. But if you have any questions or any things that are not clear in the beginning in the slide, please let me know. So why are we interested in model-guided sequence design? It's a very high-impact problem. The ability to find good sequences that can do particularly well at some particular thing for therapeutics or industry applications is very valuable, and many of you probably have heard many examples of it. As I said, my own PhD was focused on working to improve the design of AAV capsid using machine learning. And this is a viral capsid that's sort of the leading candidate for using as a vector for gene therapy, but it currently in the natural form has a lot of drawbacks that we hope to remove. And Eric will talk about that in the main segment today, so I won't go into a lot of details, but this figure that you see above is sort of an average map of the effects of single mutations on the capsid. Here is actually single insertions on the capsid itself, red being positive and beneficial and blue being deleterious. So, The other question is why now? The main argument from my point of view is opportunity, that we can do it and we can do it in a way that's also intellectually exciting. So we have developed two technologies in recent years that have really changed what's possible. One is that we can directly synthesize variation that we are interested in in high throughput. So we can generate 10 to the 5, even more sequences in, in, in with Agilent or Twist chips and then produce them in high throughput and then assay them for the functions that we care about. And the other aspect of it is, well, there's been a lot of progress on machine learning models and we can learn very complex functions using these high-capacity models without much sort of domain knowledge or feature engineering or stuff like that. So these two have basically come together at the right time to try to attempt this. So what is model-guided sequence design? There are a few levels to it, and I will try to break it down using a picture. So you can imagine a cartoon of a so-called fitness landscape that maps a set of sequences, say protein sequences, here represented by the plane, to a function or fitness that's represented by a color. I will denote through the talk as this— to this map as phi, and we call this the sort of ground truth oracle. And you can also assume for the purpose of this talk that this map is static. So as you're trying to move along this landscape, nothing is changing, and the peaks and valleys are staying the same thing. So it's a landscape, not a so-called seascape, which is like a frequency-dependent dynamics. Often in biology, as most of you probably know, this relationship is nonconvex, and biologists call it epistasis. And the structure is dependent on the particular problem you're trying to solve. And the other aspect of it is the sequence space is often very large, and in most relevant settings, it cannot be fully measured, or it cannot even be enumerated computationally. So what do we do instead in order to access this landscape? We basically try to sequence some samples and measure the property of interest. And so this process is what we do through experiments. And the main cost— part of the cost is that we want to measure many of these things. So the bandwidth of our batch that we can synthesize is one limitation. But the bigger limitation, really, if you have a lot of money, is time. So cycling through this process of assaying takes a long time. You want to really make use of the batch that you have generated from that information. So you take these data and then you try to attempt to approximate the ground truth using models that you can build. So these can be machine learning models or they can be other types of simpler or mechanistic models that you can come up with. And then the final step, which is, I guess, the focus of this talk, is you take that approximation, and then the question is, how do I find the sequences that I am interested in? And you want to basically explore this space, and that's why we call it— call these set of things explorers. You want to explore this space to produce high-performing sequences. And then you can do this cycle again. So you can propose new samples, those samples will be experimentally measured, and then you change, you update your model, and then you can do this again. I want to also mention that there is somewhat of a tension between sampling such that you learn an accurate map of the entire space and sampling, so which is called like active learning. So you wanna improve your model quality, and sampling such that you're likely to find quickly very high-performing sequences. So these don't necessarily clash, but there is a little bit of tension about this. So if you are more interested about learning the structure of the fitness landscape, say, for a problem like antibiotic resistance, where you want to figure out if the probability of a certain event is high or low, then you might be in the regime where you are more interested in building an accurate model. If you're in a regime that you're trying to make a good therapeutic quickly, you're more interested in quickly optimizing. This is related to the exploration-exploitation trade-off in active learning paradigm, Sam, or is it a bit different? It's sort of two levels of exploration-exploitation in my view. One is that for active learning, you have exploration-exploitation. But you can also think about active learning versus just optimization as its own exploration-exploitation. So, um, it did— I think that if you read different papers, it's often conflated. So I'm not trying to draw a very strong line here, but the trade-off is there.
Definitely.
Like gathering information to build a better— like, are you trying to build a better average case performing model, or are you trying to build a model that's very good at particular limits of your trait? Right. So my name is Larson.
I have a question about the same slide too.
Yep.
So on the bottom layer here, we have a sequence space, and did I mention it? Dimensionality, that might be tens or hundreds of bases, and then the second layer up is observations, and these are often phenotypes that are just maybe 1 or 2 or 3 continuous values. Can you talk about how those projections and—
Yeah.
Yeah, moving down so quickly, how does that affect both these mappings and some of these cycles that you're talking about?
Yeah, so I think it's a great question. It's sort of a limitation of this picture. What I am trying to present here is that the sequence space is represented by a 2D surface. It's not— obviously not a 2D surface, it's a high-dimensional space. And the trait that I'm interested in is represented by the color. And so when I show the second layer, the observations, what I mean is the location in that space Represents the sequence and the color on it represents the phenotype. So these are the sort of— I have a sequence and I have a map from that sequence to the color, which is the phenotype that I'm asking. And so based on that, I train my model and try to interpolate the third layer. So you are absolutely right that this compression doesn't need to be may not be easy or may not be a good compression that you can so easily navigate on. And the picture is not as clean as I tried to make it here. Does that answer your question? It does, yeah. I guess we, we draw planes and we picture surfaces because it's, it's very hard for most of us to picture a high-dimensional hypercube. Yeah, and I guess part of the point is that there can be huge bottlenecks at as you're moving from one plane to another, right? That's correct. So I want to draw a different— before I go further into the weeds, I want to draw another picture that's also, again, a very simplifying problem. But I, again, I feel like these abstractions sometimes help understand who is working on what part of this challenge. So if you look at what I call the anatomy of an exploration process, you often have a bunch of steps that need to happen. So you have a population that exists. You have to start somewhere. It might be that it's completely abstract and you're like, oh, I can start anywhere on the landscape. That's fine. But you have to start somewhere basically. And then you want to propose some new sequences. And those proposals need to actually become physical sequences so you can, like, make them. And then there's a step that they get criticized or filtered so that the population in the next steady state is generated. I think if I move to the first example, it will become clear what I mean by all of this. So think of evolution in nature. The proposal mechanism is mutation and recombination, and the production happens when a variant actually reproduces and, say, a protein is synthesized. And then the critique is natural selection. So natural selection basically takes what you've produced and tells you these work and this doesn't work, in a simplified picture. And also what I want to note is that there is also an implicit model in evolution that says the things that are nearby are correlated, and the best way of proposing new samples is to stay near the best place you know. So you don't just make an offspring that's completely different from you because you don't— you feel like that's more likely to succeed than something that is very close to you. I know this is sort of too much of a narrative, but the point is that there is some assumption about correlation around where you are. And so in directed evolution, we basically take these knobs on both sides of this production and change it. So we can change the mutation rate. We can force recombination to be more severe and between multiple individuals instead of one in DNA shuffling. And we also steer the selection pressure in a direction that we are interested in. This has been a standard way of doing design for many years, and it's been very successful. It's won a Nobel Prize. There are some drawbacks to it. In particular, one that I think is useful now is it was model-free, so it's harder to generalize. Like, the lessons you learn from one in terms of, like, how you steered this to a particular function might not translate readily to another one. So, and you have no control over synthesis, so you might actually end up losing some of the traits you cared about in the process if you don't assay for them as a result of trying to get another trait. So multi-objective optimization has its own quirks in directed evolution. It's not impossible, but it's not a pleasant thing to do. So model-guided design attempts to preempt nature's anger by simulating the process in silico before committing to the expensive thing. Synthesis step. And so we have a generator, which is a proposal mechanism that produces virtual candidates. And then your approximate model is in charge of critiquing those candidates before you commit to the expensive synthesis. And you can do this multiple times before you actually send away sequences for synthesis. You might generate stuff, critique them, update your generator, generate new stuff. Critique them, and finally end up passing them on for synthesis. So this is a pattern that you will see a lot in the algorithms that I will mention. Before I move on to talk about the explorers, I would like to spend a couple of minutes on models of sequence to phenotype. This is— it's by itself an exciting area of research. And one slide definitely cannot do justice. But I want to roughly categorize the models into 3 classes. One is what I will call mathematical and statistical models, and they existed long before we could collect precise data like today. So these can be regression models with higher-order terms like the Potts model that includes second-order interactions, and to this day they have been used as Also, like, the parameters of them are inferred from real data, and they show that they have value in local prediction. But they can also be fully theoretical, like the NK model that was used for decades to study evolution. There are also more modern versions. I saw Frank Pohlowick was in the audience, who basically generalized these approaches and connect them together and get a global picture of the landscape. The second set of models, what I will call computational models, are models that try to simulate the behavior using biophysical first principles. So these examples are ViennaRNA and Rosetta. And the final one that's very popular these days is inferred from data, often black box, like a neural network model, and they have very high capacity And especially useful— these models have been especially useful to do stuff like transfer learning of training on the whole protein universe and then trying to fine-tune onto a small region of the space based on what's been learned from the general protein space. Each come with certain amount of drawbacks and positives. So I would say the positives for mathematical models is often they are constructed in a way that they're interpretable. They make sense. The computational models are based on first principles, and the inferred models are often the ones that are most locally accurate. So if you actually try to like build a model to predict effects of single double mutations and stuff like that, you get the best result with these more high-capacity inferred models. And then the drawbacks is mathematical— that these like classical models are often by design misspecified. Computational models are often coarse-grained. So what I mean by that is that they do well in recognizing the general patterns in, in the sort of landscape, but it's hard to use them to distinguish very small local changes. And inferred models, while they do really well locally, they have out-of-domain pathology. So if you try to stray far away from where they've been trained, they actually perform in a way that's unpredictable and you won't have a way of knowing whether you're getting a good answer or a bad answer. A lot of work has been done to ensure that we are able to distinguish this, but that's a fundamental drawback that these models have. But Sam, to some extent, Without strong assumptions on these fitness landscapes, that's inevitable, right?
That there's just—
you just can't know what the function looks like in a region that you haven't explored. I agree. I think the only response that I have is that with first principle models, the picture tends to be more consistent globally. So it's like coarse-grained everywhere, but like sort of because the physics is the same everywhere. It's like gets it roughly. And I don't have enough experience to really make it, make this claim very strongly, but that, that's my intuition about it, that the same rules are being applied no matter where you are in the sequence space. Whereas with these models, it's, they can pick up rules that are only locally relevant. That makes sense if your biophysical model is reflecting the reality. Thanks. Yeah. Yeah. So I want to talk a little bit about how a good solution would look like. In optimization, people think about optimality. And what I'm trying to depict here, and I'm going one dimension further down in my simplification just for illustrative purposes, is— so we have sequences on the x-axis, and the y-axis, we assume that we have a one-dimensional trait that we want— we are trying to optimize. Often it is not the case that we really want to just maximize a value. We actually care about a particular band of traits within a set of many different sort of— how did I want to say this? I just want to say that y is generally multidimensional, not single-dimensional. We care about multiple properties of the sequence we're trying to optimize. And also, we don't necessarily want to max out every entry in that vector. Say, like, you don't want it to bind to a particular thing too strongly. You want it to bind within a particular band. But I'm again simplifying by saying we're trying to optimize and maximize here. And so one way to measure how well you've done is to see what's the best value you could achieve and then say, what is the value that your algorithm achieved based on the samples it made? But oftentimes we actually don't know what the value that we want to achieve is. We don't know the rest of the landscape. And so we set a threshold that's acceptable to us. And then we say, if we exceed that threshold in the actual measurement, we have succeeded. And so we can find a set of sequences that are above that threshold and find that, or the set of answers. Um, yeah.
Hi, this is Ben. Um, I'm wondering if, if when you're talking about optimality, um, might it be fair to say that really you are going for a peak, but if you haven't— but if you're measuring something, let's say you're measuring binding, maybe the most highly binding sequence isn't the best, but that just means that your assay isn't measuring optimality.
Like, you're—
yeah, you had an assay that measured as the optimal sequence what you were exactly looking for, then you would still be looking for the peak of the sequence.
Yeah, I think that's an excellent clarification. Um, I just didn't want to conflate optimality with a higher value, and sometimes that is conflated, but your point is a very good like a better explanation of what I meant than I did. Yeah. So yeah, so like we set usually— sorry, no worries. Could you recap that for the rest of us?
I don't— I—
maybe some people caught—
I didn't quite understand.
So we can transform— I think Ben's point is that we can transform our measure in a way that the actual maximal value of that transform corresponds to what we actually look for. So, whatever—
Alex, I guess I was just asking, maybe, maybe the optimality is just a poorly designed measurement, right? If your assay isn't designed properly to measure the optimal sequence, then, then what you're measuring isn't the peak value, but if you design your your assay to where you get the maximum value from the— if the maximum value is exactly what you're looking for, then you would be looking for that. I don't know. It's a very fine point. It doesn't—
I see. So it's related to measuring the— like the readout might not be the exact thing you're trying to optimize. Right.
Your readout itself is not optimal is what I would be saying. Yeah, right.
If you optimize for desired binding, your assay is fine. If you optimize for maximum binding, your assay is— Exactly. —not the same as what you're trying to optimize. Interesting.
Yeah.
OK, so yeah, I just want to say in practice, we often say, OK, I want this to do better than x and better than y. And so we look for a bunch of answers using an algorithm. And the ones that pass that threshold is a set of answers we have found. One important aspect of design is diversity. So it's often the case that we assay— the assays that we use to design things aren't exactly capturing, exactly to the point that Ben was making, what they would be doing as the end product. So there might be an instance, for instance, that there are other properties we haven't considered. We're designing a protein as a therapeutic, but we are not measuring its toxicity. And so that might disqualify some of the solutions we find later. And for this reason, it's desirable that we generate a diverse set of solutions. And Eric, I think, will touch on this in the case of AAV. For instance, in case of AAV, we want AAVs that are able to package and transduce different tissues, but they should also be able to avoid immune responses. And so that is something that you might not immediately measure in your assay, but might be a downstream task. So you want to diversify the portfolio, if you will, of the solutions such that it's more likely you— by luck, you're likely to overcome that barrier. Measuring diversity itself can be tricky, and I think it's a little bit out of scope for this primer. I will say in practice, it depends on what you're actually— what sort of diversity you actually care about. It can be as simple and crude as like, what is the size of your solution set? And it could be more sophisticated like, what is the pairwise edit distance between your sequences? Or how many clusters of sequences have you found in some projection of the space? I, I don't think there is a universally good way of doing this, but you— if you read the papers, each of them try to do it in a particular way. I want to move on to talk about— we talked about the solution a little bit. I want to talk about what a good algorithm looks like. And some of these— most of the criteria I'm mentioning here are criteria that exist in literature for online algorithms or heuristic algorithms in different fields, and also come from discussions I've had with people who are actually trying to do this and like what are the things that matter to them. It's not a complete survey, but I think there are— these are qualities of an algorithm that would be helpful to have and you want to pay attention to. The very first one is efficiency, and they don't come in order, so it's not a ranked ordered list. I'm just going to go through a laundry list of them. Is that for a fixed y-max that you find, how many samples did it take you to reach it? Like I guess many algorithms can reach it for many, many— if you run them for very long. But you want your algorithm to run in a reasonable number of batches. And there is another notion associated with efficiency. That is, how much computation does your algorithm have to do to produce a sequence for you to test in the batch? So how many queries to the real oracle do you do and how many queries to your fake oracle do you do, to the approximate model do you do. And if this ratio is very high, it suggests that you need a lot of compute to generate sequences in your batch. Related to the second idea is scalability. It's like, how long does it take you to produce a batch of size B? What I want to note is that this can be infinite time. Say some algorithms might not be able to scale to say batch sizes of 10^5, 10^6. And so some algorithms don't scale much, but they would do a good job if you have them design a very small batch. You can obviously always backfill the batch with other stuff. But the point is, if your algorithm is making meaningful use of all the sequences that it's been given as input, allowance to the ground truth query, a ground truth model. And reproducibility, I think, is something that biologists actually tend to care about a lot more than you would gather from the machine learning papers. And it's that, is it accessible to biologists? Is it sensitive to hyperparameters and implementation? Can I run it and can I use it in lab to generate new sequences? There is a couple of more, and these are more quantitatively studied, especially in online algorithms. We are not in the regime of online algorithms where we can provide some sort of worst-case guarantees, but we are in heuristic algorithms mode. But these concepts are still relevant here. One is consistency. One is that if you improve your model quality, does your algorithm get better? So the answers that your algorithm finds, how do they relate to the quality of the model? If the model becomes closer to the ground truth, does your algorithm make use of that information that the model has about the ground truth? The flip side of it is if the model is completely bad, it's not doing anything, is your algorithm robust at all? So would you be completely bust or do you still perform somewhat? And so that's associated with robustness. Independence is that slightly more nuanced concept, is that is the model sensitive to the bias and errors of a particular oracle? So is the inductive bias or is the type of errors that the oracle produces affect your model? Does it affect your explorer? Does it depend on it or can it work with any model? Then finally, it's confusing, the concept of evolution. This word comes from parallel computing. The basic idea is what is the penalty associated with batching? So let's say I have 1,000 samples to attempt in the ground truth landscape. I can do this one by one. And in that case, every time I sample, some sequences, I can update my model and do it again and again. And in this case, I have the maximum amount of information when I go to the 1,000 sample. The other extreme is that I have to sample all 1,000 things at once. And so the question is, what is the penalty I pay when I batch things together, depending on how many batches I have? So that's the concept of adaptivity. Roughly speaking, this is my experience, obviously you can disagree, but how much people care about these different qualities of an algorithm, and it's relative, that is, I've tried to say worry mostly about what the synthetic biologists think rather than what the ML scientists think. It's the ratio between them rather than whether the ML scientists obviously also care about reproducibility. It's not that they don't care about it. Okay, so finally we have arrived at the point of mentioning some algorithms. I've mentioned earlier that's been a flurry of recent activity around the subject. It's a hot topic. I would roughly put algorithms into 3 classes that sometimes the boundaries are fuzzy. The first is what I call regularized generative models. These include Design by Adaptive Sampling and Conditioning by Adaptive Sampling for Robust Design from Brooks and Lysgarden and colleagues at Berkeley. There is Feedback GANs from, I think, Gupta and Zhu at Stanford. There is this paper by Killoran et al. that was one of the also early ones that were interesting from Brandon Frey's group. And more recently, there's been Deep Exploration Networks from Cedric's lab. As a representative, I just mentioned CBAS and DBAS today in a little bit more detail. There is another set of algorithms, which is the adaptations of exploit algorithms that were repurposed for biological design almost without much change. And the Arnold lab were pioneers of model-guided protein design. In particular, paper, paper by Romero in 2014 that used Bayesian optimization for protein engineering was very interesting and I think groundbreaking. And more recent approach in this class is from the, from Google, which they used a reinforcement learning design method called DynaPPO. I will cover these briefly as well. And then finally, to my knowledge, the oldest approaches to these problems often use genetic algorithms as the exploration strategy, and one of the first few was by Richard Fox in 2005. He's had papers before that, and there are other people also. The reason I want to mention this JTB paper is because it had a very full picture of what I'm describing to you today back then, so I find it a very interesting paper. And we have also recently revisited genetic algorithm and came up with a very simple variant of the Wright-Fisher algorithm and found that it's actually fairly strong still. So it's easy to implement, and I think it's— it has value as a way of comparing whether more sophisticated algorithms are actually improving in performance over evolutionary algorithm. Before I dive deeper, I want to mention two things. First, I want to mention that in principle, we don't have to do the optimization in the discrete space. We can also learn a good transform into compressed continuous space and then use that space to optimize more easily. It's not necessarily possible, but in some cases it can be. And you can have a good generator that maps back from this embedding into the sequence space again. One other challenge is sometimes that these transforms that have all these properties are hard to find, but the optimization algorithms that you would use in those cases are more simple. Examples of this, especially in sequences in drug molecule design, is the paper by Gomez and Bombaroli, that they use a variational autoencoder to do this. Another reminder is obviously combinatorial optimization is hard, is NP-hard, and there's also these additional negative results in some sense. So for instance, the paper by Wolpert in '95 essentially stipulates that over the space of all possible objective functions, you cannot have a good universal optimizer. Thankfully, we are not really in that world because we expect biological landscapes to have a high degree of regularity due to physics. But once you, like, are over that part. The question is what's remaining. Is it actually— there is any sort of regularity that you can come up with one algorithm that's just always better than others? But my guess is it's probably the answer is no, and you have to do a certain degree of like specialization. Um, but I expect that you can come up with algorithms that consistently do better than random search for any biological design problem. Another negative result by Kuznetsov is that even when you do hill climbing or like, say, strong selection weak mutation dynamics, even finding local peaks can take an exponential number of steps. So that's another result that I think is interesting. So all I'm trying to say here is that algorithmic guarantees are hard. To offer here, and we are looking mostly for empirical performance. So with that, I will go to explaining some of these, um, models or explorers. Um, so the first one I promised was, uh, CBASS, DBASS, and CBASS shortly. The basic idea behind this is— so this was by Brooks and Lisgarden, they assume you have access to some oracle phi prime, and they really don't— like, they don't assume that that oracle is differentiable, or it's basically just a black box oracle that you can query. And so they're very similar. I will explain DBaSS first. Basically, it's a coming together of a generative model and a cross-entropy method. Very high-level idea is that you train a generative model on some ground truth examples, then you generate some samples, and then you evaluate them with the oracle that you're provided. You set— you pick a set of samples that perform pretty highly, and you retrain your generative model based on the score and the uncertainty that the oracle assigned to that score to update the parameters of your generative models, which can be a VAE or a GAN. So the better your oracle is, the better your algorithm, and eventually it basically gets to the sort of steady state of producing sequences that are likely to score highly in the oracle. CBASS is very similar, but it's rooted in the concern that if your oracle is biased, um, or has some pathologies that can drive your generator to no man's land, um, and generate sequences that are not very good, um, even though— so it can, it can drive you to places that are not very good even though the oracle thinks they're very good. So CVaS is trying to avoid that problem. And so you start like dVaS. However, your generative model is trained— that is trained on the original ground truth data that you have real labels for— is used as a prior to regularize your exploration in this landscape. So you reweight in the steps that you generate sequences, you sort them with the oracle, and you try to retrain your generative models on them. You also weight them based on how likely those samples are according to the original generative model that learned the prior of what looks like real data. So if your samples start to become less and less like the real data, the generator basically imposes a penalty on them. And it's less likely to go to places in the landscape that are not like the ones that you've already seen. So it sort of restricts the oracle with a soft pessimism implied. And I can go into more details in the lunchtime about this. I'll cover— oh, two things I want to mention is, so DBaSS is very consistent because if the oracle gets better, it starts exploiting it. CBaSS, on the other hand, has the extra advantage of being more robust. It might lose a little bit of consistency, it might not climb as well if the model gets better because it's pessimistic about the model, But, um, it still is an algorithm that can climb, um, even, even with, um, models that are not very good. Um, adaptations of explore-exploit algorithms, as I said, there is an original paper, uh, from Romero et al. in Arnold's group, um, using Bayesian optimization. I think most people here, I expect to have seen Bayesian optimization approaches, so I won't go into details of that. I'm happy to go afterwards in questions, but I want to say that the one main drawback of BO approaches is that they are hard to scale. The other one that I find interesting is the use of reinforcement learning. A lot of people think about reinforcement learning in the concept of sequence design. And I guess the main— this is a paper by Google— the main point I want to make about reinforcement learning is it's often the case that reinforcement learning algorithms that have developed a lot in the recent years do well if you have a good simulator that can, like, help you train your reinforcement learning agent to do the right moves. And so DynaPPO does use this idea that it's like, okay, we can make a good local simulator. How do we do that? We make an ensemble of models and we train them on the data that we have, and then we evaluate how good those models are. And if the models meet some certain threshold of goodness, we use them as simulators altogether. To train our policy network. And the policy network basically gets to play in this sandbox of models that are good at the local level. And then they also have to deal with this problem of, well, the models become less good if you move out. So you have to define a trust region. And the way they do that is by sort of coming up with a heuristic of how how much uncertainty there is for a sample between different models. And if the uncertainty goes very high, you exclude that region of the sequence space from what the policy network is trained on. So that's the way of sort of circumventing the pathologies that you get from these sort of inference models. One challenge is that these sort of reinforcement learning algorithms, in particular trust region policy optimization approaches, are known to be hard to— they're sensitive to implementation, they're rather hard for a biologist to implement, and so the reproducibility is still a challenge in my view unless someone can, like, release a package that does it very well regardless of the context. We have found testing them that they're pretty consistent and robust, actually, because they use this suite of models that generate a lot of different ways of training the policy network. Finally, I want to mention genetic algorithms. That is, as I mentioned, Fox in 2005. I just want to like point out again that he had a very clear vision of this and he did all of the steps in this process back then when it was not really possible to do it in lab. And what I want to say additionally about our own work, and there is already an archived version of this paper out, that we tried a very simple greedy algorithm based on the Wright-Fisher process and we found it to to be surprisingly good at the metrics. Sort of, it was easy to implement, it was robust, and it was consistent, and it was good at generating optimal sequences. And I'll mention how we've tested it in a moment. The very basic idea of the algorithm I'm proposing is it just takes samples that are not too far from the very top sample you found. So you take like samples that are within 80% of the performance of the top sequence. So this can be many or it can be very few. So it's not a rank-based algorithm. It's more of a how far from the top are you. And then that population is used as seed to mutate. And we establish a trust region for the models to mutate, basically roll out sequences and then rank them based on the models. And then you just go to the next round. So it's very greedy, but it tends to actually perform fairly strongly even in landscapes that are highly epistatic. What I want to mention today also is I think it's a very fun area, and there is a lot of theory to be done there, but there is also a lot of value that comes out of experimental, sort of empirical experimentation. So one thing that I started developing a few years ago, and over time I've actually, with the help of some some very talented and hardworking students, we managed to like get to the finish line. Obviously it's work in progress and anyone is welcome to contribute, but basically to release it into the public domain is the sandbox that helps you basically plug algorithms just like you would do in OpenAI Gym or another reinforcement learning platform and see if your sequence design algorithms can perform well. And it has all these layers that I've mentioned. It simulates, uh, the process of designing multiple batches, experimenting them, and then making a model of ground truth. Um, I realize I'm running out of time, so, uh, wasn't expected. Alex, how much more time do I have? I just want to know to— you can take a few more minutes. Um, I think Yeah, take 3 or 4 more minutes and then we'll take like a 5-minute break before the main talk and start a few minutes after the hour. I think that that'll be fine. Right, sounds good. So we have a set of ground truth. These are really not ground truth in most cases that basically aim to simulate the experimental sort of ground truth. The one on the very left is actually a ground truth, is a set of all DNA sequences that they have tested against about 150 transcription factor factors. And you'll have basically the data for 150 different transcription factors and the DNA that— how strongly they bind to different pieces of DNA. And it's a complete landscape. But the landscape is fairly small itself. So even simple algorithms often succeed in generating very good solutions. There's two others, and the reason we've picked these two others, as I said earlier in the talk, is that the sort of rules are consistent across the whole domain, and it's not very good one way, one place, and very bad in another place. Obviously those can exist, those pockets can exist, but as a general rule, you don't expect them to behave that way. We have ViennaRNA and Rosetta and a bunch of design challenges in there. On the other side, we also have like models that are trained on local data from tape paper, for instance, the BERT-like GFB model that you can try to design a GFB with. That's a problem that multiple papers in this domain have tried to benchmark against. But one purpose of the sandbox is to make it easier to benchmark algorithms. In terms of models, I have two classes of models in this. One is we take the ground truth and we noise corrupt it, based on the distance to the sequences that you've already measured. This is a way for you to be able to tune the signal strength of your model in a way that allows you to study whether your algorithm is sensitive to this or not and be precise about it. We also have the empirical models that you would normally use and also a function to ensemble the models together to improve their performance. And in fact, our best ensemble is actually somewhere between a perfect model and a model that has a signal strength, if you will, of 0.9. So you have pretty good ability to predict sequences, at least on the RNA landscape that I've depicted here. And so you can also turn the model completely off by setting alpha to 0. And so your algorithm should be confused by that, and you can see how well the algorithm performs. I want to show that implementing an explorer is as simple as just implementing a single function. And so propose_sequences receives a set of measured data, and then it proposes a set of sequences that can then be measured against the ground truth. And you can, you it will update your models and everything, and you can go again. And so the interface ensures that you basically stay within the limits of the computational queries and the ground truth queries that you want to make. I was going to show you some results, but I feel like we are out of time. So I just want to say that in the Adelaide paper that you can see on archive, We have some results comparing these algorithms on a set of different tasks, and I think this is still work in progress, and there's a lot of exciting things to be done. But the basic point that I'm trying to make is that algorithm that's very simple to implement can be a very good performer and can also serve as a good benchmark. So with that, I would like to conclude just by saying that it's a very impactful topic at the interface of synthetic biology, evolution, and machine learning. There's a lot of interesting approaches, and we introduced some criteria and a sandbox to enable you to make better algorithms. There's a lot of work to be done. I just want to get you excited with this primer. I also want to thank a few people, especially Eric, who I've worked with closely over the years on this problem, people who have contributed to FLEX, the Fitness Landscape Sandbox, people I talked to at Harvard, and my colleagues at Dyno who have given me helpful feedback on this.
Really happy to be here. So I'm going to share a little bit about the applications of some of the ideas that Sam mentioned, and actually many of the ideas that Sam talked about came out or were inspired by this problem of trying to optimize AV capsids for gene therapy. So these two works really developed side by side. The high-level overview of the talk: I'm going to talk a little about my personal history, how I came to be working on this, and then, you know, why are capsids interesting. As well as some of the progress we've made towards making them better for gene therapy, both on the experimental side and then on the model building side, all working within this framework that we call model-guided design. It's especially exciting for me to come here and talk at MIA because this project started back in 2015, and one of the first things someone told me about when I started this project was, oh, you should go to the MEA talks at the Broad. And so it's been really also fun to see the project progress as I've seen the community grow around these talks and a real pleasure to come back and to contribute. I'd like to especially thank the many people who helped out for this. This is— I'm going to kind of breeze through 6 years of work. And it started in George Church's lab where I was a postdoc working closely with some really great grad students. Pierce Ogden and Nina Jain helped out especially on the experimental side and then working with Sam on the computational side. Since 2017, we've had a collaboration with Google Accelerated Science. Drew Bryant, Ali Bashir, Patrick Riley, and Lucy Caldwell on that team. And then since 2018, been continuing to work on this problem especially focused on translating some of these ideas and technologies towards developing better AAV capsids for human gene therapy. And that's all been with the team at Dyna Therapeutics. So kind of personal history, and you could say the inspiration for why, why do this. My own career path started in physics, that was my undergrad, and then I did my PhD in systems biology, postdoc was protein engineering, and now as an entrepreneur. I guess I wanted to start this talk by how I was taught to think about proteins, which was that they're very complex, meaning it's difficult to predict how protein folds from first principles, and by extension then it should be difficult to design a better protein. That's what I was always taught. But something that was really kind of a fun observation as I was getting into biology was two stories that we like to tell ourselves about biology. And they're both very interesting. There's one story, which is that biology is more complicated than we thought. And that might be some new discoveries, some new gene, some new function, and the complexity is growing. And you can tell that story many times. And then eventually things get very complex. And then there's another interesting story you can tell, which is biology is actually quite simple. And those simplifications can be quite powerful. And it's a perfect kind of academic tool. You can go back and forth between these two things always. Kind of moving in opposite directions. So I guess with that story of how proteins are complex, what really inspired me to think about this differently was during my PhD, thinking of how I could kind of apply some of the skills I had learned in physics, I got very interested in fitness landscapes and applying those to biology. And so I actually measured a comprehensive fitness landscape as part of my PhD. This is for protein INFA in E. coli. And it's a comprehensive landscape, meaning it's every possible single change to the protein, all amino acids, and actually all codons. And this is also measured in a pretty precise way, so very accurate measurements. And I guess the surprising thing to me was just how regular the landscape was and these repeated patterns that you could see at all these different positions. In fact, it was surprisingly regular to me, kind of the opposite of the complexity that I had expected to see. In part, that might just be because these measurements were quite accurate. So landscapes that I had seen in the past were noisier, which made them seem more complex, but actually removing that noise provided a simpler picture. So the obvious way to analyze this was just to say, well, how simple could it be? You can do principal component analysis on this, pull out, say, the first 4 principal components, And actually, look at those. Those explain— Was this like a saturation mutagenesis, or were you changing each single base? It essentially was— it was by synthesis. And we just synthesized to generate oligos. And the technique published here in Cell Systems was called MADE-Seq. So it used a genome engineering technology, also the George Church's I worked on. It was a collaboration with that lab, with Harris Wang. And yeah, we used degenerate oligos NNN in order to make all possible codons at each position. And then we, in this case, measured the growth rates of the E. coli because it was in central gene.
OK, and what we're seeing is each single residue substitution. That's correct.
Yeah, collapsing down the different codons to the different amino acids. And then the color, white is neutral, and the dark ones are the deleterious. And then the blacks are the wild type position at each— for each amino acid. So we're seeing every possible sequence that's at substitution distance 1 from the wild type. Correct. So it's a comprehensive distance 1 fitness landscape, in this case for substitutions only. Yeah. So I was talking about the simplicity of it, talking about principal component analysis. First off, those first 4 principal components explain about 80-85% of the variance. They end up being correlated with some basic biochemical properties like the buriedness, residues which tend to be buried, or flexibility, steric hindrance, net charge. And they also kind of cluster structurally. You can see the residues that have this kind of buried residue profile all tend to occur in this hydrophobic core. Whereas things that have to do with charge, those in this case, this INFA protein, it's initiation factor for the ribosome and it binds to the ribosome, so it's the positions that are in contact with the RNA that have this sensitivity to charge. So I guess what was surprising here was that a lot of this made sense and, you know, I had measured this landscape comprehensively, The thought was that if that's the case, then maybe protein engineering wouldn't be so complicated if we just had enough data, enough data to better understand these landscapes, because we wouldn't actually have to understand, you know, measure everything comprehensively to get this picture. You could probably subsample that landscape and get a pretty complete view. So in other words, it felt like it was an opportunity here to do protein engineering kind of more like a Goldilocks problem, not too simple, to be boring, but not too complex to be intractable. It's still hard to design a protein from first principles, but with a reasonable amount of experimental data, we can make pretty good local approximations of those fitness landscapes. And luckily, these new high-throughput technologies like DNA synthesis and DNA sequencing enable you to do what are called multiplex experiments. In other words, multiplex just means that you generate a lot of variants and you pool them together, and then you measure the fitness in a pool. That enables you to do a lot of experiments in parallel. For example, that previous landscape was around 4,000 different mutations. We did another one in that paper that was around 80,000 mutations. Each of those took about a week to do the experiment. So there's just great power in these new tools to generate huge amounts of data very quickly. I was very excited by that based upon the mysteries that I felt would be hidden within those landscapes. But actually just using the data itself, that's interesting, but the question is what do you do with that? So to actually make it relevant for protein engineering, I'd like to, you know, talk about what's changed now that we have access to that information. And the classical protein engineering workflow is open loop, meaning you do these serial rounds of mutation followed by enrichment. And in the next round, we do the same thing. For example, if you're mutating randomly, not incorporating any of the lessons learned from the previous rounds into the new style of mutation, you are incorporating the improved variants. So there is some leveling up that happens between rounds. But I guess the main point I would say is that, like Sam alluded to, this is a model-free process. You're not incorporating any information into the design of the new library. Whereas with a closed-loop approach, you could take what you learned from the sequencing and then feed that back, for example, through some model building and then using that model to design a new library. And this closed-loop approach has the potential to accelerate the search, meaning that you can apply all the lessons learned from your prior rounds of screening to do a much better job at designing the libraries for future rounds. So, spent the last few years trying to bring the different pieces of this workflow together. I would say what characterizes this machine-guided design, or you call it model-guided design, is that each of these steps— the library creation, the measurement, often by sequencing, and then the data analysis and the experimental design— those are all automated in high throughput. And it's important to say that, you know, I was really excited about machine learning in the beginning to solve this problem of how do you automate the analysis. For that work that I did for my PhD, as I said, it was about a week to do the experiment. And in that case, I was interested in understanding some of the basic biology of how genes worked. In particular, what's the interplay between the RNA landscape and the protein landscape? And I spent about 2 years analyzing that dataset that took a week to generate, which just felt like it was going to be too long if you wanted to make a better protein as quickly as possible. And so by using these powerful new computational tools like neural networks, we could automate the design, automate the analysis, and then using that analysis, automate the design so that you didn't have to wait 2 years to do your next experiment. You could do that maybe in just another week, and in that way get the full potential of the new experimental tools which are coming online. So we set up to use this, and one of the first things I was thinking in joining George's lab as a postdoc was, where can we have the most impact? What's a really interesting model system to apply these new tools to, both to do exciting new science, but also to have some useful applications? To tie it back to Sam's talk previously, these steps here of the machine learning and the library design, those are what define those exploration algorithms, exploration strategies. So now I'm going to tell you why we ended up working on capsids and give a brief overview of gene therapy. There were a few criteria I was looking for in choosing a good model system for this. I wanted it to be impactful. It needed to be hard to do in order to justify the time investment to develop these new approaches, these new technologies. It needed to be useful for a variety of applications, not just a one-time thing. If it was just a single problem you wanted to solve, it might be better just to apply the existing technology and to brute force solve it. And it needed to have this capability of being multiplexed, as I mentioned, in order to do these assays in high throughput. So capsids are what we ended up settling on. On the multiplexing side, actually, there's a really natural way in which you can link the DNA sequence to the protein function, and that's because the capsid genomes are packaged within the capsids that they encode. So that provides this coupling in a very simple way, which is already built into how the protein works. Every tissue and cell type that you would want to deliver to for gene therapy poses a distinct delivery challenge, but not a completely different challenge, meaning that there's some correlations between these different targets. And therefore, all the assays that we would use to target one cell or one organ can be relatively easily adapted to new organs and new cell types, as well as the data itself being valuable for giving you a head start at solving those new problems. So there's a lot of benefit from developing a new technology here because you're not just going to use it once. You might be using it, you know, hundreds of times to solve different challenges. In gene therapy, delivery is really the limiting factor. It's essentially what makes the product successful, if you're able to deliver enough DNA to target organ or target cell, because often what we're treating is a genetic disease, in which case there's a deficiency, meaning like the natural gene is broken. You know that just adding the wild type gene to those cells is going to rescue the phenotype, but getting it there is the real challenge. So this has been known for the past 30 years as people have been working to make gene therapy a reality. It's always been a challenge to deliver the DNA efficiently and safely. Even in the last 20 years, people have brought a lot of attention to AAVs. There hasn't been as much progress as we would like, and that's probably because the capsid itself is a very complex protein. There's 60 different monomers that come together, a lot of conformational rearrangements that are necessary for the function. And there's also a lot of uncertainty about the biology of AAV and how it interacts with the body, for example. So those have been some of the reasons why we haven't made as much progress as we would like. But the impact is there, and there's the potential to cure thousands of diseases, for one. And it also, you know, we believe it's the future of personalized medicine, medicine which is, you know, better poised to treat many different diseases that aren't possible to treat today. You know, today many people are focused on small molecules and biologics like antibodies, which are inhibiting function. For many of these genetic deficiencies, there's nothing to inhibit because the gene actually isn't there. By adding that gene in, you know, it's a much more powerful way to treat diseases that go beyond just inhibition, and delivery would be a key part of making that future a reality. So this seemed like a very worthwhile problem to work on. And the other lesson I learned from the work I did for my PhD is pretty much no matter what system you choose, it's going to take a similar amount of work to set up the assays and to get all the analysis running. So we really wanted to choose an important problem to work on. That's why we focused on capsids. So to provide us a very simple picture of that, gene therapy is essentially these two elements: the DNA payload, typically the gene that's going to replace a natural gene, or in some cases, like genome editing, the proteins which are going to accomplish a change or actuate a change like a genome surgery. And then there's the vector used to deliver that payload. And focusing on this talk on adeno-associated virus capsids, which are the most popular and probably the most powerful way of delivering genes into the body that's being used today. And it's been used in hundreds of trials, as Sam mentioned. A lot of potential for improvement, but it's pretty good. It's the best thing we have so far. To give you a brief background on the biology of AV, this is what the natural genome looks like. There's a rep gene involved in replication, cap gene, which is the capsid. There's actually 3 different versions of that cap gene: VP1, 2, and 3 that get translated. There's an alternative morphin there called AAP, which is called assembly activating protein, involved in the assembly of the capsids. And you can see kind of here on the right, the colored regions are the variable portions of the capsid. It's packaged with these inverted terminal repeats at the ends of the genome. To make it useful for gene therapy, you take the viral genes outside of those ITRs and you put in your transgene with a promoter to express it. And in that way, once the transgene is packaged within the capsid, you deliver those capsids to patients and it will then deliver the transgene into the patient's cells. So that's how AAV is used today as a gene therapy vector. The natural capsids are how the field has gotten started, and they're good at some things. They can go to some cells and tissues, but there's many, many delivery targets which are inaccessible today, so we'd like to make that better. Also, AAVs today are pretty broad in their tropism. We'd like to make them more specific to only go where they're needed. There's the immune system, which we would like to avoid activating it. There's the packaging size, which is somewhat limited because AAVs are one of the smallest viruses, 4.7 kb limit on the packaging size. And there's the manufacturability. Again, it works today because there's clinically approved gene therapies, but could be better. And certainly we don't want to make it worse. So our goal here is really to improve these properties, but also to improve them in combination. The lay of the land is that these natural serotypes are quite distinct in sequence. Whole capsid's around 730 amino acids in length, and between, you know, a given two natural variants, there might be hundreds of different mutations. So the sequence landscape is quite vast. However, it's mostly non-functional, meaning if you make even a single change, most of those are going to break the function of the capsid. Some smaller fraction will be neutral, and an even smaller portion improved. If you then make a second change, most of the ones that were broken will stay broken, and you kind of get the same ratios as you add in on top of the neutrals, and so on. So the kind of big picture view is that the further away you go from natural variant, especially if you're making the changes randomly, the more that library is going to be non-functional. And for that reason, we say that the random libraries are shallow, meaning they only explore the local neighborhood of your starting sequence, and they don't come close to exploring this vast sequence space, which is lying between all the natural AAVs and which we believe has the potential to contain these greatly improved capsids for gene therapy. So that kind of leads you to this trade-off where, because the random libraries are typically you know, low quality, the advantage they have is that you can make a large number of random variants. But because the quality is low, that decreases the expected value of finding something interesting within that library. On the flip side, with rational design, you know, either reading the literature or using these, you know, very detailed biophysical models, maybe you can predict changes which will be more likely to function in that In other words, that's improving the quality of the library. But because there's not a lot of things known about AV and still, you know, a lot of basic biology which we don't know, it's hard to make a large number of good guesses about how to improve an AV. So again, that's not ideal. And the goal of our work was to say, with this more data-driven approach, can we be in the top right? Can we both have high-quality libraries informed by data and a large number of variants to increase our chance of finding an improved variant. So, it's important too to test it in the right system. This goes back to a comment from Ben Deverman in Sam's talk. We want to measure the most relevant thing, in this case for applications in human gene therapy, and every gene therapy prior to going to human clinical trials is going to be tested in nonhuman primates, both for safety but also hopefully too for ensuring the delivery efficiency. So we wanted to get the most relevant data for ensuring success in humans, and that meant it would be great if we could also do the development of our capsids as well in the non-human primates where they're eventually going to be validated prior to clinical work. And what we found very interesting and exciting was that these new high-throughput technologies could make that possible to do cost-effectively, meaning in one animal, if we're testing hundreds of thousands of different variants, Now the barrier to doing these in non-human primates is potentially removed. So first we set out to develop the experimental tools which would make this possible, especially through multiplexing. And we actually, prior to even realizing the importance of exploration strategies, started working on two projects we called a wide search and a deep search, which essentially lie on the two sides of the coin. The wide search is more about exploration, the deep search more about optimization. Starting with the wide search, we began with just a very simple landscape, again, a comprehensive scan, testing all possible codon changes, but in this case it was done also through synthesis. So we did the substitutions as well as insertions and deletions, and also replicates of each variant, which made it around 200,000 different variants and barcodes that were tested as part of this library. This is kind of giving you a high-level view of how those were assembled. The mutations scan across the capsid gene. There's a barcode that we can use, and just sequencing from the barcodes, we can know which mutation we're looking at. And then this was all enclosed within the AV genome, those ITRs at the end, which package it within the capsid. So we developed the ability to measure each of those different properties, measuring the library just to QC it. Adding that to cells to produce the virus particles, purifying those, and then by sequencing each of these different steps, looking at the ratio, that gives you a measurement of the fitness. From the virus library, then you can go into animals, and then from the animals, you can go into, for example, the different organs, and in that way characterize the in vivo delivery properties of the capsids. Here's showing you an example of the first library that we built, which is on the AV.2 serotype. And it's a section of the capsid. This is the production assay, meaning what's the fitness of every variant as you go from the DNA library and produce the encapsulated phyllogenoms. So on the right is showing you, again, another picture of that fitness landscape. The whites are neutral, same as the wild type, in efficiency for production. Blue is deleterious and the red is beneficial. Black dart marks the wild type. And you can see in the rows, those are all the different codons. The black lines separate amino acid blocks, and the X is the different positions within the capsid. So you can also see within here there's a number of controls. For example, all the stop codons down at the bottom, those we put in because we expect those to be deleterious. So we want to see that they have a negative effect, which is true. Also, you could say that all the synonymous codons are replicates of the same amino acid, if the amino acid is what's driving the function, then those should be replicates as well. And so you can see that those blocks roughly align with the amino acids. And this is also averaging the function across two replicate barcodes. So we built this library, one, because it's a good way to build an intuition for whether it's working or not, and because it was relatively straightforward to analyze this data. This is just a section of the capsid. Zoom out and just average. Quick questions, Eric?
Yeah, go ahead. What— can you say again what the black dots are?
The black dot is the wild-type codon at each position. Oh, right.
Thanks. And then the other one is from the audience. Not all stop codons are bad then?
So they're all blue, so they all are— or some are. There's some noise, and that's actually why this presentation is quite quite nice because you can see the speckles in the matrix. That's probably just experimental noise, and it arises for a number of reasons. One is that not every variant, when it's produced in this pooled format, has the same abundance within the library. So some are less frequently present, and then those— because you're in the end measuring the frequency through sequencing— The ones that are at lower abundances, you have fewer counts of those, which means you have more noise in the measurement. So there is noise here. You could say like 99.9% of the library is present, but there's a few things that are missing. For example, this little speckle here, that's probably just a very noisy data point rather than actually being a difference in that codon. That's my intuition from looking at a lot of these heat maps. But you can actually, of course, peer into the data more carefully to separate those two effects. And there is— so I guess what we're looking for is, in general, a deleterious stripe down here on the stop codons. We're looking for, for example, with the wild type, that the wild type synonymous codons are similar fitness. And that's how we normalize everything to 0 for the wild type. We're also looking for this kind of block structure across the similar codons for the same amino acid because that tells you that we're measuring something at the protein level. There were a number of tricks to make this work too. You know, for example, you want to make sure that you're producing a small number or ideally one capsid per cell. Otherwise, you run into problems with the capsids actually being chimeric or with the capsid cross-packaging a different genome. But if you optimize the conditions for producing the library, then you can get a picture like we show here. And just same picture again, this is zooming out and now averaging across the amino acids and looking at just that same section. And then this is kind of showing you the whole dataset for the substitutions on the top and then the insertions down below, all across all positions, 1 through 735 for AV2. And again, these were all synthesized and then pooled together and produced and then read out from a single NGS pool. So in this case, it's around 30,000 different amino acid changes. It was just over 90,000 codon changes, and then there were multiple replicates that were built into that. So very powerful approach, and this was really exciting to see, and it confirms a few of the intuition that we had about this. One of them I already talked about was that the If you look at this again, blue is deleterious. The matrix is mostly blue, which means most of the changes are going to break it.
What is it? I'm going to talk to you. For what?
I think someone's off mute. During the brief interruption, I have a question. Oh yeah, go ahead. How many cells do you think are getting infected here, and in particular, like how many cells per variant? Are being assayed? And I saw in your graphic briefly that it looks like you're measuring fitness across different tissues, so I guess the same question applies in each of the tissues: how many cells do you think you're getting per variant? That's a really good question. They probably have different answers. This was produced with a very large number of cells. I actually don't know off the top of my head what the exact number would be. It was 40 I guess each of these, there were done 2 replicates and each was about 40 15-centimeter plates, which is probably like in the billions of cells, if not close. And the library is hundreds of thousands. So many more cells than variants, so that you can get kind of essentially internal averaging of the function no matter which cell a particular plasmid went into. On the other side, when we go in vivo, then it's a different story because some organs maybe are more efficiently delivered to, and you can measure the variants many times. In other cases, for the more challenging organs, you might be sparsely sampling the library and even in some cases recovering 1,000 or 10,000 different sequences. In that case, they probably each came from a single cell because there were, again, millions of cells in that small tissue sample. So it really depends what organ you're going into. And although we didn't get to that level of kind of analysis in the paper that was published here in Science, at Dyna, we've done a lot of work to try to build tools that help us to understand the copy number of variants, for example, that are being expressed within a given cell using kind of additional barcode IDs that are built onto the barcodes, which also represent the different mutations, if that answers your question. So there's a lot of things you can learn from this. Not all of them we learned from this single experiment, I guess. I actually had a related question.
Yeah, go ahead. You mentioned tuning to avoid capsid mosaicism for that for production.
How do the transfection ratios or the amount of DNA you're using for transfection compare to what's typical for AAV production? Are you pretty close, or are you kind of scaling it down to deal with the mosaicism problems? We scale it down. And that's actually the first experiment we did prior to even building this library was to do a small section of the capsid and then test 1x, 10-fold less, 100-fold less, 1,000-fold less to figure out where do we get the coupling between the genomes and the function. And you start to see that even at 10x less. Typically it's somewhere between 10 and 100x is where, you know, people are using these days. If you go too low, you actually may produce much less of the vector, which you run to this problem that was just mentioned about the number of cells that you've transfected might become much lower. And you also just have less of the vector to use in your future experiments. So you try to move it down towards the limit of one capsid per cell or one plasmid per cell. But it's not necessary that you do that. You can still observe these things, and then you can kind of look at your dynamic range by looking at how much do the stop codons fall out of your assay. In this case, stop codons are deleterious. They shouldn't form any viable capsids, but we see about a 30-fold depletion of them. So there is some cross-packaging going on, but it's something that we actually measure and calibrate against. So you can, you know, even if this is happening at some low frequency, it's not the end of the world, as long as you're keeping track of what's happening, what's going on. Great, thanks. Yeah, and so that's also why we have these, you know, negative controls built into the library, as well as the positive controls, which are replicates of the wild type, so that you can normalize everything to that scale. This is just taking the average across each position for the substitutions and the insertions and plotting that on top of the 3D crystal structure. And you can see these striking patterns, not only between inside and outside of the capsid, but also the differences that are evident between insertions and substitutions. So it kind of gets to the point of structure has been a guide to our engineering efforts, and that's one way of putting information into the design. But what was really exciting here was that even from a single experiment, we can learn so much about the structure, which is captured visually here, but actually much more information is present within the library. Not only do we have the average at every position, but we know, you know, for every codon or even amino acid, the fitness of those individual variants, as well as there's differences, you know, for example, here on the insertions, you can see in the 5-fold axis, it looks very different than the 3-fold axis, which is red here. Those things wouldn't be as obvious just from looking at the structure. But we can learn that from the data. So we feel that the data is more primary and more useful for how we would design a better library. There's something else I don't think I'll have time to go into totally, but one really interesting thing that we found here in doing this systematic scan— there's, you know, 3 genes on the av genome. We were focused on this library for the capsid gene. There's an out-of-frame gene in the second reading frame AAP, which was known, so 3 genes in total. And actually, when you do this systematic codon scan, one thing that really popped out was this weird pattern of changes within amino acid blocks, which after some more detailed study ended up being a new gene that we called membrane-associated accessory protein, MAP. And it just kind of pops out of the data. It was really surprising and exciting. There's still a lot of things we don't know about its function, One thing which is surprising is that it's in the membrane, whereas AAV typically is assembling in the nucleus or even the nucleolus. So the natural biology of what MAPE does and how it relates to the AAV life cycle is still something that we and others would love to know, and maybe there would be applications too for this protein for gene therapy, but that's still to be determined. I'm going to talk more about the application side. So, you know, taking data like I just showed you, taking those tools and now trying to build models of the landscape, uh, leads us to want to explore that deep space, which as, as Sam said, is vast. You can't test them all. You can't even enumerate all the different possible variants. So we needed some efficient way of exploring. Um, and our thought was to use machine learning models to direct us where we should go. Which combinations of mutations would be most likely to be valuable for testing. This is a kind of just a visual of what that looks like. So in other words, the center of this is the starting sequence, what we tested in the previous section that was just the first ring, all the single mutations. And now, you know, here's 2, 3, 4, and so on, actually all the way up to 42 different mutations that were tested as part of this next round. Question was, how far can we go? In this case, it's again coloring it by the production, you can see You can go pretty far. One thing I'd like to say to motivate this is, is why do you want to make a large number of changes to the AV capsid? And a big reason for that is because of pre-existing immunity, one of those properties we'd like to improve about AV. So to explain that, I want to talk about neutralizing antibodies, which of course, that's what you would get anytime your body sees a viral infection. If you look at different people's serum, you can do an assay called a neutralizing antibody assay by doing dilutions of the serum. In many cases, people will have antibodies against AAV, which is called pre-existing immunity, and they'll have different titers that you can measure with this assay. If you look at where those antibodies are binding, for example, here with cryo-EM, they're distributed all across the surface of the capsid. If you look at the natural serotypes, most patients will be immune or have some degree of preexisting immunity, anywhere from 20 to 80% of patients for a given serotype. And actually, as part of clinical trials today, many of them have these exclusion criteria where patients with neutralizing antibodies against that product serotype won't actually be eligible for the therapy, or even if they were eligible, may not benefit from the treatment. So that's a major challenge which we would like to overcome, but because the antibodies is on the left, you can see bind all across the surface, and if you look at that surface, the colored regions here on the right, those are the variable regions. The black are the more conserved regions. If we want to block the antibodies from binding, that's going to require changing a very large number of positions all across the surface, and that's a very hard thing to do. So As I told you, because most of the changes you'd want to make if you chose them manually would be deleterious. But the upside could be that if we make enough changes, in other words, to remove all the natural epitopes from the capsid, making it no longer really look like a natural capsid, but as a synthetic capsid, something the immune system has never seen, then it could be a universal vector that every patient could be treated with for a gene therapy. So that's a major goal of the field. We set out to test how far away from a natural capsid we could explore using the information from the experiments like I just showed you. In this case, we chose a representative region of the AV2 capsid. A portion of it was buried and highly conserved, other portions exposed at the surface or at the interfaces between monomers shown here on the structure. We took the data from that previous experiment, the wide search, all the single mutations, and did a very simple, you could say, exploration strategy. We preferentially chose the positions which had higher fitness, either for the different tissues we were thinking of optimizing, or you could also do the same thing with production. Based upon the fitness, there was a probability of choosing a variant and sampling it as the first, second, and third mutation you'd want to introduce. And this way, kind of building a library of design variants informed by data which were less likely to be broken. So a very simple strategy here, again, using data only from the single mutations, so essentially an additive fitness model. We then measured the ability for those capsids to go into different organs. Here was going into the liver. And so you have the random mutants in the bottom there. Those are not going anywhere. In many cases, they're not actually even assembling and packaging. So those are in the gray. And then on the orange, those are the design variants. And if you threshold that, say, at the wild type level at 0, you get some picture like this. As you make more steps away from the wild type, the random mutations fall off very quickly. That's, again, matching the intuition I had mentioned previously. The design mutants are able to go much further away, in this case about 5 to 10, before it finally drops off. So the question was, that was a very simple model. And also now we also have more data on the deeper exploration. Can we train models which will enable us to explore even further away? And also what's the right combination of type of training data and type of model? Here I'm going to show you some results for the types of models. We were interested in knowing how complex did they need to be So we tested a very simple model, again, logistic regression, as well as some of the more higher capacity neural networks like a CNN or an RNN on that data. As benchmarks, a few things to show here. So one is the black line is the variants which are generated randomly. How well are those producing? In other words, this is a packaging assay. The whole library that we designed using that very simple additive model from the singles data. That's shown in the gray. And then the average diversity of the natural serotypes within this region, shown here as mu, that's around 12 mutations. The whole region is 28 amino acids in length. So now plotting on top of this, the results from— we took the data from the previous experiment. We then trained the models on that. We designed new variants and then we went out to test those. In other words, to validate whether the models were able to predict whether more synthetic variants were viable for production. And so here's showing you those results. The logistic regression is slightly improved relative to the additive model, which you could say it just means that we've learned essentially the right thresholds from that data in order to know which changes are likely to work and which ones aren't. And it's also, you know, the original additive model was trained on the singles data. This logistic model is trained on that plus a little bit more data. So the differences between those are not directly comparable, but the differences between the logistic regression and the CNN and the RNN, that's where it's more interesting in that the neural network models are able to explore further away from the starting sequence and also to surpass the diversity of the natural AVs by, you know, in this case, a few standard deviations. So this is a very— just an exploration into the sequence space. I could talk about it more if we have time, but another thing that we noticed was that the neural networks tend to be more robust to the type of training data, meaning they have similar performance with a lot more data and also a lot less data, which is also exciting and potentially means that some sort of more compressed sensing approach to sampling of the data would still be viable. So finally, putting it all together, talking a little about what we've done since these works— these are both experiments that were done at Harvard. So we started the company to do this, and primarily because we wanted to maximize the impact. So that was done at the end of 2018, and we really wanted to solve this problem and to solve it in a way that what's going to be translatable to human gene therapies, and the company seemed like the fastest and best way to do that. So a few things we've been focusing on since that work, which was published in Science last year: translation from mouse to NHP, also measuring not just in vivo biodistribution but also the transduction, meaning the expression of the viral genomes within the target organs, partnering with leaders in industry. And in this case, Dyna has signed partnerships with Novartis for AAVs in the eye and Sarepta for AAV gene therapies in the muscle, where Dyna develops the capsids and our partners are responsible for the clinical development and eventual sales of those products. So that's a great way for us to work together to increase our impact on helping gene therapy patients. We've done a lot of work developing and improving the technologies for the libraries, longer assemblies. I already alluded to this single molecule ID tracking, longer read sequencing, as well as advancing the measurements, the assays for things like packaging size, avoiding neutralizing antibodies, tropism, even with single-cell resolution, and building up the computational infrastructure. So on the experimental side, we now do the same types of comprehensive scans, but we also do that by incorporating information from other publicly available sequences like the phylogeny of AV, as well as the structures of AVs and related viruses, as well as actually now, because we have done this several times on other therapeutically relevant serotypes, we have all that data, which is a head start in terms of wanting to build a library for new serotypes. So we incorporate that to the design as well. Here's just a snapshot of this workflow to the infrastructure we have for machine learning. And it just shows you in practice how the ideas that Sam talked about are implemented. We take the data in, either public data or our own experimental data. You might featurize that or transform it. There was great questions in the chat about transformations to continuous spaces. Those are possible. Train a variety of models on that. I've talked about in this talk primarily the classification models, viable or inviable for production. But you can also do regression models, for example, on the efficiency of delivery into target organ like the CNS. From those models then to do this iterative optimization, that's what Sam mentioned as this kind of in silico experiments, trying to design the best variants. Those models or even exploration strategies can be all prototyped in this testing sandbox that that Sam mentioned, FLEXUS, which has just been released. And then from those in silico explorations, we design a portfolio of sequences, come up with some way of balancing that portfolio across the expected value of a beneficial sequence as well as minimizing the risk, or at least diversifying the risks. And that turns into an order of oligos, which then goes into the next library. Here's just a snapshot again of what we've done More recently, same view as I showed you before. The blue are all the variants that we've designed in our libraries, anywhere from 0 to 50 changes away from the starting sequence. There's some step down. Only a fraction of those are assembling and packaging the genomes. That's in the orange. And then again, I talked about we then go one step further from just measuring the DNA of the genomes. In vivo, either in cell culture or in animals, you want to measure the expression of the vector. And so that's an assay to read out on transducing. And again, there's not all the viruses which package are going to be viable producers. So there's another step down for that as well. So this is showing the progress we've made so far towards the synthetic AAVs. And at some point, we'll probably stop calling it AAV because it will no longer you know, look like an AV. It'll be as different from AV as other viruses are from AV. So that's just kind of beyond AV region. So to summarize, we have all these different information sources available today— lots of known public information sequences and structures, as well as information we can generate ourselves using these high-throughput experiments. We can train models on that, and then those measured data are like specific points that we've surveyed in the landscape, with machine learning, we can build models which infer the landscape at all the regions in between. And guided by those models, we can navigate to what we believe are the optimized variants at the peaks of those landscapes and then test those in further experiments. So in terms of future directions, some already said this is a really exciting field. A lot of great work is going on. For gene therapy, we still have these goals. We want to solve all these and do that with capsids that optimize across multiple properties simultaneously. So, you know, us and many in the field, we want to have the best-in-class capsids that are most impactful across a variety of capsid profiles. In other words, the capsid profile is some combination of the different properties which is going to make it an ideal capsid for treating a given disease. That can be both single organ and multi-organ targeting. As well as even at the level of cell types, AAVs specifically targeted to individual cell types. There's going beyond AAVs towards synthetic capsids, which has the potential to generate universal vectors, which can treat every patient, and also, you know, vectors which are immuno-inert, meaning that the immune system doesn't react against them. That would be ideal for the purposes of, for example, redosing. Of gene therapies. Of course, we always want more data. That is going to lead to better models. We want higher quality data. Again, same goal. We do the work in non-human primates because it's the best asset we have today, which is going to enable us to have confidence going into human clinical studies. But it would be nice if we didn't have to do so many primate experiments or if we had new sources for non-NHP data. Which could be used as good proxies for predicting what would happen in a primate or in a human. So those are— I think there's a lot of potential for that, and that's something that we're, you know, quite interested in exploring now at Dyno. And then of course there's the extension of these same approaches. There's nothing, I would say, particularly unique about these and their ability to solve problems for AV. They could be expanded to other things that are relevant for gene therapy, like payloads and manufacturing, as well as really any bioengineering, genetic engineering problem for proteins outside of capsids. And, you know, us and others of course are very excited about that potential future. So just to recap this talk on capsids: natural AAVs enable today's gene therapies and have been successful at treating a small number of diseases, but there's great room for improvement to make them better technologies for in vivo gene delivery. That's challenging if you build your libraries randomly, because most of the space is nonfunctional. But these new methods enable us to generate huge amounts of data quite rapidly. And machine learning models trained on that data can build these maps of the capsid fitness landscape. Those maps then enable this model-guided exploration. For example, enabling the diversification of AVs away from the natural serotypes, as well as optimization for all the other properties that are important for a gene therapy. And in the future, we strongly believe that this type of workflow will be quite valuable for making gene therapy even more powerful and able to benefit all patients, to be useful for treating diseases of new organs, and even to move beyond treating rare diseases by making the therapies more effective, easier to manufacture, cheaper to manufacture, so that they can be used to treat larger patient populations. It's something that can actually become a more mainstream gene therapy if we all work together to make that possible. And I'd like to thank everyone who contributed to this work, especially our team at Dyna Therapeutics. This is my email in case anyone wants to reach out. I'm happy to take any questions now. On there as well.
More from Joshua

Scientist Stories: Hans Waterham, The value of phenotypic assays in peroxisomal disorders

Scientist Stories: Joel Zlotogora, Genetic carrier screening programs for reproductive purposes








