if you can see. And welcome. Welcome to everybody that's just joining us. We're just going into our second part of this session and we're moving straight across to Leo and Verena in a second and I'm just thanking Pebblepad for being our sponsors for this session. So thank you very much Pebblepad. I know there will be people very interested in that who are in the chat already. Okay. I'm going to pass you over now. I'm just going to stop these slides.  If not, give me a shout out. Great. Okay. Pass you over then. Lovely. Thanks Leo. Okay. Hi everyone. It's Leo Havman here and I'm joined by one of my partners in Crime Verena Roberts. And we have this idea that we should have a discussion or we should offer a discussion at this conference about pandemic pedagogy. And as we developed our ideas, we discovered that there was even more to it than we at first thought. So our sub theme here is social presence in the viral learning environment. Just to quickly introduce ourselves. So I'm based in London, in the UK. I work at University College London as a digital education advisor. Also a PhD student at the Open University. My research is around open and digital practices and policies in higher education. I'm a member of the GOGN network and also one of the coordinators of the M25 learning technology group, which is a sig of old. And it's through Twitter in general, knowing the same people, but ultimately also through GOGN that Verena and I have got to know each other. And maybe Verena, would you like to introduce yourself a bit too? Thank you Leo. Yes, Leo and I are partners in Crime and I come to you as a penguin from Canada. I'm Dr. Verena Roberts and the irony is that literally downstairs in a room, a very closed room with 50 people, I'm expected downstairs after we finish this and meet with my high school group, which is quite exciting and scary at the same time. I'm a learning designer with the ETS group at the University of British Columbia. I'm a session instructor with Victoria and Hugh Calgary and I have been literally teaching online courses non-stop since January. I've been given lots of opportunities again and again to teach in different ways, which is really exciting and we'll come into play in our chat today. I'm also an educational specialist with a nonprofit called Cibera here in Canada with which focuses on open data science and coding. And most importantly, I would say as well, I'm a mom to three kids and I survived so far the K-12 remote access learning, although two of my kids are going back online next week. So let's get going. So what is this about? Sorry, I think we advanced a little bit too. I think we're both moving this slide. So sorry, the text wasn't meant to be this faint, but anyway. This is a slightly shortened version of the abstract. The long one is, of course, on the site. But essentially, that this was prompted by the fact that at the beginning of the pandemic, there was such a huge demand in terms of just moving, just getting online, getting everything online in any kind of possible way as rapidly as we could. And certainly some questioning going on around are we doing things in the way that we would like to do them and hoping that we were going to be able to refine our approach and really help our colleagues to get more confident and more sort of adept in online teaching, heading towards the autumn as it became clearer that the autumn was also going to be very much an online focused kind of experience as well. And so really, one of the things I think that led us to want to talk about this was our sense of frustration that a lot of the discussion around all of this was happening kind of in a strange kind of parallel universe where people seem to have the capacity to discuss and engage with the ideas where for like certainly in my world, I was just completely focused on just attending all the meetings that I had every day, sometimes like five to six hours of meetings a day and then trying to sort of do the things that were emerging from what we decided to do during the meetings or what was being asked of us. And so there was a time that we didn't have a lot of time to be putting our ideas out into the world and we were interested in the volume of the ideas as well as what they were that were coming from other people. And so we wanted to kind of reflect on like basically where have we been and where are we going at this stage with COVID and education? Over to you, Vrina. Yeah, sorry about that. So I was going through my phone. Oh, can you hear me? Yeah, I was going through my phone and I started to look at some of the different slides that I've taken off and no they're not all CC license. They're literally things I took off the screen or just from Twitter or from Instagram. That literally I was taking pictures of the newspaper every day because at my university there were all sorts of things going on like all of a sudden the students could opt out of letter grades and they didn't even understand what was going on. There were incredible things happening where students were coming together and defeating apps and figuring out how to use technology in ways that teachers couldn't even believe or even political systems couldn't understand as we've seen. And finally as a teacher it's all often been criticized. YouTube has been criticized or digital learning has been criticized and now all of a sudden we all looked like the YouTubers that we see in this picture right here. I looked at my horoscope daily. It's a lot of time spent at home and as a mom working from home that is not me but that was a picture taken from Instagram and that's definitely how I felt. And then there's also the picture in the middle and that is me and that's when I was in two different web conferences at the same time. On the left I was presenting and on the right I was actually in a meeting. So I think we can all relate to these slides in different ways in the chat. Did anyone relate to any of these experiences in any way? You're welcome. I don't know if you can actually put in an image as well. So I'm seeing some people can relate to this but in the middle of all this chaos we wanted to think about what are we actually learning in terms of learning designers because Leo and I can't help it. All we do is reflect and think and so even though all this chaos was going on and we couldn't live breathe and we were struggling with what was going on and the expectations we really wanted to look at the positives and see how we were all responding to this crisis. So pandemic pedagogy what do we even mean by it? At first I just thought I like the alliteration but then I thought well the obvious question here is how do we teach and learn in the context of the pandemic? But I feel that there's a second question here which has been more emergent which is what is the pandemic teaching us? At the beginning of this we didn't realize we would have so much to learn as time went on we would see how the pandemic exposed and magnified inequalities and we've heard quite a bit about that throughout this conference and I think that many of us who were fortunate enough not to realize it have realized how fragile our normal is and so as a way of thinking about this in maybe a more playful way and I'm glad that we ended up doing it in a playful way for one of the last sessions of the conference. We started thinking about identities and narratives in the early pandemic and how perhaps these were evolving as it's continued. So we came up with these ideas about ostriches, owls and vultures as being some of the pandemic identities. Should we have the pictures? We've got nice pictures of them for you to look at while we ask you who might be our ostriches our owls and our vultures in the pandemic educational landscape. So thinking back to those first that first month did anyone come across as a vulture an owl or an ostrich in your opinion and not names generalizations? Thank you Dom. Exactly. So we have ed tacks as owls, interesting, yeah. Anyone else have some ideas? Panguins, we forgot the penguins Leo, how could we forget the penguins? We also were trying to figure out how it related to Audrey Waters' pigeons but in the end we couldn't. So there's no pigeons either. That's thanks Martin, vulture ed tech. Oh vultures, there we go. Martin got it. We're thinking more vultures are ed tech. Ada and an owl, yeah. Yeah, we've got some ostriches as some of our colleagues who remain nameless. Exactly. So I think you see where we're going with this and we thought in terms of the narratives that these identities related to the ostrich narrative is yeah, good point from Sharon as well. I think we think that as well. One of the narratives was maybe this will all just go away and this obviously relates to the ostrich identity. Sorry Verena, you were going to explain this slide. No, no, no, that's exactly what I was going to say. So specifically, also we wanted, no, the next slide. Sorry, I'm getting myself with my slides. There we go. The other really important element was the free for five minutes phase. I didn't take enough shots of all the different opportunities that I was given as a K-12 educator for free products, free digital access, free, free opportunities to be in a learning platform. But my favorite was free open access until June, specifically June 30th, 2020. That was really the date for everyone. And I did find this shot that said free resources, but this slide will be updated as resources become available. And that's kind of the feeling of what happened a lot of time. The free came with an ending or at a cost. And we're going to talk a little bit about where was OER in all of this? Was it an opportunity for OER or did it get missed or did the vultures kind of overshadow or did other people kind of step in and offer free products that have now, in many cases, disappeared? So go ahead, Leo. So another, I think, really key narrative of this period was one that in the end I've summarized is this is our moment. And I think that this actually was prominent across various different variations of identity, but which we're kind of relating to the owls. And I'll explain the owls from our perspective a bit more. So the wise owls, whether they were long standing or brand new experts and thought leaders, sometimes we're presenting a, and of course also some of us felt ourselves to be wise owls, but we're not necessarily very visible in the more public sphere of this. This is maybe the educational variant on the live your best life narrative that was circulating more broadly in the kind of early pandemic. This is the one that says now you're going to go on a diet, get fit, learn a musical instrument. This time at home is a gift horse you'd better not look in the mouth. It was exhausting us to be good neoliberal subjects and use the time productively. And of course some of us though were already using all of our time and more quite productively, leaving no time for self-improvement and not much for self-care. And it was tempting nonetheless to be caught up in the idea that this is our moment. It wasn't only for those who had wanted to sell e-books, ed tech solutions or leading thoughts. It was also perhaps tempting for staff within organizations supporting online learning to hope that despite feeling some discomfort with the idea of pandemic as opportunity that this was our moment to recruit academic staff to this cause that we've put so much work, so much of our careers into, to be recognized for our expertise in it, to stave off disaster in the short term, but also to make lasting improvements to teaching and learning through increased engagement and baseline knowledge. I don't blame you for banning the word opportunity. I remember my moment and actually this was from a principal who sent me a tweet saying Rita, this is your moment. I didn't have a job in that moment other than being a session instructor. And all you can see me doing is tweeting about open educational resources. So that shows you the moment and what the reality was for me. I went from no job to like looking for a job in that moment and then I was completely inundated and had no time. The idea of the opportunity for me to share ideas or to to lead, I still have it, but it definitely hasn't happened. Catherine, the musical burden is coming. Catherine says there should be a musical slide. No, no, no. I agree. There should be music slide and Catherine pointed that out to you. And then there was the reality of trauma and really accepting the fact that we were in this too. It was almost like we forgot just because we were part of online learning before that we wouldn't be as traumatized. And even though I put those pictures out there and I was looking at it and thinking about it, it was, it came to a point that I had to accept that I was in this traumatic experience like everyone else. Leo. Leo is having too much fun. I'm just figuring out where I am. Oh, no, you just have to speak on trauma. Trauma is everyone. I think that we, I mean, we all know. And so coming back to our, I guess, to our theme here, one of the interesting features of the response and the wider society to COVID has been the phrasing of social distancing, the idea that we all need to be distant from each other. But of course, this is really about physical distancing. And, you know, it's quite strange when we were thinking in an online learning context, we're actually, we're often much more concerned about social presence and kind of how to develop and sustain that and foster that and encourage that. And so one of the great challenges we think has been for the staff that have been moving from the kind of classroom-based face-to-face teaching mode into this new modality and tempted to just try and sort of replicate that with Zoom has been trying to think more about prioritising presence and care. I do think, though, that one of the reasons that it's been quite tempting from any staff to want to do these kind of synchronous live streamed lecture sessions has been, has actually been because they've sensed the desire on the part of students to kind of have their presence. And they find the idea of developing presence in a different way is quite, they don't necessarily know how to go around doing that. So we're going to talk a bit here about some of the things from our own experiences of our work in this context. But do you want to start? So in my experiences, as I said, consistently teaching online, I think one of the biggest humbling experiences was realising that I didn't actually know as much as I thought I might have done about online learning. Specifically the trauma, the need to be flexible, the fact that students now had no access. It wasn't like it wasn't there before, but it was amplified and equity was amplified in ways that were previously inconceivable. As a result, I definitely started to shift my practice even more to what's called human-centred learning. Specifically what I did as an actual practitioner during the session courses was that I would create what's called social pods. And social pods are either informal or formal learning groups, where the students are put together in groups, either by the instructor or they choose their own groups. And they do activities and work together online in their own way in their own time throughout the week. But the activities are designed by the instructor and encouraged by the instructor. The reason this evolved in particular was because some students really wanted synchronous sessions every week and I literally couldn't maintain that as an instructor. So I had to come up with some kind of asynchronous support network for the students. And in some cases they would do group work together and they would have some kind of assessment, but in many cases it was working on blogs together or working on questions together with their discussion threads and not making everything online in terms of online in my course or online wherever our digital space was. So the social pod idea has really expanded. It also expanded into my work as a learning designer with UBC. And I was working with kinesiology professors and they loved the idea of supporting their students in some kind of way, especially with courses where you had 300, 400 students. And so they've started to design ways to encourage these social pods. And the only other thing I would add is another way to learn is I've been lucky enough to work with instructors who realized that it's not about the online, it's not about the medium, and that online learning is about learning. And so they're really excited about the positive and the potential and they just said they'd never think about it before if they hadn't been given this opportunity. Leo, you want to say something quick about connected learning? I do want to say something quick, but aware of our five-minute warning. So I'll be quick. But because Farina, I've worked kind of in a sense on the same problem, but in kind of, I guess, different scales in this situation. In my role, a lot of what I've been doing has been trying to come up with ways that we can kind of push out messages to kind of the wider swathes of the UCL community. And one of the things that we were asked to do was to develop a kind of a standard or an approach or a kind of a good practice checklist for teaching online. And we said, well, okay, that's okay because actually we have that. We had the UCLE learning baseline and traditionally, and it's evolved over the years and I've kind of become one of the people that generally does revisions to it and kind of looks after it in a way. But traditionally, it's always been divided into the kind of the baseline and then baseline plus for the courses which are taught completely online, which are quite a kind of a distinct and minority kind of group and where we were asking people to do a lot more. So what we did was we merged the baseline plus into the regular baseline. And we also kind of rewrote in ways where we tried to emphasize tutor presence, communication, support, very much in line with as Aras was saying during the Gojian Gaste yesterday about with the idea that she will probably remember how they felt at this time and really how we supported them and how we guided them and the sense in which we said, don't worry, we're all going to get through this together rather than what specifically they were learning and so prioritizing that sense of that we are a community and that there is care, making that a bit more front and center rather than content. And so we also rebranded the baseline as the connected learning baseline rather than just the e-learning baseline and because we wanted to rather than call it distance learning, we wanted to emphasize the idea that we are still connected even though we might not be meeting up in the same in the same space. And various other aspects of our work have kind of built off of this. This is a kind of an underlying approach including a staff development course called connected learning essentials, which I'm thrilled to say actually 900 of our staff did in the first run and it's been smaller groups as it's subsequently been rerun but we've really seen a lot of engagement from our staff with it. So we're hoping that all of this kind of stuff is making a big difference and we're hoping that our next AVN identity that we're all transforming into is a phoenix and at the end of this you know we'll be phoenix is rising from the flames of this rather than that there will just be scorched earth. So that is pretty much where we wanted to wrap up I think but we did if there is any time we thought we'd be delighted to know what what people think might emerge from this period after the kind of initial initial crisis what kind of online learning are we looking at in our institutions. Oh thanks thanks so much Leo I was going to say if people if anybody would like the mic just let me know in the chat or put your hands up and I can just quickly give you the mic. That was really good wow I was I've been so lucky in the sessions that I've been given mind you all of them have been so good. Really really really interesting stuff you've raised and online kind of social presence is stuff I'm really interested in. There's Matai Miller to tell me to stop talking. I know that the Mariners started to say that people are starting to move into the into the final plenary so but if anybody would like to either comment or to ask a question please do pop it in the chat quickly or if it's quicker you'd like the mic you can have a very quick opportunity to thank everyone to let us know if you have a quick question but thanks very much to all of our speakers really really appreciate your effort really appreciate everybody coming along as well and showing your support and enjoying these excellent sessions that we've had. I'm just quickly scrolling through the chat if you have any questions for you Leo, Verena but I'm sure if anybody wants to get in touch that they can find you very easily all over Twitter. Lovely lots of love in the room for you lots of penguins excellent thank you ever so much I don't think there's any more questions thanks folks I'm going to stop the recording now thank you


And I wouldn't you know it. I forgot to delete the old videos off this cheap old fire tablet right out of memory So part two of the study guide review picks up right where we left off now at question number 25 Which of the following is not a property of covalent substances while covalent substances are soft low melting and boiling point Don't conduct electricity And they tend to be liquids and gases at room temperature So which of the following is a property of them soft. Oh, not a property. Oops my fault Am I gonna start over? Heck no Not would be high Soft is one of the properties don't conduct and low boiling points. Those are all properties B is the answer for that Hey, I'm moving on to 26 Considering that Lewis structure We're gonna describe this as a substance that contains all this is polarity So let's take a look at polarity phosphorus is 21 and the 21 2.1 and Chlorine is a 3.0 for an electronegativity difference of 0.9 That makes polar bonds so Automatically when many of those two we know it's got polar bonds now. We just got to figure out if it's a polar molecule lower number is positive Higher number is negative If you can draw a straight line Put all the negatives on one side the positives on the other it is a polar molecule. So that brings it down to a 27 When bonding with a halogen like fluorine carbon is capable of forming what well to answer this question We have to look at Lewis structures Carbon's got four valence electrons, which means four single dots carbon can make four bonds Halogens like fluorine Have seven valence electrons It can only make one so again Carbon can make up the four bonds, but fluorine can only make one that is going to limit us to nothing but single bonds We could do the whole Lewis structure and everything if we wanted to to confirm that Then you got it. Everything's a single bomb We're gonna help that in time here Let's give booking Next question same kind of question this time it's nitrogen and carbon so carbon again Four dots can make four bonds nitrogen has three dots That means that We can make a single bond with carbon We can make a double bond with a carbon or we could go all the way up to the triple They can make a mix of single double and triple bonds depending on what else it has to bond with You're limiting factors never gonna be carbon carbon can make four bonds no matter what you're limiting factors gonna be what it bonds with and If it's binary then it's gonna not work because carbon also have an extra electron there We need something like hydrogen over there to pick it up But it can make up to three bonds so it can do single doubles or triples when nitrogen is concerned It just depends on what else is there to bond with it wouldn't be binary, but it could go all the way to triple Which of the following formulas an empirical and molecular empirical means reduced Molecular means covalent So it has to be a covalent substance that means no metals It has to be a compound so that can't have an element in there comes down to those two Two non-metals so that's covalent. That's a molecular formula two non-metals. That's covalent So that's a molecular formula, but this one is four and eight that is not reduced That one is two to one that is both an empirical and a molecular formula. It's reduced and it is of a covalent bond molecule Gas is going to be C particles far apart Strongest number like of the forces are in a solid a In strongest middle weakest none at all actually strongest weaker none at all that's what to think about it To go from B to C to go from liquid to a gas we have to remove intermolecular forces A When you melt something you weaken them when you boil something you remove them A to B that's melting so again, we would weaken them They're strongest in a solid weaker in a liquid nonexistent in a gas Liquid a room temperature. This is about intermolecular force We want to recognize that there's three types and covalent substances. There's hydrogen bonding Which would happen here with nitrogens and hydrogens So that would be hydrogen bonding There are dispersion forces which would happen in elements and non-polar substances Carbide oxides non-polar so that would be dispersion forces remember Even though the polar bonds, it's a linear structure. So there's no separation of charge and PCL Three would just be plain old polar because you do have separation of charge We'd look at that one already on the test So that would be dipole dipole Hydrogen bonding tends to have the highest melting and boiling points. So it's the one that's most likely to be a liquid at room temperature We consider molecular forces again. We're looking at these three things once more F2 we know that's going to be dispersion forces H2o hydrogen oxygen bonds and we know it's polar that it's going to be hydrogen bonding Si2 is bent Sulphur acts just like oxygen iodine acts just like hydrogen So it's a bent molecule just like water is sulfur is a 2.5 iodine is a 2.5. So these are non-polar bonds So this has got dispersion forces And then CH4 I should probably label this one this question differently It's a tetrahedron because it's five atom molecule carbon-hydrogen bonds are polar bonds, but no actually they're not They're only point fours. So these aren't polar bonds at all. So those are dispersion forces again. So it could be any of those things really I'm gonna say F2 because it's an element and the electronegative differences is zero in that As it is here, but yeah, I should probably sit strongest here. And if I said strongest that would have been hydrogen bonding oops last two questions mole ratio problems We're going from oxygen to iron three oxides oxygen to that three moles of oxygen equals two moles of Iron three oxides Start with a given 3.5 moles and that's oxygen Set this up so oxygen cancels And do your math 3.5 times 2 divided by 3 Grab my calculator here. So I always like to make sure I give you the right answer 3.5 times 2 is 7 divided by 3 It's 2.3 So be the answer Same kind of set up for the second one, but this time we've got iron and we want to know oxygen. So iron and oxygen four moles of iron equals three moles of oxygen We're starting with 1.5 moles of iron Set up so the iron cancels The three moles of oxygen on top But how many times have we done this? 1.5 times 3 that's 4.5 divided by 4 is 1.125 That's an amazing answer All right, that's it loads of fun. You'll all ace it because you're all geniuses. I Got faith in you. You have faith in you


All right. Well, thank you everybody for coming again. It is my pleasure to welcome back Barry Honig as this year's 2016 Steambock lecture. Yesterday I neglected to say anything about Harry Steambock, who, you know, whose work in sort of over time has generated lots of money that allows us to invite all of these speakers to campus. So in the 1920s, Harry Steambock invented a procedure for irradiating milk and converting a compounded milk into vitamin D and felt that this was worth some money and Quaker Oates wanted to license the invention. And so I think Steambock, he went to the administration and he said, I think this is worth some money. You know, we should patent this. We should do something. And the time the administration went, we're a university. We don't care about these things.  But in any case, the result of that was the sort of the first technology transfer office at a university campus in ours is the Wisconsin Alumni Research Foundation that's run as a nonprofit. So the proceeds from, you know, from that and other inventions from the department kind of help, you know, help us to run nice programs and invite prominent people to campus. So we have today is the second of the Steambock lecture. So if you would please help me in welcoming back Barry Honing from Columbia University and the Howard Hughes Medical Institute to give the second in this series. We'd love to welcome Barry. Thank you, Julie. So yesterday, I gave a talk which was, I'd say, although it had a strong cell biological component, it was really traditional structural biology applied to particular biological problems. Today I'm going to talk in a very different tone. My goal as I sort of say in this title is to find a way to integrate structural biology with systems biology. And the reason I want to do that other than I find it interesting is systems biology, especially people looking at networks of interactions, is basically a field of people who know very little about proteins, who know very little about molecules. In effect, proteins and DNA are points on a diagram. And the hope is that if we have an understanding of the molecules involved, we can find a way to sort of expand both fields and also expand what we as structural biologists know and what we can do with our structure. So an example of what I'll be primarily talking about today is to take this, one of these interactomes which is supposed to every point is a protein and their lines connecting the points to somehow put a structural face on that sort of interaction. And more specifically to use three-dimensional structure to infer interactions that you couldn't infer any other way. So that's the goal of my talk and what I'm going to do is basically we sort of published a paper a few years ago describing how to do this. I'm going to go over what's in that paper and then show what's happened since then and then point to the future in terms of specific applications, none of which are complete but I want to give you a sense at least of what I think is possible. So to use structure in ways, so one of the goals of course is to use structure on a scale that it isn't normally used as we really want to be able to use structure on what we call a genome-wide scale. So there are a number of things we have to do. One is use homology models. These are models of proteins derived from known crystal structures. Everyone knows there aren't enough crystal structures to cover every protein sequence. The second thing I'll be showing you and talking about is structural alignments. We're going to use structural similarity between proteins as a way of expanding the connections between proteins that can be referred, excuse me. And the third is to use statistical inference. Using the context of protein structure and I want to show you how we do that, but to do all of these things we have to relax our standards of how we use structure. So if you're interested in an enzyme mechanism, you care about every angstrom and every kilocalorie. If you're using structure on a genomic scale, you can't worry about that detail. You want to extract information any way you can. So yesterday had angstroms and kilocalories, today won't. So the first point to make is if we look at the number of the structural coverage say of the human genome, there are about 5,000 proteins in the protein data bank for which there's a structure for at least one protein domain. Not the whole protein, but at least one domain. If you look at data bases of homology models or what one can construct with existing software, you get about 12,500. Together, there is some structural information for about 18,000 human proteins. If we look at protein-protein interactions from about 20,000 proteins, there are 206 million possible interactions, there are about 1,000 complexes in the PDB and there are about 169,000 interactions in existing databases that may be taken from literature, may be taken from high-throughput methods such as yeast to hybrid. So we don't really know how many protein-protein interactions there are in human cells. And indeed, the word interaction can be deceiving. What does it really mean? I'm certainly thinking of primarily as two proteins that form a complex. But then there may be proteins that are in a multi-protein complex that don't interact with each other directly, but at least are structurally related. And then there can be a third case where two proteins are on a pathway, one affects the other, so they're in a way interacting, but they're not physically interacting. And just even so when people say there are so and so many interactions, it's not always clear what's meant. The truth is that we don't really know how many interactions of any kind there are. Okay, so I've said briefly in the last slide that we can use homology models to extend the reach of structural information, and I'll add that homology models can be very good, they can be very bad. And at one level I'd like them to be good, but at another level I don't necessarily care because the hope is that I can extract information even from a bad model, and I'll get back to that. Maybe a bad model has some clues that can be used in a gainful way. The second way we use structure is with finding relationships between different proteins with structural alignments, and I want to show you how proteins are very often classified and actually argue against classification. So there is a SCOP database of protein structures, and in this blue circle I represent members of a protein family. These would be proteins that have a clear sequence relationship, a clear functional relationship. Then in the orange ellipse here are proteins in a super family, and these are proteins that are more distantly related, but nevertheless have a functional and perhaps detectable sequence relationship. And then there's the third classification that people use, it was a protein fold, and a protein fold basically is a way of describing what a protein looks like. And this is where for years I've sort of had to be in my bonnet, I don't like the term protein fold. I don't mind saying a protein has a fold, but to classify proteins based on what they look like, number one there's no objective way of doing it, so you're really dependent on somebody's opinion. But it can obscure information, and in fact I'll show you in a second there are connections between proteins that are classified as having very different folds, and we want to use that information because it's that information that allows us to use structure to find distant relationships that can't be identified with sequence. Let me give you an example. There's three proteins that are classified as having different folds, certainly looking at them, you might not see any connection, but each one of them has a structural fragment which looks similar, and if you superimpose them, you see that these three fragments superimpose well, and this superposition, geometric alignment is basically central to everything I'll be talking about. There are many algorithms that superimpose secondary structure elements. We have our own, but there are many good ones, and it's basically something you might do by eye, just superimpose secondary structure elements, find common features. What's interesting in this case that even though these proteins are different, once you superimpose these substructures, you find that they all bind to cation in the same location. Does this mean that they evolved from some ancestral cation binding fragment? We don't know if it's convergent or divergent evolution, but this would be an example of extracting information from structural alignment that you would never get from sequence.  Here we're looking for small structural motifs that align, and trying to use that again to infer function. Structural blast will be an integral part of what I'll be talking about. As I said yesterday, I'll say it again, please feel free to interrupt at any time if there are things I say that you'd like me to clarify or that annoy you. Question? Yes. Are they? I don't know. It's a very good question. I think they're... Are they? I think they're dival. I assume they are, but I'm not certain. What I'll be doing in the context of this seminar is the following. Let's say I have a protein, and I want to know what it binds to, and that could be DNA, it could be a small molecule, it could be another protein. I have in the database other proteins that bind to something else, say this pink sphere. In this case, I might align this green protein to the purple one, and the geometric transformation that turns the green into the purple also moves the sphere onto the surface of the purple. If I do that with other structural neighbors, in this case, I'm saying that I find that all these small spheres bind in the same location, and that might suggest that this is a hot spot for binding small molecules, for example. This is the notion that we're using, and these other spheres could be small molecules, they could be other proteins. But the basic idea is if we transform, we geometrically move this protein onto this protein, carry with it its ligands, we have a hypothesis as to where our query protein might bind other proteins. We have to prove that that hypothesis works, but that's the basic notion. The first way we've used this is to take a protein and to predict where on a surface it will bind other proteins. These methods in the literature will take this protein and, for example, look for a hydrophobic patch on the surface, or a region of sequence conservation. So the protein is analyzed for its own physical properties. There's a hydrophobic patch here, say, well, maybe that's an interaction site. What we're doing is different. We look for a structural neighbor, in this case, the red protein, superimpose the green on the red, and just like I showed you in the last slide, infer that perhaps the green protein binds other proteins in this location. This might give us an interface, but of course we only do it once. It's meaningless. The algorithm that we derived or designed is the following. We take a protein of unknown function and we look for its structural neighbors. The structural neighbor is a protein that looks like myquery protein. We superimpose Q on neighbor one, neighbor two, neighbor three. Now if Q, when I do the superposition, there are two amino acids in the neighbor protein that bind a ligand P1 or another protein P1, and we count those. So these two appear twice. Then we go to another neighbor and we count the ones, the residues that are aligned in the interface for neighbor two, neighbor three. We add them up and then we end up with a hotspot shown here in red, which are regions on my query protein that align to the interface of other proteins. So I hope that's clear. That's the way it works. It works very well. I don't like doing this sort of thing, but I can tell you, I have my own figure showing how well we do, but I was delighted to see somebody else did a comparison of the many, many methods to predict interfacial residues, and ours comes out the best except for theirs. But now we have a new method that's a little better. But anyway, this is supposed to tell you that this method works very well. Better than methods that are based on, say, hydrophobicity alone. We've since added that feature to what we do. We simply, I'm not going through all the slide, but we look at the propensity of every amino acid to be in a protein-protein interface, integrate that with the structural information, and we, again I'm just showing you, we do better than we did before. So my point here is that using this sort of structural alignment, we can infer where one protein might bind to another protein. And it's supposed to convince you that this is a reasonable way to approach the problem. But it doesn't yet tell you how we deal with protein-protein interactions. And the way we do that is just an extension of what I've been telling you. So better than I have to tell you how we do it because that's crucial. Here is a structure in the protein data bank of a complex, in the protein data bank. And now what we do is we want to know, say, if, so these are red and blue. We want to know if the cyan protein binds to the purple protein. So we superimpose the cyan on the red, the purple on the blue, get a model for the interaction of the purple with the cyan, and infer, I haven't told you how we do it that the cyan binds to the purple protein. Yes? In the sequence class, how do you account for sort of gap help and the fact that you might have sub structures that rely not sort of on structure, and you might have deviations? I'll get to that in a minute. Literally I just want to show you, this is what we're going to do. I haven't tell you how we do it yet. This is the goal. To use complexes as templates for other possible, known complexes as templates for other complexes. So I'll see exactly how we do that. So here is, this is the crucial slide in our method, and I'll take you through it. I have two proteins, query A and query B. And I want to know if they form a complex. So the first thing I need if I'm using structural information is a model for the whole protein or parts of that protein. And this model, model A and model B can come, if they're crystal structures from the protein data bank, it can come from homology modeling databases or whatever. I have a model. The next step is to look for the structural neighbors of each of these proteins by structural alignment. So we take protein A and we align it to every protein in the protein data bank to see what it looks like. And we find on the average 1,500 neighbors per structure. And here I'll say right off that we have very loose criteria for a neighbor. So we require that a minimum of three secondary structure elements superimpose. So because we're just looking for fragments or the whole protein or whatever. So if there are 1,500 neighbors per each, there's two million possibilities for a complex between this guy's neighbors and this guy's neighbors. 1,500 square is about 2 million. And in general we find around 300 complexes per pair of proteins. So we now superimpose the yellow on the browns day, the green on this pink. And we come up with a model for the complex. So we have a model based on this superposition. And now we have to score it. And the number of complexes we get is enormous. We are using 18,000 proteins. We find 1.5 billion possible pairs of interactions from this procedure. So we have to score literally billions of models. So the first point to make is we find that using this procedure of looking for structural neighbors we have an enormous number of models, much larger. And this is how we get to a genomic scale. The question is how do you score so many models? So that's what I'm going to tell you now. So the first thing we do is we have our PDB structure. And we know from the structure what residues are in the interface. Now the first thing we do is align our two models to this structure. And the first criterion we have is simply how good is the alignment. If six secondary structure elements overlap, it's better than three. So we have a score for that. The next thing we ask is, is the alignment in the interface? This sort of addresses what if the alignment was just on over here and over here, then there would be no interface in the complex and we'd throw it and we'd get a bad score. And the third thing we do is ask, are the residues that we predict to be in the interface, are they likely to be interfacial? That is statistically, are they likely to be interfacial residues? And we get a score for that. And we combine them in a, I'll show you in a minute using some Bayesian statistics to get a score for this complex. The reason we can deal with billions of models is we never calculate a pairwise energy. We only calculate the properties of the one on the left and the one on the right. So it becomes a linear rather than a quadratic problem. That's how we can evaluate so many models. So how do we do it? And I'm not a statistician. I hope nobody in the audience is an expert. But the way you, I'm learning, I'm learning, you do this with Bayesian inferences the following. You have a positive test set. These are proteins for which we know form a complex, say. And a negative set, which are proteins that we believe don't form a complex. Now if there's a property x, whatever that property is, some of the proteins in the positive set have a certain value for x, some of the proteins in the negative set have a value for x. And if there's a higher probability, if you have x, if you have a higher probability of being in the positive set than the negative set, that means there's some information in that parameter. So this is the probability of, given x, given in the HC-SEX set having a property x. So it's basically an enrichment in a case where you know the answer is positive. So this is, and then from this ratio, you get what's called a likelihood ratio, which is, again, just the ratio of the probabilities of being in the positive set relative to the negative set given x, a value of x. The nice thing about Bayesian statistics is that if you have independent sources of evidence, you get a likelihood ratio of their combination by just multiplying the individual likelihood ratios. So for example, if you get a structural score, and this score as you'll see in a second might be there also co-expressed, then you multiply the likelihood ratios to build up a total likelihood ratio. I hope this is clear, but this is sort of crucial to what we do. The next thing we need to do, I haven't convinced you yet that any of this works. I'm just telling you how we set up the infrastructure. The next thing we do is create test sets. So our positive, there are databases of protein-protein interactions. We look at all of them, and we only accept interactions that appear with two literature references, and we call that our positive test set. And our navigative test set is basically, in this case, the other 200 million interactions, some of them which will be true, but most of them will be false, because it's just everything possible. So that's how we define our positive and negative test set, and here are the sources of evidence we use. The first is the one I just told you, structural modeling. And just hopefully to make it clear, before we did anything else, we looked at these three scores, and we calculated a likelihood ratio from structure alone. Based on structural alignment, based on these interface properties, we calculate that independently. Then we'll go, I'll get to the orange ones in a minute, phylogenetic profile are, do these two proteins exist in multiple organisms? Are they always there together? Co-expression is pretty straightforward. Are they co-expressed? And again, we have to use our positive and negative sets to get a likelihood ratio for co-expression.  It's an annotation of protein function, and if they have a similar go term that increases the probability that they'll interact. And finally, orthology is, do their sequence neighbors and other organisms interact? So each of those is tested independently, and we get a likelihood ratio. Each of these makes a contribution. The two remaining orange ones are in part structure-based. One is, see, I've been talking about protein-protein interactions between structured domains, but what about interactions between a structured domain and an unstructured protein? So the way we deal with that is two methods. There's a database of such interactions, and we simply ask, does our protein have a structured domain that looks like one in this database and a sequence similar to a known motif? So we're not being very clever here. We're using existing databases to infer an interaction. Similarly, if there is a protein sequence bound to a domain and we know its structure, we can ask, do our proteins conform to this structure? I don't want to go into this in detail. But this basically is the logic of what we do. I'll skip this one. So this summarizes the total approach. I showed you this left part of the slide. This is the structural modeling score. We then take all these other sources of evidence, integrate it with structure in this Bayesian framework, and come up with a score, which we call a preppy score. Preppy is supposed to be predicting protein-protein interactions. Just for a moment of diversion, I thought it was a cute name, because I know what a preppy is. But most people not born in the United States don't know what a preppy is. And most people under 30 don't know what a preppy is. But for those of you that do, it was supposed to be funny. Anyway, but it means predicting protein-protein interaction. So this is what we do, and when we're finished, we have a database which you can access. You type in the name of a protein. It will give you its interaction partners. It will give you scores, tells you where the evidence comes from for that partner. And ultimately, it's meant as a hypothesis testing or generating procedure. This is sort of the nature of systems biology. It's statistical in nature. But we've succeeded in using structure on a really unprecedented scale, and that's something we're obviously very pleased about. One thing that is perhaps obvious to statisticians, but I sort of found it amusing, if we use structural evidence alone, we make predictions for about 130,000 pairs of interactions. If we use non-structural evidence alone, 115,000, when we combine them, we make predictions for over a million interactions. And that and our predictions, what we call high confidence predictions, are based on a likelihood ratio greater than 600. The number will mean nothing to you except it corresponds to a false positive rate of about 10 to the minus 3. So why is this true? Let's say we have a weak interaction from, weak prediction from structure, likelihood ratio less than 600, but also the proteins are co-expressed and have a similar function, then that will amplify the signal from structure and will give us many more predictions than we get from structure alone. Some other features of what we find, if we use the protein data bank alone, we make 47,000 predictions. If we use it just from structure with homology modeling, we've got up to 127,000. If we use other sources of evidence, again, the PDB alone, 250,000, with homology models, 1.3 million. So we're getting an enormous amplification from homology models. Now, the data and the evidence from PDB structures is much better than the evidence from homology models, but the evidence from homology models is still useful. Another way of looking at this, if we look at close structural homologues, say the same family or super family, this shows you that we make 47,000 predictions and we get very few predictions from distant structural relatives. But if we now combine this with other sources of information, we get enormous, most of our predictions are from proteins that are distally related. And this is, again, a crucial reason why this stuff, as you'll see, works well. It's the combination of structural information with nonstructural information. So everybody has their stories of getting published. We submitted this to Nature and people wanted experiments, as seems reasonable, except it's hard to do an experiment on 1.3 million interactions. But Cliff Zhang, who was doing the work, had friends in labs around the country. And he basically asked them to give him proteins they were interested in. He would make predictions if they would test them. And he had 19 proteins from different labs, actually most at Columbia, but one Tony Hunter at Salk. Of the 1915, the predictions he made were correct. So even though we had statistical studies on million proteins, this 19 is what got us into nature. And statistically, it's meaningless. But so that was one test that we did. And this is just one example I talked yesterday about kethyrins. We're interested in interactions between proto-kethyrins and other proteins, tyrosine kinases. We made a prediction where the interface was found. There was a key trip to fend there. Maniata's lab mutated it, and we abrogated the interaction. So we are able, when we have a structural model, to make testable predictions in some detail. There are many other databases of protein-protein interactions. And the most notable ones are taken from high-throughput experiments, such as yeast to hybrid measurements from the Vidal lab. Bioplex is a database taken from tandem infinity mass spec measurements. And we obviously look to see to what extent our database overlaps other databases. And this is a general feature of high-throughput databases, is nothing overlaps. It's somewhat disconcerting, but it either means that mostly we're making lots of mistakes, or there are lots of interactions that just get detected because different proteins are being studied and different methods are being used. But these are the two sort of standard gold standard high-throughput databases. So I'm going to give you a sense now of how our predictions compare to those. So we have to assemble data sets that we test. One of the ones I've already mentioned, data sets with two literature references for the positive set, the negative set, is everything else. But the Vidal group at Harvard has assembled very, very high quality data sets that we had nothing to do with with positive known protein-protein interactions and proteins that are known not to interact. So if we plot true positive rate versus full positive rate ignore the great curve, this is our preppy predictions. This is the yeast to hybrid data, and this is the mass spec data. And you can see that we're doing very well. So there's evidence that preppy is comparable to high-throughput experimental data. I should say high-throughput experimental data is lousy. But this is, again, the state of the field. The nice thing about preppy is you just have to go to our website and click and get a prediction if you're interested in a particular class of proteins. So I'll actually get to that in a second. But I'm sort of taking you through different applications of preppy. But yes, they do try to reconstruct protein-protein complexes. And we try to do that as well. And you'll see in a moment really how well we do. So here we're just looking at this carefully curated database. This is the likelihood ratio cutoff. And 600 is our cutoff for sort of high probability. And you can see that we reproduce about 60% of the interactions in this database. And this is a database of interactions which don't exist. And you see that at a cutoff of 600, we don't get any of those. So this is sort of adding to the reliability of our cutoff measure. Bioplex and the yeast to hybrid database just reproduce a much smaller number. Simply because they're smaller. So we are picking up a fairly large number of known interactions without using the information in those interactions. This is going to lead to some place we're going. There's a database of disease-related genes called ClinVar. There are other such databases. And there are disease mutations. So some of those have known mutations. But we looked in that database for proteins that are associated with the same disease. And we asked, do we predict that some of them interact with each other? And what this is supposed to tell you is that we find of these 3,700, we find that 500 are predicted to interact with each other. And 300 don't appear in another database. But if we take now the same number of proteins randomly chosen, but so they don't appear in the same disease, we predict only 41 interact with each other. So this is giving us some indication that maybe preppy can be used to infer something about disease-related proteins. So this is actually a very striking result, the difference between disease-related proteins and predicting that they do interact. And again, the other existing databases find a very small number, make a very small number of these predictions. So somehow, I mean, it seems reasonable that if two proteins are associated with the same disease, they'll have a higher probability of interacting than if they're not. And we're picking that up. This is a graph. And I'm sorry I'm sort of overwhelming you with graphs. I'll try to stop soon. The fraction of mutations of SNPs predicted in an interface, so in a series of sort of disease-related proteins, we look at their SNPs. We see here about 15% are predicted to be in an interface. If we take SNPs that are benign, much smaller number are predicted to be in an interface. So this is going to also point to something can we use our predictions to ask if a particular mutation disrupts an effect on a protein-protein interaction. So we have all these results that are very encouraging. And finally, in terms of your question about protein-protein complexes, what we did is we take this exactly what the bioplex people did. You have a protein-protein complex. In this case, it has four proteins. And we ask, what is the likelihood ratio of an interaction between each of them? And can we recapitulate the complex at a certain likelihood ratio? So this one, these two are found to interact with LR1, LR2, LR4, somehow 3 disappeared. But these three connections are enough to recapitulate the complex. And we ask, what is the minimum LR that recapitulates a given protein-protein complex and in a database called Quorum? And you see that at our cutoff of 600, we get about 70% of the complexes. So we're able, in principle, we have information to recapitulate protein-protein complexes. Again, the other databases just don't have the same coverage. So in principle, just sort of an aside, we could take this information and try to rebuild a complex from start. Remember, here I've started with a known complex and asked, can we account for the fact that there is a complex? But if I try to simply take a given protein and all of its interactors, I'd have too much information. So to actually rebuild complexes from scratches, something we're working on. But I'm not convinced we're going to do it. We'll see. So this sort of summarizes my attempt to convince you that preppy is a useful tool. And I'll just point out that we're using the same structural blast approach now to look for protein-small molecule interactions. And the goal here would be given a complex to predict, perhaps, small molecule inhibitors of disease-related proteins or whatever. But we're working on that, and it hasn't led to a publication yet. So in the time remaining, I'd like to sort of point to some new directions we're taking with this. Although I guess this is something we are publishing, there is something some of you may be familiar with called gene set enrichment analysis. And basically, there are publications where proteins of a known function are classified in a particular gene set, which is associated with the same function. So what we've done is the following. We take a query protein, and this is a list of its most likely interactor, second most likely, third, fourth, whatever. And we ask, is there an enrichment in a particular gene set? So if you look at these, the three purple proteins are number two, three, and six. So three of our highest confidence predictions belong to gene set one. Suddenly, this gray one, so the gray is distributed so there's no enrichment. So one can take these predictions and ask, are certain protein functions enriched? And use that to infer the function of the query protein Q itself. So the basic notion is, if a protein's interactors belong to some gene set, then the protein itself is more likely to belong to that gene set. So this is a way of inferring protein function, and this tells you we studied 10,000 proteins, 2,000 of those. The known function was in its most likely gene set, and about half were in the top 10. So this, I think, is a novel way to infer protein function by asking what the function of its interacting proteins is. And this is something, again, we've been pushing. So now the last few slides are going to sort of, in a very, very hand-waving way. This is more like a grant application, something that we've started to do now. So there are disease mutations. People do GWAS studies, and they find SNPs that may be associated with this and that disease. And the question is, then, how do you analyze what that SNP might be doing? And the only method currently used to analyze SNPs is to look at, see whether it might affect protein stability. So if you have a SNP that looks like it's, say, a buried charge in a protein, if you know the structure, you might infer it's disrupting the structure. But protein-protein interactions are not directly taken into account. And in this terribly complex slide, I just want to give you the notion of what we're working on. This is a protein P, which is, say, identified as being associated with a certain disease. So we look, this is sort of its interactome and the interactions of its interactors. We construct these networks. And then we can ask different questions. Does it have disease-related SNPs? Do its partners have disease-related SNPs? If there are other proteins associated with that disease, do they have SNPs that have a phenotype? And by doing this, we started doing this. We're able to assign function to different SNPs, to basically expand the information we have, but not only looking at the protein which has a SNP, but looking at the proteins around it that might have similar functions that are affected. So our goal ultimately is to take SNPs and identify them with protein networks rather than with individual proteins. So this is one direction that we're sort of going with this. Another direction is, which gets back to the prediction of interfaces, is to look more deeply at individual cases. Because ultimately, we have this method, but we'd like to use it. We hope others do as well. So we've become interested in Keras pathways. Now, Keras is a protein associated with many cancers. And Keras mutations are believed, people have not been able to drug Keras. It catalyzes the GDP, so there's a GDP cycle. And it's known that when it binds GDP, it basically doesn't bind to downstream effectors when it binds GDP. It does. And these are, this is pictures of our protein interface prediction method showing you that the GDP surface binds to known, it's known interactors, and the GTP surface binds in a different region to other proteins. So we're looking sort of closely at the difference between GDP and GTP bound forms of Keras. We've used Preppy to annotate, to find partners of Keras. And there are already many pathways associated with Keras. And most of the pathways, we've identified the proteins that are known to interact. But now we have a bunch of proteins that are not known to interact. And we're now testing those experimentally. So our goal, because people haven't succeeded in drugging Keras and inhibiting its function, is to find new pathways and hopefully be able to attack its effects that way. So this is a major focus in my lab now, using Preppy to find new pathways of known oncogenes. And finally, another area we're working on. So many of these interactions take place on membrane surfaces. Keras has a membrane, two-action membrane attraction binding modules. So many of the interactions take place in the 2D environment of a membrane. This is an example of a Keras pathway where it activates PI3 kinase, which phosphorylates PIP2 to PIP3, which then attracts other proteins to a membrane surface. And there's a whole cycle here of interactions. Most of them are known. We were able to add a Preppy prediction that these two proteins interact on a membrane surface. And again, that's being tested experimentally. So we think that, again, by looking in detail at particular pathways, motivated by the hypotheses Preppy has generated, that we'll be able to look deeply into specific biochemical problems as opposed to the more general list of hypotheses that we provide. So that's it. I just want to mention the people that were involved in this work. Donald Petrie is a senior scientist in my lab who is involved in everything we do. Cliff Zhang wrote the first copy of a first version of Preppy. He's now back in China. Nacho, Garzon, Hauwuk Wang did most of the programming on both Preppy and Predus. Diana Murray is a senior scientist in my lab who motivates much of this research. And Andrea Califano is my colleague in the Department of Systems Biology at Columbia. Andrea is a card-carrying systems biologist who works on cancer pathways. And he works on using, say, co-expression information. He'll look at tumors, see what proteins are overexpressed in tumors, see what proteins are overexpressed in normal cells or under-expressed. And from that information, uses reverse engineering to generate biochemical pathways, signaling pathways. So we are working with him to introduce structure into that line of research. And that's where we're going with this. So I think the message I'm trying to give is that we're at the very earliest stages of introducing structure into this area of systems biology. But I think it adds a perspective that really hasn't been there before. And with that, I'll stop and thank you for your attention. Is that something that can only be supporting complex that requires subtle structural rearrangement of production? And is there a lot to lose? So in principle, yes. But this is what I was saying at the beginning. Where if you ask me, what about alternate conformations of proteins? That's not information. That some proteins have conformational change. I know that. But I'm just, we're not dealing with that. We're dealing with things at a much cruder level. Even if a protein undergoes a conformational change, if I superimpose, so if I take the RAS case, there's a GDP and a GTP structure, they're different, there's some loops that move. I can use either structure in a crude way to predict whether it binds to another protein because most of the secondary structure elements are in place. So it's this point that I was making, we can't, in this sort of problem, we can't worry about detailed structural information because we're trying to do things on a genomic scale. Once we have a hypothesis, then we can look more closely, run molecular dynamics, do docking, whatever you want. The idea first is to find new hypotheses about what proteins interact and then to worry about what you're worrying about. But if we worry about it at the beginning, we won't be able to do anything. That's the issue that we're sort of dealing with. Yesterday you presented an interaction that was almost un-detectable, but what is actually more important was the context of other interactions. I don't know if stability was very much part of the preppy algorithm. It seemed to be a visual component. So it's possible that within your million or critical interaction, there are some that are functionally important, but un-detectable, maybe not. I'm sure that, in fact, most of our million interactions may not even be physical. They may be just functional. We detect physical ones by the structural score. But to make the point, there are two interactions I talked about yesterday, a trans interaction and a cis interaction. We detect the trans with preppy. We don't detect the weak cis interaction with preppy. But remember, that's really weak. That's a solution that's... Yeah, but if you're not, the duration of structure is important in these cases, if that's correct, so if the functional side has been preserved, but it's very much of the weak side of the spectrum, you might actually potentially capture it, but I guess it's not. I mean, we do capture weak interactions in some cases. The stability, I mean, again, it would be too much. We don't have that information for tens or billions. We just don't have it. So this is all based on using structural similarity and saying we can carry that up until a point to generate hypotheses. I mean, it's annoying. It's all my life I've worked on, as I said, every angstrom, I cared about every angstrom and every kilocalorie. And now I don't in this research. I can't. Yeah. So we didn't get a chance to talk about it. We started sort of rewriting preppy for viral host interactions. And yes, right now it's all structure-based. So we don't think we'll do as well, but we're hoping to see if you take, say, Zika virus. So I know where the money is. So Zika virus, we're going to look at what predictions we make for chicken and what predictions we make for human to see what's different. But I don't expect it to be as effective just for the reason you mentioned. Interaction is on one action. Yes, yes, it's all. That slide I had was too complicated, but yes, that's just the goal to extend it to that as well. First, I'll take host privilege. It's a little bit related to the question that Alessandro asked. So some years ago I had a postdoc and we did a binding site model for protein-protein interactions, kind of same functionality as credits and whiskey. And we ran into a problem, which is that we could predict the binding sites correctly, but then we'd get a lot of false positives and they weren't kind of scattered uniformly. They'd be a patch of that sort of protein. So how do you really, you know, so we figured this was probably like a binding site for another interaction partner. So how do you even know what your true negatives are when you can test these things? So it's a great question. All the questions are great questions, actually. I've never said it to anyone. That's a really bad question, but it's really good. So this came up in predest, too. And what we've done is we've... So we have a data set which the people use to test their predictions and those are known strong protein-protein predictions. You probably use the same benchmark set. But what we've now done is take our predictions and separated them into patches and we have our most strongly predicted patch or second or third or fourth. And we're actually thinking that the weaker patches might have something to do with protein solubility. So if you see a... Like, for example, drug companies are interested in antibodies that behave properly that you could use as drugs. So sometimes they precipitate out a solution and we're sort of looking at data now to see if auxiliary patches might be involved in that or perhaps another protein-protein interaction. So what we are classifying are most likely patch or second most likely patch, et cetera. So that's how that's going. Benchmark set that you use for training. These are mostly... I would imagine are high interaction, not energy working pairs. And if you look at these interactable maps, there are usually... You see these nodes and you look at them and you look at them once. And I'm imagining perhaps the benchmark set might be populated by the destroyer or by these protein-protein actions. And so if you wanted to look for, say, weaker transient interactions and if you kick out, say, some of these proteins out from the test set, I'm wondering if your life-intuitive issues might change and maybe a new future set might emerge that might capture these kinds of interactions? I think as we... The trouble is we need a data set of transient interactions to think about. So I think you're right that we are... There is a bias towards stronger interactions and again, I don't quite know what to do with that unless I have a data set that I can sort of retrain our parameters for the weak interactions. I expect that weak interactions are just like strong interactions, just less so that the same parameters might be used for both, but don't know. So the question is prepping for protein DNA. Yes, that's something we actually want to do. It won't get us at the problems that you and I worked on of specificity, but I think it can be used to identify protein DNA and protein RNA binding regions and protein surfaces. You start with complexes, superpositive proteins, see where the DNA is, and perhaps use that together with electrostatic properties to see if this is likely to bind to a nucleic acid. So yes, that's something we're actually beginning to do. We're doing prepping for drugs. We're doing prepping for DNA, for RNA, and for membrane surfaces because many proteins interact with membrane surfaces, sometimes specifically to particular phospholipids. So we're even making a preppy phospholipid version. So we're doing all that stuff. Well, let's give Barry a hearty round of thanks for... Thank you.


So, my name is Vedang. I work as a platform architect at HelpShift. This is going to be a crisp talk on simple scalability patterns. So, basically, HelpShift is a three-year-old startup in the mobile CRM space. So, as a startup, your greatest weapon is your agility, right? So, if you ship faster, that is how you compete with established companies. So, you have to balance these two requirements. You want to ship faster and you want your system to be resilient. So, any structural and architectural processes that you implement need to take care of both of these constraints, right? So, I want to talk today about certain simple things that you can do within these constraints. So, this is going to be the agenda for my talk today. So, first up is monitoring using logs, right? So, monitoring your system is really important, right? I hope you all agreed on that. So, without monitoring, basically, you're just flying blind. But having said that, monitoring systems can be complex to set up. So, surprisingly, or maybe not surprisingly, logs are very effective for monitoring system behavior, right? You can add logging around your network call, every network call that you make, and you can record stats like this. So, in a runtime like Clojure, which is what we use at HelpShift, you can even do this on the fly. So, you can collect a reasonable amount of data from production machines, and you can turn off this kind of logging to avoid the performance penalty. So, once you have logs like this, then you can use simple available unique tools like salt, cut, unique grab, and these will give you deep insight into what your system is actually doing. So, these are all the low-hanging fruit for you that you can quickly fix, and gain performance boosts.  So, this is a simple macro to do something like this in Clojure. And yeah, it's very effective for the effort that goes into implementing something like this. So, next up is database access patterns. So, the big problem which goes undetected and should not go undetected is unmounted DB calls, right? These are calls where you don't have a bound on the size of the response that you're expecting, or you don't have a bound on the number of requests that you will make in a certain call, right? So, no matter how hard you try, your dev and QA environments are never going to be the same as your production environment, right? So, real-world usage is really, really hard to predict, and we rarely think of the effects of data piling up over time, right? So, that is when we see problems with unmounted DB calls, where you give enough time to production, your data sets will grow really, really big, and then suddenly everything will fail over because it runs out of memory, right? So, the way to counter this is to use batch sizes when you make your DB request abstractions, right? Check that your DB clients provide batch sizes, default batch sizes, make sure that your requests have batch sizes. Real-world examples I have seen program was explicitly override batch sizes and say, give me back all the data for this query, right? Because that's convenient. So, catch that in code review. That should never go into production system, and give abstractions to your data, to your developers so that they can make chunk requests, and they don't have to think about how do I deal with this problem again and again, right? This is, again, a big problem. I don't know if it's a functional programming thing or what it is, but a lot of code gets written without any thought about what the side effect of the code is, right? These are all the problems that you should catch in code review. You should use, fetch the minimum amount of data that you're going to require, right? Don't fetch everything and then return the ID of that object, right? You should batch your requests. If you're making repeated requests to the same collection or to the same table, batch them and make them in one go. And you should not fetch the same data again and again, especially in the same request, right? Maybe across request you don't have the bandwidth to implement local caching or whatever, but in the same request I have seen people fetch the same thing again and again and again. Catch these problems in code review and they'll solve a lot of performance issues for you, right? Facebook has recently open sourced a library called Haxel, which provides abstractions, safe abstractions to your devs and abstracts away access to remote data, right? So this is exactly basically what I was talking about. This is what they implement and give you. So you can check this out, all right? So next up on our slide is, on our agenda is serialization and deserialization, right? So when you're building your data structures, think about how your data is going to flow through your system, not just for your current use case, as well as what, how it's gonna behave in the planned future, right? Every message queue that you use, every cache, remote cache that you use, when you put data through it, it's going to impose a serialization, deserialization penalty on you, right? So this slide, it shows an example of two data structures, one which store data objects as objects and one which store dates as longs, right? And the second data structure can be serialized and deserialized more than twice as fast as the first data structure, right? And it fixes as simple as this, like don't store data objects into your DB, store longs, right? So, all right? Next up, network calls. Network is scary, right? So when we are young and when we write things like, I became core Java expert in six months on your resume, then we also believe that the network just works, right? But given enough time, it is going to burn you. And we have full sessions dedicated this fifth elephant year to network flakiness, what happens in the face of partition tolerance and stuff like that, right? So, I trust everyone here will definitely attend these sessions. For the purposes of my talk, I would just like to say avoid network calls, right? Avoid them, just avoid them wherever possible. Network calls are slow. They are the number one reason for cascading failure in your system. And if your data size is small and it doesn't change too often, just cache it in memory, right? And if your data is not something that you can cache in memory, if it's really, really big, just compute the data, put it on local disk and use that, right? So, do everything you can to remove every single redundant network call in your system, right? And this is the best gif that I could come up for this. So, yeah. So, all right. So, integration points. So, an integration point basically is anything where your system is making a call over the network or to some resource, right? So, these are the number one cause for failure in your system. So, for example, say your database becomes unresponsive, right? So, your app server, all the threads on the app server are making requests to the database and they're waiting for this response to come which is just not happening, right? And because of that, all of these threads get blocked. And when the app server threads get blocked, the web server which made the request to the app server, that is waiting for a response and then all of those threads are blocked, right? And then slowly your system is in a state where it cannot do any work at all and then it just falls over, right? So, there are two powerful patterns which we can use to combat this kind of a problem. And I hope everybody uses these patterns. They're timeouts and circuit breakers, right? So, every call that you make to any resource should be configured to timeout. This waiting indefinitely business is just wrong, right? You should have default timeouts for everything. So, if you're using your database clients, you should make sure that the default timeouts are present and they're sane. For example, Monger, which is the library, closure library for accessing MongoDB, supports a lot of timeouts, but the default value for many of them is waiting indefinitely, right? Which is not very helpful. So, timeouts, the other half of timeouts is circuit breakers. The two patterns go really well together. So, circuit breakers track the health of your resource and avoid badgering it when your resource has become unresponsive, right? So, if you know that the resource is failed, you can do things like you can fall back to a secondary source or you can just fail that particular operation immediately, right? Without having to actually go all the way to the resource. So, this allows you to do graceful degradation of your system, right? The idea here is if you know that a request that you make is going to eventually fail, you might as well fail immediately, right? So, anytime you make a request, you already know all the resources you are going to require to satisfy this request. So, what you can do is you can check the circuit breakers on the resources and if all the circuit breakers are operational, your request can proceed. If any of the circuit breaker has stripped, you know that something is gonna fail anyway, so you might as well fail the request, right? So, this means that your system fails really, really quickly, it doesn't drain resources or hold up resources for a long time and this gives you a chance to recover piecemeal, right? Without having the failure cascade over. So, Netflix has open source library called Histrix, which gives you nice implementation of circuit breakers and also gives you a whole host of other scalability patterns. So, you can look into that if you're interested in these kind of things, right? So, along with timeouts and circuit breakers, basically circuit breakers have another really nice application, which is health checks, right? So, you should always have health checks for your system. So, a health check is just a way of querying a system and the system will return am I alive or not, right? So, it tells you if your production service is responsive or not and it is essential to support features like auto scaling. So, basically the idea is you bring up a machine, you wait until the machine passes the health check and then you send production traffic to it, right?  So, anytime your machine comes up, you can just query it to check if all the circuit breakers are operational. If they are all operational, then you can say, okay, fine, my service is up and it can take requests, right? So, with all of these things in mind, if you revisit our stack, so, you have now implemented all of these patterns. So, you can make sure that your failure will not cross these boundaries, right? So, basically now you can be sure that if one part of your system fails, it doesn't bring everything else down. So, you can have certain parts of your system fail, but you can still have the system working, right? Which is what is the aim in the end. You don't want one useless feature bringing down your essential critical stuff, right? So, yeah. So, that's basically what I wanted to say today. So, the takeaway that I want people to take is that designing scalability is a better thing than testing for scalability because testing is really hard, like we mentioned. It's really hard to simulate production environments. In fact, it is a really, really awesome problem which for some reason, like if you say QA, people get bored, right?  And the other thing is that scalability is an important perspective. So, if you're doing anything, if you're building a feature, if you're building anything for production use, you have to think about these problems, how it is going to behave under load, right? And you have to design so that it doesn't fall over. So, yeah. That's all that I had to say today. Are there any questions? Anything else? I didn't, what is the circuit breaker again? Oh, okay. So, let me go back to this slide. I thought I would run out of time. So, I went over without explaining this. So, a circuit breaker is basically something that trips when your resource becomes unresponsive, right? So, this is basically the life cycle of a circuit breaker. So, anytime you make a request, it goes through a circuit breaker to the resource, right? So, and the resource, the circuit breaker tracks the response of the resource. If it's successful, then the circuit breaker knows that everything is working fine. If it fails a certain number of times, then the circuit breaker knows that this resource is not responsive and there is no point in making the request, right? So, it will just break there. So, the next time anybody asks for the resource, it will just say, no, this is out, gone, not working, right? And it will wait for a certain amount of time and then after it waits for that time, it will move into this state called half open. So, the next guy who asks for it, the circuit breaker will actually make the request to the resource. If it's still failing, it will go back to, nope, this is not working. If it succeeds, it will go to a closed state where other requests can go through, right? So, it's a simple pattern where you avoid making the call and you get these benefits of not having your resources locked up, right? And if you know that your circuit breaker is stripped, for example, you can implement things like, okay, my database is not working, query from this secondary older slower source, right? So, your request might be slower, but it will still give you some response, right? So, you can do that or you can just check. So, when you're going to start the request, you can just check, okay, I need to access the DV, I need to access the search engine, I need to access the cache, right? So, are all these circuit breakers operational? If they're all operational, then great, let's go ahead. If something has stripped, anyways, I'm not going to be able to serve the request. So, Midas will just fail, right? Don't make any calls at all. So, that's the essential logic here. Anything else, any other questions? Hey, I'm Rohit, I think you had back pressure somewhere written in one of the slides. So, again, these are, so I timed myself and I was running over 15 minutes, which is the time for the stop. So, I ran through it, right? So, back pressure is another pattern for handling scalability problems. So, the idea here is basically that analytics consumer is consuming from the queue, right? So, if something goes wrong with that consumer and if it can't do anything, it just stops, it just stops consuming. What this does is it builds back pressure on the queue. So, it's saying, all right, I am not going to do anything. Now, it's the queue's responsibility to do something with his data, right? Either, so it's a queue, basically. He's gonna keep building the data until certain point and then it's gonna start dropping the data. The idea is that you die in bits and pieces instead of bringing the whole system down, right?  Instead, what you say is key, all right, I can't deal with this now, you deal with it, right? So, you give the responsibility to somebody else. That's back pressure. Hey, Siddharth, yeah. Yeah. So, you made a very generic statement that avoid network calls. Yes. So, this goes very much against the microservices pattern which is very famous these days. Yeah, so- So, I mean, what are your thoughts on the microservices? I mean- I have a lot of, I personally don't support or I would say that microservices is something that you don't need if you're starting out, right? So, prematurely implementing microservices is, I think, a bigger mistake than going the monolithic way, right? So, there are certain important wins in the microservices way of thinking which is loose coupling and stuff like that. But you can implement all of these things in a monolithic architecture as well because with microservices there are a lot of problems that come up, mainly operational problems. So, it looks very nice from a dev perspective but it is hell for ops people, right? Because now you don't have to maintain one service. You have to maintain five services, clusters for these services, fallbacks for these services, network problems in these whole services when they contact to each other, right? So, it's a lot of pain. So, basically I would say take the whole microservices hype with a grain of salt. There is a cost to everything. So, there is a cost to moving to microservices architecture as well, right? So, there are patterns like channels, queues that you can implement in your monolithic system as well. You don't need to have separated systems for these things. Anybody else? Any other questions? Hi, my name is Mohit. My question is that the circuit breaker has run after what the duration of the time. So, this is a health. So, that is up to you. You can configure these things, right? So, the thing is that suppose I deploy my app and after that I have the application deployed on the four different servers distributed in my mind. I'm sorry, I can't hear you. Can you slow down? The question, okay. So, my question is that suppose my app is deployed on the seven or 10 different servers. And after that, you know, the deployment just happened and after that, the first request is hitting to the server and at that point in time, I'm checking the health of my, you know, the application different resources. So, that's not all. So, you can configure your circuit breakers to handle each failure, right? So, I'm not saying the first time it fails, you trip the circuit breaker. You can have a counter. You can say that this must fail at least five times before I consider this resources down. Right? Okay, so. You can also handle different failures differently. For example, if your system is saying that okay, it's down, right? If the cluster says to you, all right, I don't know what is happening. This is just like a 504 error. I have no idea, 503 error. I have no idea, right? You can handle each of these things differently versus you can slow responses, right? So, you can track, okay, my response is I expect it to happen in 10 milliseconds, but it is happening in 50 milliseconds. This is a slow response. So, I can behave differently for this scenario versus for outright exception, right? So, suppose the scenario like, I didn't get the response in a very, you know, the consistent way. So, suppose in between, I run the health checker and that point in time, the user is requesting the app and that get delayed in their response. So, how we can handle these kind of the situations? I don't understand the question, actually. My question is that suppose that I run this app. What I'm saying is that these are all checks, right? So, these are not like bullets for you to do things, right? So, health check is, you cannot check the full system that is running in production. You can't check everything that is happening there, right? So, health check is a simulated check. So, you are going to say, okay, these are my core things, these are working, right? This definition of health check is up to you. You might check whether certain function is working or not. You might check whether certain thing is accessible or not, right? Whatever, it is up to you. But it is important to have health checks in your system, right? So, that's the basic idea. And if you don't have the time to implement a generic health check, circuit breakers can give you a simple solution there. Thank you. Any other question? Yeah, hi. Excuse me. Could you go on a bit for graceful degradation? I don't know, where is it? Hi. Graceful degradation, could you elaborate a bit? So, graceful degradation is, so for example, what you do is, if you're rendering a webpage, right? You render a simpler webpage. You take away certain actions that the person can do on your site, right? So, that is an example of graceful degradation. So, you decide what is important to your system, what is not important to your system, and you keep going back to a point where, okay, now I can't do anything, my system is going to fail. That's when you actually fail. So, you don't fail at the first part of your system crashes. You allow for certain graceful way of die, right? So, for example, like I said, if your system, if you're okay with slow responses, ideally you would really like to have your response returned really quickly, right? But maybe your resource which you're using has died. So, you can maybe fall back to something which is slower, but which will work, right? That is a graceful degradation. So, it's not ideal, but it's working. That's the idea. Does that answer your question? Okay, thank you Vedan. Thank you so much. If you have any other questions, please catch up with me.


T F N N deadline news update Welcome folks. We this is a T F N N. Sorry about this folks Okay, we have the Dow industrials right now a trading Down 150 Nasdaq's down 20 S&Ps down 250 gold gold contract down $2 and 10 cents trading at 15 58 an ounce We have silver down 26 cents $17.81 an ounce a light sweet crude flat $58.34 a barrel notes and bonds you get the 10 year up 17 ticks 129 19 the 30 year up a point and a half at one 58 21 now both notes and bonds you're talking about expansion and price it has it all with volume behind the move These continue to want higher price lower yield we get open we take a look at the 10 year first You're gonna see it took out its consolidation over the last two weeks going after the highs that were generated out here on the 8th of January that's your high volume high and that folks are saying that we also can get up to 133.02 Inside the 10 year, which is going to just continue to bring rates into lower price right now that Yield is 1.76 we get open we take a look at the dollar dollar index right now Had a nice counter share in bounce last week Bottom line hanging at the highs out here 97 533 what the dollar has not done. However, is that it is not broken It's down trend that it changed from an uptrend to a downtrend on the first week of December Bottom line that number there in order to break that would have to get way above Then about the 99 mark and right now you're at the 97 mark We get open we take a look at the s&p's would you have happening in the s&p's out here? You get a sideways move out here bottom line spy got to a price point today of three 3218 your high out here was three look at that was 332 18 So this is about as intense as you get we actually tested the highs of Friday You're gonna have lighter volume right to the penny That's pretty amazing actually because what we did on Friday is that you had higher highs on Friday And you had volume behind the move today out here You're not gonna have volume behind the move the cues have also tested the highs 223 84 and 223 56 was the high bottom line It's gonna be really intriguing because what you have there that is a test of the highs failure on price failure on volume After this monster expansion top side stay right there folks come back next 60 minutes straight