Hello, everyone. Welcome to our 2016 Student Invited Speaker Seminar from the IPIV department. It's my pleasure to introduce Professor Caroline Britosi from Stanford University and Howard Hughes Medical Institute. Professor Britosi studied chemistry at Harvard University as an undergrad, then moved to the West Coast to do a PhD at Berkeley with Mark Bynarski working on oligosaccharide synthesis. From there, she moved to UCSF to do postdoc work with Stephen Rosen looking at the interactions between selectins and saccharides and the role in inflammation. Caroline has far too many awards and accolades for us to name here, so I'll just highlight a few notable ones. She's membership in the National Academy of Sciences as well as the American Academy of Arts and Sciences and HHMI. She's received a number of awards, including the Lemelson MIT Award for Innovators, the MacArthur Genius Grant, and the Arthur Cope Award, which is presented by the American Chemical Society. It's the highest honor in organic chemistry. And in addition to these scientific achievements, Professor Britosi has mentored a number of PhD students and postdocs who have gone on to be very successful in their own research groups. And I've had the opportunity to meet a number of Britosi alumni now at conferences and meetings. And they'll just have such great things to say about Caroline and their faces kind of light up when they talk about their time in the Britosi group. And so I think it seems especially appropriate for a student-invited speaker to have such a great reputation among her own students as an advisor and mentor, in addition to scientific accomplishments. And we look forward to learning about science in the Britosi lab today in the area of glyco-calix engineering. Thank you. It's always fun to come to Wisconsin, even more fun when the students are hosting you, with all due respect to the faculty. And I've really had a wonderful day and had a chance to meet some of the students in postdocs and even a chance to meet undergraduates. I'm trying to convince to apply to our graduate program. So that was fun. And I thought what I would do is talk about a project area in the lab that it started about, I mean, in earnest, maybe about six years ago, and has kind of progressed through some stages of basic science questions to the point where we have some ideas for therapeutic interventions that map into the general space of cancer immune therapy. And so am I on? Can you hear me? OK.  I realized that when this picture went up, everyone all of a sudden got quiet. And I was like, I think you thought I was telling you to be quiet. But I wasn't. This is just an image. It's Halloween month and so on. And what I'm going to talk about is the fact that we've known for some time.  And it hasn't been clear until more recently why that is and what that means and what we could potentially do about it. And so that's what this is. This is sort of like the bad guy is cloaked in sialic acid. You're going to remember that. But then the real title of this talk is Targeting the Cancer Glycocalyx for Immune Therapy. And so I think the notion of harnessing the power of the immune system to fight cancer is one that has now become kind of a household concept. There's been a lot of excitement in the last two years because of some very high profile clinical successes with drugs that are able to do just that. And it's been hard to avoid reading about this in the news outlets because, first of all, the successes in cancer immune therapy have certainly made it to the covers of all the journals that the scientists will recognize. Even was awarded the Breakthrough of the Year by Science Magazine. This was now about two years ago. People are writing books about a potential cure for cancer as coming from this immune therapy area. If you're in line at the supermarket, you might notice that Newsweek is writing about curing cancer. And Time Magazine, true to form, has kind of turned immune therapy into like a Game of Thrones episode or something inside the brutally selective, hugely expensive, life-saving trials of immunotherapy. Who doesn't want to read about that? And then I think new scientists kind of got there first with this very bold and provocative statement that immune therapy may well be cancer's penicillin moment. And that's a very strong statement when you think about what that means. And so what you might ask has prompted people to make such bold and optimistic statements about what immune therapy might do in the war against cancer. And I think there were a couple of very famous people who were literally kind of pulled from the grave by immune therapies. And the one who's most recognizable here in our country is former president Jimmy Carter.  And before immune therapies were on the market, that was inevitably a death sentence. And his doctors gave him a few months to live. And this is a time when many people start saying they're goodbyes. But he had the fortune of, first of all, getting that diagnosis at a time when Merck had a recent approval for an immune therapy. And he was able to go on that drug. And then he had the second good fortune of being one of the roughly 20% of metastatic melanoma patients who actually respond to that drug. And he had what would be considered a durable response, which means that now, a few years later, he's essentially cancer-free. He's in remission and may even have been cured, which is quite a turnaround from the situation for people with that diagnosis just a few years ago. So that's what's got everybody really excited.  So it's quite stunning. So in case you're not familiar with the backstory on these immune therapies, I thought it would just take a few minutes to summarize what's been happening. And so far, most of the focus has been around activating an immune cell called a T cell, which is one of many different types of immune cells in the body. So T cells, like all immune cells, have the job of going around through your circulation and looking for signs of cells that have gone bad. And the way that they test whether a cell has gone bad is they form a synapse with that cell. So let's say here it is, and it's a tumor cell. And when cells have gone bad, there are usually indicators of that on cell surface molecules. So for example, a tumor cell might have a protein called an MHC molecule that recognizes and presents a peptide outside the cell. And that peptide might have mutations in it that reflect cancerous mutations. Or that peptide may be much more abundant than it would normally be on a healthy cell because it's a cancer cell. So those would be signatures that the cell had gone bad. And so the T cell has a receptor that can recognize that signal. And that's the T cell receptor. And when the T cell receptor is engaged at this synapse, and usually it's multiple copies of the T cell receptor, multiple ligands, that activates the T cell. And if it's a killer T cell, it'll kill that tumor target. Now, T cells also have receptors that they can bring to the synapse that would oppose the activating signal through the T cell receptor. And so the two that are now famous in the immune therapy world are proteins called PD1 and CTLA4. And these are proteins that can also engage ligands on target cells. And their corresponding ligands are called PDL1 and B7. And these two proteins are normally considered signatures of a healthy cell. So a healthy cell will have these kinds of proteins. And so when they engage these receptors, that delivers a negative signal to the T cell, which basically counteracts any activating signal through the T cell receptor. And that will inhibit the T cell. And that's important because we don't want T cells just killing good cells, only bad cells. So the T cell has this calculation at the synapse to determine whether the good is better than the bad, or the bad is better than the good. So now because of this system, it might not surprise you to learn that successful tumors that have been able to sustain themselves and grow and expand in your body have often gained the ability to express these inactivating ligands. Because that is a phenotype that would be selected for under the pressure of T cells to find bad cells and kill them. So many tumor cells, and particularly these melanomas, they're known often to be very high expressors of PDL1 or B7. And that's how they can basically turn off the T cell, avoid being killed, and continue to thrive. So when all of this immunology was worked out, people in the pharmaceutical industry started thinking about ways that they could intervene in this calculation to tip the scales more toward activation of the T cell. So there's been a lot of basic science focusing on this synapse, including a lot of work in understanding what is happening inside the T cell when these inhibitory and activating receptors are clustering together. And how does the calculation take place? And so here's a cartoon from a review article that I borrowed to illustrate this where now the tumor target cell is up top and the T cell is on the bottom. And so here's the PD1 receptor on the T cell. Here's the ligand on the tumor cell. And when PD1 is clustered at the synapse between these two cells, it is able to recruit in the cytosolic phase a family of phosphatases that are called SHP1, SHP2, and together they're the ship phosphatases. And they get recruited by virtue of a sequence of amino acids referred to as an item motif. And that's an acronym. And it stands for immunoreceptor tyrosine-based inhibitory motif. And the item motif and the binding of that motif to these phosphatases, that's what allows PD1 to turn off activation of the T cell. Because the activating signals coming from the T cell receptor are often mediated through kinases that are phosphorylating things in a signaling pathway. And these phosphatases undo that. They take off the phosphates that the kinases put on. So it's kind of like a battle cytosolically between the phosphatases and the kinase. And then the winner of that battle governs the response of the T cell. All right. So what the pharmaceutical industry has been doing is figuring out how to block interactions between PD1, PDL1, or CTLA4, and B7. And in the case of PD1, where there's this item domain, if you can prevent the recruitment of PD1 to the synapse, then you prevent recruitment of the phosphatases. So that's basically the biochemistry. And that has now been done in a variety of ways, reflecting a collection of now clinically available and approved drugs. And it started with Bristol-Meyers-Squibb, development of a monoclonal antibody now called urevoi, which binds CTLA4 in a way that prevents its interaction with B7. And then just around the time that urevoi was approved through the pipeline came Merck's drug Ketruda. And Ketruda is the drug that Jimmy Carter was on. And that's a monoclonal antibody that blocks PD1 and prevents its interaction with PDL1. And then BMS also developed their own anti-PD1, which is now called OPDIVO, which is basically indistinguishable from Ketruda in its properties. And then just about two months ago, there was another approval, this time from Genentech. And they developed a monoclonal called tessentric, which binds PDL1 and blocks the interaction from the opposite face of the synapse. And now folks are looking at combinations of these things, like this antibody with this one, or this one with this one, and so on and so forth. So these are the drugs that are now considered to be the immune checkpoint inhibitors. And this is what everybody's been talking about in the news outlet. But this is far from the only important synapse in the immunology of tumors. T cells are just one of many different kinds of immune cells that can all contribute to recognition of cells gone bad and to elimination of those cells. And so now the industry is kind of reaching out into these other immune synapses, looking for other targets. And that's a very hot area of research, both in academic labs as well as in companies. So against this backdrop, we found it interesting that there was this extensive body of literature correlating changes in self-surface glycosylation with cancer. And the literature in this area can be traced all the way back to the 1960s, as far as what I've been able to find. And these are papers that were published even before I was born, long before I was born. Not long enough. And so over the years, there's this general observation that if you inventory the collection of glycans that are on cell surface glycoproteins and glycolipids from healthy cells and compare that pattern to what you find on cancerous cells derived from that same tissue, there are some striking differences and often very stereotypical tissue-specific differences. And it's an extensive body of literature in which these differences have been noted. But myself, I think of it as also a rather frustrating body of literature because it's almost entirely correlative without a whole lot of mechanistic insight into why these changes have occurred and what that might mean for the biology of cancer. So we know, for example, that many different tumor types from different tissues of origin often arrive at glycophenotypes of these varieties. Hypercyalylation is the one that caught our attention first and foremost. So many tumors have been characterized as having kind of higher density of glycan structures terminating in this blue sugar sialic acid. And there are different structures on different tumors and sometimes combinations of structures on individual tumors. But from a distance taken collectively, there is this phenotype which recurs across really the world of oncology. And then there's another phenotype which is very common on solid tumors. And that is the overexpression of glycoproteins called musins. And the definition of a musin is a glycoprotein that has a long stretch of amino acid residues with lots of serine and threonines that are glycosylated in dense clusters. So they're very highly glycosylated proteins. And the density of those sugars forces the polypeptide backbone to extend and rigidify, which is why I draw the cartoon like a big hairbrush. And these molecules really do project off the surface of cells like they tower hundreds of nanometers above the cell surface, much taller than the garden variety proteins in the rest of their environment. And sometimes these two phenotypes go together because if these glycans on the musin are sialylated glycans, well, that just contributes to their overpopulation on the surface of these tumors. And again, the literature commenting on this is more than half a century old. So now, in the modern era, having an understanding of the role of the immune system in keeping tumors at bay and also the role of immunosuppression in allowing tumors to thrive, there is another lens by which one can now understand these glycol phenotypes. And the connection came together after the Human Genome Sequencing Project revealed that us humans have a large family of sialic acid binding receptors on our immune cells. So this family is known as the siglex, and that's an acronym that stands for sialic acid binding immunoglobulin superfamily lectin-like receptors. They all have a related domain architecture where there's a sialic acid binding module. It's called a viset domain, and it's the little crescent moon shape here. And then they have a number of Ig domain repeats, a single span transmembrane domain, and then of the 14 siglex in human, nine of them in the cytosol have that famous item motif. In other words, cytosolically, many of the siglex look very much like PD1, that T cell immunosuppressive receptor. And in fact, we know at least for some of the siglex that have been directly characterized that they also play a role in down-modulating the activity of immune cells. The best studied of these, by far, is siglex 2, which is also called CD22. And we know from the work, founding work, really, of Jim Paulson, that when CD22 is engaged at the immune synapse between B cells and their targets, it down-modulates reactivity because it opposes signaling through the B cell receptor. And many of you know here at University of Wisconsin that in Laura Kiesling's lab, work has shown that you can harness CD22 as a mediator of immune modulation using synthetic polymers that can bind and cluster that receptor. Well, CD22, cytosolically, is almost indistinguishable from many other members of this family, including siglex that are on immune cells that are known to be important in protection against cancer. And that includes CD, we'll call it siglex 5, on dendritic cells, siglex 7 on NK cells, siglex 8 on eosinophils and mast cells, and siglex 9 on macrophages and also on neutrophils. So virtually every immune cell has a receptor that functions analogously to PD1. But on the outside, these receptors bind sialic acid. So now from that perspective, I think it makes perfect sense that successful tumors that have been able to avoid recognition by the immune system may be hyper-sialylated. That phenotype might allow them to recruit siglex to immune synapses and to basically hypnotize the immune cell and put it to sleep and avoid activation. And so this was the question that we sought out to address experimentally when we started working on this. And it's a question whose answer I think in nowadays is sort of hiding in plain sight. But at the time when we started this, it wasn't quite so clear. Do the siglex function as checkpoint receptors in the context of tumor immune evasion? And if they do, one might be able to target them with drugs just as Merck and BMS and Genentech have done for the T cell checkpoint receptors PD1 and CTLA-4. So we started with a focus on the NK cell. And that's because it is known in the literature both in humans and in mouse that NK cells play an important role in anti-tumor immunity. If you deplete NK cells from animals, tumors tend to grow more vigorously. And if NK cells are compromised in human, same thing. We're more prone to malignancies. And just like T cells, NK cells will form a synapse with tumor targets. And they have a collection of activating receptors and also inhibitory receptors that if they're engaged at the synapse, participate in this calculation. And just like the T cell, if they have more activation than inhibition, they get stimulated. And what they do is they degranulate, spit out these little vesicles that have membrane-poor forming proteins like perforin, reactive oxygen species, and lytic enzymes, and just annihilate the cell that they're touching. They're quite vicious, actually, if you see videos of this in action. And so the first question we asked was, if the tumor target is hypercyalylated, does that phenotype offer protection against the direct killing of that tumor by the NK cell? And so in cartoon form, the question was, if there are cyalylated glycans on that tumor target at sufficient density, can they recruit the NK cell siglec, which is siglec 7, to that synapse, bringing along its ITIM domain, and then would this constellation lead to inhibition of the NK cell and protection of the tumor? So to test this experimentally, we took advantage of some chemistry that we had developed for, quite honestly, other projects in the lab. And it was the use of synthetic glycopolymers that emulate cell surface musins. And we had developed a method to make these glycopolymers where we could functionalize the two ends independently and install a membrane anchoring group on one side, an optical probe on the other. And this anchoring group was just a phospholipid tail. And we found that if we just add solutions of these to cultured cells in the media, just through mass action, those lipids would insert into the plasma membrane. And we could decorate the cells with these glycopolymers at densities that we control simply by the dose and that we can quantitate by just taking advantage of the optical probe. And so the chemistry here basically allowed us to make molecules that are every bit as long as natural cell surface musins, but with a structural modification that made them infinitely more accessible, synthetically. So I'm showing now the actual chemical structure that you would see if you zeroed in on the backbone of one of these musins, where there are serine and threonine residues glycosylated on their oxygens with a sugar and acetyl galactosamine, which then can be elaborated in a variety of ways. And we know from some NMR structural work and some synthetic model work from earlier decades that having these things in proximity with this kind of spatial arrangement is what basically forces the backbone into this extended conformation. So to emulate that with molecules that were more accessible synthetically, we designed what we call glycodomane memetics that rather than the polypeptide, they have a polyalkane backbone. And rather than these glycosidic linkages to amino acid side chains, we attached sugars to those backbones simply through oxime forming reactions, which are simple, operationally simple, and chemistries you can do in water on just free sugars that you've made in the lab. So this simplifies the synthesis to just making a polymer based on methylvinyl ketone and then separately building glycans that have amino oxy groups at the reducing end and then just mixing these together. So in the forward sense, we used a polymerization method called raft, which is a radical living polymerization method with very good control over polymer length. Or in other words, we can make these with very low poly dispersity indices. And we build the phospholipid tail directly into the initiator. So that's the canonical thiocarbonate raft reagent. And we build the poly-MVK directly off of this initiator at lengths that we select based on the ratio of the monomer in the initiator. And then after building the polymer, we simply combine these with the amino oxy sugar, which forms oxime linkages. And at the same time, nucleophilically cleaves this thiocarbonate to liberate the free self-hydro group. And that, of course, can be conjugated with your probe of interest through malamide chemistry to make the molecules that we use. And we characterize these using the usual tools, but it's fun to kind of show this TEM image because you can see these individual polymer molecules really do look like rods. They're quite rigidified because of the spacing of those sugars. So through that method, we put together a panel of glycopolomers in which the glycan structures reflected various different sialylated glycans that had been associated with cancers. Simple things like a monosaccharide of sialic acid, disaccharides like the prostate-associated antigen sialyl-TN, more complicated structures like this GD3 structure, which has been found in abundance on renal cell carcinomas and certain breast cancers, sialylated Lewis antigens, and then a couple of control structures that had no sialic acid. And with these glycopolomers, we did some in vitro cell culture assays to see to what extent NK cells could kill tumor cells that had been decorated with various densities of these molecules. So we took the target cells, incubated them with the glycopolomers to decorate the surface, washed them off, get rid of all the unbound polymers, and then add a suspension of NK cells from freshly drawn blood. And then you kind of rock these cells together for a few hours, and they form synapses, and then things happen. And either they kill the cells or they don't. You can quantitate this. And I borrowed this from Google Images because it's a reminder that this is not what the synapse actually looks like.  This is the NK cell, and it's almost like reaching out with a tongue and tasting the cell to determine what to do next. I like to think of it that way. OK. So here was the outcome of those cell killing experiments. And what's plotted here is the percent inhibition of killing achieved by these various decorated glycopolomers, starting with the situation in which the tumor targets had no polymer. So that's kind of our baseline. And the targets for this experiment were the T-cell acute lymphoblastic leukemia cell line called the jercat cell. And so this is sort of where we start. But if those jercat cells were coated with a glycopolomer just with the monosaccharide cialic acid, there was substantial protection from killing. And that was also true for any glycopolomer, essentially, that had a terminal cialic acid group. And there were some subtle differences in the protection of different structures. But for the most part, all of them were protective. And by contrast, glycopolomers with unsyallylated sugars had no significant protection. So that was interesting to see. But does this have anything to do with engagement of siglex 7 on the N-K cell? And to address that, we did experiments with commercial antibodies, their mouse monoclonals, that bind siglex and block their carbohydrate binding. So these are function-blocking anti-siglex antibodies. And that's what these data are. So now we're plotting the percent cytotoxicity. So it's kind of the inverse of the top. So the jercat cells, when they're not coated with a cialylated polymer, there's a certain amount of killing. But when they are coated with that cialylated polymer, they're protected. But now if we add an antibody against siglex 7, the protection over here is kind of reversed. So now they're susceptible, again, to killing when siglex 7 is inactivated. By contrast, an antibody to the related siglex 9, which is not found on most N-K cells, but is prominent on macrophages, there was no effect. And likewise, an isotype control antibody had no effect. So together, we can conclude from these data that the cialicide polymers protect the jercat cells from N-K cell killing. And they do that in a manner that depends on siglex 7. Now our model for this is that the siglex 7 signaling would be, of course, occurring at the synapse between the two cells. So we wanted to test whether siglex 7 was actually being recruited. And we did this using immunofluorescence microscopy. So this is an actual synapse formed in cell culture between the jercat cell and that freshly isolated N-K cell. And this is the circumstance where the jercat cell is coated with a cialylated glycopolymer. So it's protected. And you'll note, when we stain that same doublet with an antibody against siglex 7, you can see that siglex 7 is concentrated. There's more intensity right at the synapse between the two cells. And this is just a false color overlay showing siglex 7 staining in red. And the green is just our glycopolymer. But by contrast, when the jercat cells were not coated with a glycopolymer, so this is the circumstance where they will get killed, those synapses form. But siglex 7 is uniformly distributed. It's not recruited specifically to the synapse. And here's the false color overlay. So again, this is consistent with the idea that the hyper-cylylated state allows recruitment of a siglex that then inhibits N-K cell activation. So this gave us confidence to kind of keep going and to think about how one might take advantage of this biology from the standpoint of therapy. And from that vantage point, it was interesting to us that N-K cells have a different mechanism for killing tumor cells that relies on antibodies. So in this way, N-K cells are often thought of as the bridge between innate immunity and adaptive immunity. So they can recognize cells gone bad just all by themselves. But if those cells are coated with an antibody, they really get excited. And that's because N-K cells have a very strongly activating receptor, which is called FC gamma R3. And it's an FC receptor that recognizes a portion of the conserved part of antibodies that's actually kind of up here near the hinge region. So the cartoon is not that accurate. That binding site is actually up here. But when FC gamma R3 is clustered at an immune synapse, N-K cells, they really fire off.  And that's not only thought to be important for our natural ability to prevent cancer from growing, but it's also an important mechanism of action for some very recognizable monoclonal antibody cancer drugs. So you might have heard of molecules like Rituxin or Rituximab and Erbitux and Herceptin. These are antibodies that bind targets that are known to be overexpressed on many cancers. And Herceptin is kind of the most famous. This is Genentech's big blockbuster cancer drug that recognizes a protein called Her2. And Her2 is a growth factor receptor that's overexpressed on a lot of breast cancers and also gastric cancers. And Herceptin will bind to that target, recruit N-K cells, and activate them to kill the Her2 positive target by virtue of FC gamma R3 signaling. So that's how these drugs work. Now Herceptin and the rest, they're famous because people think of them as landmarks of personalized medicine. So in the clinic, in practice, the way these drugs are prescribed is based on the outcome of a biopsy analysis. So some tissue is removed. It's analyzed for Her2 expression. And if it's Her2 positive, you get the drug. So the patients are selected based on a molecular signature of the tumor. But it's actually not that simple. So if you kind of look through the clinical literature on Herceptin, this is actually what the numbers look like. So 74% of breast cancer patient biopsies show Her2 positivity. So that sounds like a huge patient population. But the truth is, we know from the clinical trials and evaluation of Herceptin that only the patients with the highest levels of Her2, which is about the 20% of those patients, actually respond at a reasonable frequency. And so there are the patients that are scored as Her2 3 plus, whereas a patient that gets a Her2 2 plus or 1 plus score is generally not eligible for Herceptin because they have a very low likelihood of responding to Herceptin. So they don't even get the drug. But even the ones that do get the drug, not all of them respond. And it turns out only about 18% of them respond to Herceptin as a single agent. So when you add all these numbers together, the truth is that the vast majority of Her2 positive breast cancer patients are either unresponsive to or ineligible for Herceptin treatment, which actually is kind of the same numbers with the checkpoint inhibitors. So the PD1 antibody, same thing. About 20% of eligible patients respond. And the other 80% don't. And nobody knows why. And it's the same with Herceptin. 80% don't respond. We don't really know why. And there's been a lot of work trying to figure out why, as you could imagine. But throughout that vast body of literature, nowhere can you find anybody actually considering a role for the glycol calyx. So we thought this would be interesting to model experimentally as well. Or in other words, if you have a cancer cell that's Her2 positive able to bind Herceptin and to recruit N-case cells through FC gamma R3, would hypercyylylation and recruitment of siglex 7 undermine that activation pathway and actually afford resistance to Herceptin? Could hypercyylylation actually be a drug resistance mechanism? So we modeled this in virtually the same way as the previous experiments, this time using a Her2 positive gastric cancer cell line called NCIN87. And so if you combine these Her2 positive cells with N-case cells and Herceptin, you see a very potent killing response as a function of the N-case cell to target ratio. So Herceptin is very effective against these cells in vitro. But if first you coat the NCIN87 cells with a sialylated polymer, all of a sudden now they're not so susceptible to killing via Herceptin and the N-case cells. They're protected from that, whereas control polymers that don't bind siglex offer no such protection. So at least in this cell culture model, it is possible for sialylation and siglex 7 engagement to override the activation signal through FC gamma R3. So now, of course, there are some implications of this from the clinical standpoint. If this is actually happening in a clinical context, it's quite obvious how you might intervene. And you would do that just the same way that we are now intervening in the engagement of PD1 with PDL1, same exact problem. You could imagine blocking the siglec with a siglec blocking antibody quite analogous to ketruda or optivo, those two drugs. And from a therapeutic standpoint, you would want this to be a human antibody or a humanized antibody. And so that's a concept that is under way, and we're going to test that. But somewhat more interesting from my standpoint, for reasons I won't elaborate on now, I could talk about it later, it seemed to me that a more potent intervention would be to target the ligands for siglec 7. And it's a little less clear how to do that analogously to blocking PDL1 because the ligands for siglec 7 have actually not been characterized in molecular detail, at least in the in vivo context. But we do know that they are sialylated glycans. And maybe they're sialylated glycans of lots of different structures. Maybe they're sialylated glycans on one glycoprotein. Maybe they're on lots of different glycoproteins. We don't know. But they absolutely depend on sialic acid. And so we thought maybe we could intervene by targeting enzymes to the surface of the cancer cells that are able to cut those sialic acids off locally. And those enzymes are called sialidases. And sialidases are actually found in many different organisms, including humans. Lots of microbes make them too. And so that became a more recent direction of the project was can we make chimeric molecules that have antibody tumor targeting capacity, like Herceptin, able to activate FC gamma R3, but also adorned with a sialidase. They can strip the sialicides from the synapse. OK. So here are some examples of sialidases that we've been working with. And some of these are actually commercially available. Others you still have to make yourself. But for example, here's one that's off the shelf from Vibrio cholera. And it's really a gorgeous molecule, a rather large molecule. It's got a catalytic domain in the core. And then it's got these two ancillary domains that are thought to serve kind of a lectin-like function. And it's a very efficient enzyme for stripping sialicides off of cells, because it can bind cell surface sialicides, actually, through these lectin domains while it chops off sialic acids with its catalytic domain. And then another bacterium, Salmonella, has a sialidase, which is kind of like the catalytic core missing these two other domains. So it's a much smaller protein that simply has that sialic acid cleavage function. And then we humans have four putative sialidases, the best characterized being a protein nu2, which is quite related structurally to the Salmonella enzyme. And then Clostridia has one, which has one small ancillary domain. And we, for various reasons, took a look at all of these. And where we started was with the Vibrio sialidase simply because that was the first one for which we had a very productive expression system up and running. But as you'll see later, it's probably not the best one. But it is where we started. So we set out to make a chimeric molecule, let's call it Herceptin sialidase version 1.0, which was a gigantic beast of a molecule, 313 kilodaltons, where we situated two sialidase units right near the C terminus of the heavy chain of the monoclonal antibody. And we chose this very end of the heavy chain because, as I mentioned earlier, our ambition was that this molecule would also be able to engage FC gamma R3 at the synapse and initiate the activating signal. And that epitope has been mapped to a region that's up here near what's called CH1. That's the number one conserved region of the heavy chain, as well as a kind of part of the hinge region. So this was about as far away as we could conceive of positioning this kind of mutation compared to where the biology would happen. Now to make these fusions, we took advantage of some chemistry that we had developed in the context of making antibody drug conjugates, which are chemical fusions between an antibody and a small molecule. And now our hope was to use the same approach to make chemical fusions between the antibody and the enzyme. So the key technology is what we refer to as the aldehyde tag method for site-specific protein modification. And there's a whole story here as well that I won't tell. But in a nutshell, if you clone this short consensus motif into a protein of interest, it can be recognized by an enzyme called FGE, which stands for Formyl Glycine Generating Enzyme. And that enzyme will oxidize the cysteine side chain, convert that thiol to an aldehyde. And all of this can happen inside the cell that is expressing the monoclonal antibody, like the cho cell. So we are able to isolate proteins that have aldehydes at a site encoded by this motif. And then we do chemistry on those aldehydes. And it can be really straight up old school bioconjugation chemistry, like condensing aldehydes with amino oxy groups to make oxymes. And so we just adapted that process to the synthesis of these conjugates. And I have a shameless plug here because I'm in Wisconsin. And there's a company out here now that has commercialized this. They call it the smart tag technology. And Catalan has a big site just outside of Madison. And they're hiring, by the way, if you're looking for jobs. And one of you works there already. I think someone from Ron Raines' group has a job there now. OK. All right, so we clone that aldehyde tag near the C-terminus of Herceptin's heavy chain. And then we condensed that aldehyde tagged protein with a linker through the oxyme chemistry. And that allowed us to kind of translate the aldehyde into an azide. And then in parallel, we took that vibrio cholera sialidase and through nonspecific lysine modification chemistry, so kind of heterogeneous modification, we introduced a complementary group, a short linker with a cycle octine. And azides and cycle octines will react selectively with each other. And that we call copper-free click chemistry to make this conjugated product where, because of the symmetry, there are now two sialidases, one on each heavy chain through that chemical linker. OK, so we made that. And so the first question we asked was, will this conjugate take the sialic acids off of her two cells selectively, her two positive cells? So to judge that selectivity, we did a cell culture experiment combining two different cell types, one her two negative and the other her two positive, mixed together. And then we treated them as a cult culture to determine whether we could take the sialic acids off selectively from the her two positive cells and to identify a therapeutic window or a dose that would allow that to happen. So this just kind of sets the stage. Here's a field of cells. And you can't tell which is which just by looking at the DAPI staining in the phase image. But when you stain them with her two antibody, you can see that these two are her two positive, which is these two. This is the same field. And SNA is a lectin that binds sialic acid. So you can see all of them are sialylated. But only these two are her two positive. And here's the merge. And we can analyze a whole population of these cells by flow cytometry. So this is the her two axis. And this is the sialic acid axis. And you can see these are her two negative, her two positive. They both have roughly the same sialic acid density. So now, what happens when you treat that co-culture with, let's call it, a low dose of her septin sialidase conjugate? Here's a field of cells. We don't know which is which. But you can see that these are the her two positives. That's these two. And now, look at the sialic acid channel. They've been stripped of their sialicides, whereas the her two negatives are still sialylated. And here's an overlay. And here's the flow data. So again, this was the her two positive cell population. Their sialylation level dropped. But the her two negatives are largely the same. So we conclude that that is a dose, six nanomolar, where we can selectively desialylate the her two positives in the presence of the her two negatives. But as you might expect, when you crank up the dose 10 fold, you reach a point where there's off-target desialylation. And remember, this vibrio-color sialidase has those lectin domains, so it has another way to bind to the cell surface, independent of her two. And that's playing out here. So at this dose, we can just go right to the flow data. You can see that the her two positives, which started here, have dropped their sialic acids. But now the her two negatives are starting to drop down as well. So we consider this to be a dose where we can achieve selectivity, but this is the limit where there's off-target. So knowing that, this allowed us to kind of pick our dosing range around which to test the efficacy of these antibodies in mediating NK cell killing of the her two positive cells. So what we're doing now is basically comparing the cytotoxicity as a function of dose for naked herceptin and herceptin sialidase. And this is a cell line, ZR751, which would be considered low her two. These are her two one plus. Same with BT20. They're very similar. They have roughly the same levels of her two. They're breast cancer cell lines that are her two one plus. And in this circumstance, you can see quite clearly that while at high doses, herceptin can basically deliver some killing by the NK cell, but it's significantly potentiated when the herceptin is dragging a sialidase. You get a big increase in cytotoxicity, which is exactly what we were hoping to achieve. Interestingly, and also somewhat predictably, when you do the same experiment with high her two expressors, like the SKBR3 breast cancer cell line, which is her two three plus, now there really is no difference in the killing activity of herceptin alone or with the sialidase. They're equal potent and both quite potent. And that makes sense when you think about what's happening at the synapse. Because cells that are high in her two can bind a lot of herceptin, cluster a lot of FC gamma R3, and deliver a very strong activating signal. And whether or not Siglex 7 is engaged, it might not matter, because the activation is so strong. Who cares if you eliminate the Siglex from the synapse? And this is another control, her two negatives, where there's no toxicity, just to show that it is a her two dependent phenomenon. So these data are consistent with a model that you can kind of think of as this seesaw or a balance. So the conditions where her two is high, those are conditions where there'll be a very strong activating signal through the FC receptor. And there might be an inhibitory signal through the Siglex, but it's not overpowering this activating signal. So the seesaw tilts towards an activated, angry NK cell that will kill. And you can bring a sialidase to the synapse and eliminate signaling through the Siglex, but who cares? Because you're already leaning towards activation. It doesn't matter. It's in that situation where her two is low, that you could have a huge effect. Because when her two is low, and there's a weak activating signal, an inhibitory signal through Siglex 7 could dominate the synapse, and the NK cells don't kill. And if you take that away, now the seesaw tilts the other way, and you can get the NK cell to react. So we are most excited about the capability of this as a potential intervention for her two low patients, the kind that don't respond to her septin. And that's why they don't even get the drug. But maybe they would respond if you could strip off the sialic acids or block the Siglex. So that's kind of where we're going with this. But there's a lot of room for improvements. And the two main liabilities of that version 1.0 were, first of all, the massive size of this protein, which is 84 kilodaltons, put two of them on 150 kilodalton monoclonal, and you're above 300 KD. That's gigantic. Very difficult to think of manufacturing that thing. Also, these lectin domains are surely contributing to the off-target reactivity of this enzyme on sial-related cells. So I like to think of it as kind of like having a Mr. Pac-Man. Don't you see that? Look at that. It's like two hands in the mouth, right in the middle. So that's not good. But like I said, this is just one of many sialidases you could choose from. And once those biological data came through the pike, we were ever more incentivized to get a good expression system for this little one here, the salmonella enzyme. So that was the next thing that we cracked. We figured out how to make bucket loads of that protein. So now we basically went through a very similar process to generate what we call the Herceptin sialidase 2.0, which it's still pretty big, but at least it lost about 100 kilodaltons of weight. So that, I think, is going to be quite helpful. The other thing we did differently in this version 2.0 is we cleaned up the chemistry on the sialidase so that it is no longer kind of random modification of lysines, but now a site-specific modification of an engineered cysteine. So but otherwise, the chemistry was quite the same. We took our Herceptin, conjugated it to the linker with the azide. We put in a cysteine. We did some oleamide chemistry to introduce a cycle octine, clicked these two together, and made version 2.0. And last night, I got these data, so I didn't have time to make a pretty animated slide out of it. It's really beautiful. So these are all flow data, obviously. And here's 1.0. Here's 2.0. And same experiment by flow. So these are Her2 positive, Her2 negative. This is at the start before any treatment with anything. And now what you're looking at is different doses of the conjugate of 1.0, different doses of the conjugate of 2.0. And you can just jump to the highest dose here, because that's what matters. So version 1.0, a lot of off-target reactivity. The Her2 negatives are dropping. But version 2.0, even at 120 nanomolar, is essentially untouched. So I think we got rid of a lot of this off-target behavior, which is much better. And so 2.0 is now the rendition that is going into some animal models to see if we can't get more clinically relevant data sets. OK. Anyways, none of which relieves us of the burden of making probably the most important type of molecule, which is the 3.0. And that would be a genetic fusion between antibody and ideally a human cyanolidase. That's the kind of molecule where now you can talk about progressing this as a preclinical candidate. A human cyanolidase is less likely to be immunogenic than a human versus these bacterial cyanolidases. And a genetic fusion, of course, is a much more manufacturable molecule, because you can make it in one fermentation rather than making things and trying to chemically click them together. So that is also kind of on the docket for future work. And that's the story. And there are many people to thank. All of this started, I mean, really, you could kind of date it back to David Rabuka, who was instrumental in this aldehyde tag technology as a student. And now he works for Catalan, although Catalan biologics west out in the Bay Area, although he's here in Madison quite often. Camille Godula developed that raft polymerization method for making those glycopolymers. Jason Hudak and Steve Canem did all of that early proof of concept cell culture killing assay stuff with NK cells and Ciglex. And then Elliot Woods and Han Shao have generated these antibody cyanolidase conjugates and did all of this preliminary biological work. Han is looking for faculty jobs. And I think he submitted his application to Wisconsin here. So take a look. It's in the pile or in the ether or wherever they are right now. But he's absolutely fantastic. And there aren't that many postdocs where you can say, hey, why don't we make a 313 kilodalton protein through chemical conjugation? He's like, yeah, whatever. And he's passing that torch to new student, Melissa Gray. And she made this version 2.0. So she's got a really exciting road ahead with the animal work. And these are the people that funded the work. And thank you very much for the invitation. For a few questions before we move out to the atrium for our reception. And I'll let you moderate. Any takers? Yeah. Can Ciglex, the titan, and the devil in the details? What's the devil in the details? Yeah, so let's start with talking about the implications of all of those Ciglex, OK? There's a lot of them. And so in this regard, it's quite a bit more complicated than the PD1, PDL1 binary relationship, right? So yeah, there's nine of the 14 human Ciglex have the ITIM domain and could potentially be involved in immune suppression, although not all of them have been characterized specifically that way. But we've looked at a variety of different immune cells to figure out who's expressed where. And what I'm showing here is a gross oversimplification. So for example, NK cells, they all have Ciglex 7. But some of them have Ciglex 9. And a lot of them have Ciglex 3. We've looked at neutrophils, macrophages, eosinophils. And all of them have at least two, sometimes three, Ciglex. Even T cells, which nobody finds Ciglex on T cells when they're quiescent, but when they're activated and exhausted, the Ciglex 8 comes up. So the problem is, how many Ciglex do you need to block in order to see an effect? And it might be more than one. And that makes the development, the therapeutic process, much more difficult.  That's kind of why we decided to go this route, rather than just plugging in antibodies to Ciglex. And the sialidases we're using are very broad spectrum. So they are able to strip pretty much any type of sialic acid, irrespective of the details of the linkage and what's underneath it. That could be good or bad. The potential bad consequence would be autoimmune side effects. It's a very obnoxious thing to do to a cell to strip off its sialic acids. Not only does it open it up to these immune pathways without Ciglex engagement, but complement is inhibited by sialicides. So that's how our blood cells protect themselves from complement-mediated lysis.  Well, that's not good, unless it's in lymphoma. And then it's great. So I think it is a complicated axis of immune modulation to be tinkering with. But we're an academic lab, so why not? Sam, yeah, towards the end there. This plateau? Yeah, that's a good question. This is kind of always what you see. And it's the same with the checkpoint inhibitors. They reach a point where you just can't get beyond a certain level. It might be because this is going on for, depending on the exact experiment, but in these experiments, this is like a four-hour killing study. And there's turnover during that time. So it's not like you're not really at equilibrium. And HER2 is an internalizing antibody. So you're actually consuming the HER2. And presumably, you're consuming this as well. So probably the concentrations are not static. And it's a pretty high density of cells that we use to get good error bars on these. So it might relate to that. But that's a hand-waving explanation. I don't really know. Yeah, so we're trying to stay within a dose range where we're not going to get too much off-target with this thing. But yeah, you can get more killing with higher doses of either end. You can have different NK cells to target ratios. And you can boost the killing with more NK cells. You can boost killing with higher doses of antibody. But you do saturate after a while. And you can then have more NK cells and alleviate the saturation. That's possible. I mean, this is a clonal cell line. But having said that, there is heterogeneity in the HER2. We can see that in the histogram and the flocetometer. And the NK cells, they're not like clonal. These are isolated from blood. So that's a heterogeneous population as well. And some of them might be much more active than others. And when the active ones exhaust themselves, you might have NK cells that are just not doing anything in there. It's just a good question. There's a lot of variables that would hesitate to speculate. Are there glycoforms of HER2 that can form a resistance mechanism to her septum? Anything goes. And that's certainly possible. It's precedent, it's certainly, like you said, in more highly mutagenic organisms, like viruses. I can't think that anyone has even looked. But I know that there is some thought about the checkpoint inhibitors potentially being sensitive to glycoforms. I know BMS at least has at least articulated that in seminars that they've given. So yeah, I mean, it's entirely possible. And once again, when I think of the literature on HER2 resistance, it's absolutely hyper-focused on cytosolic biochemistry. Everyone's looking at, oh, is it loss of PTAN? Is there some signaling defect in the EGFR kinase? What's all downstream of EGF signaling? Is there now HER1? Has HER1 come up? It's all really focused obsessively, disproportionately focused on cytosolic signaling pathways. That it's an extracellular drug. You see what you're looking for, right? If people shine a spotlight over there, that's what they're looking for. And then the answer's over there, and no one even looks. That's biology. It's so big. It's just so big. And people don't know where to look.


We are ready for our next talk, which is about a very interesting project called Go-Bot, which combines Go with the world of IoT. I've already seen on the internet, I haven't tried it myself, some very interesting projects like a Go-Powered Barbecue, and it's such a project, you can all probably imagine something that you can do with this. Ron Evans, the floor is yours. Thank you. So whenever I go home and see my family, my question that always comes up at these important meals is, are the robots going to take our jobs? And so I try to explain to them the real state of robotics. This is a video from last year's DARPA challenge. And try to explain to them that general purpose robotics has a long way to go, and they specialize things, may be able to do very specific purpose applications, but just in general, there's nothing to be afraid of. And this is all they hear the whole time I'm talking. That's all they hear. So Roy Amara, the former head of the Institute for the Future at Stanford University, said that we have the tendency to overestimate the effect of a technology in the short term and underestimate the effect over the long term. Good morning. Buenos dias, buen dia, guten tag, bonjour. So I'm Ron Evans, known as Dead Program on the Internets, all the important places, GitHub, Twitter, et cetera. I'm the ringleader of the hybrid group. We're a software consultancy based in Los Angeles and in Spain. Some of our clients include Intel. Thank you very much for sponsoring my trip, by the way. Sphere, we did a lot of work on this little robot with two letters and a number used in this movie about wars and the stars. That's all I'm allowed to say. And we've done a lot of open source projects, including this little project called GoBot. So why and you should use Golang for programming hardware? Well, there's three main reasons. There's lots more, but rule of threes. So the first one is concurrency. It's really, really easy to write concurrent code in Golang. And when you're dealing with different hardware devices that can do whatever they're going to do whenever they end up doing it, concurrency is really, really important. Another is portability. When you're trying to develop software that needs to be deployed to different kinds of devices, maybe entirely different platforms, different flavors of operating system. The cross compilation and the static linking of Go is really the best thing out there. And then performance. So Go is well known for being extremely performance. The new Go 1.8, which is just about to come out in about two weeks. They re, as, who here actually uses Go? Sweet. The rest of you just, you should be doing it right now.  The slowest possible stop the world garbage collection is 100 microseconds, not milliseconds, microseconds. So why do you program in C++ to do real time applications anymore? Well, the answer is you shouldn't. So we've all heard about the C10K, having concurrent 10,000 connections. Well, we're moving towards what I like to call 10M IoT, which is 10 million IoT devices simultaneously pumping data. These are not like over the world. This is the ones that are reporting to your company that you have to monitor. So, Go Bot is a framework.  We are a framework. I know some people think frameworks are bad and some people think bad frameworks are bad and good ones are good. So, we like to think of it as a software factory for doing hardware-oriented development, or full-stack robotics. But that's kind of long, if you want to talk about that more later. So, we have three ways that you can use Go Bot now.  Here's just a quick little diagram. The main concept is the robot. Robots have both adapters and drivers. Adapters actually talk to the hardware and then the adapters provide the interfaces that drivers can then talk to. So, adapters let you talk to things like Arduino's, Beaglebone Black's, Intel Edison's.  This way, you can have the same LED that knows how to blink regardless of what kind of hardware it's connected to. The last thing that's important is we have events. We have an event channel that is created for each one of the drivers and then the robot can subscribe to those events, and that way, we can get all of Go's wonderful concurrency. You can also use Master Go Bot. Master Go Bot adds, if you want to control multiple robots at the same time, you have the master, or we sometimes call it the MCP. If you're a Tron fan, you thought that was funny. That's how we expose Go Bot's own API. It's external-facing API. So, it consumes APIs and then it produces them, and we have one that's already built in for a REST API.  You can do that now, starting with Go Bot 1.0. So, if you really want to go hardcore metal, we got you. All right, so let's get right to the demos because time is short. So, the hello world of things is a blinking LED. So, I'm going to start with an Arduino 101, which is your basic Arduino. Who here actually has an Arduino? Yeah, exactly.  All right, so we're just going to do a very simple little blink. So, here's the code. So, we have our package main. We import the Go Bot packages, Go Bot itself, the GPIO drivers, which is how we control LEDs and buttons and things, and then the Formata platform, which is how we're going to communicate with the microcontroller. The microcontroller is not running Go.  But, we can run a program on there called Formata, which allows us to use microcontrollers as peripherals that can then communicate with different low-level hardware devices. I mean, who says that the brain and the body have to be in the same chassis? That's a human problem, right? All right, so our main function, we have our adapter. So, we call the Formata package NewAdapter and we pass in the port, which is how we're going to communicate with it. Our LED with our new LED driver on pin 13 to use that adapter and then the work that we're going to do. The work is every one second, LED.toggle. So, it's off, turn it on, if it's on, turn it off. Then, we construct our robot. We say our new robot named BlinkBot and it has one connection, which is the adapter, one driver, which is the LED, and then the work that we're going to have it do and then start it off. We do this so that we can make sure, by the time your work gets started, that all of your connections have already connected and all of your devices have already started. That way, when your work that you're supposed to be performing, because, again, we're trying to take the patterns that you're going to need consistently when developing physical applications and then utilize them easily. All right, so let's see if the demo gods favor me today. Let's see, am I in the right directory? Oh, demo, that's right. That's how you know it's real. So, we're running the code and our blinking LED. Thank you, good night, no. All right, so now let's get into some basic IO. We said hello world, but we need kind of a ping of things. We need to know that both in output and output are working. So, we're going to use that same device, but we're going to plug a few things onto it here. So, I'm going to take this and I'm going to connect to it a Grove shield, which lets me plug things in without actually worrying about where everything's set in the breadboard, because who has time for that when you're giving a talk. So then, let's look at the program that we're going to run here. So, it's almost, it's very, very similar. Okay, we're still using the GPIO package, still using the Firmata package. We still initialize the Firmata adapter, the talk to the Arduino, but now we have two devices. We have the LED, this time in pin digital two, and we have a button, which is in pin digital three. And the work that we're going to do is we're going to say button.on, GPIO.buttonpush, and then we have a function, a go function. So, when that gets called go led.toggle. So, what this is actually doing is a really, really major improvement to go about 1.0. This is actually creating an event channel, subscribing to it off of the button, making sure that the events come through are selected only for the button push, and then calls your Lambo with the data that's been passed into it, only when it's appropriate. And then it takes that go routine and puts it to sleep. So, basically, you get all of this concurrency that you're going to need, because this pattern you're going to use over and over and over again, every single type of hardware device you want to connect to. And then, same initialization of the robot, the only difference is now we have two devices, the LED and the button. And then, so let's plug in, let's see, it was the LED and two, and then the button in three, as I recall. All right. So, let's see, what did I call it, button? Hopefully, yes. So, if we go here, when we push the button, the LED lights up. And when we push it again, it turns off, because remember, we use toggle. Toggle, toggle. Yes, input and output. All right, what time does this end? 11, 10? I just want to see if I have time for the, beautiful. All right, so let's show a complete app. So, we actually do this for a living. We're really, really lucky human beings that we write software for hardware companies for a living. And so, but we often can't talk about it, and I can't talk about it today. However, I have, through the miracles of modern open source technology, simulated the key features of an application that we've been working on for an energy company.  And it's a solar power monitoring system. So, it has sensor stations, it has a base station, and it has a repair system for when the solar production energy systems are not working as expected. So, here's a little diagram. So, for the solar monitoring, we're going to use an Intel Edison. For the base station, we're going to use Arduino 101, and then for the repair system, oh, we're going to fly a repair drone from Parrot. All right. And then, we're going to use MQTT, which is a machine-to-machine messaging protocol standard originally created by IBM, but currently maintained by the Eclipse Foundation. And so, we're going to be using MQTT to handle all of the machine-to-machine communication taking place between these three different running programs. All right, sensor station. So, we got the Intel Edison, the sensors, and MQTT. All right. So, let's see here. Make sure I'm not running this. Good. All right. So, let's unplug this. So, here's my Intel Edison. Actually, this is the Edison here.  This is an Arduino-compatible breakout board. And this is the battery because I'm running this off the battery. Right now, it is connected to my gateway. I have here an Intel Nook, which is a little network utility computer. It's running a Wind River Linux, which is a carrier-grade Linux.  So, this is running the MQTT server as well. I'm sorry, what was my closing ending time? 11-10? Yes. Okay, beautiful. All right. So, let's plug in... Well, let's see. What are we showing first? Oh, we're going right into it. All right. So, I'm going to take my shield from before, and I'm gonna plug it in here. Wait, if I plug it in the right way. There we go. The other left. That looks good. And so, what we need here is we need our sensor, which is a... Well, let's look at the code real quick here. So, we're gonna go over this kind of fast.  Go by it again. This time, we're using the AIO drivers, which is for analog input and output. We're using the I2C or I square C is the serious gray beards call it. Gray hairs, beards and hairs. So, I square C is a communication protocol used for inter-chip communication right on the board itself. So, then we have the Intel Edison platform. That's how we're gonna provide the interface to the low level IO. And then the MQTT platform. So, all of these things together. So, let's look at the code. We initialize our Edison adapter. We turn on our light sensor and our screen. Then we have our second adapter, which is the server, which is communicating with our MQTT server. And then the work that we're gonna do. So, the first thing is when our light sensor has data, we're gonna set our variable equal to that data. That way, most of the time, sensors provide data a lot faster and physical things can respond. Cervals can't move as quickly as you can read data. So, we wanna separate those things. Another area where it goes concurrency is quite helpful. So, then every 500 milliseconds, we're going to send the data for that, the current light meeting, reading to our MQTT server. We're gonna server.publish to this topic.  And then we're gonna send the data. And then every 250 milliseconds, we're going to clear the screen, write the data onto the screen, and then based on that data, change the color of the backlit LCD. And then the work that we're gonna do is simply, or sorry, the robot itself is simply add the two connections, add the device and start. All right. So, let's see if I have a connection to my Edison. Yes. And let's plug in our sensors. So, let's see. The light sensor was in zero, as I recall. And the display is an I square C peripheral. So, we plug it in here. All right. So far, so good. All right. So, here we have our light sensor. And then when I cover it over, you see, oh, sorry. Here I have my light sensor. And when I cover it over, you can see the screen is changing. All right. So, this is wireless. It's not super well connected. So, but I'm gonna pass it around so you guys can check it out. And please don't drop it. We need this for the rest of the demo too. If you wanna see it work, just cover over the photo transistor, photo resistor, excuse me. All right. So, while you pass that around, pass it quick. Pass it, man. All right, the base station. All right, for the base station, we're gonna use an Arduino 101. We're gonna use LEDs. And we're gonna use the MQTT server. All right. So, it's the second part of our little system. So, I'm gonna use my Arduino 101 again. And this time, I'm gonna plug it into the gateway because it's gonna be easier for me with all of these cables to do that. Supposedly, easier. And so, I'm gonna use a different shield. This is a shield that I made. It's in order to control the RGB LEDs of this strip. It's a 12-volt device. And since microcontrollers are usually five or 3.3 volts, we need some way to control it. So, I built this little board that's got three TP120s. You shouldn't use these, by the way, according to the internets. Yes, anyway, as I was saying, so let's plug this in. All right, so far so good. And then, I'm going to plug in two more things. The first one is I'm gonna plug in the actual strip, hopefully, if I don't bend a pin. All right, so far so good. And then, the power. We need power. All right, since we need power to control the LEDs. All right, so we'll, and so, here's the code for the base station. So, we're using the Formata platform again. We're using GPIO again, and we're using MQTT again. This time, we're actually declaring our board and our different adapters and devices separately as pointers because we're gonna write some functions later that they're gonna use those. That way, we don't have to put everything into this giant work routine. We can have some better encapsulation, proper architecture of modern software. Yes. So, our main function here, we're gonna use the GoBot API just to see it. We're gonna literally look at it for one second. The board is connected as it was before. We have the RGB LED driver for this strip. We have our base station, which is gonna get data from the light and from the drone. Oh, whoops, that's the third part. And then, the work that we're gonna do, when we get light data, we're going to translate that light data. And then, based on it, we're gonna display the light level. This is an information radiator. You ever built a Travis build modifier that shows a red light? If you haven't, you should. You put it up in the office, giant red light. Works great. So, when the drone data is sent, depending on the flight status, if it's flying or not, if it's flying, we're gonna blink the LEDs. Otherwise, we're gonna stop. And then, we have a couple of those functions. When we display the light level, we look at the light level, and depending on how bright it is, we either display green, the system is working correctly, blue, not so good or red. Kind of the same color you see on the system, which might make it back to the back by the end of the talk. You can't blame them. It's really fun. All right. So, let's go and run the code, hopefully, on the gateway. I don't see any light. Why no light? There we go. Helps to plug things in. All right. So, we're actually seeing the colors, only the person who's playing where they can see, but you've got the people next to them. So, if you cover over the little photo resistor. Ooh. No hands. All right. We haven't even gotten to the good part. All right. So, we're gonna just kind of keep that running. All right. Robo. So, we actually have this API built in. I don't have time to show you everything about it, but it's built in React, and you can actually, through the magic of binary compilation, you can actually create all of your static assets and package them all up right into your Go application so that you have a single file that you deploy to production. Did you get that? Oh, man. So, let's take a look at it. So, this is Robo, and it's running on the gateway, and it shows we have a single device running, or robot, which is our base station, and we see that we have Formata and the two MPTT connections for our virtual devices. Literally, that's all I have time to show you, but it's in there, so you can check it out. Robo.io. So, now how do I get rid of this? Oh, wrong one. Oh, wait, no right one. Oh, phew. All right, so we saw all that. Cool. All right, the repair system. How we doing? Oh, plenty of time. The repair system uses our parent mini drone, DS3 controller. I'm kind of an Xbox gamer, but I like PlayStation controllers for flight. It's weird. And then MQTT, which is gonna coordinate this all. So, I'm gonna run this program. So, remember, right now we have two programs running. One on the Edison, one on the Gateway, and now I'm gonna run the third one on my computer because I don't have time to set up any more gear. All right, and so this is the final phase of the mini illuminado system. It's the repair system. So, when things go wrong out in the field, well, naturally this is the modern era you said to repair drone with the replacement part. Of course. So, to fill in for a more serious drone, since I know some people are kind of scared of drones because there's very bad drones. So, I'm gonna use this parent mini drone, which is a toy drone. I've got my little worker here on the front. That's Kelsey Hightower. He's helped us make GoFly more than once. All right, so this is actually a complete Linux machine. Believe it or not, it's got an ARM processor and it's running a busy box distro and we're gonna call, it's got a Bluetooth low energy wireless interface and that's how we're gonna control it. We're not running Go on it yet. Give me a few more weeks. All right, so let's turn it on. Put it here in the headquarters. Well, let's see my cables. Hopefully this will all work. This is my, I don't even use a name brand. That's what open source brings us to. If Intel only made controllers. All right, and then let's take a look at the code real fast. So we're using the GoBot BLE adapter, Bluetooth low energy adapter, which is still in a relatively new state. The joystick platform, MQTT, and then the mini drone itself. So we've got take off and landing commands. So the main work we're gonna do here is we're going to, first we're gonna load up the joystick. Whoops, it's well past it. We're gonna load the joystick configuration. That way we know which kind. We support PlayStation three, four, and Xbox 360. Your pull request awaits the next one. That's just what I have. So then we initialize our drone based on the BLE adapter, okay, which we're passing in the name of the device. And our MQTT server. So we actually have three different simultaneous types of platforms we're communicating with in one program. So then the work we're gonna do, let's see, the important parts. When I press triangle, we're gonna take off and then we're gonna send a message that says we're taking off, okay, so far so good. And then when I press X, we're land, so let's see. Triangle take off X, land. That's all that matters. Then I got a bunch of commands to handle the joysticks. And then if you recall, physical things can't respond as quickly. You can move the joystick a lot faster than your drone can respond, which will mean it will crash. So we have this go routine, which every 10 milliseconds is going to send commands to the drone. That way we don't, or I don't accidentally crash it into one of you fine people. And then same thing that we see before. We initialize our robot. This time we have three connections. We have two devices and let's make it work. Hopefully. Somewhere in here I have the, wait, yeah, that looks like it. All right, let's make sure my drone is still on. Yeah, it's still on. Button is pushed. I have to run this under sudo because be able to communicate with the BLE interface requires being in user space, or in a kernel space. That's what I was mentioning with the, oh, okay, good. All right, so now if all goes well, do you notice how it's not flashing? Because remember we sent a message that when it's in flight. So I'm gonna prove that that works by coming for a landing. All right, so now we go off and, so where is the station that's bad? We need a little more altitude to get all the way back there, huh? So we go over to where the problem is and then we simulate the repair by doing a flip. And then we got way too close.  You got ripped off because you didn't even get to see the cool parts. Whoa, lower, lower, lower. All right, that's enough of this. Back to headquarters for a beer. So we've come back to headquarters. We've been drinking at lunch. Voila! All right, so, was that fun? It's also a really exciting era. We invite you to join the robot evolution just because revolutions have really bad downsides, but evolution is constant. This is all free open source Apache 2.0 so you can use it to build your little empire or big empire or just do fun stuff on your own. You know, we're not prejudiced, we're not gonna judge you from the size of your project. GoBot.io is where we have all of our source available. We have a really good documentation site, all of the platforms and stuff and packages that you've seen. Some of these are part of an upcoming GoBot 1.2 release which is going to be out in two weeks concurrent with the release of GoLine 1.8. You can follow us on Twitter at gobot.io and I thank you. Questions, anybody who still has time for some questions? What we have time for questions as long as I kind of ignore you while I move everything out of the way for the next speaker. We have 10 minutes before I'm officially supposed to stop and then five minutes before they're supposed to start. So anyway, yes please. Yes. How many actuators and sensors do you actually support? Like a lot or do you need to make them custom? The question was how many different kinds of sensors do you support? And then the second half was and can you make custom sensor implementations? So the first one is right now I think we have about, we have 25 platforms. I think we have 20 or so different GPIO devices and I think 14 or 15 I square C devices. We've had a lot of contributions lately from people who are working on drones and other devices. I could tell because they have accelerometers and barometers. Barometers are used for altitude calculations usually when flying unless you're really close to the ground. It's very easy to add new ones which is why we've been getting all of these. So your pull request would be greatly appreciated. More? Oh wait, important thing I almost forgot.  The important parts. So feel free to mob the stage. It makes me feel nice. But otherwise I'll be around. I'm not going anywhere fast. Any other questions? No? Thank you very much. Thanks. Does it work? Okay, please be seated. Our next talk is about GoGit which is a Git implementation made in Go by Santiago.


Appalachian Wireless and Samsung proudly introduce Black November all month long. Get the Samsung Galaxy S9 for just a penny. The Galaxy S9 Plus just $99.99 and the Note 9 just $249.99. Black Friday all month long at Appalachian Wireless. To your agreement required, see store for details. Good evening everyone and welcome to EKB Local News Now for Friday, November 2nd. I'm Jill Praley-Dawson. Shannon is off tonight. We are coming to you with heavy hearts this evening as we mourn the loss of East Kentucky Broadcasting's President and CEO Walter E. May. He died last night at his home in Pikeville. Tonight we look back at a life well lived and at a man who helped transform the landscape of not only Pikeville, but our entire region. Walter May began his broadcast career in the early 1950s when he was hired at the age of 16 as the first rock and roll disc jockey of WPKE. A few years later, May bought a third of the company and became the general manager of East Kentucky Broadcasting. In 1966, EKB added another station, WPKE FM, which later became WDHR. May's vision of providing local news, information, sports and entertainment to the region was achieved with the nine radio stations of East Kentucky Broadcasting and most recently EKB-TV to broaden the scope of that vision. May served as president of the Kentucky Broadcasters Association in 1971 and chairman of the National Association of Broadcasters in 1975. He was the recipient of many awards and honors including the Golden Mike Award. May served as anchor for the live broadcast coverage of the Apollo 11 moon mission, anchor coverage of all major floods in eastern Kentucky since 1957 and also anchored coverage of the Floyd County school bus disaster in 1957. He interviewed four presidents, Harry Truman, Jimmy Carter, Lyndon Johnson and Ronald Reagan. May also served as chairman of the Board of Trustees at Pikeville College. From 1990 to 1993, May served as mayor of the city of Pikeville and was CEO of Pikeville Medical Center guiding the growth of PMC from a local hospital to a leading trauma center in the region. If I were to say, you have all these accomplishments, all these accolades from the time that you were a little boy through your work history, through your work at the radio stations, through the TV station now and at the hospital, what do you want people to remember about you? That was one of the nation's first rock PJs. As a man, what is the one thing in your life that you're most proud of? That would be my children. It has to be. Probably one of my biggest regrets because I probably haven't told them that much as to how proud I am and how I feel about them personally. Just curious, if I were to pick Walter May's brain apart, what philosophies would I pull out? I think I'd go back to Doc Maddie and say what you mean to me and what you say. I think the biggest problems in this world are people that are looking for complex answers to simple problems. I think the only limitations we have are those we place on ourselves. May is survived by his children, Cindy May Johnson, Melody May Papool, Kristie May Atkins and Walt May II, along with his grandchildren, great-grandchildren and a host of loving family and friends. Visitation for Walter May will be Saturday from 4-8 at First Baptist Church of Pikeville with funeral services on Sunday at 2 o'clock at the church. Walter May was 81.


Hi everyone, Joe for JaspeysCaseBreaks.com. Happy Thursday.  Happy day to you. We're going to do a box of Chrome Platinum Anniversary Baseball, a random team break. It's going to be our last filler to unlock that tier one doublehead or random team break coming up in the next video. There's the box on the top camera. I should probably turn on this camera. So that's the box we're going to do. There's an autograph in there, so that should be pretty nice big thanks everybody here for making this happen. Appreciate it. There are the teams right here. Let's roll it and randomize it. One and a three, four times. We'll do the break first, different dice roll for the giveaway part. One, two, three, and once more, fourth and final time. After four times we got Nestor down to Michael. Alright Brian, well a long time collector coming back, you already lost. How do you mean? One and a three, four times. That's not the right attitude to have. Not around these parts. We try to keep as much of a positive attitude as possible. Padres down to Mariners. There we go. Alright, here's the first half of the list right here. And there's the second half of the list right there. And let's note trade windows in these little filler breaks here, but let's just print and rip. You know Chad, Chad Daw had a good question earlier today. Apparently the Mariners have gone. What was it again Chad? The Mariners have gone three games where the only runs scored were off of home runs. Here's the final printout right here. We'll re-randomize this list later. What's the longest streak? Runs only scored by home run. So has it already been three games plus today? Whatever inning they're in today? I wonder. I feel like that's an interesting trivia question. Okay, so it's been two full games and after today it could be three. What do you think the record is ladies and gentlemen? Sort of a weird trivia question, but I'm intrigued by it. How would we even go about looking that up? Do we have to call the people at baseballreference.com? You're like, hey have we got a thing for you to look up? I want to say either on baseball reference, I'm going to have to look this up. I actually have an account with baseball reference. There's like a small little monthly fee if you want to get like advanced stats and stuff like that. But I think there's a streak finder, but I want to say that's for individuals and not for teams. I'll have to look into that. Let's look into this. Let's see what we got here ladies and gentlemen. Bryce Harper who's working his way back. And there's Johan Oviedo, 11 out of 75. Speckle for the Cardinals, Andy Owens. And we've got Jim Cott, 45 out of 100. Hall of Famer, Jim Cott? Did he just recently get in? Yes, part of the Golden Days Era committee voted him in 75%. He's in the baseball Hall of Fame. 2022 is here. Obviously, these are all facsimile autographs. There is one auto in a box here though. Here's Mike Restremsky in that wave pattern. Keston here has been swinging the bat well lately. And there's the auto. It's a rookie auto. It's Lewin Diaz for the Marlins. Jimmy with the fish. The Dodgers are hosting or going to Miami? It's 007 out of 199. All right, somewhere Jim Cott knows we offended that you didn't visit his bus at the baseball. I did, actually. I think there were all those guys are located in the same spot. I was mainly looking at David Ortiz, but in a way I saw Jim Cott. All right, let's gather everybody's names here. So it's going to be the top eight. New dice roll, new list. So it'll be the top eight after six. One out of five, six times, good luck. One, two, three, four, five, and sixth and final time. After six, it's top eight. So from nine on down, sorry Mike, nine through 30 sad times for this group right here. But we'll get them next time. Happy times for the top eight. That's going to be Nestor is happy. So is Anthony, Michael, Barry, Andy, Kevin, Nestor and Nestor. Top eight. We'll see you in the next video for that break. Jaspy'scasebrakes.com. Bye-bye.