All right, and we are at pointer analysis. Any other questions before we start? You said not looking at the class? Nope, nothing? OK, good. OK, so really parts of semantics, right? It worked. Sorry. You guys can't see that. My spring home to presenter mode was amazing. This hasn't worked literally all semester. Nobody's touched anything. Awesome. All right. I can see what's happening in the future. It's like a super bubble. OK, so we talked about assignment semantics, right? And we went through very, very specifically what assignment semantics mean. When we see x equals y, we now know very precisely how to say what happens, right? When we see x equals y, we want to copy the value associated with y to the value associated with the location. The value of the location associated with y to the location associated with x. Cool. So we saw this. We saw what's there between l value and r value. Also, do you have a right value? Or do you have a right value? Or do you have a right value? Yes, so l value has a location associated with it, right? It is a place that you can put. In our circle box diagrams, it's going to be a box. L values have a box associated with it. r values do not. r values are just value, right? Like 5, or 5 plus 10, right? The result of 5 plus 10. Cool. All right, now we get to pointers. Everybody's favorite. How many of you are using pointers in project 3? Yeah, how many of you feel like you know what pointers you're doing in project 3? That's 80, 70%, 50%, cool. OK, so now I want to learn what the semantics of the pointer operations actually are, right? And first, before we do that, I kind of have to go back and maybe change our box circle diagram here. So we're going to have a box for x circle with some kind of value in it. What's missing from here? The value of x inside the circle. But here in this example, we've never given x a value, right? So we don't know what to add. It could be anything. Let's say it's a question mark. The what? The location. What about the location? I got the box. The box is the location. Yeah, but the box doesn't mean anything. The address. The box means whatever we mean. Say it again. Which piece of silicone, which respective material is living on? So how do you refer to this box? Well, normally, right here, we can talk about x, right? So but we do know that this box is not just some abstract thing. It actually lives somewhere. So this box itself has a name, or we can think of an address. What's that? x refers to the box. We refer to the box as x with the variable, but the box itself physically lives in memory and has some address. It's going to be 0, 2, 2 to the 32, 32-bit system, or 2 to the 64 and 64-bit system, right? But we can think about it abstractly. So we can think about it. We can say that the memory address is just alpha. And so what we'll do is we will, in the future, we're going to put the address of all the boxer diagrams here on the right. So usually, we'll just use alpha or beta, right? Because we don't actually care what the system gives that memory address, right? It could be 10, it could be 20, it could be 100. It doesn't really matter to us, right? OK, why is this important? Well, for pointer operations. So what does the address of operator do, in terms of address of what? Can you only apply the variables? Objects, structs, what's the difference? Where's the address of an L value? It returns the address of an L value. Yeah, so an expression, right? It could be anything. So what it takes in, it's, unary operator takes in one parameter and returns one thing. And think about input types, right? It's really just a function. You can think of it as a function. It takes in L values and it returns an R value, which is the address of that box. That's all it does. The result is an R value, and we even know the type of that result, right? The type of that result is T star, where T is the type of the operating, right? So if you have an integer x and we do the address of an x, what's the return type of that? It said what? Int star, and it's also an R value. So can it be on the left-hand side of something, right? That's pretty much the same thing. Like it essentially returns 5 or 10 or whatever that memory address is. So it doesn't make sense to talk about the address of x is equal to 10, right? Assign the address of x to be 10, because specifically it's an R value. OK, and this is what we already said. So this value is the address of the location. So every location has an address associated with it, and this address of operator is going to return it. Cool. It's pretty easy. So what's the opposite of the address of operator? The dereference operator? Why is it the opposite? It's the same thing. It's a circular definition. Why does it do the opposite thing? What does it do that makes it the opposite? It goes from that L value to this value. Yeah, it goes from R value to address, right? So it's input type is either an L value or an R value, just like the right-hand side of an operator can have that. But it returns an L value. And what specific L value does it return? OK, yes. So for types, it gets rid of the star operator. So when we use dereference on an integer pointer, the return type is an integer. But what is it actually returning? And it stores the right-hand side of the R value. Not the R value, the L value. It returns the where can you use a pointer, a dereference operator, sorry. Right-hand side. Can you use it on the right-hand side? Can you use it on the left-hand side? Yeah. Yes. Yeah, so that means it must be an L value, right? We'll see exactly why. But well, why is because that's how it's defined. So it takes in one parameter. It can be applied to either an L value or an R value of some type T star. And it returns one kind of site. T, yeah, it's all pointers. Just get rid of these types, right? So the int star star means it's a pointer to a pointer to an int. If we dereference that, we would get an int star, a pointer to an int. Cool. So let's look at this. So let's say we have some int, some x, right? So our box circumsigrams are just going to look like this, box circle, right? Super easy. And let's say there's x, v inside there. We don't know what it is. We just created x, some kind of value inside x, right? So this is going to break everything. Can you all see this? People in the back? So I have int x and int y. I want to know what are these values? What is the box circumsigram for this look like? So I know when I see x, I have an x that's associated with, that is bound to some location that has some value. What's the address of x of this location that's associated with x? We don't know. Let's call it alpha. Doesn't matter. Somewhere, right? But we know it has a distinct location. We just don't know what that is. Then when we see this next line, int y, do we also know anything about the value inside x? Not yet. No, not yet. So now I'm going to do another box circle diagram of y. So y has a location associated with it. Does it matter when I draw this box circle diagram that y is an integer pointer? No, we don't care, right? It doesn't affect, that's just the type of whatever is inside y, right? That doesn't affect what? The fact that the compiler is going to allocate a location and bind it to the name y. What's its memory location? Beta. Oh, beta. Cool. Then I get to this line, x equals a 10, yeah. But does y have a degree associated with it when we declare it because we haven't allocated the memory to it? When we declare it here? Yeah, because we have the value of the value of it. Let's make it a little bit more explicit. So, is it in x, right? So the compiler creates a location for x automatically. We'll see exactly how this happened. This is happening on the stack for right now. But it's a local variable. It has to put x somewhere, right? So on this declaration, after this declaration, we can assume there exists an x. And it exists somewhere. We don't really care where, so we'll call it alpha. And we know that it doesn't have a default value. No, the C semantics does not say anything about that, right? There's random junk in there right now. Cool. So against the int star y, what's the difference between this and this? Does it, though? What is it underneath the hood? Yeah, it's just four byte integer, right? Just like an int is what? Four bytes, right? If you do, you can check this yourself. You can write a quick C program and print out. Use printf to print out what is the size of an int versus the size of an int pointer versus the size of an int star, star, star, star, star, star, star, I don't know what you want, right? So it takes up four bytes of space. So we actually do know, let's say, the size. We could know the size of this box, but for right now, we don't really care. But we know that when we see this, it's a local variable. So it has to allocate space for y, right? It has to be there. Otherwise it can't store these addresses anywhere. And so it's exactly the same as x. It's just a box, it's a location associated with y. Does it have a default value inside of it? No, no default value. And it just has some address, beta. That's it, that's all we know. We'll get into how malloc plays in later, but. Right now, y doesn't need to be malloc at all, right? Because y itself just exists, right? Y is a variable just like x. It needs to exist, it needs to have four bytes of storage allocated to it. Cool, then we get into x equals 10. So then what does this do for our semantics? Copy what? So put some value in an x. In x, right here? We gotta be really precise, what's the most, well, what's a very precise way to say this? Put the value of 10 into the address that x refers to. X, so close. So address is here, right? Yeah. Do we care that this is alpha versus beta, right? We only care about the address of x at this point, right? The compiler has bound x to some location, right? So it's in a location associated with the variable x, right? So we wanna copy the value 10 into the location associated with x. This is part two's one. Very similar, just slight. This is why it's definitely my favorite part because we have to be very precise when we talk about these semantics, right? Cool. Okay, now get to here. What's the first thing that happens? Yeah, the first thing that happens we have an expression on the right-hand side and we have, we have an L value and R value on the left. L value should never have an R value on the left. Tip one. Okay, so we have to, so then what, as an expression, what is the expression address of an x return? In general, what's it gonna return? An L value and R value? P star. An R value, and what is that R value specifically here? Alpha and alpha. Alpha, it's gonna return the address of the location associated with x, right? So it returns alpha, which is an R value, and then so then what happens with the assignment semantics? Copies of where? Copies of alpha to the base of y. Copy alpha into location associated with y. This is all pointers on it. So the only thing that's different than a pointer than a normal integer, right, is that a pointer stores an address and integers store integers. Addresses are integers, right? So now what happens if I do something like this? How do I do that? Let's do star y equals, wait, where, two. Star y equals 42. So what I have on the left-hand side here. I have dereference y, so that's an expression. What is the expression dereference y return? L value or R value? L value. L value, there is a location associated with that. And so the dereference operator, essentially what you can think that it does, it takes whatever, it takes in an R value, it takes in whatever, so in this case, we do take the value that's inside the location associated with y, which is alpha, look up and return a location that has that memory address. So star y is gonna return what location? The location with the memory address alpha and the name x, right? So on this diagram, we can say that this actually points, you could say here, right? I'm being super precise here, that it actually is pointing to the box itself and not the value inside the box, right? Because the dereference operator, so this we could label this as star y. So star y equals 42, so what does that mean? Into which, so copy 42 into which location? The location that's associated with x and also location associated with star y. Time and point are so easy, right? Maybe. I don't know if I did this. Is that valid? What's the type of y? Type y is in star and address of y, what's the type of that? Instar is the star as well. Instar, right? Oh, you're right, instar star, this is not working. I put the address up like a star and y. Well, here we go, silence your compiler for your students. We'll say we'll cast it. It's fine. Yeah, we'll do it, right? Cool. So the casting is really just for the type system, it doesn't have any impact on what's actually going on, right? It's the same thing that's going on. So I'm taking the address of y, what is that? And what am I doing with beta? I'm putting it inside which location? The location associated with y. So now does star y point here, right? Star y is an appointment here, that's normal. Okay, we kind of already saw this. This is how you can think of the dereference operator, right, is it points to whatever location has the address of the value inside. So this is why, on a similar note, if I did this, can I do this? Is this valid, syntax and semantics? Ignoring the type system? Don't know, still asleep. So what happens here? So what's the difference between these two lines? What's the semantic difference between these two lines? In the second one we are... So here it's a constant value of 10 and here it's using the address of operator. Then what's the difference between this line and this line besides that it's star? What happens here with our circle, box circle diagrams? So what's gonna happen here? So is there any difference as to what happens at this line versus this line? Other than type stuff, which I just got rid of by casting. I'm telling the compiler, trust me, I know what I'm doing. Right? So then what happens? 10 go inside where? So this says copy 10 into the location associated with Y. Did I bring any rules by doing this? Yeah, now the question is, well, it's not talking about that yet, but... So can you do this in your programs? Yes, you absolutely can do this in your programs. Right, it's just a pointer. A pointer, like we said, just has four bytes that means something when you use the dereference operator because you're trying to look up a location that has the memory address of that thing. But you can do this. You can copy in a pointer is no different, well, under the hood, no different than a regular integer. So I can do this. Then what happens if I try to do... What happens if I try to do Y star? Let's say X equals Y star. Nope, it'll just do this. It looks like I trust you that this 10 is actually some kind of end pointer. So I will copy that value 10 into Y. So what happens if I say X equals Y star Y? What's it gonna try to do? Yeah, it's gonna try to find some memory address that has a location 10 and it's gonna try to return this box. What happens if your program does not have memory address 10 allocated? Segmentation fault, yes. One of the most common cases of segmentation fault is when this has, except what is null, really? Zero. Null is literally just a macro for zero. And then, so when you try to dereference a pointer that has zero as its value, what does it try to do? It tries to look up an address zero and tries to return that box. And on, I believe, almost every system null is not mapped. So this will cause a segmentation fault. So this is why you get a segmentation fault when you try to dereference a null pointer. Now, this is a lot different than Java, right? Because Java tells you if you have a null pointer exception where a C is just like segmentation fault. It actually assumes you have all this background knowledge of pointers and memory addresses and memory mapping and segments and all that stuff. That's just the way it is. It's a fun example. Okay. Yes, so where do you saw L stars and X, star X, sorry, dereference X is an L value, right? So we saw that star X returns a box. I don't know why I have this arrow yet. Yeah, we saw that, blah, blah, blah. So we saw star X equals a hundred and looks up the box associated with star X. In this case, the box of location X, V and copies the value 100 into there. Really wanna believe. So now we start to get weird. So this is all you need. This is all you need. You've learned everything you need to know to master crazy complicated pointer operations. This is it, right? It's kind of, you know, I want you, I think you have to internalize this fact that under the hood, these things, pointers are no different than integers, right? Under the hood, they're just a place to store and address. That's it. And then when we dereference that, we're pointing to and then trying to access the location where that address that we have inside the value of Y which is kind of way more confusing than I think it is. That's not what I want you to do. Okay, cool. Let's go with this. We have int X, int Z. Let's say Z is equal to the address of X. Can we do this? Adress of X returns what type? What is the address of X return? Type. Type. What is T? Int, instars, right? The input type is an int. So the output type is an int star. So normally the compiler would yell at us but we're saying, no, no, don't worry. These four bytes that you thought were an int star are actually just an int. So is it gonna do this copy for us? Yeah, just like any other integer, just like X, Z equals 10, right? Oh, okay, that's what that came from. Thanks for peeking a little bit. Right? So here if we have, if Y is the address of X, right? All this line does is copy Y into the location associated with Z. Now we do things like star address of X equals to 10. What does that do? How do we de-pack this? Is it valid, first of all? I'm taking the address of X, and then we have to bring the value into the box. Talk to me about L values and R values. So is the assignment statement? So we have an assignment statement. What does that mean for the L values and R values? What do we have to have? We have to have what, where? Passing L value on the left side, right? We know that. Passing L value on the left side, what about the right side? It is an R value, right? And is that valid from our assignment semantics? We've seen that that's okay. Cool. So now our constraint is the left side better be in all L value. So we start where? The outside in or inside out? Inside out, just like the operations are gonna occur, right? So what's the first operation that's gonna occur? Address of X. Okay, can we take the address of X? Yes. Yes, what does it return? What L value or R value? What does it take in? What does it return? Takes in an L value and returns what? R value. An R value. And so the star of that takes in what? Value or L value and returns what? L value. L value. So at the end we get out an L value. So then what is this? So look at this at the box circle diagrams, right? Because we need to know what is this location on the left hand side? Where do we actually put 10, right? So we take the address of X, what's the address of X? And then we, but just Y, right? Y is a value, Y is not a variable at this point, right? Y is like our alphas, right? It's just the address of X. And then we say, so what does star Y do? Your reference is what? What does D reference mean? There's nothing in Y, Y is a value. It looks up the location. It says what location has the address of Y? Which location has the address of Y? The one also known as X, right? This top of the box. And then, so where are we putting 10? Into the location associated with X. So could we, another way to think of this, could we flip the star in the ampersand? Because an R value returns an R value. Because the ampersand returns an R value, and we can have an R value on the left hand side. Can we do X is equal to star address of X? So what do we have on the left hand side? An L value, what about on the right hand side? An L value, so same thing, right? What does address of X return? Y? And D reference with a value of Y looks up the location that has the address Y, which is right here. And so we copy 10 back into X. It's easy when you have fully understood exactly what these operations do, right? But even if it's not easy and you're not at that point, you can still just step through exactly what's happening at each thing and say, where are these values moving? Yeah. Is there any fundamental difference between that last line and just the statement X equals X? Nope. Well, more, was it something you said, two C to U cycles problem? More work, and more work for you in your brain. I wonder if there's some, you could do it, I think as much as you want. So the next thing would be parentheses and incrementing the right hand side of that, and where, which incrementation gets applied when? Yes, that would be something I would never ask you to do, because I think it's silly, because it's a bad practice anyways, using inline increment and prefix and post-fix incrementation. It's too hard to figure out what exactly you mean, so you're expressing yourself very poorly. To me, I always, if I use it, I put it on one line by itself, John. That's way easier to understand, but I really make me want to do something like that, but I won't. OK, let's look at the crazy code. Ah, here, we've reached a fun exercise. OK, so before we do this, I need bigger font sizes. Oh no.  I don't know why that button exists in this right now. Let's see, I want format font. Bigger, yes. Like how it doesn't tell you what size the font is. It's bigger now, cool. So we see a declaration. What does that mean we know in terms of box circle diagrams? We have a box for what? X, we have a box, and we know that there's a name bound to that location, X. What's the address of X? Do we know what's inside X? Nope. All right, so what is malloc? What does that mean? Do a new box. Yes, malloc is a box generator. What's the arguments to malloc? How many bytes do you want your box to be? How big of a box do you need? Why does it need to know that? Yeah, so should you ever have a case where I have a completely separate box, let's call it Y, that also has the address alpha? Would this be good for my programming language? No, I would never want two of my variables or what would be worse if this is four bytes and this is like alpha plus two. So they only share two bytes of overlap. That would cause an insane problem if you're never going to figure out it, right? And so malloc, make sure, and we're actually going to, I think we'll have time in this class to look at how exactly does malloc work and how does it actually do this and how does the heap work? But for now we can think of it as we tell it how many bytes and it returns as a box of that size. But what does it return? Does it return the box? That's the first one, right? The address of that box, yes. So it returns a box, it has some address that's called beta, right? What is the size of it? Now what is the size of it? What was it? It's a keyword. It's a keyword? That does work. Who determines the size of the status? Who determines that? Do you get to decide? Operating system, the hardware, what was that? The compiler, right? The compiler has to decide. It needs to know when it creates X, how many bytes do you actually want for X when it compiles this, right? It may, and so for an integer pointer, so an integer pointer needs to store what? Add addresses, right? How many addresses are there on a 32-bit system? Who do the 32, how many are 64? Who do the 64, can you just take a 64-bit application and run it on a 32-bit operating system? CPU? No, right? Because the compiler specifically generated code to take advantage of, specifically said, hey, I'm compiling this, and you can actually, with the dash M flag of Linux, you can specify which, if you want 32-bit or 64-bit. So you can tell it, and then based on that, now it knows, okay, this means an integer has four bytes, so then it knows that when you see size of int, it substitutes in four, so there's actually no function call here. So there's a function call, right? So we have an expression. So I have on the left-hand side an L value and R value. L value, it wasn't quite as unanimous as I looked for. And then on the right-hand side, what do I have? Which is what? An R value. So what does this do? So now, size of int, when I call it this first time, it returns beta. So now what happens? Still close. Copy the value beta in the location associated with X. Dresses are the things to refer to locations. So after that line executes, we'll have beta here. And now, when I see star X equals 100, what location does star X refer to? The location with address beta, does it have any other names? Well, star X, yeah, right? So I know star X is here. And so when I say star X equals 100, what am I doing? Yeah, so copy the value of 100, there's two ways to say it. Either the location associated with star X or the location with memory address beta. So this is all you do when you malloc. This is exactly what's happening. You malloc some structure and then you start messing with it and start saying things. Although what do you normally do? What do you use the star operator a lot? What do you use? The arrow. The arrow. So you use something like technically, I think it depends specifically on the compiler. I think you can do it, it's a warning. Because the, whoop, how does this happen twice? Yeah, it's a void star, but there's rules about like you can cast a void star to anything else and it's usually works fine. So it depends specifically. When you set up all warnings, yes, it would give you a warning.  So what does x, what does this syntax mean? So what does x arrow foo me? The exact same thing. So this is why if you're looking for segmentation faults or null pointer exceptions, which we found are the same thing, right? You need to check not only every instance of dereferencing a program, but also any arrows. Right, so here if x, if on this line x for some reason had the value zero or null, this is gonna throw a null pointer as segmentation fault. Let's go back to the scary one. All right, we have three variables. In x, which is an in pointer pointer, sorry, x, which is an in pointer pointer, y, which is an in pointer, z, which is an int. x, which is malloc, does the size of an in pointer and then cast an in star star, so it's done a little better, y is in star malloc. x is equal to address of y, y is equal to the address of z, y is equal to star x. So, what happens? So this is what you should be able to do, this is a self-check. You should be able to take this and do circle box diagrams at any point in this program's execution, so I could say something like, what's the box circle diagram here? All right, or what's the box circle diagram at the end of the program look like? I'll also usually give you certain things, so I'd say like, this has memory address alpha, this has memory address beta, this has memory address gamma, delta, whatever, so you have something to refer to. I think we're at the end, so. All right, when we come back, we're gonna come back here and go and read some cool examples.


of action. One that was dominated by this man, Isaiah Lee. Look at that, Yoshimi, and well, that was 1-0. And later, Ronald Paul, heavy challenge, Tyrese Bailey, and Referee Barkas gave a penalty, which Tyrone Charles did that to. And then more, look at that, the goal of the match, Tyrone Charles to Isaiah Lee. And that was 3-0 half time, cruise control. Second half though, Caledonia will back in it, Sean Bonval coming very, very close. So that was opposite. And then later, Bonval starting this. And Locke can only be had if you put just a ticket, getting the winning jackpot for Scott. Reflection of Daniel Cyrus, just deceiving price in goal. Did get some fortune. Had a chance after that, just moments later to make it two, didn't. And 3-0 good enough for Rangers in the end as they win this match by three goals to one. All. Big change from the first half in terms of shots, much closer margin. Five more shots in the second half of Caledonia, bringing them to a total of six shots in total. Not much more for Terminix Rangers. Falls, this match, 20 falls in total. That accumulated four yellow cards, shared evenly between the teams. Ten corners in the match, six of which were to Caledonia. But we all important number 3-1 Terminix Rangers over Caledonia EIE. Leo Chin has the fun job at the moment, and it's interviewing the man who scored perhaps the best two goals of the match, Aizaeli. Thank you, James. And yes, two first half goals for Aizaeli, win some today's man of the match. This is yours. Aizael, how pleased are you with your performance today? I'm very pleased with the performance. We start off the game with our intensity, and we played our team in the first half, but in the second half we kind of dropped the intensity a little bit, but we were thankful for the victory. And you have started off the season on fire. Three goals now in the first two games. What personal goals do you have for the season? Personal goals for the season is to score at least 20 goals. Yeah, that's about it. Yeah, all the best for the rest of the season. Brent is with the coaches. Coach, a disappointing result at the end of the day. A spirited second.


What might look like a step backwards is actually two giant steps forward on the future path of advanced aircraft engines. Since 1941, the Lewis Research Center has developed an international reputation for its research on jet propulsion systems. However, in 1977, the researchers at Lewis began to take a new look at the propeller. Their challenge was to combine the efficiency of the propeller with the power of the turbine engine. What has evolved is ATP, the Advanced Turboprop Project. Keith Severs, manager of the NASA Advanced Turboprop Project office at the Lewis Research Center. Back after World War II, jets were the coming thing. Propelers were very efficient in those days, but they couldn't go fast. They couldn't go to high altitudes. Quite frankly, they were not jazzy like jet engines, which gave way to turbofan engines and high bypass ratio engines. When fuel was cheap, people didn't worry much about it. Ten cents a gallon, as long as they get speed, high altitude capability, which the air transport system required. Propelers just kind of withered on the vine for 20 or 30 years. The Arab oil embargo of the early 70s not only hit American consumers at the corner gas station, but was also reflected at the airline ticket counter due to the soaring price of jet fuel. In 1973, the price of a gallon of jet fuel was 12 cents and represented one quarter of the direct operating cost of the jet. By 1979, the price had risen to 63 cents a gallon and represented half of the direct operating cost. In 1981, the cost of jet fuel was over a dollar eight cents a gallon. With the rising fuel prices, a fuel-efficient propeller engine again became the object of an aeronautical propulsion research effort. The researchers' objectives were to develop a power plant that would be fuel-efficient, do .8 Mach, cruise at 35,000 feet, operate at a reduced noise level. These propellers look a lot different. They're very highly swept. They're very thin compared to old propellers. And the thing that hits you first is there are eight to ten blades on these rather than three or four as you've been accustomed to in the past. And what the sweep does in the propeller in a thinness is to reduce the drag losses at the higher tip speeds and higher Mach numbers. It also helps to reduce the source noise of the propellers. We've got a higher blade count and we've loaded these blades up much higher than old propellers so that we can get a lot more power at a lot smaller diameter. And this saves weight on the propeller, saves weight on the engine, and it also packages better on the aircraft. Earlier turboprops were limited both in horsepower and in flight speed, mainly because of the compressibility effects that occur at the propeller tips. With the recent advances in computer design technology, we are now able to optimize the blade shape to minimize the compressibility effects occurring at the blade tips, allowing the planes to fly faster up to 600 miles an hour and at higher altitudes up to 35,000 feet. As you approach the speed of sound, you run into a problem where the apparent pressure that you're trying to push through suddenly takes a quantum leap. And because the blades are very large in diameter to 13 feet in diameter, the tip speed is upwards of 800 feet per second, which is just under Mach 1 or the speed of sound. As you try to push through that Mach 1 range, you run into this compressibility factor. It's almost like running into a brick wall with the blade. The blade construction is now a composite type arrangement where you have a metallic leading edge such as aluminum and a graphite epoxy-resigned internal construction that allows the blades to be very lightweight and because they're lighter weight, minimizes the centrifugal stresses that occur when the propeller system is rotated at 12,000 rpm. The ultimate goal is to save fuel, commercial aircraft and also military aircraft where it can be applied. And this fuel saving is very dramatic compared to the fuel burn that aircraft have today, such as a 727, 737, that type of aircraft. A prop-fan-driven airplane can do the same mission at like 40 to 50 percent of the fuel that they use today. If you look at just the US fleet existing today for medium to short range aircraft, and I'm talking 727s, 737s, DC-9s, MD-80s, those aircraft in a typical year burn about 5,000 gallons of fuel. If these aircraft were equipped with prop fans, they could do the same mission they're doing today and save two to two and a half billion gallons of fuel per year. Propeller-driven airplanes have traditionally been noisy. Advanced turboprop researchers are tackling the problem of trying to build a turboprop to rival the relative quiet and smoothness of the jet. Well, we've had to look at the entire aircraft as a system. We didn't look just at sticking a new widget called a prop fan on them. We had to look at what did it do to the rest of the aircraft. And particularly we're concerned about passenger comfort. It doesn't matter how much fuel we save. If the people don't like it or they're uncomfortable, sound, vibration, then they're not going to ride it, so it won't matter. So part of our project goal is to make sure that people have the same comfort that they're used to on today's wide-body aircraft. In addition, we're concerned about community noise. These things are allowed and we have to provide the technology so that they can live within the existing far-thirty-six and our stage-free regulations and the laws that we have to abide by around airports and communities. Most of the time, we really don't even know what's running inside the cockpit. It's that quiet. And we're only 15 feet away from it. After several years of wind tunnel and static engine testing, a full flight test of the advanced propeller system was held on May 19, 1987 at Lockheed, Georgia Company in Marietta, Georgia. So far, operation has been very good. Everything is about as predicted that the engineers had predicted from their initial assessment of the program. We haven't really had any big surprises, I should say. When you pull the prop fan in and add power to it, the pilot really knows it. But there again, this airplane wasn't really designed to fly with an engine out on the left wing. But again, what our engineers predicted is pretty much what's happening with the airplane. So I'd have to say, so far it looks good. So far it looks very good. If all goes to plan, prop fans will probably be fitted on short to medium-range aircraft. We hope to have, as part of the project goal, to have the technology in hand by the end of the 1980s that industry, the engine people, the aircraft people can make marketing decisions because it involves a lot of private capital that makes or breaks their company. So the way things are proceeding right now, it looks like Boeing and McDonnell Douglas are aiming for new aircraft engines with prop fans in, say, the 1991, 92, 93 timeframe.


Let's start by refreshing memories. In reminiscence of a time when we were striving to build computation devices from technical modules with defined functions to perform complex operations. In reminiscence of a time after that, when we were seeking to create self-replicating sustainable systems from biological bricks to understand life. In reminiscence of a time after that, when we were aiming at the optimization of our own life based on trillions of foreign cells, bacteria inside us, that time is now. And with this, a warm welcome to all of you. Thanks for coming. I'm really thrilled to be here. I'm excited to be here. It's my first congress. Unfortunately, I have been sick. I brought you some of the bacteria we're going to talk about. But now I'm here. I'm happy to be here. No, no, no. Hold your applause, please. We don't have time. As said, I'm Lawrence. I'm coming to you from the Mahon Weizmann in Rechovot in beautiful Israel. I'm happy to be here in this wonderful city, Leipzig. And I want to talk to you about hacking the human microbiome. And I want to do this by answering four very essential questions. The first is, of course, what is the human microbiome?  Then I want to answer the question whether there is a hype in public media about the human microbiome and whether this at all is justified. Lastly, I want to also look into this glass ball into the future and want to ask, okay, what's next? What's next in hacking the human microbiome? Again, very relevant to all of us. But let's go right into media's race and ask the question, okay, what is the human microbiome? And in order to answer the question, I want to start with some very straightforward maths. With a figure, a number that you probably all know, I guess you know, it's three billion, but what's three billion? Any guesses? Three billion. If you hear three billion, what comes to your mind? It's not your income, unfortunately. No, it's the size of the human genome. It's the length of the sequence of the genetic code of a human being.  But the question is, is that all? Given this sequence information, is this all that makes us human, or is there more to that? More than this sequence? Well, in fact, there is more, because we're not just human. We are also bacteria. Here's one bacterium, and also this bacterium contains genetic information. You see it looks a bit different, now it's green, not blue, apparently, and it's also less complex. So instead of three billion letters, it only contains around about five million. And now, you may say, okay, so these three billion letters that define us as human beings, it's just three billion letters for one single human being, right? But within us, there's not a single kind of bacterium. There's many, hundreds, some estimates even say thousands. So this complex letter assemble, we have to even multiply by hundreds or thousands to get the complexity of all bacteria that live inside us, that make us. Now you may say, okay, but we as human beings, we are also complex. You know, we are not just one human cell. We have lung cells, heart cells, some people even have brain cells. So if you sum them all up, we get a number of around 40 trillion, okay? We have 40 trillion cells. On the other hand, we have to admit that there's also not just a thousand different kinds of bacteria, but there are many in terms of numbers that even outnumber or at least level the numbers of human cells. So we also have 40 trillion bacteria inside us, which is all published and you can look up if you don't trust me. And if we want to play this numbers game here, we should be further more precise because from these 40 trillion human cells that we contain, 80% of them we should not consider because they don't contain any DNA anymore. They don't contain any of these genetic information because they are just red blood cells. They are just sacs of hemoglobin without any genetic information. Okay, so the human cells are much less complex in terms of genetic information. And maybe one last math trick here, to understand the complexity of these bacteria, we have to take the sum. We have to take all of them.  Now no matter how you do this number crunching, one thing is for sure. This is really complex and to understand it requires a lot of thinking. So putting all this math aside, again in a nutshell, the human microbiome is all bacteria that live inside us. Well, at least if we consider ourselves human beings. But even if you more think, you know, I'm more like a robot or something, bacteria also grow on very sterile surfaces, like metal surfaces of very sophisticated and supposed to be sterile engines. So even robots do have a microbiome. But let's stick to the human microbiome, okay? I'm saying the human microbiome are all bacteria that live inside us. And I stress the in, but that's actually not true because they are also living on us. If we look where we can find bacteria living together with human beings, making us human beings, we find them on the skin. We find them in our mouth, in the airwaves. We might even find them in our spinal cords. Can you imagine that bacteria in our nerves, maybe in our brain, dictating what we think, how we behave? Is that even possible? Well, I put a question mark there and we will come back to this later on. Most of the bacteria, as a matter of fact, do reside in our gastrointestinal tract. So in our stomach and in the intestine and the colon and so forth. And this is very fortunate because they are easily accessible. Usually we can access them in a very frequent manner. If we go to the toilet, we sort of flush most of them out. But no matter if you look in the toilet or on other sites, these bacteria that you find that compose the human microbiome, as a matter of fact, are a very complex community. They are very diverse and I don't know what you think. But for us as scientists, diversity is something very positive. It's very intriguing. It's very valuable because it's inspiring something new. We are not afraid of something new. We can learn something from something new. And we are open minded and looking for diversity. And that's what we can find in the human microbiome. And these bacteria are so diverse because they are highly adapted. So in evolution, they adapted to very specific niches and became very different from each other. And to depict this diversity of the human microbiome, I show here four examples of these bacteria. They are very different. For instance, you have a blue one, which has some flagella, some sort of tails that it can propel to swim. Then you have the purple one, which has like a spiral shape. You have an elliptic one, which is rather reddish. And you have an orange one that has like a spirit shape. So just in terms of their morphology, how they look from the outside, they seem to be very different. However, there's one characteristic that they all share. Remember, they are microbes. So what they share is their common size. In size, they're around about, I mean, in terms of orders of magnitude, they are one micrometer in length. One micrometer is one meter divided by one million. So they are very small. Of course, some are just like half a micrometer, some are more like five. But on that scale, they all operate, no matter how they look. That's why they are microbes, why they make up the microbiome. They are living biome, okay, and they are microbes, rather small. But despite this common size, as I said, the morphology is very different. And then we can just look at the morphology and try to form groups among these microbes, okay? And then we say, yeah, the red one and the orange one, they look rather similar. So they are more evolutionarily related. And then this group of bacteria is more related than to the spiral-shaped one. And only then they are related or ancestors, share common ancestors with the blue one. And all of them, of course, go back to one common origin, the common ancestor of all these bacteria. The bacterium that was there at first. And this origin, of course, is the source of this entire diversity that nowadays lives inside us. But here's the concept in biology that you need to know. Form follows function. So every structure that we find is intimately related to a function in biology. So the spiral-shaped bacterium has a spiral shape for a certain purpose, okay? And so does the rot-shaped blue bacterium has. It's shaped for a certain purpose. So how do they functionally differ these bacteria? And to understand that, now you already managed like one third of my talk, let's altogether just take a deep breath. Okay, there's even a phone buzzing. This is also a function that could discriminate, but in this case, the ability to breathe air, to live from air, differs between these bacteria, okay? So only two out of four can basically live with oxygen. How come? Well, some of these bacteria are somewhere hidden in our stomach, so they are never exposed to oxygen. They can live without it. For them, oxygen is even toxic. But some of them are exposed to oxygen, so they evolve towards using the oxygen for their metabolism and their life. What else do we have? How else are we, as humans, for instance, different from each other? Well, when it comes to nutrition, are there any vegans in the audience? Now you may argue that they are not yet an entire different species, but with eating habits comes a lot of differences. And also, there's people that like junk, and there is, no, well, never mind. So anyways, they have preferences in terms of dietary habits. So there is some bacteria that can process sugars where others cannot. And there is some bacteria that can process fatty acids, short-chain fatty acids, long-chain fatty acids, unsaturated fatty acids, and so forth, and some others cannot. And based on this, if we look at these properties, we could again assign some sort of similarity matrix and then say, okay, we have one group of bacteria and another group of bacteria, and they are all very different from each other. But with these differences also come interdependencies, potential modes of interactions, how these bacteria also depend on one another, right? They have to interact with each other. That's like a payoff of diversity as well. You have very different interaction partners that you can harness for your own benefits. So let's look at the interdependencies of these bacteria. If we have them here, we could, in general, hypothesize that they all interact. Now, in general, we have like a rough understanding how bacteria interact, but for every specific pair of bacteria, it's quite tricky. So there's many question marks, many open questions here. But again, in general, we can derive some overarching principles how these interactions and interdependencies work. For instance, there is one set of bacteria that can process the ice cream that we are eating, okay? On the other extreme, there's another subset of bacteria, again, living inside us, the human microbiome, that can process the sushi we are eating, whereas the others cannot. And while processing sushi now, the blue bacterium generates small molecules that the other bacteria need to fuel their engines or even to build up their engines. And these output molecules that it creates after processing sushi are depicted here as gears, okay? Because gears really fulfill this concept that they can fuel an engine itself or they can build up another machinery that can drive metabolic processes and make these bacteria alive inside us. And this sort of input-output relation, a bacterium that consumes sushi and produces a gear, can also on a conceptual level help us to better understand some phenomena we see in these bacteria now as very technical devices, right, as some sort of processing units. So if we have now one processing unit, one of these bacteria that processes one unit of sushi, it generates one unit of gear, okay? And now comes an amazing property. If we wait just a short while and expose this one unit of bacteria with another single unit of sushi, it produces two units of gear, okay? So these bacteria, just as this Congress has the ability of refreshing memories. It remembers, okay, I was exposed to one unit of sushi and it can add it to the one unit of sushi that's exposed right now and produce two as a sum of one and one. However, this property, this memory function, does not last infinitely long. So if we wait long enough and we now expose this bacterium to three units of sushi, it produces three units of gear. And this is amazing because this means that it was reset to zero and is still sensitive to large amounts of sushi. Just imagine you would expose your bacteria, your gut microbiome to three units of sushi, but as an output, you would only get two units of gears. This would not be healthy in the long run. So fortunately, these bacteria can adapt, which means that they are still sensitive even to large excessive numbers of input without, again, losing their ability to respond properly. And this is even on a molecular level for some of these input-output relations. It's not sushi, but it's some amino acids, rather simple. It's very well understood and I even published this in my bachelor's thesis when I simulated swarming behavior of these bacteria and in the journal of unsolved questions. So we can even make very small contributions to the field. Now these features of refreshing memory, adaptation and so forth translate now to a dynamic behavior of these bacteria. So they change with time, right? They grow, they die, they change in numbers inside us, right? While we are breathing here, while we are listening to this talk. And this dynamic behavior, we can also, from this dynamic behavior, we can also derive common principles. So if we look now at the amount of these four bacteria over time, first of all, let's look at the extremes, okay? So there's always some bacteria that just die. For instance, the orange one, it just gets extinct with time. The other extreme, there's one bacterium that is not really there in the beginning, but then it outperforms in terms of growth, all the other bacteria, and it dominates the culture or our human microbiome with time. It just outgrows all the others. So it just increases the amount with time. That's the purple one. But then there's also some, let's say, intermediate phenomena. For instance, the red bacterium, it just fluctuates with time. But among these fluctuations, which could in fact be very low, maybe we cannot even detect them, we cannot even measure them, it's rather stable. It always stays around the same level, okay? So this is some sort of stability feature. So even if we now try to perturb this bacterium, we would not succeed because it's very robust in a sense. And then there's the feature that you may know if you already encountered, let's say, the kids' corners around here. It's a phenomenon called resilience. And this means basically one bacterium is basically pushed away. It cannot grow for a certain time because maybe another bacterium takes away all the sushi that it would like to consume. But then it keeps calm, takes some rest, takes a deep breath, and then it decides to regrow. It's also some sort of memory because it remembers where it was coming from. But it's this ability to persist even strong perturbations.  That's resilience, and also bacteria do this. However, what is important here, if we now look at the end of our experiment to identify what kind of bacteria and to which amounts we have them inside us, usually it's just a relative measure. So we cannot really measure absolute number of bacteria counting them individually, but we can only say, okay, we have a lot of, for sure at the end we have a lot of purple ones and we have very few of the orange ones. But it's only in relation to each other, okay? So this also makes it hard to compare between different individuals, let's say, between me and you. So what kind of technologies do we have to, first of all, identify these bacteria and then also tell more about like how many of these we have? What techniques do we have to study the human microbiome? This is our next question. And I've already outlined to you where we have a good source of the human microbiome in the toilet. So what we are doing all day in essence is we are extracting feces, okay? We take feces either from mice or from humans and then we take bacteria out of these feces and put them into a petri dish. For instance, here we took the orange bacterium out of the feces and put them into a petri dish where it has some growth media, like all the nutrients it likes, the sushi or whatever to grow. But to know whether this is the orange bacterium or the purple one or any other, we have to test certain growth conditions. Let's assume we know about this bacterium, whether it grows in the presence of certain substances or not, then we can just expose it to these conditions to see whether it's indeed the bacterium we think it is. And that's exactly what has been done. So we take these bacteria out of the fissile samples and then put them on plates under different conditions. For instance, there's one plate where there's no oxygen and also no sugar, but then there's a plate where we do have oxygen but no sugar and so forth. So if you want, this is like the truth table of the human microbiome, okay? Because then if we put the feces on these plates, we see, okay, if we don't have neither oxygen nor sugar in the top left corner, we have just a few bacteria. But if there's no oxygen but there's sugar, we have many of these bacteria. So now we can check, okay, which bacteria are known to grow in absence of oxygen but in presence of sugar? And then we can boil it down and we get an idea, okay, so there must be an orange bacterium in this fissile sample. There's two problems with that. First, it's not as simple because usually it's not sufficient to just test two conditions. Usually we do test 128 conditions. And of course, this matrix is much more complex then, but even this matrix is not enough because there is no unique assignment of these conditions to individual bacterial strains, individual bacterial species. And also, this is not a black and white picture. Does this bacterium really do not grow in absence of sugar? I mean, we have some of these bacteria there, right? So maybe we need some more sophisticated means. And more sophisticated means we go back to the genetic information. We crack open these bacteria and look at the genetic code of these bacteria. And we apply a technology that is called shotgun sequencing. And by shotgun sequencing, we mean that we fragment this genetic information into small pieces just as the bullets of a shotgun are scattered when shooting. I didn't invent this terminology. And then we basically read these small fragments and have to put them back together in like a jigsaw puzzle, okay? And once we have the entire sequence back in one piece, we have to check, okay, does this now look like one bacterium or the other bacterium? So we have to find a good match just in any dating app that doesn't work. This is also a non-trivial task because you can argue about the reference sequence that we have, but with a certain probability we can now say, okay, that's the green bacterium here. We can infer, we can predict what we sequenced here in this fissile sample must be the green bacterium. But it's not just one piece of genetic information. We cannot only say it's this bacterium. We can also say, okay, we find many, many gears that are needed. So apart from the bacterium itself, we can also more look like four functions that are carried out and can even put them together to more complex assembly lines, for instance, the sushi processing pathway. Now another note in terms of complexity, of course, this does not just happen with the genetic information of a single bacterium. There is hundreds of bacteria, as I already told you. So here we are not looking at a simple genome, but the higher assembly of genomes, which we call metagenome, okay, which requires sophisticated means of computation also to denoise the signal and so forth. Because if we look at the data that is generated by this sequencing approach, it basically looks like this. It's a very sparse matrix. So here we have like for every gear that we can detect based on the genetic information and every sample that we sequenced, like every fissile sample, every stool sample, we mostly get NA, which is not available. There was nothing detected. Does it mean that this gear, this bacterium, this genetic information was not there, or was it just too low to be recognized? So this very sparse matrix is very hard to interpret. We need very good models to discern the true positives from the false positives and the true negatives from the false negatives. And this brings us back to one of our initial questions, bacteria in the brain. If we now find a certain signal, a certain sequence of a bacterium in fluid from the spinal cord, does it really mean the bacterium is there? No, it's an indication, but it can be false positive and therefore this is still being discussed in the scientific community largely, whether this is really true. So in order to be certain whether some bacteria are really there, of course we can do this in a huge cohort and look for something very easy to relate to. For instance, obesity. Okay, so we take stool samples from lean and obese patients and then we analyze them by means that I just introduced to you. So we sequence these fissile samples and then we get an idea of which bacteria are inside there. Okay, and now from looking at this kind of data, it seems like, okay, the orange bacterium is more abundant in the lean human and purple bacterium is more abundant in the obese bacterium. But again, this is just relative. Maybe one is just pushing out the other. Is it the absence of one or the presence of the other that really makes us lean or obese? Well, first what you can do, you can take all these bacteria that we identified by sequencing in these stool samples and look at them as features. Okay, in an n-dimensional feature space, if you'd sequenced n different bacterial species, you identified n different bacterial species, you have an n-dimensional feature space. And then you can reduce dimensions and ask the question, well, can I really separate the obese ones from the lean ones? And I mean, it looks like we have some decent separation. Okay, so you can ask, okay, what are the features that discriminate the lean from the obese? Which bacteria make us lean or obese? And then if you find some bacteria that contribute to this, you can basically look how they correlate. So you put all the body weights of your participants in this clinical trial on one axis and the amount of the bacterium that you detected, in this case, the orange one, on the other axis. And as you've already learned, most of the entries are zero because you cannot detect it. But for the others, you see some sort of trend. So it seems like there's a negative correlation between the presence of this bacterium and your body weight, meaning if you have more of this bacterium, you're a leaner. Okay, so this is maybe some bacterium that you want. But of course, you can also do like more sophisticated approaches here. This is just some rank-based correlations or you could also train like a decision tree and some classifier, do some machine learning stuff that you probably know better than I do. But in the end, does the patient care about whether this is correlation or really cause? Well, maybe it gives us a hint what to try. And anyways, IT is what it is. So what we want is we want to find bacteria that we can use for rational intervention, that we can use to really now help these obese patients to become leaner or the lean persons to stay lean, okay? And what can we do about this? At the moment, if you look at the media, there is quite a hype and there's one central question that comes to me or that should come to all of us when we see something that is being hyped in public media. Why? I mean, why is this relevant to us? Well, if we have bacteria that make us leaner, faster, smarter, we tend towards like self-optimization and it's something very easy to try, right? To optimize ourselves. So if we look at the media, we can read while there's some contribution to our eating habits, fitness states, susceptibility for infections, aging cancer, et cetera, P.P. You can do the search for your own. If you just type microbiome in your favorite search engine, you will find it. There is one quote I brought you from an Israeli journalist who said, he said in Hebrew, but I brought you translation. Yesterday I interviewed a respected scientist of the computational biology field who told me that the best diet for obese people is eating poop of lean people and let their gut microbiome work, okay? So this is a straightforward suggestion. If you type in your favorite search engine how to eat poop, you will find what to do, like microwave it, filter it, but let's take a step back, okay? Let's see what we can do. The funny thing is you can do all kind of mathematical operations with your microbiome. You can subtract. So you have your set of bacteria in your gut, okay? That you want to optimize. You can take antibiotics. They just eradicate some of the bacteria, probably most of them, but some will survive. And you pretty much know a priori which are resistant to these bacteria and which not. You can also do something more targeted, which is like swallowing viruses for bacteria that are very specific, that may just eradicate it like a single bacterium and all the others will survive. But you can also multiply bacteria. For instance, assume you already have bacteria that do your good, you're a lean, and you just want to get a boost. So you can just take what is known as prebiotics, which are basically metabolites, for instance, like the sushi that some bacteria need to grow. So you swallow that and your bacteria will multiply and you will have plenty of them. Another option is like a simple addition. This is now the option of eating poop, okay, right?  You can also take certain yogurts or mixtures which are known as probiotics to just get some of these bacteria, like very defined species that are supposed to be healthy in whatever sense. Or there's also some sort of vaccination where assume it's not the bacterium itself, not the living bacterium, but just some molecules on the surface of the bacterium that stimulate our body cells to do something healthy, that simulate our immune system or something. So you basically heat and activate the poop or maybe you add these specific parts that you already know that do good, some of the gears, right, from the sushi and then you just inject them with a vaccination, which will also, I mean kill most of the bacteria in due to the heat, but will probably give you these one specific pieces that you need to stay healthy. The last mathematical operation missing is the division, which is some sort of fasting. So by just drinking water, you basically wash out all the substances that the bacteria need to grow and they will be diluted themselves and you will be remaining with just a few bacteria and maybe all the bad ones are just gone. Okay, so this is the options we have at hand. Now what to do with this in the future? Is it advisable to hack our human microbiome with this state of the art in science? I only want to provide you with a single slide on that and just give a few advices here because it's on you, it's on all of us to decide, right? It's on the society. We can just provide some guidance. So here's some guidance from my point of view. Do-it-yourself biology is very tempting. We really like it. In Germany, we have some legal constraints here, but genetic engineering of bacteria is much, much more simple than you hear even now in the days of CRISPR-Cas where you can genetically engineer human cells. Bacteria, to engineer bacteria says, the technology is 40 years old. Everybody knows it. It's very straightforward. However, there are safety concerns. Whenever we engineer bacteria, be it bacteria inside us, from the inside of us or other bacteria, it's becoming a genetically modified organism. We are becoming a genetically modified organism. I'm not saying it's a bad thing. I'm just saying we have to consider biosafety first, okay? Then we've mentioned the human, the genetic information about human, the human genome. This is some very personal data, right? It is, according to German laws, very neatly protected. But what about our meta genome? Is this not also part of our identity? I'm raising this question here because the German Ethics Council is not discussing this even though, again, all the technology has been there for decades. We have to have this debate. How to store this data? How to encrypt it? This has never been discussed and the time for this is really now. What about patenting genetic sequences? We cannot patent our own genome, but what about the genome of the bacteria inside us? It's a legal gray zone to all that I know. We have to think about this. What if I only know the sequence of some bacteria that live inside me but other people don't? We have to share these sequences to learn something from this. So in a nutshell and to cut a long story short, what we can learn from this, the human microbiome has a lot of potential. But there are also some threats and the only way to deal with them is to gather, right? We have to talk to each other, to exchange information and only then make an educated decision how to handle this, whether and how to hack the human microbiome. And before I arrive at the final slide, I just would like to thank basically the foundation that allowed me to come here, that covers my travel expenses. But of course, all the organizers here, I think it's again, it's my first, but it's the best Congress, right? I ever attended. The Weizmann Institute is a beautiful place to do science. We are very open. So please feel warmly welcome whenever you are in the vicinity, just drop by. And then last and at least, let's end by refreshing memories. The human microbiome is a complex ensemble of bacteria with non-intuitive interactions and interdependencies. We are exploring mechanisms of regulation through hacking by rational interference under controlled conditions. Individuals, single people, companies, try to monopolize technology, knowledge and data, constraining free and open research, rendering the potential of hacking the human microbiome a threat through uneducated trials. Friends, that time is over now. Thank you very much. Thanks for the excellent talk. We now have about five minutes for questions. You know the drill, line up the microphones and please keep it short because we are a bit short on time. Microphone number two, please. Thank you for your talk. I just wanted to ask you if you can give us some examples of therapies that are used already with the bacteria. Maybe some examples, yeah. There's a huge variety of what has already been done so we just now understood that there's, for instance, some bacteria that metabolize cancer drugs. So they're basically what has been done now in addition to the cancer treatment is like there is antibiotics being given to eradicate basically the bacteria that could metabolize the cancer drug and therefore, I mean, once the bacteria metabolize the cancer drug it will not be affected anymore. So this is where like the eradication of some bacterial species benefits the cancer treatment. Then there is the treatment of Crohn's disease which is done with bacterial supplements, especially in the U.S. This is already more conventional in Germany, the legal situation is a bit more constrained, let's say. So all these things are just in the beginning we are starting to understand and I think there's many to come in the years following but again, there's just a few examples where this has already been done in the clinics. Apart from this, there are small clinical trials in terms of research studies where this has been done but again, it's a very wide field and I think it's just yet to start. Thanks. Mike, number four, please. It's a simple question. Nowadays it is hard to get the proper information because there's a time of fake news, fake information. Where should I be educated about the microbiome nowadays proper research? Yes, so good question. I think the best source of information is actually the origin where it's generated. So talk to the scientists. That's why I put this hashtag, psychom there, science communication. Ask people who are doing it, they know their stuff. Sometimes they're good scientists, they're not the best people to communicate but that's something we as scientists have to learn. So don't be afraid and really approach them. I think it's our obligation and our duty to share this information. So go right to these people and approach them and they should provide you with all the information you need. I think it is simple direct path. Thank you. Thank you. Number one, please. You made a link between obesity and your microbiome and your stomach and so on. How do you know you're looking at the right point here and that you're not mixing cause and effect? Yeah, that's a very valid point. In fact, there's many mechanistic studies as we put it. So there were some bacteria which were associated with weight gain for instance and targeted depletion of these bacteria showed that basically the weight gain is reduced and then you can basically also turn it around and say, okay, if I now for instance you to food restriction in man or in mice, if I lose weight, does this bacterium also go away? Like I said, what is the relationship? And this has all been done and as I already indicated in the case of obesity, we're even one step further. So it's not only that we identified bacteria but we also identified molecules. These bacteria are producing that help us to for instance, keep our weight or stop regaining weight after weight loss and stuff like this. So here we have very detailed information and we have very solid evidence on these bacteria and these molecule. However, I have to state, usually scientists report very modestly. They say, okay, we have a certain confidence here. We have certain uncertainty. And then this goes to public media and there's of course a huge headline like we only need to swallow poop to get lean, but again, I want to tell you it's more complex than that. But again, in this particular case, we have a very solid understanding, I feel. Thanks. Right, thank you. Okay, one last, hopefully short question from number three, please. Hi, it's a bit on the same topic as the question before, but what is the relation between microbiome and polygenic scores? Polygenic scores? Yeah, like for instance, Robert Plum in recently published a book showing that obesity is mainly genetic, that the relationship is mainly caused by many genes and there is this concept of polygenic scores. Yes, I'm happy to elaborate on this. I'm afraid time will not allow, but you're happy to come here and then we can elaborate on this in a private chat. Thanks a lot. Fair enough. Perfect, thank our speaker again, please.