Welcome to the European Docs Office Hours here on June 30th, 2022. We have a little bit of an agenda today, going over a handful of different things, a couple of item updates from Mark regarding the Docs mailing list and a couple of blog posts that will eventually be given, shared in a week or two. We have the Jenkins LTS Change Log and Upgrade Guide that will be coming out soon with the next LTS release, which is going to be in a couple of weeks from upstake and mark. Ideally, of course, and then we have Vihan here. So if Vihan can give us an update about the Google Summer of Code, that would be great. And then some other items about the Java lever requirement and things that are happening right now that folks like Basil Crow are helping us out with and making sure that everything is ready to go for continuous improvements. And then if there is some time and we have the chance to, we can go over some further localization with Crowded. If Alex isn't here, we can pin that for next time. So Mark, if you want to just kick us off, talk about the first couple items here under the action items. Yeah. So no progress on archiving the Docs list and no progress on the three blog posts. They'll have to wait for at earliest next week. That's it. Sounds good. Yeah. And then the Jenkins 2.346.2 change log and upgrade guide is something that Mark and I are working on and will be working on as we go through. There was some discussion about potentially doing that today. We can definitely come back to that if that would be best mark. I did want to make sure everyone has a chance to share their updates and whatnot. So, okay. But yeah, that'll be taken care of and we'll be sure to update everyone when there's further news about that. So if you want to share updates on the Google Summer Code project and what you've managed to accomplish in the, since our last meeting. Yes, sure. So in the last meet, I was working on the data types of the steps, the parameters and bringing them up to the top. So that pull request is created and it is working fine for now. We are reviewing it for some possible refinements. So it is not yet merged, but I'm sure it will be that the result of that PR is pretty good. So for some larger pages, I observed that the page length could get reduced up to a seventh or a sixth. So that extra space that the types were taking or being shifted to the top are actually more readable also because earlier the user had to expand the parameter and then go through the help in order to read this type, but now it's there in the top itself. So yeah, that is working fine now. And today I also created a draft to request in the pipeline metadata utilize repository that is a repository we'll use to maintain the remote plug-in manager that is to be shifted from the pipeline step dogs repository. So our plan is to release it as an artifact. Release the metadata repository as an artifact on Maven, which can then be imported on to the pipeline step dogs repository and used basically as a dependency and then we can get rid of the classes which are there locally. So this will help the other projects which want to use the power of the plug-in manager without running a separate Jenkins instance without mocking it in their own repositories. So that is a process that we also want to take some help from the community because neither Christian or I have the permissions in order to push for the or the Jenkins group on Maven. So that is something that it will require some help from the community in the upcoming week. And yeah, I guess that's more or less of it. So yeah. And I saw that you had posted in the Gitter channel about a couple of above pull requests and everything. Was there anything that you'd like to demo or share here? I can stop sharing my screen if there's anything. Just want to make sure you give me that opportunity as well. Sure. So I can demonstrate the data type pull request if you'd like that. Yeah, why not? Let me go ahead and just run it real quick. So meanwhile, we also reviewed the plug-in list for requests and as per some feedback from Tim and Mark, I think it is best suited not to work further on that particular feature. We can leave it dangling as it is over there. And in the future, if you feel that we have some other idea regarding the same, we can perhaps create a new pull request or update the same towards it. So yeah, I guess that is more for that. So I'm not working anymore on that particular feature. So I'm just running the Jenkins right now. And what kind of things can we do as the community like for reviewing the pull requests and anything else that might be coming up? What can we do to help out in these cases? I think as of now, I have three pull requests that are being left to merge. Small one. So what is that plug-in list which I mentioned? So nothing to be done on that side. But on a more general note, I think whatever UI-based changes are there, I'll share on the box channel the screenshots and everything like I did for the data, I think. And for the more back-end kind of stuff, the release and all, I think we'll let it, we'll let you know on the channel itself. So if you require any help as such for the pull request and everything, I think everything is going as smooth as it can probably. Yeah. So I'll just share my screen real quick now. I guess this one's, so can you see the screen by playing Groovy Library, is this one? Yes. All right. So I'll just show you the main, the larger one so that you can get an idea. So what I did to see the page size was I disabled the JavaScript altogether. So all these things got expanded. But we can see from the flow itself. So these all are there on the top now. So you can see the data type right beside the name. And for larger things, such as this one, when you expand it earlier, the string was coming all under under this stuff. So we had to go through this stuff. And till the time you reach there, you actually forget what that type was really about. So that comes out of nowhere. So that space gets saved as well. And this is now coming everywhere. So I've handled every particular situation because there are a couple of different types of nestings going on over here. So all of them are taken care of now. And all in all, I think this feature is working fine with the pull request. So this was a little demonstration for the scene. Yeah. Thank you so much. That looks great. That navigation looks a lot cleaner and everything's very, very nicely placed in a line. So that's wonderful. Thank you so much for all this work and everything that you're doing for the Jenkins project. It's really appreciated. Cool. So now that we've gone through the Google server code, just a couple other points here. So with our weekly release last week, or was it this week? I forget now, Mark, which was it last week or this week? We released that push the Java level requirement this week, right? This week. Yeah. Okay. So with the weekly release line, the Java 11, Java 11 is required. And so alongside the Java 11 requirement, there are other improvements and enhancements and upgrades that need to be done. Stuff like jetty being upgraded from version nine to 10. There are some other API upgrades that might need to have that need to happen as well. Stuff like the serve late API specifically. And the encoding will be changing to UTF, eight instead of go to ASCII doc. So a lot more uniform and consistent across organizations. And Mark, is there anything else on the Java 11 improvements that we should be aware of or note here, or does that cover the general idea? I think that covers it. Thanks, Kevin. Yeah, no worries. Of course. Great. So that actually takes care of the agenda pretty quickly. Mark, did you, was there anything else you wanted to go over or take a look at here? So Veehan, Veehan had mentioned of something that I think is worth a question to him. So Veehan, you indicated you and Kristen may not have permissions. I think we gave Kristen permissions to the permissions she had previously that should have allowed her to release new versions, at least of pipeline step stock generator. Was that what you were referring to? Or is there something else? I was referring to the Maven deploy permissions. So basically under the groups that we have right now. So for example, what I plan, what I was planning to do was we can define Jenkins file for that metadata repository. And in that we will push to the Maven repository for that particular artifact every time the source code changes. So much like it happens with the other things also. So for that pushing the Maven repository, I think it requires some different permissions and I'm not sure how it is done. And probably if I'd get some idea of a similar repository and to see how things are happening. So maybe some other artifact to see how it is working out. Then I can maybe just take some stuff from the Jenkins file. And after that whole thing is released ready, then we can. Then we can ask about the permissions and all required to do the same. Okay, so it may be at least I think it's worth you exploring. I'm going to put a hyperlink into the document. And then going to ask Kevin to click the hyperlink so that we can look at it together. But I think you may want to try this. So what incrementals are is they provide a facility for Jenkins plugins to do. To save the results of pull request builds. So Bruno submits a pull request to improve the get plugin. And when he does that. His pull request actually becomes the binary of his pull request becomes visible for other people to consume. Through repose dot Jenkins.ci.org. And they then can refer to it by this, this incremental syntax. So this special version number that says this is an incremental. And this page talks about how to do that. You may want to explore that. I'm not sure if it will work with, with non plugin components, but I would expect it to work with them. So you may want to look at, could we enable incrementals on pipeline steps doc generator, for instance, if you need to do something with it. Ultimately, I think the thing you want incrementals on is probably the, the library or extracting right rather than the generator itself, but, but it's pipeline steps doc generator gives you a place to test drive that like. Sure. So we also saw some other non plugin repositories that had a release type of feature. So the first thing that we looked at was the plugin installation manager tool. So that had a GitHub actions and everything set up for it. So it had releases also, but the one thing that I couldn't find for it was a Maven artifact. So I don't think it is published as a Maven artifact on the repository. Basically I was looking at the Maven repository.com for all the repositories associated with Jenkins. I assume all of them are present on that link itself. Well, so let's your question is a good one. Let's take a look. I think I can show that the Maven that the plugin installation manager is in fact deploying to the repository. So let's are you okay if we explore that for just a little bit? Sure, sure. I would love that. Okay. So Kevin, I'm going to put another hyperlink into the document. And let's let's use this as our test case. So plugin installation manager. PR. Sample. And let's try it. So. So there's the Kevin, if you can click through that link. What that takes us to. Oh, nice dark theme. Well done. Okay. So. What that takes us to is. Here are components, including jar files with interesting version numbers inside there, the name of the file. Now if we copy that one of those file names. I'm going to try searching repo dot Jenkins CI.org to see if I can find that thing. I'm going to go to repo dot Jenkins repo dot Jenkins dash CI. dot org. Right. And you may not be able to search at Kevin because it may require authentication to do the search. Got it. But let me, I'm going to explore this to see it may also take more time than we've got to do. To find it, but if I look for that. Okay, let's try artifacts. Okay, and incrementals. And what is plug what is the path of the plugin installation manager tool. It is. IO dot Jenkins that plug in dash management. Okay. So, I owe that plugins. No, I don't. Jenkins plug in dash management. There it is. Okay, so I owe. Like in management CLI RC. Okay, what was our string that we were searching for again, it was something like embarrassing. It was an RC something or other. Here we go. So, the thing I'm looking for is 2.12.4 dash RC 621. 2.12.4. No, as I'm seeing an awful lot of. Yeah, here we go. I certainly see lots of them. Yeah, this one is not okay. So it looks like the plugin installation manager tool is definitely Kevin I'll send you a URL. Let's, let's get this one. So I'm going to paste into the document another URL that will let us navigate inside the repository stored in Artifactory. I'm going to paste this location. Okay, so try clicking that and see if it opens us into a, oh, it would help if I did a better job of copying and pasting wouldn't Mark, don't you share your screen. Sure. Yeah, I could certainly do that maybe much easier. I'm not sure that it'll help. We need a document that shows where we're at, but here let's share my screen just in case. Okay, so share screen is right here. Okay, so what you should see on screen is the Artifactory location. Am I sharing the correct screen. Yes. Okay, good. All right. So the place I am is I am in incrementals. .io dot Jenkins that plugin dash management plugin management CLI and now as we look through all these artifacts, we'll see a one dot 12. No, what was it? Is it 2.12.4. Here we go. 2.12.4 dash RC 618. This is the one that is corresponds to pull request 416 most recent build. So I think beyond this thing has facilities to do so plug in installation manager tool does deploy incremental builds. And I think that means you can should be able to do the same thing with plug in steps doc generator. So let's let's see if we may want to do a comparison between plug in steps doc generator and and plug in installation tool manager. I suspect what we'll find if everybody's okay with me again sharing my screen or continuing to share my screen here. Let's look at. Sorry for interrupting, but okay, we have seen that maybe the plug in could store the plug in artifacts in that are the factory or J for whatever the repository, but could anyone consume that afterwards or should the people who want to consume that have a login to this website to this repo. So the artifacts can be consumed without requiring any authentication. And so so as an example as an example that that I specifically use when I need to make a change to the get client plug in, I'll make the change in the get client plug in and then in the get plug in, I will reference that changed pull that the pull request incremental build that pull request and use it. Or when I need to test drive a an incremental plug in I will actually define it in my configuration as code. And it gets pulled as part of configuration as code. So so it's supported at multiple levels. Now let's see what what this thing. Ah, yes, there it is. Okay, good. So beyond here's the here's the evidence that this thing has been incremental has been made allowed to be done incremental dot mvn slash extensions. This thing is one of the components required for incremental builds. Now let's see if we can find a plug in steps doc generator pipeline steps doc generator right there it is. Okay, and it does not have a dot mvn directory. Okay, so what that tells me is plug in installation manager is able to deploy incremental builds. And the reason it can is because it's been incremental applied. I know that's not a word but it's been it's been given incremental capability. And the way that's been done is through this page, the instructions here on the Jenkins dot io page incrementals developing components in parallel. And what this tells us is to do this, we say incremental build. And we submit a poll request on the way to say, is this the right one? Oh, no. Let's look at this one. No, no, that should be it. That that was okay. Sorry, reading, reading more carefully here. So I think what we do is we run this command. And if I do that, again, everybody's okay with me doing this kind of live, live manipulation. Okay, so. If I do exactly that. First. Enable incrementals. Okay. No plugin found. Oh, now I think this may be Vihans question. Why doesn't this include the Jenkins parent palm. Vihan, didn't you ask that question earlier? Oh, yes, I did. I think you did. And it may be that in order to do an incremental with this thing, because if we look at the palm dot X and L file of this. And we compare it with, let's see what was it core plugin installation manager palm. Here the plugin installation manager has the Jenkins palm as a parent. This one has no parent.  Nope, it still didn't like that. So there's more to it. So I don't know what all will be required. Mismatch. Oh, no. Okay, so there this does not this message is not unresolvable. I think it could be fixed because it's telling me something that it sees is wrong. And if I look at SCM, I may even see what's wrong. Yeah, for starters, this is wrong. So more research needed, but I think I think you might be able to use incremental on you may be able to use incrementals. If you're willing to do the investigation to understand this this piece. I think this helps me a lot actually. So maybe a one very nice type of question so earlier I was actually looking into the ambient repository dot com and I send the link on the chat actually. And I thought that was the artifact that was the place where we store all the groups and the artifacts, and I was trying to find most of them over there but then I also found out a repo dot. I think it's Jenkins hyphen CI so I found that so which one is a standard one like is there a difference between the two and what is there there is a difference between the two repo dot Jenkins CI dot org is the authoritative repository for Jenkins artifacts. So when when a plugin is released it's written to repo dot Jenkins CI dot org. When a palm file is released it's written to repo dot Jenkins CI dot org. It may be mirrored or copied to many other Maven repositories including the one you mentioned, but the authoritative location the original location where releases are pushed is repo dot Jenkins CI dot org. Oh, right. So basically we can take any artifact over there and we can put it in our formula dependency. Anything that is available on repo right should be able to yes. Now that's that's a pretty bold statement so I'm sure I could be proven wrong in many different ways but but repo is the authoritative Jenkins repository. Sure thing. Yeah that helped me a lot actually a lot of my doubts that we are that way. This is great actually thanks thanks a lot for doing this. Thanks. I look into this one. Okay, well and as a favor to me if you'd be kind enough to this one single change that I made needs to be made no matter what. So I'm going to show you this one. Sorry go ahead Bruno. Yes sorry that's because the grid protocol is not available anymore forget that that's it. That's correct. Exactly. So, so this URL is just broken. It won't work anymore at all. Now it's it's never used as far as I know so the fact that it's broken is hardly ever detected, but GitHub has turned off this protocol completely and they no longer even answer to that protocol. So in order to give them a URL that will answer you use this HTTPS instead. And I guess one more question that I would put here and is there a need to set up GitHub actions for the metadata users that will create. So for the plugin installation manager we have. We have the release system on GitHub itself. So do you think it will have any real use for the pipeline metadata is also. I think it would be quite useful and and there's actually documentation that describes how to do it here on it should be this one. No, sorry, not that one. Jeff dash 229. Jenkins release automation. Okay, we're going to have to go find it the hard way the search engine is not finding it the way I wanted developer guide. How to guides. Release. Setting up automated plugin release. So this, I think the same technique for automated, automated releases that's being done for, for other tools could be done for, for the pipeline steps documentation generator. Now the plugin installation manager tool isn't using those as isn't using this particular form of delivery. It's still released and is still released manually. But but the idea of automating release is a good one. And your question, should we be doing other things? Let's look at some of the actions that are on that repository just to see. So release draft or yes, if you don't have release draft on pipeline steps doc generator, you want it. It's a good thing to have and publish artifact. Isn't harmful. It's, it's a nice thing. What, what we get with publish artifact is when I look at the list of releases here. This list of assets includes the jar file. And that arrived there because of that GitHub action. So that GitHub action is smart enough to go find the place that builds this thing and copy it into GitHub for convenience. Now I don't know that pipeline steps doc generator will benefit much from that. But if we look at pipeline steps doc generator, let's go look at it. Pipeline steps of shame on me. It's not here. Okay, fine. Pipeline steps. Nope. Okay, just a minute. We'll go find it. Line steps. Is it in infra? Help me out here. Yes, it is. Ah, okay. Good. There we go. Okay. Okay. Right now this doesn't have any actions to find, but I don't know that for instance, it also defines no releases. And so the release drafter thing won't help much. Now you may, you and Kristen may together say, Hey, we should start using releases so that we have known points where we can declare this was what we delivered in this release. And if so, then release drafters are good help. The way we use GitHub actions for Jenkins repositories is just to document our changes as releases. And maybe to like we saw there, maybe to provide links of those jars as the releases come. So that that's it, right? So the repo is getting pushed to the repo and everything that is happening with a different way. So with the Jenkins files, Jenkins file, I guess, and the Jenkins files file for that uses the build again thing. So that is also something that's very interesting because it's not a plugin itself. So yeah, so there are certainly more ways we use GitHub actions. For instance, we use GitHub actions to do, to do plug in releases through continuous delivery. Let's choose this one schedule build plugin. So what you'll see here is releases, this set of releases are actually generated automatically. And I believe there is an action associated with that. So we're using on this one, we use GitHub actions to support our continuous delivery process. We also use GitHub actions to support translation into other languages through crowd in. We also use GitHub actions to do security scans. We also use GitHub actions to label pull requests automatically and those are all valid uses. So now I don't know if any of those, this one, the CD one may be quite helpful to you. And that's described on the Jenkins.io page here. This one talks about automated plugin release. This is really telling people how to do continuous delivery. And part of that is this, this GitHub action other parts are described here. So right. So it talks about you need to make a change in the repository permissions updater. You need to configure release drafter. You need to configure a GitHub action for the continuous delivery workflow. You need to configure dependabot. Those kinds of things. Right. Did VHUN, does that help you? Yeah, it helps a lot actually. Okay. The main idea is we can treat a non plugin repository as a plugin repository and use these steps over there. So is there anything that you have to prepare the repository before applying these changes? I love it when someone says something really bold. Yes. So what you, I would, I would rephrase your bold statement. You may be able to use many of these techniques on a non plugin component. And while you're doing that, you may discover things where you say, oh, this doesn't quite work and have to ask for help. And that's okay. Sure. Great. I think I took a lot of time, but it was definitely worth it for me. Excellent. Thanks for your questions. For me also, I learned a thousand things. Thank you Mark for taking time to explain everything. Thanks a lot Mark. Yeah, so, so Vian, you're okay then with the idea that if, if you want to do an automated release of, if you want to do releases of pipeline steps doc generator, and that's something to negotiate with Kristen, I think it makes sense if you want to do releases of pipeline steps doc generator, then. These, these steps, the enable release draft or enable incrementals, continuous delivery are all good choices. I think right now the way pipeline step stock generator is used is it's taking, I assume it's taking the most, it's either building itself every time it's used, or it's taking the most recent bill that I don't know which. So this is something that we can definitely look after our artifact, the artifact release thing is set up. This is the next big step for us. Great. Definitely something that I'll discuss with Kristen, the next project specific officer. All right. Super. Yes, but actually going to link. It was a schedule plugin for which we saw the different GitHub actions, right? The CD and everything. It was. And, and that's one of many there are 200, over 200 plugins right now that are enabled for continuous delivery. So schedule build plugin is just one example. Awesome. Yeah, that looks like we're all set for today. We are against time. So when we come to some given one of the time that so if Mark could stop the screen recording.


Hello and welcome to the session. In this session we will discuss curve sketching of simple curves. Now let us discuss the graph of a given function y is equal to f of x. Now we will follow the following procedure. First of all let us discuss the symmetry and first is the symmetry about the origin. Now if we replace x by minus x, y by minus y and the equation of the curve remains to be symmetrical about the origin. For example the equation y is equal to x cube. Now here we can see that this equation remains uncertain if x is replaced by minus x and y is replaced by minus y. Therefore this graph of the equation y is equal to x cube is symmetrical about the origin o. Now we can also check this. Now put y is equal to minus y and x is equal to minus x in the given equation. Further this will be minus y is equal to minus x cube which implies y is equal to x cube. So here we can see that by replacing y by minus y and x by minus x the equation remains unchanged. Now second is the symmetry about the x axis. Now here we replace y by minus y and the equation of the curve remains unchanged. Then the graph of the given equation is said to be symmetrical about the x axis. Now check of the equations x is equal to y square and x is equal to minus y square. Now for the equation x is equal to y square I am replacing y by minus y that is here. I am replacing y by minus y the given equation will remain unchanged. So we can say that the graph of the equation is symmetrical about the x axis and also for the second case this is the graph of the equation x is equal to minus y square. And here also y by minus y the equation will be x is equal to minus y square. This means that the given equation remains unchanged when y is replaced by minus y. So we can say that the graph of the given equation is symmetrical about the x axis. So the first graph is symmetrical about the positive x axis and the second graph is symmetrical about the negative x axis. So we can say that the symmetrical about the x axis occurs whenever the even pass of y occurs in the equations. Similarly we can discuss the symmetry about the y axis. The symmetry about the y axis by these two examples. Now if we replace x by minus x in the given equation and the given equation remains unchanged when we say that the graph is symmetrical about the y axis. For example if the equation y is equal to x square if we replace x by minus x then the given equation remains unchanged. So we say the graph of the given equation is symmetrical about the y axis of the equation y is equal to minus x square symmetrical about the negative y axis. Now let us discuss the symmetry about the line y is equal to x. Now if in the given equation x is replaced by y and y is replaced by x that is x and y are interchanged then if the given equation remains then the graph of the given equation is said to be symmetrical about the line y is equal to x. This is the graph of the equation root x plus root y is equal to 1. Now here on replacing x by y and y by x in an equation remains that is here we have replaced the values. All we can say we have interchanged the values of x and y and the given equation remains unchanged. So we can say that the graph of the given equation is symmetrical about the line y is equal to and now let us discuss the symmetry about the line y is equal to minus x. Now if in the given equation we replace minus y and y by minus x and if the given equation remains then the graph of such equations are symmetrical about the line y is equal to minus x. For example this is the graph of a circle the coordinates of whose center are minus 2, 2 and radius is equal to 2. Now the equation of the given circle is x square plus y square plus 4x minus 4y plus 4 is equal to 0. Now in this equation I am replacing by minus y and y by minus x we can see that the given equation will be y square plus x square minus 4y plus 4x plus 4 is equal to 0 which is the equation that is the given equation x square plus y square plus 4x minus 4y plus 4 is equal to 0. This means that the given equation remains unchanged when we have replaced x by minus y and y by minus x. We can say that the graph of the given equation is symmetrical about the line y is equal to minus x. Let us discuss few examples. Now the graph of the equation x square plus y square is equal to 1 is symmetrical about both the axis. It is also symmetrical about the line y is equal to x y is equal to minus x. Now this is the graph of the equation x square plus y square is equal to 1 which is the circle center 0, 0 and radius is equal to 1. Now this graph of the equation x square plus y square is equal to 1 is symmetrical about the x axis as I am replacing y by minus y and unchanged also the graph of the given equation is symmetrical about the y axis as I am replacing x by minus x. The given equation will remain unchanged and it is also symmetrical about the line y is equal to x as on interchanging that is by replacing x by y and y by x. The graph is also symmetrical about the line y is equal to minus x on replacing by minus y but y by minus x the given equation again remains unchanged. And the graph of the equation x square minus y square is equal to 1 is symmetrical not about the line y is equal to x and y is equal to minus x. Now let us see how to check that the curve passes through the original or not. 0, 0 satisfies the given equation then will pass that is the curve of the given equation will pass through the original otherwise not. Now let us take an example now the curves y is equal to x square x is equal to y square the point 0, 0 these equations and as the point 0, 0 does not satisfy the given equation that is the equation x square plus y square is equal to 1 and x y is equal to 2. So the curves of these equations do not pass through the original the intersection with the axis. Now let us discuss it with the help of an example. Now for the equation y is equal to x square minus 1 is equal to 0 in the given equation we get the point of intersection of the curve of the given equation with the y axis. So here we get y is equal to 0 minus 1 which implies y is equal to minus 1 therefore the curve 0 minus 1 when y is equal to 0. Therefore putting y is equal to 0 in 1 we get minus 1 is equal to 0 which implies x square is equal to 1 which gives x is equal to plus minus 1. So the curve cuts the x axis letters 1, 0 and minus 1, 0. Now let us discuss how to find the turning points of the curve. Now for turning points we know that f dash of x is equal to 0 and on solving this we get the turning points. Now we have considered this example here f of x is equal to x square minus 1. So for turning points f dash of x is equal to 0 and on solving this we get the turning points. Now f dash of x will be equal to for turning points f dash of x is equal to 0 which implies 2x is equal to 0 which further gives x is equal to 0. Now for x is equal to 0 from the given equation we get y is equal to minus 1. Therefore the tangent at the point 0 minus 1 is parallel to the x axis. Now let us discuss the intervals in which the given curve is increasing or decreasing. Now for increasing curve f dash of x is greater than 0 and for decreasing curve f dash of x is less than 0. Now for y is equal to x square minus 1 for finding the increasing interval f dash of x is greater than 0 which means now here f of x is equal to x square minus 1. So f dash of x will be equal to 2x that is 2x is greater than 0 which implies x is greater than 0. Add for decreasing f dash of x is less than 0 which implies 2x is less than 0 which gives x is less than 0. Therefore the function increasing for x is greater than equal to 0 and decreasing for x is less than equal to 0 that the function has the minimum point x is equal to 0 because before x is equal to 0 the function is decreasing and after x is equal to 0 the function is increasing. Therefore the minimum value y is equal to x square minus 1 is y is equal to 0 square minus 1 which implies y is equal to minus 1. Therefore 0 minus 1 is the lowest point on the curve. Now let us draw the graph of y is equal to x square minus 1 for this first of all let us draw a table for the different values of x and y. Now for the different values of x as 0, 1, 2, 3, minus 1, minus 2 and minus 3 the corresponding values of y are minus 1, 0, 3, 8, 0, 3 and 8. Now we will plot these points on the graph so we have plotted all the points on the graph. Now on joining all these points we are getting the curve of the equation y is equal to x square minus 1 and here you can see that this curve does not pass through the origin o. Secondly the curve is symmetrical about the y axis as on replacing x by minus x the equation of the curve remains unchanged. That is here on replacing x by minus x the equation of the curve remains unchanged and the curve cuts the y axis at the point 0 minus 1 the x axis at the point 1, 0. The lowest point on the curve is 0 minus 1 and you can also see that before x is equal to 0 the function is decreasing. Now before x is equal to 0 you can see that as x increases y decreases before x is equal to 0 the function is decreasing. x is equal to 0 x increases y also increases therefore x is increasing after x is equal to 0 and the turning point of the curve is 0 minus 1 so the tangent at the point 0 minus 1 is parallel to the x axis. So in this session you have learnt about the curve sketching of simple curves and this completes our session hope you all have enjoyed this session.


All right D-Led. He's been playing pretty well, and you know it's a great credit to Matt and how he's been playing really the entire offense. But yeah, very pleased with Matt said it many times, so it's cool to see him recognize. And just moving forward, what are some of the things Matt can continue to do and continue to help the team? Well, all of us. It's not just Matt. It's myself, everybody, every player and coach. We got to continue to get better. There's things every week. There's always things that come up, and that's the name of the game as you go through. We're right in the middle of the season. We're not even at the halfway point, right? We got nine games to go. Long season, we're right in the mix. We got to get better because we're playing a really good team on Sunday down in Dallas. Yeah, just getting ready for them, looking at the offense that they have. Looks like they've got a lot of weapons over there that you all have to continue with. Sure. It's a really talented, probably the most talented roster in the NFL. They've got good players in all three phases, and we've got to be ready to go. And a defensive, it looks like they coached Dan's trying to attack on the defensive side of the ball. What are some of the traits of the defensive, even though they're not coming off a good performance? It's one game in the NFL.  Their overall body work, they're six and two. They've got a lot of turnovers. They've got a lot of really good football players. They attack the football, and they fly around. Michael. Thank you. So, you guys, about a few years ago, you know, one in three weren't going all that well. What do you think has changed with your team to put you all on playoff contention? We're in the middle of the NFL season. Again, if you've got the, what was me, mindset, it's probably in the business for you. So, like I said, I don't live week to week and die with the daily narratives. So we're our four and four. That's what we are. It's what we deserve to be. But nine more opportunities to go. But really, you know, if you can't focus with what's ahead of us, it was a huge game on Sunday down in Dallas.  So that's the challenge of the week. So that's, that's how we look at it. We got a really good opponent. We are where we are. All that matters is Sunday. What's the change from what it was in prior stomps? I think you could probably use Dan's comments. I mean, he talked about it in his pressure on Monday. He evolved and reinvented himself playing a lot of man football. But I know Dan Quinn is a terrific football coach. He's one of the best genuine guys in his business. And those guys are ready to roll. So playing a lot of man covers or playing multiple looks, but the always trade is those guys are going to play fast and attack the football. Can Tate, from having played under Dan, that can maybe help him? You're not asking that. You know, I mean, you're looking at defense. You're going to have people you've worked with every long, every, every stop. Coaches and other coaches, players, you know, it's just what the business is. I mean, with the way that the business is set up now, very different than it was 30 years ago. Give or take with free agency, the way the roster, I mean, look at our roster, how much it's even changed during the season. So you guys are very familiar with a lot of coaches and a lot of players on different teams. Just because you know somebody that challenge every week, people continue to evolve. It's a super competitive league. So at the end of the day, you have to ask one of those guys. And then just lastly, is Tate, I know you said it's possible, do you anticipate he's going to practice this week? I do. Tori? Doesn't mean he's going to necessarily play, but he can practice. Ask about the Jalen Mayfield update. Can you kind of just explain what you've seen Jalen Mayfield week one to Jalen Mayfield now kind of at play points? He's played like a rookie, but been effective for us for a lot of snaps. I mean, it's probably a good thing you haven't asked me about him. That's what you usually want from your alignment and your long snapper. And that's the part of the business. So playing solid, believe in him, like a lot of guys though, I mean, there's always things we can look to improve on. But it's a good thing you haven't asked me about him. All right. I think it's a lot of questions for you. So it was kind of like the styles of seeing the guy like Anthony Rusby on the field, you know, those 350 plus guys don't kind of have gone away in NFL today's game. So how was it, you know, seeing him come in and being really helpful in the run game against the run game? Yeah, I wouldn't necessarily have gone away. I mean, we played some guys. I mean, the Giants were pretty heavy in there. A lot of teams, depending on your defensive philosophy. So it's nice to have a guy like anything rush that could come in there and it was effective and, you know, and we'll see, you know, week to week what the game plan is, but who's up, who's down. But please, how Anthony played. And, you know, he was very productive in his role on Sunday and it helped us win. Yeah, I don't get into comparisons like that. He's a good football player. He can rush the passer. So, you know, you got to take account for all those guys every week. Like I said, it's NFL. Most teams have pretty good players. So he's obviously been productive in the past rush. He's got a lot of speak and cover. He's a really good player. Like I said, this is one of more talented rosters in the league. So we got, we got, we got our challenges, but I don't look at it as a comparison.  I just, I just tell you where mine goes. I mean, there's good players a week to week. So Saints had a handful of really good defensive players. So do the Dallas Cowboys be the same story every week. I mean, there's good players a week to week. So Saints had a handful of really good defensive players. So do the Dallas Cowboys be the same story every week. Yeah, sure. I mean, you got to account for all the players in the defense. You guys get a two point lead. And obviously you want to maintain that. What do you hope the defense cleans up? It does. Again, you're looking at kind of on the surface here. It goes, there's all cause and effect in every game. It's a national football league. Sure, we got to be, we got to be better in certain stretches. And you don't want the penalties to happen where you give up short fields and a quick amount of time. Because normally in that situation, the clock to your advantage, they hit one explosive play, got a touchdown on it. We didn't do our job in offense. It's all three phases. If you just look at it in the defense, those are easy narratives and great. I get it. But if you really want to look at really what happened. So as a team, we got to play better. And you say that with the grand assault.  In a day, there's only so much time left in the game. And in all three phases, you've got to play pretty clean to finish off a good football team. But we have finished games. Last time I checked, we won in the four quarter, four times. So, yeah, as you said, we all wanted to be more comfortable. But to do that and play a more complete game, when you give them a short field and you punt, you add on a 15 yard penalty, they get a DPI, clock's not moving and they're gaining a lot of yards. And then we got the rough in the, rough in the passer. So then that's another penalty that gets them down there. And then now it's a one possession game and we didn't do a good enough job in the next drive to handle it. And then they have a, they have a, a pump return across the 50.  Great. They may pad some passing stats. There's probably not enough possessions left. So when you don't execute, we're not cleaning the penalties. So you can't just sit there and put them on defense. You got to put them on special teams, you got to put it on offense, put it on me. But then ultimately at the end of the day, we still finish the fourth quarter. So there's always things to improve on, just like we got to get better in the run game. There's always things. That's, that's the name of the game. You continue to look objectively. So that's that answer question. All right. Also, you kind of lose the special teams. I know that's kind of been a little bumpy for you guys. Has it? What's way? What's, what's way you're talking about? Okay, so with special teams, would you give them the huge kick obviously? Do you put the field goals and extra points and some of the kicks that, the kicks, you know, the ones we had inside? I mean, you got to put the whole thing in there. So he's a special team. You're talking about, that's why I'm asking you to define what you're asking me. What part? In the game, per se. The pulver turn. Yeah, they have one pulver turn. They have one pulver turn. Obviously, you guys went on the field, though. What are you seeing for special teams to be able to battle through them? Like a lot of three phases. There's things we got to clean up. There's some good. Obviously, some bad. You know, we got to clean it up and be more consistent. But you're going to take the whole thing. When you're saying, throwing out these grand statements, you're asking about, yes, we gave up a pulver turn, late critical play. Deontay Harris made it. We got to cover better. We got to get off blocks. He made a play. That's better. Also, the pulver turn. Before that, let's not hand them things. You got to bang, bang, playing on the sideline. They're going to call that. That's hand them stuff. So it just depends on where your mindset is. You're taking the whole special teams. You're saying the pulver turn aspect in that game on Sunday. And then Harris is a pretty good return. So you got to make objective decisions whether or not you want to keep contic- to him. We sky-kicked it a couple of times so you can concede something here. So that's the name of the game. So that's why, you know, I appreciate the question, but I wanted to find that a little bit more. I know you guys can have players in for trials any given week. Sure. Regardless of your record. Just a ton of conversations that you might have about a player who has become a free agent change when you're in terms of playoff time. I think almost every team in the league have the same conversations. You know what I'm saying? What your situation is. What do you think you need? What do you think you can do anything?  You know, specialist to kick to make sure you got an emergency list.  It's pretty common. So this time of year, guys looking at guys that may sign for future contracts. I think probably every team in the league has those conversations daily. That's what their personal apartments do. So that's what you're asking. I think probably every team in the league has those conversations. To follow up, you've had a lot of different players. Well, in the last couple of weeks, different guys stepped up to the wide receiver. Can you talk about what you've seen from your depth there? Are you content with the options that you have? So again, by the song and dance, I'm pretty happy with the guys. We have any chance we have in any position. We're always looking to improve. We've seen that. I've set it in the spring, set it in the summer, set it in camp. Say it again this season and it showed up. You know, we had James Watter as we brought in here. Made a huge play on Sunday. Anthony Rush, Mike Pannell. The list goes on and on and on. So anytime, our personal apartment does a great job. We have a collaborative effort. You always look to improve the roster if you can. Yeah, Coach, it was just a talk one last night on the podcast. It was like the 90s. With breath fire, I really couldn't read the defenses yet. They just started throwing screams to Edgar Bennett a lot. Can your screen and draw game help you out as you all, you know, not just keep banging your head running the ball, I guess, but just kind of thinking for some of your options. You get options every week. Depends on matchups. Sure. That's great. And so it worked. That's great. And a lot of teams found a lot of ways. We found ways to move the football. It's named the game. It's going to change every week depending on your matchups. Whatever we decide to do schematically. It's not going to be, you know, the same thing. We have to week D-led. You can improve in any area of the NFL. You can write narratives in September that aren't going to be knocked over. And then you can write them in November. I've seen this thing over and over again. There's a lot of ways to move the football. We got to get better a lot of ways. So I don't, that's a great, sure. Good, good stat for there for them. Glad to work for them. We got, we got to find ways of things that work for us. And what are some challenges that the defense will face against the number one rated offense in the league? Well, and I mean it's, it's been a very, they've turned out the last couple of seasons there. It's been a, you know, very, like I said, the Dallas Cowboys, they've usually got pretty good players. They got a high flying attack. You know, they got good players that like I said, it's more and more talented rosters. So they got, they got guys outside and Cooper and Lam, Schultz a good tight end. They got a good offensive line. Obviously, Dax really good quarterback. They can hand the ball to Ezekiel, Elliott, they can hand it to Pollard. They got a lot of ways to do that. But there's a challenge every week. Different players are there things that when you're looking at a guy, when it's free, you go back in their past to kind of find the say, oh, maybe this is a good predictor. I guess this guy can maybe do this or that.  You want to take the whole body to work. If there's anything to help you, that's why if you got good scouts and you do your research and you, you can have those conversations and make the best decision for your team. And that's what we try to do. And they got to, you know, it's got to fit. You got to have a vision, you got to make it work. I guess what I was getting at are there things that you will see that you're like looking for maybe commonality trade-wise? Sure. You're kind of getting a vision whether it's football sports or whatever it might be. Yeah, there's things you see. No, not really. What happened that time when you come to your formation you're trying to figure out where you need to focus first. After these first eight games you're kind of like shy away from changing him and it gives you more chance of concentrating on the other having a better quarterback and you don't have to worry about it too much. You got to worry about everybody in Rosser. I mean, it's just things you're looking at and what you know that they're going to try to take away and that's a challenge every week when you're game playing. There's always things. Again, I mean, if you just look at numbers there's been a lot of different systems. That's where I think he's really underrated because a lot of quarterbacks are usually with the same system for most of your career or a long stretch of your career. He's changed a lot of systems and that's a credit to him. It's allowed him to kind of reinvent himself subtly that most people all know. There's some things that we've asked him to do that he wasn't comfortable with in his past that he's been he's been really effective this year for us but we'll continue to push and find the right balance but that's with every play on the roster. You know, whether he's in year 14 or year 50 like Colquitt, you know, there are still things that he's been trying to improve. So There's always to work on. You're not just going to ignore one thing.  That's what's going to, you know what I mean? Like most people are going to try to take away your strengths and that's the challenge that we can in the NFL.  You're never going to have just overwhelming talent where you say, hey, I can ignore something. He's just better. I mean, that's the, that's a challenge in the NFL and that's just not what we believe in. We're trying to, I have concerns about every position and everything that's involved with this football team. So we're not going to neglect something and say we got it anywhere because that's to me, that's, you'll get humbled and you'll fall off Cliff Quick. Offensive yards. Why do you think it's Cliff so well for him here? You'd probably, that's a better question for him. You know, I see a good football player that's, I can, I can move the football out of ways for us. A guy, even at his age or some things that, you know, he's, again, all his experiences probably led up to this. He's, he kind of fits what we've, we're asking him to do. He can move around, he can play a lot of roles, but, so that's a better question for him. We're very pleased with him. I enjoy coaching him. How about that? Can't, better question for him. We had a vision for him and, it's evolving and, and very pleased with him. He's selling at some different things that he hasn't been asked to do before in the gear system. What are some of those things? I'm not going to talk about skiing. Yeah. Okay. Coach. You break up the season in quarter quarters. Yeah. No, I don't. Three in one. What do you attribute to the team? What's your assessment of this team? Are you asking, do you break it up in four quarters? Yeah. I don't break it up in four quarters. So, again, it's pretty, pretty simple. It's not the answer you're looking for. All we try to do is focus the objective after you play what are our issues? What can we fix? How do we get better? And that's all we really concern ourselves with regardless of the result. And so, sure, you want to start the season better than the reality. And you got to deal with what the reality was. So, it's such a long season but if you're going to live and die with every day's narrative and that's the world you want to live in, this isn't the business for you. Maybe those skill position players when they hit around 30, this is like a challenge between you and Josh. Yeah. Okay. Let's keep going. No, it doesn't aggregate me. I promise you, that's the, that's staying there all day. I enjoy this more than you guys realize. I, I just got to be somewhere at one o'clock. So, when you look at that, like the old, the old average of these six Like the agribenants? Like the agribenants. Anybody in Green Bay, D-Led's going to be up here. Oh, I didn't. I'm waiting for, to have a KGB reference for the past rush. Oh, that's too close. Or Mark Chimura, I'm waiting for all your old references. I was waiting for for the Peppers Green Bay years. Yeah. Well, D-Led, that's before D-Led. So, he was there. I'll tell you, a lot of times, the old adage was that running back to age 30, to some extent, white receivers, that's where they started to climb. Why, why do you think Patterson has, in some ways, maybe, reversed that?  I think, you know, just look around society today. I mean, they're probably saying, our history says, and it's probably true for most people, but there's always going to be outliers. I mean, the game's a lot different in the way guys train and the way they practice now. You know, just, I've worked with guys that played in a different era. I mean, the game's gotten a lot safer, and people are smarter in the way they train. So, that, that all has a huge factor into it, even at the, at the young, at the youth levels, right?  So, and that's, I'm just saying, like, that's where a lot of things, and then, think about the fields they play on now.   And that, you know, whether it's pertains to C.P. or not, I think you're seeing that more common around professional sports. It's anything in the NBA.  Yeah, it's probably, it's probably a good question, but it's probably, you know, the answer that now, I don't have that data in front of me and I haven't seen some kind of study on it. But I play in the ounce. I'm so pissed. They lost to Cincinnati in the early day. I love the revenue. I'm right in his wheelhouse now. Early 90s, early 90s sports scene. I'm sick when I say I think of old Memphis State. Those teams Larry Finch and yeah, you certainly feel in the game more and that's what makes it like tough when you play at a place like New Orleans. Right. I mean, you could feel that anybody was in the stadium, you could feel in the game, obviously trying to combat and luckily we handled it well enough to have a chance to win it at the end. You know, week to week, I think the problem is if you ride, you certainly can build confidence, but if you skip steps in the week that the momentum, it doesn't carry over because the game could go right. You feel like great about the game and first play, the guy can, you know, fumble the open and kickoff confidence, but you can't skip steps because I don't think it's going to carry over whether we, however we finish in New Orleans or however Dallas played against Denver, not really going to once the ball is kicked off, noon, central on Sunday, it's not going to, that game had no effect on it. Thank you.


This study found that more than a quarter of myopic children experienced axial length AL, shortening after receiving low-level red light, RLRL, therapy. Additionally, the study showed that younger children and those with higher baseline AL or spherical equivalent refractive error, SER, were more likely to experience AL shortening.


Good morning, everybody. So this is the first lecture. This is going to be an introduction to how high throughput sequencing works. So the purpose of this lecture is to introduce you to some of the sequencing technologies that are commonly in use. And more importantly, introduce really how they work at a physical level and a molecular level so that when you get sequencing data of your own and you're analyzing your own data and something doesn't quite look right, you can understand a little bit about how errors are generated, how these sequencers actually operate, so then you can troubleshoot it and figure out what's gone wrong. Just a bit of preamble before I start. So all the lecture material in CBW is available under a Creative Commons license, which means that you can reuse it and share this material as long as you credit it back to the original authors. In this case, the authors of some of the slides that I'm going to use are Erin Quinlan and Ben Langmeade. So I appreciate their work in putting together some of these lecture materials. There's a great set of resources for teaching things like computational genomics, and I've benefited from some of their slides. So as I said, this is an introduction to high throughput sequencing. There isn't a lab for this module. This is more of a lecture and just an introduction to how the technology works. But the things that we'll talk about here in the next hour really underpin the rest of the course over the next two days. If anything's unclear or you want me to go into more detail and any topics, feel free to just put your hand up and ask as I go. I like lots of questions. It breaks up me droning on and on. So please, anything comes to mind, feel free to ask. So a great place to start when talking about DNA sequencing is a central dogma of molecular biology. Just from listening to the intros when everybody described their projects, I don't think I need to go into this in a lot of detail. Most of you are biologists and understand this. Central dogma of molecular biology describes how information flows from DNA through RNA through protein to carry out a cell's task. So DNA gets transcribed into RNA, which gets translated into proteins. Those proteins fold this huge diversity of shapes to create enzymes and all the biochemistry that goes on in the cell. Now, this is a model of how information flows in the cell, but it's a particularly good one. It allows us to make predictions about how changes in DNA sequence are going to affect the observable phenotypes of an organism. So the implication of this is that if we can sequence DNA, if we can sequence DNA at large scale by sequencing many individuals in a population or many different species, we can understand something about how these changes in a genome underlie different phenotypes. So the molecule we're essentially gonna be interested in today is DNA. Sure, many of you, probably all of you are familiar with the structure of DNA. It's a double helical structure made up of two strands that are bound together. The strands, the backbone of the strands are made up of a sugar phosphate backbone and the interlinking molecules are nucleotides. In bioinformatics, we represent them by four different letters, ATGC, A for adenine, T for thymine, G for guanine, C for cytosine, where A binds to T, G binds to C to make up these rungs in the DNA ladder. Now, sequencing genomes is rather hard because genomes typically are very, very large. The human genome is three billion base pairs or three billion nucleotides in length. Typical bacterias are in few million bases, viruses are tens of thousands of bases, but a lot of us are interested in sequencing these very large genomes, which are very difficult to read. So the human genome, which is three billion bases, to fit it into a cell is packed into higher order structures. So the individual strands of DNA, this is the pointer showing up on both screens, yes. They get wrapped around molecules which are called nucleosomes, which are made up of histones, these histones then get packed together and wound around into these fibers, and then these are then wound again into the observable chromosomes so you can see if you look down to microscope and metaphase. Now, why we want to sequence human genomes is primarily that we want to understand genetic variation. So a genome sequence on its own is great. We can do things like predicting where the genes, the protein coding genes are in the genome, but really what we want to do is sequence a lot of genomes, compare them to each other, figure out where they're different, and then link those differences to observable traits. So if we sequence any pair of individuals in this room, we compare the genomes, we'll find differences at about 0.2% of positions. Most of these are small differences, like single-nucleotide polymorphisms, but we know that these SNPs are crucially linked to observable differences. There's SNPs that control things like our height. These are very SNPs of very weak effect, what millions of them will go into controlling a complex trait-like height, and there's also SNPs that control more simple traits like eye color. Well, essentially what we want to do is sequence genomes, compare them to each other, look for where they differ, and then by comparing enough samples, build up statistical significance, we'll say this difference is linked to this trait. Now to do this at large scale, we need to be able to sequence genomes very cheaply, and to talk about genome sequencing, or DNA sequencing, I'm gonna go back to a picture of what DNA looks like. Now DNA is a stranded molecule, it's a directional molecule, there's a five prime end, which is denoted by this phosphate group in the backbone, and there's a three prime end, which is denoted by a hydroxyl off the sugar here. Now when we read DNA, we read it from the five prime end down to the three prime end, so we read it in this direction. So in this case, we read off the identity of the nucleotides that are linked to the sugar phosphate backbone, and this is an adenine, so we'd say there is an A, this is a C, this is a T, and this is a G. So we'd say the sequence of this DNA molecule from five prime to three prime is AC TG. We could also read the same DNA molecule in the opposite direction starting from the five prime end of the complementary strand here, and then go to the three prime end here. And we say that the two sequences of these strands are reverse compliments of each other, as we can infer the sequence of the opposite strand that we sequenced by taking the compliment of every base, the base that it binds to, and then just reversing the sequence, because we always want to represent sequences from five prime to three prime. Reverse complimenting DNA sequences is very common in bioinformatics when you will work with sequencing data in a fast A or a fast Q format. You'll see an ASCII representation of the DNA that was sequenced with just one of the four letters, and that's always gonna be five prime to three prime, and then if you just reverse and compliment it, you can get the sequence for the opposite strand. Now, as long as essentially we've known about the structure of DNA, we've wanted to be able to read what the sequence of genomes are, and we essentially had to wait until around the 1970s for a molecular biology technique to be developed that could determine what a DNA sequence was, and the predominant early sequencing method was invented by Gunning Fred Sanger, who is at the laboratory for molecular biology at the University of Cambridge, and he invented the sequencing chemistry, which is now referred to as Sanger sequencing, for which he received his second Nobel Prize for developing this. So Sanger sequencing is incredibly clever method of figuring out the DNA sequence of a molecule, and it has two key steps. So DNA polymerase is a key enzyme involved in copying DNA, and Sanger developed, Sanger was a biochemist, he developed specially modified nucleotides, which are called dideoxynucleotides, which replace one of those hydroxyl groups by a blocking group that will inhibit a DNA chain from elongating any further. So if you introduce one of these dideoxynucleotides, you give it to DNA polymerase, it will copy it into a strand of DNA, and then because there's no hydroxy, it won't be allowed to extend any further. So it'll stop at that defined position where this dideoxynucleotide was present. Now Sanger's sequencing method in the original way, it worked, he would do four different reactions, one for dideoxy A, one for dideoxy T, G and C, those would happen in four parallel reactions, whereas the dideoxy version of the nucleotide would be spiked into the reaction mixture at a low level, like a few percent. Now if you add DNA polymerase to copy DNA within that reaction mixture, that will introduce one of these stopping bases at random positions of the growing strand of DNA. And you know that because you only have, say, dideoxy A in the first reaction well, all of the strands that stopped end with an A. So you now know the last base of all of those fragments, but you don't know exactly where those last bases were introduced. So the second technique that Sanger used to sequence is gel electrophoresis, which sorts DNA fragments by their size. So I'm sure many of you have run gels before. If you put a sample of DNA in a gel, put it within a voltage gradient, the DNA propagates through that gel according to its size, where shorter fragments propagate further and longer fragments don't propagate very far. That allows Sanger to then sort these fragments with a defined stopping position by size, and it allows you to read off the sequence of the DNA fragments according to their size by identifying what the last base is. So in this example here, the shortest fragment, which is shown in this band here, was in the reaction well with DDC. So we know that the shortest fragment ends with a C. So we'd put a C into our output. The second shortest fragment ends with a G. We'd put a G into the output. The third and the fourth end with T. Fifth ends with A, and so on. You just go down these bands looking at which reaction well they are in to sequence that DNA fragment in Sanger's method. Now this was absolutely revolutionary. It was a fantastic breakthrough. They used it to sequence the first genomes, which were typically viral genomes, because they were very small. And you could also sequence isolated fragments of DNA. But it was pretty clear that we wanted to be able to sequence much larger amounts of DNA and do it at a much higher scale. So in the next 20 years, Sanger's technique was refined primarily through automation, which allowed the sequence in chemistry to be performed at scale. So the key innovations here were rather than using four different reactions, one for the different DD nucleotides, the reaction we've done in a single tube with fluorescently labeled nucleotides instead. So you'd have each nucleotide labeled with unique color. You'd separate them using a capillary tube, and you'd get the distinctive what we call Sanger trace, which is what this is on the bottom, where you just read off the sequence of the nucleotides by looking at the colors of each one of these peaks. So let's say blue is G, red is C, and so on. And you just go down these peaks, reading off the sequence of the genome that way. Now this level of automation and the simplification of the chemistry allowed the throughput of Sanger sequencing to vastly increase. So when Sanger invented his sequencing in 1977, a very hardworking technician might build a sequence around 1,000 bases per day. If you wanted to sequence the entire 3 billion base pair human genome, that would take you about 120,000 years. Obviously, this isn't very practical. The first automated sequencer was the ABI 370. This was able to sequence around 5,000 bases per day, or a 5-fold, 6-fold increase in throughput. That would drop the time to sequence a human genome down to about 16,000 years. Still not very practical. The sequencers continued to be refined. The ABI 377 had bigger gels, better chemistry and optics, more sensitive dyes, faster computers were on the base calling. This increased throughput by another 4-fold, up to around 20,000 bases per day. But finally, in 1999, a highly multiplexed version of the ABI sequencer, the 3,700, was developed, which could sequence 400,000 bases per day. If you ran one of these sequencers around a clock, you could sequence a human genome around 200 years. This sequencer was used as a workhorse for the human genome project. Rather than having one sequencer run for 200 years, a lot of genome centers bought very many of these sequencers, tens to hundreds of them, ran them around the clock, and were able to sequence the human genome over a span of about, let's say, 10 to 15 years. And this became really the pinnacle of Sanger sequencing technology, where you could sequence around 400,000 bases per day. Now, when we sequenced the first version of the human genome, it gave us this huge amount of information, but it was also clear that there was a lot of variation within genomes. And to capture that variation, the link to phenotypes, as I mentioned earlier, we would have to sequence many more genomes. We wanted to sequence these genomes at large scale. The original human genome costs around $3 billion, and it took around a decade to sequence, which is a really scalable process. We're not going to be scaling sequencing very many genomes at $3 billion per pop. So companies and academic groups were actively working on what we now call the next generation sequencing technology, which would drastically lower the cost and increase the throughput of DNA sequencing. This is going to be the core content of this module, and indeed the rest of this workshop, talking about these next generation sequencing instruments, how they work, how the data looks, and then, of course, how we work with the data. So you'll hear a lot of different terms used for next generation sequencing or the type of sequencing we now use. You might hear massively parallel sequencing. This was a very early term for referring to it. High throughput sequencing is now the preferred term. Ultra high throughput sequencing, next generation sequencing, second generation sequencing. All of these terms are essentially used to describe the sequencers we now have available, which can sequence genomes very, very cheaply. I prefer high throughput sequencing. A lot of people still use next generation sequencing, but that's falling out of favor now that we're going beyond aluminum technology to single molecule sequencers. They'll talk with a little bit later. So the key technologies we're going to talk about are the aluminum sequencer, which was introduced around 2006. The PacBio sequencer, which came out around 2011. And then the Oxford Nanopore Minion, which I heard a few people are interested in, which came out a few years ago. My group is primarily working on developing algorithms for this sequencer. So I'll spend a little bit of time describing how that works later on. Other sequencers of note, the 454 deserves recognition as it was the first high throughput sequencer. It came out in 2005. I think they use it to sequence Jim Watson's genome in a very prominent early paper. Unfortunately, that sequencer is now discontinued. It had a few properties of the data, were quite a bit worse than how aluminum sequencing works. So aluminum essentially took all the high throughput sequencing market for short reads. So I'm now going to describe how the aluminum sequencer works. So just like Sanger sequencing, it relies on copying DNA and having fluorescently labeled nucleotides. So DNA polymerase is a key step in aluminum sequencing. So if we have a single-stranded DNA template, it's a free-floating nucleotides and solution. We add DNA polymerase. It will synthesize the complementary strand, 5 prime to 3 prime direction, according to the strand, the sequence of what we call the template strand. Now another term you might hear, aluminum sequencing referred to as sequencing by synthesis. This is what they call the chemistry for aluminum sequencing. The way aluminum sequencing works is you take a DNA sample, you fragment it into many pieces, around 300 to 400 bases. These single-stranded fragments, which we call templates, get attached to the surface of a microscope slide. And then in place, we have these templates. They say there's two in this example. There's a step which is called bridge amplification, which is PCR run directly on the microscope slide, which copies these templates into a cluster of identical clones. So we've got one template here. We run PCR, and then you amplify that into a batch where all of the sequences in that cluster are identical. And there are around 10,000 of them within that cluster. Now, aluminum sequencing is a cycle-based chemistry. And what they do is they inject a mixture of color-labeled nucleotides, again, where there is one unique color for each nucleotide. Add DNA polymerase. And the DNA polymerase will attach the complementary base to each one of these templates. So you can imagine these are clusters, but we're just drawing them as single templates here for clarity. So there's a very expensive digital camera attached to a microscope, which then images the microscope slide and detects which color of base was just incorporated into this growing strand. So for this cluster, there was a green base. For this cluster, there was a yellow base. Now, just like Sanger's chemistry, which had this chain-terminating group on the nucleotides, these DT NTPs, the aluminum chemistry also has a molecule which blocks that chain from growing any further. But the clever bit of the aluminum chemistry is that this is a reversible reaction. They can add a chemical that then cleaves off that blocking group, which allows the synthesis reaction to continue. So all of these steps of adding in the color label nucleotides, imaging which color the nucleotide is with the camera, and then cleaving off this blocking group is referred to as a cycle in aluminum chemistry. And that sequence is a single base for all of these clusters on your slide. You then would repeat this cycle for this to sequence the second base, then the third base, then the fourth base, then the fifth base. So here's what it looks like in cycle one. We've detected a green flash of light from this molecule, a yellow flash of light from this one. In cycle two, we detected red in both. Cycle three, cycle four, cycle five. This repeats for however long your template is. Usually around 100 cycles to get 100 base read. And then at the end of it, some software, which is called a base collar, will take these images, match up clusters across the different images to say which of the clusters correspond to the same collection of DNA molecules. And then it will detect which color each one of those is in each one of the cycles to mint the base called sequence. So here, the pattern of colors for this DNA fragment was green, red, yellow, red, yellow. If you take the complement of those to see to figure out what the sequence of this original strand was, it was TACAC. And that gives you the sequence of that cluster. Now, this is happening massively in parallel. So these example images only have two clusters, but typically in a luminous sequencing run, there's around a billion clusters on the flow cell, all which are being sequenced a single base at a time, which is what gives luminous sequencing its enormous throughput and low cost. Now, I mentioned before, it's really important to understand how sequencing errors occur. And the dominant mode of errors in luminous sequencing are substitution errors, where the base collar predicted the wrong identity of a base. And these are caused by the fragments or the templates within a cluster getting out of sync. So we have this bundle of DNA molecules, which are all sequencing the same time. And we're hopefully sequencing them all the first base, and then the second base, then the third base, and the fourth base. But what can happen is if these blocking gate groups either aren't present on the nucleotide or don't get cleaved off, some of the molecules in cluster will lag behind, and some of them will jump ahead. So in this example, we're on cycle two. There's two molecules, which have a red base here, complementary to the green second base of the fragment. There's one that's lagging behind on the first base still, and there's one that's jumped ahead, and it's on the third base. And what happens is that when the microscope takes a picture of the slide, it's going to see 50% red, 25% green, 25% yellow. And this gives you a mixed signal that the base collar then needs to figure out which is the true base. Is it red? Is it green? Or is it yellow? So the base collars typically have fairly sophisticated probabilistic models to model this process of molecules lagging behind or jumping ahead to deconvolve this mixed signal that it's getting at each position. When it's doing this inference problem, it will report how confident it is in the assignment of individual nucleotides as what we call a quality score, which is just the base collar's estimate of the probability that that base is incorrect. Looking at quality scores when you're looking at real data is crucial for trying to determine whether, say, a low level somatic mutation is a true mutation or just a sequencing error. You typically want to use these quality scores to inform how much you trust the data that you're looking at. Now, another thing that's important to note about aluminum sequencing is that the error rate is not uniform. It's dependent on where in the DNA fragment the base is. So at the very start of the read, there's not a lot of opportunities for these fragments to jump ahead or go behind. So the error rate tends to be lower at the beginning of the read. But as you go from the 5 prime to the 3 prime end of the read, the error rate increases as there's more opportunities. And these molecules can fall further and further behind. So the signal becomes less pure as you go along the sequence of the read. So the error rate increases towards the end of the read. OK, so to summarize aluminum sequencing, it has the best throughput by far of any available sequencer. I've written 600 gigabases for an aluminum run here. It's now with NovaSeq up to over a terabase for, say, $10,000 to $15,000 run. The accuracy is the best of any sequencing technology. Because it's using this cluster of molecules, that gives a lot of redundancy in the signal that allows it to accurately call bases. The error rate's less than 1%, maybe around 1 and 200 bases are incorrect. And the sequencing technology is pretty robust. Usually you get pretty good runs and library preparation methods are pretty well worked out where you get reproducibly good data from aluminum. The big disadvantage and something I'm going to come back to a little bit during the rest of the talk is that there's this inherent limit to the read length. Because you're doing the cycle by cycle chemistry, where you sequence the first base of every cluster, then the second base. And there's a lot of time required to do those cycles around 10 to 20 minutes. You can only sequence around 100 bases, maybe 150 bases of DNA fragments. Now, why this is a drawback is that the human genome is huge, 3 billion bases. And it's incredibly repetitive. And some of the genomes that you guys are working with, like plant genomes, are also very, very repetitive. And 100 base pair reads aren't enough to completely resolve where that read might have come from in the genome. And when we talk about genome assembly tomorrow, we'll come back to just how much these genomic repeats affect the genome assembly problem. So there's a lot of the genome that's inaccessible to alumina sequencing because of the read length. So is a lane the same as the flow cell? Right. Yeah, it's a good question. So each flow cell has multiple lanes on it. So I don't know what the most recent, they've changed it. When I worked for a lot of aluminum data, it was usually eight lanes per flow cell. But did anybody know, like for a NovaSeq or an X10, how many lanes are on one of those? I heard somebody whisper something. 16? OK, we'll go with that. Thank you. It's a huge, yeah. The NovaSeq flow cell is a giant thing. That's how they're scaling up, is they're able to image these very, very large regions of these slides. OK, so we've known that alumina sequencing doesn't solve all problems. It's incredibly cheap. We can sequence a human genome for around $1,500 now. But as I said, we're leaving a lot of information out because we don't have the ability to resolve these most repetitive regions of the genome. So companies and groups have been working on what we call the third generation or single molecule long read sequencers that give much longer range information that can be useful to do things like complete genome assemblies. So the first one to come out was the PacBio or the Pacific Biosciences instrument. It does not require amplification, unlike the Illuminous Sequencer. The way the PacBio works is that it mobilizes DNA polymerase at the bottom of what they call a zero mode wave guide, which is just a little chamber here. This DNA polymerase will capture a fragmented DNA and then copy it in place at the bottom of this well. Now, just like Illuminous Sequencing, individual nucleotides have a fluorescent label, a unique color, scientific nucleotide. As DNA polymerase captures these fluorescently tagged nucleotides, holds them in place to incorporate them into this growing strand of DNA, we can detect that as a flash of light by imaging from the bottom of this zero mode wave guide. Now, nucleotides are diffusing in and out of this chamber constantly, but when one actually gets captured by the DNA polymerase and incorporated it, we see it as this pulse of light that has a fairly long duration. So in this image here, this is the signal intensity of the four different colors over time. And when we see this pulse of green light, that means that DNA polymerase captured an a-nucleotide and incorporated it over this period of time. This is based on the kinetics of how long it takes to do the reaction of incorporating it. Then it drops back down. Then we don't see a signal. Then it jumps up again when it incorporates this T, goes back down, and carries on. So now rather than having this cycle by cycle chemistry, this is essentially happening in real time as the DNA polymerase is copying the DNA. And each individual base is sequenced much more rapidly. So we don't have to wait 10 to 20 minutes to sequence the next base. It's going to get sequenced whenever it diffuses in and is captured by this DNA polymerase. So the Pac-Bio instrument is able to sequence 10 to 20,000 base pairs of DNA at once. So the fragment length can be up to 20, or the read length can be up to 20,000 bases. But because we're making single molecule measurements, there's a much lower signal-to-noise ratio. And that means that the error rate of the sequencer is much, much higher. The error rate of Pac-Bio is around 10% to 15%. And unlike Illumina, the error mode is mostly insertions and deletions, where a base was either erroneously introduced into the base called sequenced or deleted. And those are caused by pulses of light that didn't lead to complete incorporations into the growing strand. Something that's quite cool about Pac-Bio and it's also shared by the nanopore sequencer we'll talk about is that you can detect base modifications like methylation, like five-methyl cytosine, directly from these signal pulses that we observe. So you get this extra layer of information with Pac-Bio, and you also get much longer range information. The primary drawback, aside from the error rate, is if the throughput is much lower than Illumina sequencing, a Pac-Bio cell will give you around five to 10 gigabases of data per run. So if you're going to sequence a genome with Pac-Bio, it's typically much more expensive than sequencing with Illumina. This is just a histogram of the read length distribution for a Pac-Bio run for a breast cancer cell line that was sequenced here at OICR in collaboration with Cold Spring Harbor. So this is a histogram of read length. We see that there's many reads, where's my pointer, that are greater than 10,000 bases, even greater than 20,000 bases, with the longest read in this data set was around 70,000 bases, which allows you to resolve a lot of these repetitive regions that aren't accessible by Illumina sequencing. We're going to talk about genome assembly more tomorrow, but just to introduce that topic, the main challenge with genome assembly is that genomes are very repetitive, and 100-base pair reads aren't enough to resolve a lot of these repeat. 10,000 to 20,000 base pair reads often are, so there have been a lot of papers in the last few years of using Pac-Bio sequencing to improve genome assemblies of human genomes and many other species. This is a paper that I particularly like, which shows the advantages of long-rate sequencing. And again, we'll touch on that tomorrow. So the last sequencer we're going to talk about is the Oxford Nanopore Minion. I really like this sequencer. It's incredibly unique and gives you a lot of different capabilities. So the Nanopore sequencer is the first portable sequencer. It's roughly the size of, say, a smartphone. And you plug it into your computer with a USB3 cable. You bring it to wherever you need to sequence, and you can use sequencing directly in the field on site. So this sort of inverts the paradigm of how genome sequencing is done. As usually, you collect samples, ship them to a genome institute like the Broad Institute or here at OICR. They're sequenced centrally in this factory-style operation, and then you disseminate the results back to whoever collected the data. Now, the Nanopore sequencer, because it's portable and because it's relatively stable, you can bring this anywhere in the world and then do sequencing directly in place. So one of the best examples of this is a project I was involved in with taking the Minion to Guinea and West Africa to sequence Ebola samples directly in field hospitals and clinic during the Ebola outbreak from 2014 to 2016. This was a project led by Nick Lomond's group in Birmingham in the UK. And here, a researcher, Joseph Bohr, is loading a sample onto the Minion for sequencing. So the Minion has a flow cell. It's this black object which is attached to the base station here. Joseph is pipetting the sample in here. It gets drawn through the array and nanopores, which is this yellowish rectangle here. I'll show you the full episode in a bit more detail later. But using this in Africa, we were able to sequence Ebola genomes in with a much quicker turnaround on the order of a few days rather than a few weeks or months if you're going to ship the samples to Europe or North America for sequencing. So we were able to give information back to the epidemiologists who were trying to control the outbreak much more quickly. So not only is the nanopore sequencer give you these unique capabilities, I just think the sequence technology is quite cool as well. It does away with this idea of using fluorescence to detect which nucleotides were incorporated. And it directly measures the physical properties of DNA. So here's an illustration of how a nanopore sequencer works at a very low level. The nanopores are all protein nanopores. They're taken from things like bacterial cell walls, where it's a protein with just a channel running through it that allows molecules to pass from one side to the other. So in Oxford nanopores, MNION, these protein nanopores are embedded within a membrane, which is shown in black. And the channel is wide enough that single-stranded DNA can pass from one side of the membrane to the other. Now, the movement of DNA from one strand to the other is controlled by what they call a motor protein, which is acting as a break that stops the DNA from going through the pore too quickly. And it slows it down to around 500 bases per second. Now, not only is single-stranded DNA going through the pore, but also charge-carrying ions like calcium ions are going from one side of the membrane to the other. And the flow of current is being continuously monitored at around 4 kilohertz, 4,000 samples per second, which is the observable output of the sequencer. Now, the fundamental principle here is that the amount of current you observe depends on the identity of this portion of the DNA molecule that's in this constriction in the pore. So some sequences will allow more current through, some sequences will allow less current through, and we can use this information to predict what the DNA sequence was in the pore when those samples were taken. Now, this would be an illustration of the sequencing process, but unfortunately, my slides haven't survived conversion from keynote to PowerPoint. Essentially, the idea is that sometime we have some sequence in the pore, GCTAC. We observe some current samples like, say, around 60 picoamps. As DNA moves through the pore by a single base, the current signal changes. So it's gone from 60 picoamps down to around 45 picoamps. As it moves again, we see different current samples until we see the whole DNA fragment. Now, what my group's involved in is building probabilistic models of how much current we should observe depending on what the DNA sequence is in the pore. So the way this works is you sequence known DNA, so DNA with a known sequence, and you build up a profile of how much current you observe when short fragments of DNA, like AGG, TAG, is in the pore. And we fit a Gaussian distribution to this, and we say that when this sequence is in the pore, we expect to see around 59 picoamps. We can then build probabilistic models that use these distributions to predict what the DNA sequence was from the observed current sample. Now, Oxford Nanopore's sequencer was known for having a very high error rate, and the data being very difficult to work with. But over time, this has slowly improved. So the early Oxford Nanopore data had an error rate of around 20% or an accuracy of about 80%. They changed from what they call the R7 pore to the R9 pore, which improved accuracy to around 90% to 95%, or about a 10% improvement. So it's a little bit better than Pac-Bio, but the error rate is somewhat less uniform. It's more biased toward difficult sequencing contexts like homopolymer runs. So when you calculate a genome assembly, the consensus error rate is a little bit lower. So here's what a Nanopore sequencer looks like. This is the flow cell. This is the port that you use to pipet the sample in. This is the array of Nanopores. There's 2,048 Nanopores that can individually sequence a fragment of DNA. They can only sequence in groups of 500 at a time. And if you multiply the sequencing speed 500 bases times the number of pores you can sequence around 500, the theoretical throughput of the Nanopore sequence error is around 30 to 40 gigabases. Typically in the field, we're seeing between 5 to 10 gigabases of yield, which is comparable to the latest Pac-Bio chemistry. Just like the Pac-Bio, the read length is much, much longer than Illumina. So the Nanopore will essentially sequence any length fragment of DNA. If you can present extremely long fragments of DNA to the Nanopore, it will pull those fragments through and sequence them. Typically, we aim for around 6 to 10 kilobase fragments, but there's groups who are trying to optimize the read length and have gotten 900 kilobase reads of DNA, almost a megabase, which is like a quarter of the E. coli genome in a single read. As an illustration of just how portable the Nanopore sequencers are, NASA took one of the sequencers up to International Space Station to show that it can sequence in microgravity conditions. This is the astronaut Kate Rubins, who's running this experiment. Their sequencing data was essentially comparable in quality to sequencing that was performed in parallel on the ground. Essentially, the Nanopore sequencer works in space, the same as it works on the ground. The only difference is you need to attach it to the wall with a little bit of Velcro so it doesn't float away from you during sequencing. Yeah? Does the Nanopore only allow DNA to sequence for individuals, non-DNA, that can go through the house and potentially give you a signal? Yeah, so something they work on is detecting other molecules as well. So the big ones right now, they have DNA working very well. They're directly sequencing RNA as well. So you don't need to reverse transcribe RNA to cDNA. You can directly sequence RNA. Protein sequencing is a big one that people have been interested in a long time. It's much harder to sequence protein than DNA and RNA. And they're also trying to develop ways of detecting like arbitrary small molecules in solution as well. But again, that's very hard. So the two that are working are DNA, RNA, protein, and other small molecules are planned. So with other things in solution, can you pass the Nanopore? How do you know that you're not getting signal from a straight protein that's going through the Nanopore and non-DNA? Yeah, so there's a few parts to that. The size of the pore is about a nanometer and a half wide. So a folded protein is not going to fit through. And also you leverage the very long length of DNA as well. So you'll see in these current traces, these blips of current where it just goes, where the current drops, and then it goes back very, very quickly. And you just ignore those. If you have a 10,000 base pair fragment of DNA going through the pore at 500 bases per second, you expect to see this incredibly long signal, where you know there was a DNA strand rather than just something that happened to go through the pore by chance. Okay, so to summarize sequence technologies, Illumina has 100 to 200 base pair reads, up to 600 gigabases per run. This is a bit out of date now. It's over a terabase. There's now with very low error rate, predominantly substitutions, Pac-Bot and oxygen Nanopore single molecule sequencers which don't require amplification. They can sequence DNA reads that are longer than 10,000 bases. They can give you around five to 10 gigabases per run, but a higher error rate. And both technologies can detect modified bases like five methyl cytosine natively without requiring things like bisulfite conversion. This slide is difficult to maintain because sequencing technology moves so quickly. Even since I put this slide together a few months ago, the yields of basically all of these sequencers have improved. So take this with a grain of salt and know that this changes very rapidly, in particular in terms of yields. So that's all I have for sequencing technologies. I'm happy to take any questions before we move on. Yep. I'm not sure if I answered the question. Sure. So then you just take the specimen and prep it somehow and then put it in. So there's no amplification. There is amplification. So the ultimate goal of these sort of infectious disease projects is just to take a blood sample or some sample from an individual, extract DNA or RNA, and then identify what's in the patient. Unfortunately, a lot of these viruses are present in such low copy number that you just don't get enough reads to do that identification. So for Ebola, there was a PCR amplification step first to both amplify and also enrich for Ebola samples. We published a follow-up study that just came out yesterday sequencing the Zika virus in South America and the tropics. And Zika was much, much harder than Ebola because it was present in many lower copies, very, very low copies, like 20 copies of the genome per milliliter of blood or something. So they had to amplify very, very heavily. Ultimately, though, the goal would be to have a sensitive enough method that you just do metagenomics, but we're not there yet.