All right, go ahead and get started. I said the slides are here. Here to talk about the benefits of continuous integration. My name's Andrew Taylor, A-Taylor-ME on GitHub and Twitter, so links to the slides are on Twitter. If you wanna grab them there, it's a lot easier than trying to type in this crazy Google Shortener URL which are apparently going away now, so. Andrew at pantheon.io, I'm gonna try and leave some time for questions at the end, but if not, shoot me an email or come find me at the booth later on. So I wanna start with just this high level sort of what is continuous integration and maybe talk about some misconceptions and some things. So continuous integration to me is really just thinking about what pieces of your workflow can you automate? Can you take from doing manually and bundle those into a lot of CI services live on the cloud, they can run with every pull request or run once an hour or whatever you wanna set that up, but I like to take CI and not in that very narrow view where I'm just going to install composer dependencies on every code pitch. While you can certainly do that, we wanna expand it and think about all of the things in our workflow that we can automate. So it's really about what sort of value are you going to get out of continuous integration, so why would you wanna do this? And it's really taking a step back and looking at CI as a state of mind. So going in and thinking about certain problems in different ways and taking a different perspective about what sorts of things are we doing now that we can automate? And it doesn't have to be an immediate process. This could be things where you were manually going in and clicking buttons and doing things on a command line or sorry, doing things in a dashboard in a UI that now you're doing in the command line. That could be the first step towards this path down continuous integration. It's not taking this plunge into full automation immediately. There's lots of small steps along the way. So we just had a great talk on looking at code sniffing and these sorts of static analysis things. So here's PHP code sniffer. We kinda saw the live demo in the talk before is going to check your code for errors and then show you sort of what's wrong. But if we zoom in at the bottom here, it says that this complimentary tool to the code sniffer, code beautifier can fix these two marked things automatically. Okay, so normally if we're using something like this, we'll go in, we could run this tool locally, we get these notifications and before we push to GitHub or wherever, then we're gonna go in and say, I need to fix these five things that are listed here. I need to go fix these errors. I can run the beautifier and it will fix two of them automatically, but I need to clean up the other three. Well, what if instead of having to have a developer run this tool and check every commit? We're busy, we're doing things. Instead of making your team do this every time, we can offload that and that's where continuous integration comes into play. So it's automating this process, maybe moving it to the clouds. When you make that commit on GitHub, then we now have a script that's going to run, run these checks and we can mark the pull request and say thumbs up, thumbs down if this has these errors or not, but we could go a step further. So looking at it can automatically fix two things. So what if not only did it tell us that these are wrong, but then we ran the beautifier and it fixed the two items that this tool can already fix automatically. That's two less items that we have to go in and fix ourselves, right? It's taking these things that are repetitive tasks that we might be doing in part of our daily process or if you're not on the technical side, if you're on the business side, maybe this is something that your team is doing, finding where those pain points are, those kind of repetitive tasks and offloading those. So it's like what happens after a code change? What happens after commit? What are all of these things? And so it's keeping that state of mind and approaching ideas because we want our developers to take their brain power and do critical tasks and do deeper thinking and not do these redundant tasks, right? Compiling CSS into a minified thing, it might be a quick, easy step. I'm just gonna open my terminal and run this command or I'm gonna have some application open that's gonna do it for me.  So if you're sitting there spending it on, I have to remember to do these 10 things after every code change or I have to remember to do this before every commit or every deploy, all those sorts of things add up. So it's really taking that stuff that we're doing and unburdening ourselves and automating that process. So some items that you can use with CI, we can install dependencies. Drupal 8 is very composer heavy. I'd use composer elsewhere, but not with Drupal and then I went to install address module and it was like, you can't, right? I can't just go in and use Drush and install it. You have to do some of these things with composer. And that might be all right for a more experienced person, but what happens if you're onboarding a junior developer who's never touched composer? What happens if someone's out sick and you gotta pull somebody else into this project and they're not experienced with these tools rather than having this big burden for them to overcome in this giant learning curve just to get into your workflow if you have these steps automated and all they have to do is update their code and push and this next step is going to happen automatically. That's one less thing for you to worry about that you know how to do it, but it's one less thing for everybody else to worry about and it takes that barrier to entry from getting involved in your projects and lowers that so that other people can get involved. We can also build source files. Compiling CSS, minifying assets. Maybe you're working with React or things like that.  And things that aren't code related necessarily like deployments. So maybe I have this nice process where my composer dependencies get installed, all of my assets get minified, all that's happening automatically, but I still have to open a ticket for IT to spin up a server.  These are the sorts of things that we can take this entire pipeline and automate it. And so it's keeping that state of mind to think about what are areas in your workflow that you can offload. Communication, a lot of the tools we use and so not just thinking about your development workflow, but think about other folks on the team, some things you might be doing. So if you have project managers that need to know when your developers have shipped code, if you primarily communicate in Slack, well guess what, Slack has an API. Every time you deploy code, you can go in and call the Slack API and just have a running channel for every project. I've actually seen this be done in a really, really efficient way where every time code was pushed to the production server, we looked at the get commit logs, the messages that went along with that code, parsed through it, and if there's a JIRA ticket number, call back to the JIRA API and close the ticket because it's now in production. So that's something that your project managers don't have to go hunt down developers and ask them, hey, did you ship this thing? Is this done? Can I close it? It's already done. The developers don't have to worry about, oh, I have to log in here because they've shipped this and they're already moving on to the next task. They don't have this additional overhead of all the things I have to do after I ship the code. So it can help everybody on the team. This isn't just for developers. This is really about taking those items that are weighing down your team and unloading them so they can be more productive with their time. Testing in QA is right along that process. So we looked at kind of the code sniffing, but there's all sorts of tools we'll take a look at. You can do B-hat testing. So if we have a contact form or a donation form or those business critical parts of our site, then let's run a test and make sure that every code change we introduce is going to not break these items. And that might be QA that people are doing manually. That's a giant pain. What if we have to go in and change configuration because we want to test a shopping cart and if we have our live stripe info in there and people make mistakes, might not forget to change that configuration before you test something. Now we've actually done some actual billing or created a real order. When you take advantage of continuous integration, you can offload this to the cloud and you can automate those steps so that we can go in and say, okay, let's import dummy config and then test this and then put our old config back, right? So that configuration import right in there along with that. And so raise a hand. Has anyone forgotten to run update.php after you do a deployment? Like ever, right, that's a thing. We're all human. We're not perfect. And so when you have this big list, it's just going in and taking those items so you don't have to think about it and making sure it happens every time. And I like to tell people that this isn't, you're not gonna go from zero to full automation. This is a process and a nice way to start with this process is I bet a lot of people in the room have some documentation or even if it's just in your head, some idea of the things you need to do, start with writing them down, find the most painful one and it can be something as small as pinging update.php after every deploy and automate that one thing and that starts you down this path, right? And that's something that the continuous integration can help with because it can, you know, these services, I'm gonna show CircleCI, there's Jenkins and Travis and all these. Pick what everyone's best for you. It could even be a deployment script you write and you share with everyone on your team so that every deployment it, you know, SSH is in, does the deployment, runs update, like all these steps. So CI doesn't have to necessarily be moving things in the cloud in this grand fashion. It can be something as simple as writing down your steps and automating one piece. If you do wanna go for the big shebang and move everything to the cloud, this is kind of the process that I've tuned that works well for me and a lot of the agencies I've worked with. So we have some version control system. This is where custom code lives, especially with Drupal 8 and Composer. So we have our composer, Jason, and all of our vendor is not in this repository. Drupal Core is not there. All the contrib modules, everything we're pulling in, the only thing that's there is our custom code. So maybe some modules we've written, some theming, things like that. Every time you make a code change, then our continuous integration server chimes in, it downloads all the dependencies, it compiles CSS, turns that into production code, and then spins up an environment and ships that code. And once it's deployed out, then it can go in, the CI server can pick back up and it can run some of this testing, right? We can go in and make sure, even before our staging environment spun up, we could have run this code testing and stop the process that far if our code tests don't pass. We could do the automated testing. We talked about testing contact forms or donation forms or whatever. Reporting and analytics, so this was like going back in and notifying slack or jeer of what's going on, so kind of taking your entire workflow and offloading it. And so that's kind of what a complete picture looks like, but there's lots of little steps along the way. And now I wanna dive into kind of what the title of the talk was, the benefits. So these are things that I've seen working with agencies adopting automation and adopting automation myself, some of the things that come out of this. So you get that consistency for getting to run update.php is not a thing that happens when the robots do it every single time. We get that nice consistency. So here's just an example of a CircleCI configuration file. Like I said, there's tons of other tools out there, but basically you just list out, like I have a script to do building the site or deploying or testing or whatever. You just list the order. You can list dependencies. So I can say in order to test my contact form, the code needs to be deployed. That's the first step, that's a requirement. And so you can set up these workflows. This is what kind of that looks like visually within the interface. And so every time I push code, all of these steps happen. And if we come in and look in here, each of these has a timer. And the total time is not that much. This is like five minutes for the full run. But if it was me doing it manually, this would take about 15 minutes because I'd have to be like, oh, I need to open up my terminal and run this and fix these things and check for this and analyze the results. And that's all something that is wasted time and brainpower for me that I've now offloaded. And this is what it looks like if it fails. So we had one step here, kind of in the middle fail that had to happen before the others. So our build fails, we get notified of that and all of these other tests don't even run. We mitigate risk because we're running this in an automated fashion. There's less room for error within our workflow, within our pipelines, and within our code we can check for errors earlier. So if you're doing that code sniffing, if you're testing that form on every single commit, that really ups your level of, that increases your level of confidence as well, which we're gonna talk about, but mitigating that risk because we have this full coverage and I don't know, this might just be me, but as a developer, I can be lazy. So going in and if it's some QA, like we're supposed to test this full shopping cart process, I just changed a menu item. That's not gonna affect the cart, right? Maybe I'm just gonna not test that this time. Well, when you automate these things, you mitigate that risk because it's gonna be tested every time and I don't have to worry about it. So that's some risk that was introduced because you weren't previously testing it. Now you've lowered that barrier of entry to doing all of these things that they can happen more frequently. So this is just a screenshot of CircleCI downloading dependencies. Here is like installing assets and compiling things with Gulp, kind of a task runner set up here. And this is a Lighthouse report. I don't know if you guys have seen this. It's in Chrome developer tools now. Lighthouse is pretty cool. It also has an NPM package. You can run it on the command line. So we can come in and audit performance. So we can come in and say, hey, if this new code change decreases performance by a certain threshold, then let's not allow this change and we can go back and refactor and catch those things earlier in our process. Confidence, we talked about that a little bit. If we come in and look and I see here a test has failed, this, why am I talking about this with confidence? Well, it's still automated testing and adopting this continuous integration ups my confidence that I'm not shipping bugs because we have test coverage and it's running every single time. I'm confident that I'm gonna catch things and when all the lights are green, then I'm confident that I'm shipping quality code that I'm not introducing a bug. Members of my team are confident, the project managers can go in and they're confident that when they tell a client something is done, it's actually done and it's not broken and they're not gonna get a phone call later on. And this can show up right in GitHub or Bitbucket or wherever you're working. We can have all of these green check boxes and especially if you're transparent with your clients, if they're coming in and they're watching a repository, seeing what you're doing, maybe you're introducing this pull request on something they own and you've set up this sort of testing and all the lights are green, it's gonna give them confidence that you're doing quality work. It's coming in and saying like, oh, trust us, our code is good. They can actually go in and look at the test and know that the code is good. We have communication as well, so we talked earlier, this is a screenshot of kind of the running Slack message. So we come in and see that these tests are running and I can see like red and green, pass or fail. I have little buttons in here that if one fails, I can click on it and actually go view the full report, those sorts of things. So you can set this up so that if something fails, then members of your team get notified. If it's a general test, maybe a project manager gets notified and they can go in and look at that and kind of keep tabs on the project. If it's something more critical that fails, let's say that I'm the developer who maintains the shopping cart, that test fails even when someone else introduced, we talked about a menu code change. Some tests with the shopping cart fails, it could message me because I own that component. So you can go in and keep these lines of communication really open and clear. And then also you can post these results back to GitHub. So this was the lighthouse test we talked about if the performance drops a certain threshold, we can block this being merged. So we can come in and see that this test failed. The performance score was 37. And I expected a score of 81 because our previous score was 86 and I have a level of tolerance of five. You can configure all of these things. We can go and say, whoa, maybe all of the other tests pass, the form still work, the code looks okay, but our performance tanked. So when you have that broad coverage, then you're mitigating risk, building that confidence and that's communicated back as well. And we can see review required. So this is something that is not actually see it itself. This is something you can do with GitHub but you can go in and say, hey, our process is that we do code reviews and maybe currently that's something you're just saying out loud. Well, maybe, like I said, someone new comes on or you bring in a contractor to help with a project and they don't know your processes. Even if it's written in some wiki somewhere, maybe they still don't know that you do code reviews because nobody told them. But if GitHub gets angry and says, no, this test failed or this code needs reviewed, you're enforcing your process and you're keeping that consistency and that communication. So you don't have to remember that every time you onboard someone, oh, you have to do all of these things and we do code review, it's baked in the system. They know you do code reviews because it's right there in front of them. In reduced overhead, we've talked about all these things take time from different people on your team. So here is just an example where we have a new pull request open, we've changed some things on the readme, but we actually spun up a new development environment automatically with continuous integration, just have a script that goes in, uses some command line tool, spins up a new environment and then call the GitHub API and post that link back. So now I don't have to go in, whoever made this change doesn't have to go in and worry about provisioning an environment. Someone else who wants to go review this change doesn't have to worry about provisioning it if the first person didn't. Maybe they don't even know how to do that. They can just come in and click on the link. They don't have to request it and wait for a response, right? So you're taking this burden off of the person who's making the change, you're taking the burden off of the person reviewing the change and just really improving the efficiencies in your process. This is visual regression testing. So it can use headless browsers to take screenshots before and after of a change. We see here on the left, we kind of are missing this button. Now we have this login with Google social button and then the image on the right is the difference because the button like moved everything a few pixels, the entire thing failed. But this is a type of thing that you can automatically generate these reports attached them to your pull requests. And I don't know about you but when I go in and make a change, that's kind of the default QA, right? Is go look at the homepage, go click around some stuff. What happens when you have 10 templates and you wanna view three viewports? That's 30 things I have to review. And if we're being honest with ourselves, we don't review 30 times every single push, right? It doesn't happen. But when you move that to continuous integration, that can happen every time because guess what? The robots are really good at spinning up a headless browser and they can do it in parallel, spin up like 10 of them and go review these things. And then it is reasonable. It's not reasonable to ask someone to review 30 for every single change. It is reasonable to ask somebody to, hey, look at the report and make sure that, yes, I introduced this button change. This is what I expected to change. But what if the report came back and said this other template, that this button's on the homepage, some other template is broken now and it caught that? Like reviewing the report is a reasonable ask. Much more reasonable than go check every template to make sure your homepage changed and break things, right? And so this is extending that. We've actually used visual regression, some of this automated testing to automate security updates. I know there was a pretty big one that happened recently. We won't go into details there, but essentially this is a pretty extreme example of the power of continuous integration, some of the things you can do. So spinning up a new environment, pulling down the database and files from live, applying a new security update, running this visual testing because security updates shouldn't affect the way your site looks, right? It's probably some one like SQL input line somewhere that's not gonna affect the way your homepage looks. So we can go in, make sure visual tests are okay. If you have any additional tests for those contact forms and whatever else is business critical we talked about earlier, run those tests. If everything passes, merge it, ship it out. You can run more tests if you want and then deploy it, right? And this is something that can run on a cron. I have it running every four hours for sites that have to help maintain. And so now if a big security patch came out right now, and I'm busy, I can't stop in the play updates to a bunch of sites right now. I mean, I could, but it'd be pretty rude. Then we could go in and I just know that within four hours this is either going to get applied or I'm gonna get an email that some tests failed and I need to go review. And even if that happens, it's gonna tell me like, hey, this certain template is broken, check that. And so I'm not playing needle in the haystack. I can go in with precision, fix what I need to fix, get my update applied and ship it out.  And then we're talking about reducing overhead. I don't know about you, but before I automated this process I spent many, many hours applying and queuing updates. So if you want a good reason to adopt this, then taking those hours off of your plate is a pretty darn good one. And I kind of want to end with automation is a journey. So don't go in and try and like do this over the weekend. It's not gonna happen. This took us like a year to flesh out. That large process I showed at the beginning with all of these things running on pull requests, it was a journey, it took time. So we came in and said, all right, on every pull request we're gonna just run some code sniffing. Now we're just gonna install dependencies. Okay, wait, we're shipping code and the client's complaining with the site slower. Let's add a lighthouse test for performance. So you build these things over time so it really is a journey and so think of it that way. Final thoughts, I have some links on here at the end of the slide. I actually did a full talk at Drupalcon previously about the automated updates if you wanna dive into that. Some other great DevOps tracks. So if I've sold you on adopting CI, go check out some of these other ones and really get into the details. And then I don't unfortunately think we have time for questions, we're kind of out of time but I'll hang around out in the hall or up at the Pantheon booth, come find me or hit me up at TaylorME and I'm happy to chat some more. Thank you.


Hello everyone. I am Sanjay Gupta. I welcome you on Sanjay Gupta Tech School. In this video, I'm going to discuss about composition that is available in lightning web components. So after discussion on composition, I will let you know how we can set properties on child components. So basically, we will be discussing about parent child component relationship as well. So let's discuss about how we can compose components. So composing means like if you have more than one components, so you can call one component to another. So here with this example, you can see the topmost component will be to do app. And in that components HTML file, we are calling C hyphen to do hyphen wrapper. So basically component name is to do wrapper. So this will be known as a container component. And inside this container component, I am calling a component twice, which is named as to do item. Right. So let's understand the detailing about these components. So first we have owner. The owner is the component that owns the template. In this example, the owner is the to do app. So the to do app component, which is having all the components called. So this is the owner of the component or you can say owner component. The owner controls all the composed components that it contains. The owner can set public properties on composed components. So if you have any public properties in to do wrapper or to do item. So those public properties you can set through to do app component. So here you can see we are setting item name with milk and bread value. So this, these are public properties item name and this public property is defined in this to do item component. So I will give you a demo as well. So we can set properties, public properties on composed components. We can also call methods on composed components. So that is also, I will be demoing not in this video, but in upcoming video. Then listen for any events fired by the composed component. So composed component will be treated as a child component. So if child component is firing any event so that even can be handled through the owner or parent component. So this also I will be demonstrating in the separate video. So these are the three things that can be done by the owner component. Then we have container component. So a container contains other components, but itself is a contained within the owner component. In this example, this to do wrapper is a container. A container is less powerful than the owner. A container can read, but not change public properties and contained components. Call methods on composed components. Listen for some, but not necessarily all events bubbled up by the components that it contains. Right. So container components has less rights as compared to owner component. Now let's discuss about parent child relationship. So basically we discussed about owner and container and this one like to do item. This is also contained component. It will be treated as child. So when a component contains another component, which in turn can contain other components, we have a containment hierarchy. So we can have depth in this hierarchy. Like we have component one, which is parent. Then that component one is containing component two that will become a child for component one. Then it may possible like component two is containing component three. So this way we can create a containment hierarchy. So a parent component contains a child component. A parent component can be the owner of a container component. Right. So the this is brief about component composition that we have in lightning web component. So you can have containment hierarchy. So there can be parent child relationship and it can go to any depth. So whatever parent component is containing the child component. So parent component will be having a few rights like to set the values to child component attributes to call their methods and to listen the events. Those are fired by the child component. Let's discuss about how we can set properties on children. So basically if you have composition between two components, so one will be working as a parent and another will be working as child. So through parent, you can set the properties on children. So I'm going to demo you that by creating two separate components. So I'm just right clicking on this LWC so that I can create a new component. And I'm naming it as to do item. So this is my component that I created. So it is having HTML as well as JavaScript. So in this HTML, I'm just writing item name. So it is basically a property that I'm going to define in JavaScript. So inside JavaScript file, I'm going to write at the rate API item name and then semicolon. And here I need to write API. So I'm just putting a comma and then writing API. Right. So this API is a decorator. And if you want to expose this property to another component. So in that case, we just need to write any property with at the rate API decorator. Since we are seeing a demo like from parent, we will be passing values to children. So in this case, your child component should have property declared with at the rate API decorator. So this to do item will be our child component. Now I'm going to create one more component. So this component will be to do app. So it will be a parent component. And in this parent components HTML, I'm going to write some statements. So here I need to call C hyphen to do hyphen item. So this is my component name. So I just created component with to do item. But this is how I'm writing it in parent component while I'm using. So this naming convention, you also need to follow. This is Kabab case that you need to follow. And the attribute name is. Sorry, property is item name that we declared here. And it is also will be written as like this with Kabab case notation. And here let's say I'm writing milk. And it is closed here. Now if I want to call this again, so I can write it like this. So I called to do item component twice. And I just set item name with milk first time and bread second time. And I'm saving this code. So this is my parent component, which is calling child component twice. And child components property we are setting here as well. So this child component will be placed twice on the UI because we are using it twice on this parent component. So this way we are setting values to children properties through parent component. So this is basically parent child relationship that we can implement with the help of composition. So here this to do app will be owner and here to do item will be known as the composed component. And we are just controlling the property of that composed component through the owner of like that child component. So you can say to do item is a child component and to do app is the parent component. Now both the components are saved. Now we just need to modify the XML file. So here is composed will be true. Then we need to set the targets. And as usual, I'm choosing home page because I just need to place it on the home page. So to do app is done. Now I'm going to to do item here. Also I'm setting it as true and selecting targets. Then setting target as lightning home page and saving both the components. Now first I'm going to deploy to do item from source to org and then I will be deploying to do app. So I'm right clicking and deploying it from source to org. So my both the components are being deployed. Now jumping to org and I'm on home page. So I'm just clicking on the gear icon, edit page. So now I'm going to place my parent component and you will see that to do item component will be displayed twice because I called that component twice. So here to do app is available. I'm going to place it here and you can see milk and bread is displayed twice. Right. So I'm just saving it moving back and here you can see the result milk and bread booth are displayed here. Now if you want to display them in different lines, so we just need to use additional tags. So here I can write BR tags so that they will be available in different lines and I'm going to use lightning card as well so that it will be displayed properly.  So here I'm going to save this code. So this HTML file is modified. Now what I'm going to do, I'm going to implement CSS as well so that this the styling of that text will also be modified. So here in the parent component, what I'm going to do, I'm creating a CSS file. So to do app dot CSS. And in the CSS, I'm writing C hyphen to do hyphen item and here I'm going to write font size XX large. Right. So I just wrote the CSS for this component that I'm using here. Right. Another way will be like if you want to define CSS in the child component, so you just need to use host. I already demoed in the previous video so you can watch like how we can apply CSS between parents. Component. So here you can see I just wrote CSS on the parent component. Now I'm going to deploy it again. So we just modified the parent component HTML and created CSS file. So we need to deploy it only and here I just need to refresh it. So maybe you just need to refresh it twice so that changes will be applied. Yep. So here you can see changes are applied and it is showing composition demo because we use lightning card title and font size is also increased. So this way I hope you understood like how we can implement composition and through composition how we can set properties on children. So this is the best example of like understanding parent child composition and their behavior like how we can pass values from parent component to child component. So here I just created CSS file as well and I used AdWrit API decorator which creates any property as public so that it can be used into another component.


Hi, everyone. Happy Friday. I'm Joe for jaspyscasebreaks.com coming at you with 2021 Panini Prison Basketball 3 box picker team number 13 from a fresh case Big thanks to this group of people right here for getting in on the action So if you have a little rooftop next to your name that means you won that spot in a filler will filler pack Kevin got last spot mojo. That's what he has a star next to your name. So However you got in thank you, and I appreciate it got a lot of Let's see what we can get out of here folks All right now. Let's pop this case open It's kind of heavy knife in my pocket and a lot of teams still available and pick your team 14 ladies only fun to get into that This is on the table. We're gonna use the top camera as well.  Let's select that one We're gonna go one two Three and four if I roll a five or a six. We'll just roll again like that six six Four there you go. So one two three and four right here. So for these We're gonna Chicken scratch right here PYT. So we all know that they're that they're pick your team boxes Not to be confused with any random team box that we may have out there. I don't think there's any case. It's or anything like that, but We like to keep everything kind of consistent So in the future another breaker or myself may just grab three random boxes from the back or Or bring all of them out do a randomizer, but either way we'll just select a random three. All right. There you go Here we go. Time to break Good luck You know by now Some of the names we're looking for tons of prison parallels And we I mean you don't even have to get this guy some even some of the Even like LeBron silvers Yanis silvers Dodger silvers I mean they could go for a boatload of money on the secondary market Yeah, so there's a lot of amazing stuff in here Michael. That is for sure All right. Good luck. I've definitely been distracted by opening day baseball. There's baseball on the background my Dodger leading the Rock He's eight nothing Trevor Bowers debut. He's been cruising today But there is basketball going on today, what's going on in the hoops world we've got a lot of final scores here Grizzlies beat The Timberwolves 120 to 108 Carthen Towns 60 points 30 30 points That is not 60 16 rebounds to assist foul Tunis 19 and 11 Hornets beat the Pacers 140 97 miles Bridges 23 points ten assists ten rebounds one assists Teja McConnell 12 points one rebounds seven assists for the For the Pacers Mads beats the mix 99 to 86 Celtics beat the Rockets 118 to 102 Man Raptors swept the floor with the with the Warriors Raptors are up 102 to One Raptors beat the Warriors 130 to 77 Putting a 46 point third quarter on him to their 14 points ouch. Let's breeze through these now. Remember in the pick your teams All-card chip in the pick your teams. There's Lamello. Nice. There you go. Charlotte. That'll be for George About the Charlotte Horn straight up Scared money don't make money folks Well on his way Hopefully a few more of those will be nice, right There's Tristan Thompson red reveals Javon Carter autograph Sensational signatures for the Phoenix Sun. That's going to be for Roy won that spot in the team random not numbered My Lakers just started right here, but They're up 1811 on the Kings in the first quarter Let's switch to that after this uh Baseball game here at a 299 Tristan Thompson Now a certain selection of rookies We'll get the immediate sleeve and top load treatment But obviously everything ships. So And rookie parallels, of course Dramon green tre young prism. So there's the retro prism look with the silver Matthew shear and the hawks It's good go for a surprising amount on the secondary market. They people seem to really like those cards Patrick Williams for the bulls goes to Jason wainer rj hampton hyper for michael and no check that for um For bret and the Denver nuggets Gee zantac probably no no good for you 27 out of 60 Aaron gordon shimmer that is for martin that is still uh orlando edition Oh my god reggie bullock red wave Royce o'neill to 175 for the jazz that's for michael garcia And there's zion williamson in that retro prism design for nollens second-year zion going to mark another second-year zion And a second-year zion hyper nice So this this trend kind of started last year With luka donchage and tre young Especially luka donchage Second-year cards going for You know selling well on a secondary market. I would imagine zion and ja marant Are following a similar trend For this year, there's ja marant right there. Oh flip them over There's a tyrese halliburton jaden mc daniels daniel tice Clippers lou williams to 99 that'll be for nicholas Won that team in the team random Tyrese halliburton for the kings risario won the kings in that random And this kyle kuzma any of veja And an orange tim duncan to 49 Nice hit Cory seger is raking There's rookie signatures caches stanley For the pacers that's going to be for michael garcia Yeah, I don't know how well he does on the secondary market, but unfortunately I think his His injury history has really kind of Has really kind of suppressed his uh His uh interest in investment, you know what I mean? I think a lot of people are cautious about investing in him I'm sure his rookie cards still do pretty well I don't think he's he doesn't quite have that sort of lebron yannis treatment yet where even their their their cards and their Current seasons are still doing well in the secondary market But he could if he if he stays healthy The feed won an mvp this season, you know that that could have been huge Help the sixers get to the finals win the finals something like that If you win an mvp the stuff like that something like that would Would definitely be very helpful for mb Hobby wise He still does pretty well though on the secondary market I do. I think if he wins wins mvp. I think his hobby appeal does go up It'll first start with his rookie cards, and then it'll trickle down to following years and you know Philadelphia wants playoff success. He's he's not only has to have the mvp, but he's got to be able to send team Drag a team along with this guy Deep into playoffs. That's also going to help. It's sadeek bay for detroit Another second year's ion and a silver robert woodard for the king. That's for rosario and health too, you know Like we we we have so many collectors and a lot of sharp You know a lot of a lot of people who are far more sharper than me about values of parts um You're coming in here, you know, they're You know, you hear the you hear the chatter around the shop and it's A lot of it is just like can you can you trust him to stay healthy?  There's rudy gobert at 299 for the jazz that'll be for michael I got all these guys right in a coros Pretty solid as well post the calves desmond bain burn a kongu hyper jason tatum jason tatum at 26 points none It's martin with the celtics a kongu goes to matthew and the hawks And the grizzlies drew panner gets the desmond bain Zach Collins red wave and we got not lamello purple ice to 175 That's for george and charlotte silver pascal siacum I don't know how well these fireworks parallels do on the secondary mark But that is step and it is silver. So that was a second-year job morant Payton pritchard for the celtics And a seiku dimboa for the piss in so 99 that'll be for martin and detroit Payton pritchard for martin and the celtics jail and smith autograph rookie signatures for Feroi and the sons Sons are up 38 11 on the thunder towards the end of the last minute of the first quarter There's a hyper parallel of sadeek bay There's chris middleton Nice one martin detroit Let's move to donchich Here is deandre hunter 55 out of 60 orange shimmer For matthew and the hawks and we have A not lamello. That's nick richards Sensational signature lamella would be a redemption anyway There you go though. That's still an autograph george. There you have it. There's james wiseman Steph curry red wave busavich Weissman, of course will go to shawn and the warriors And here's the final box Good luck Is it weird every time you hear me say not lamello reminds you of an episode of the rookie? Is that the uh Is that that old movie with With denis quaid where he was trying to be a pitcher At like 40 years old and he did You mean the movie All right third and final box bigger team 13 The three boxes from a fresh case Oh a tv series All right, I don't think i've ever heard of that Well, i'm not a big tv guy so There's obi toppen preciousachua yannis onto the kompo All those yannises will go to john derrick mendoza who won the bucks In the team random. Here is e10 who won the heat In the team random the little filler nix picked up straight up by george. Thank you george devon vassal josh heart okongoo again red wave and james harden There's jake layman 55 out of 175 not laying it up. It looks like he's dunking that that guy here timberwolves going to joseph chris stops for zingas kind of looks like pony pony autograph for dalis kevin yang last spot mojo strikes again 10 out of 10 a pony autograph Last spot mojo 60 of the time last spot mojo hits 100 of the time andrew wiggins to 199 Sean the golden state Greenance jr. Silver josh heart red wave. There's larry bird dany green silver going another green draymond green this time rodney hood thomas bryant tray jones hyper rookie and a desmond bain red rookie grizzlies drew tray jones For the spurs that'll be for john silver will barton. There's a red wave tray young james ramsey and there's another lamella ball. I think that's our second one We had one earlier. Yeah, we had one earlier. Here's your second one george I'm sure there's more parallels Here for lamella, but the two will definitely help There you go, maybe if one of those grayed out nicely even better nine out of 60 jared allen For the nets that'll be for chuck there's theo maladon Sensational autographs oklahoma city thunder that's going to go to mark beset And the last bit here here in pig your team 13. Thanks everyone for getting into 2020 2021 prism basketball really appreciate it glory marketing blue ice to 125 damien lilor drew holiday luke adonich and tristan tomson closes things out there you have it folks I'm joe for jaspy's case breaks.com. Thanks for watching. Thanks for breaking with us And i'll see you next time for the next one. Bye


What's up everybody, JC here with JaspysCaseBreaks.com. It is new release day and it's a new release of 2019-20 Penini Spectra basketball. We are doing a two box break, random number block number two on our website. And again, 10 total spots in this format. Every spot will get a random number for the break from 0 through 9. And again, if you get number three as the random number block spot, you'll get all hits from teams with three being the first number next to the data from the left side. So for example, if you get a 243 out of 299 serial number card that'll go to block three. 13 out of 99, 3 out of 25, 43 out of 49, et cetera, et cetera. That'll go on to number three block. All redemption cards go to spot zero. Even if we know it's a one-on-one, it'll still go to spot zero. And again, if the card is not numbered, it will be randomized at the end of the break in one lot. So all the base cards and everything like that will be randomized in one lot. So good luck. Let's do the randomizer here. Dice roller, 6 out of 5, 11 times. Good luck. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, and 11. 11 times. Danny down to Kessler. 11 times here now. 0 through 9. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11. Boom, 11 times. 11, 9, down to 8. So Danny, you have 9. Vibble with 3. Jeremy with 4. JC with 7. Matthew with 6. Mark, last ball mode. You got 1, any one-on-ones. Brian, you have 0. Any redemption? James with 2. Matthew with 5. Kessler with 8. So there you go, guys. Quick 30 seconds to admit if anybody wants to trade for numbers. If not, I'm closing it. There you go. The trade window closed. Let's just close it. All right, again, this is a 2 box break. So here you go. 2 box break 1, 2, and 3. I numbered them 1, 2, 3, 1, 2, 3. These would be used for 1 break here. This is a 2nd break and 3rd break. And there you go. So what I'll do is if I roll a 1, 2, it'll be box 1. If I roll a 3, 4, it'll be the middle box, box 2. And if I roll a 5, 6, it'll be the bottom box, box 3. Whoa. Wait. I really rolled there. That's 1. So we'll go with 1 at the top, 1, 2. The box 1 here. These 2 will be for 3 and 4. And it should be coming up soon. But 1, 1. All right, good luck, everybody. Oh, Terence Matt. Dyka, that's a rookie for the Clippers, and that's 4 out of 8. Very nice. So that'll be spot 4, which is Jeremy Moeller. There you go. And Russell Westbrook for the Thunder. Again, all non-numbered stuff. We'll be randomizing 1 lot. And we got Simmons to 49 for the Blazers. That is 10 out of 49. Spot 0 going to Brian. And at Jared Culver, 3 out of 5. Very nice for the T-Wills. That's a rookie, 3 out of 5 going to Vipple. All right, next 2. Yeah, Spectra has beautiful colors. Cam Reddish, 10 out of 99. So it's going to 0. And Brian. And we got Mike Conley. Utah Jazz, 2 out of James. We got Larry Hughes to 49 for the Cavaliers. And that is 49 out of 49. So it's going to Danny. And out of 25, Ralph Sampson. Sampson. So that is 12 going to James. There you go. First box. Second box, guys. All right, we got Kyrie Irving for the Nets. That is a 4 out of 5 for the Nets. Going to Jeremy. There you go. I know, I was talking to a buddy of mine that still has the rookie NT Shield RPA from 2011 National Treasures. I tell him he should get rid of it now. 24 out of 99. Jeremy with that one as well. He's never surfaced because it's in his safe. Otis Birdsong to 25 for the Nets. 3 out of 25. Vipo with that one. And Richard Hamilton, number 12 out of 49 for the Pistons. 12, 2 going to James Cook. All right, last two packs, guys. Smells like piscale. Ignacio Brasdaques, number 27. JC with 7. Rajon Rondo, silver. All right, last two hits. Fiondou to 99 for the RPA. And that is 40. So it's going to go to spot 0 and Brian. And the last one's here. Cam Reddish to 99. ATL, 20 or 14. And spot 4 going to Jeremy. Nice break for number 4, Jeremy. All righty, halfway through, guys. Dono's Islander Jocelyn, number 3 and 4. Should be loaded or could be loaded, guys. Who knows? Again, all these base cards that are not numbered will be randomized to one customer in this break in one lot. So let's do that. Got the customer names. Get a neat dice roll. Here's the list. Roll it. And we got a 3 and a 1. 3 times. 1, 2, 3. JC, after 3 times. There you go, man. You're going to get all the base, not numbered. And there you go, guys. Appreciate it. Japsyscasebreak.com.


I think when Clay had a rough outing a couple weeks back with the Reds when he became a part a little bit He said that sometimes when he loses it, it's kind of tough from that kind of self self-correct Do you see that from him a little bit just from that the times he's He's got bumped around a little I mean, I think is that something has to learn I guess right along the way I mean, I think he has done a good job of self-correcting because in some of his most dominant outings You'll see him that his first couple pitches Won't necessarily be in there and I think he does You know, I think what what he was answering I I think I saw and the the question and answer That you're talking about with the Reds was he just didn't correct there on the fly. So Was having a hard time, you know kind of finding it. So You know today was different not quite that You know, he obviously lost a little bit there with two hitters But got himself back into a good count with Perez there and then you know Probably didn't get the sink that he just normally always has and and Perez got him back right Matt Carpenter has a career high batting average on fast balls and breaking balls this season What have you seen from his approach that makes him so difficult to pitch to for opposing pitchers? Well, I mean, I think he's back to being the all-star level hitter that he's that he's been most of his career, you know I mean, he's got a great great approach great eye at the plate.  I'm encouraged by a lot of the things. I'm seeing obviously today was a tough day for us You know, but you know Clay Holmes has been, you know, one of the best closers in the sport You know today notwithstanding we feel great about about him I feel like LeWisiga continues to make progress chap. He's making progress We've seen the likes of Marinaccio and and Clark Schmidt really take big steps and be real contributors to the bullpen You know, Wandy's reliable and we've seen Alberta Bray you I feel like go to another level So I think we're seeing a lot of good things down there You know, we just got to keep refining keep getting better and You know put ourselves in a good position moving forward


All right, so I was asked to address where are the gaps in our understanding or knowledge of the functional landscape of humans and mouse. The planners at this workshop actually gave me a list of questions that I was supposed to try to answer in this short time. And I'll try to touch on a fair number of these versus current status and what new data production efforts should be the highest priority. What should we do in terms of validation and characterization? What future studies should be envisaged? If not limited by technology, I like that one. What technological breakthroughs would be transformative? How would you prioritize? And what do you need to make the data interoperable? And I promise to stop, well, my timer, I can see it right there because the others have lots to say. And happily, a lot of what I want to emphasize, you've heard parts of, but I do want to give you my perspective on these. So first, the current state of mapping. This is not to scale, but I think the message is accurate. You've got to think about this top layer is a two-dimensional matrix cell types and features. And this has been emphasized before, but let me say it again. There's some of these assays that really penetrate and there's some cell types where you only know maybe two things about them, but you know two very valuable things about them. You get that DNA sensitivity. You get the RNA. You actually know a lot more about the tracheolepithelium than you did before. And then this has been emphasized a few times. There are a few cell types for which there's a lot known. There's a lot of white in here. There's a lot that will have to stay white because the factors are not in those cells. But still, there's an awful lot that hasn't been done. But that's really just kind of a tip of the iceberg and context dependency has been emphasized over and over. So if you imagine that, it's that same matrix over and over again, some number of times in response to environmental stimuli, time of differentiation or whatever. And for every cell within each one of these matrices, there is actually a relevant time course. And each one of these cells is whole genome data. This is huge amounts of data. And of course, no one really knows how many there are of any of these. But let's just put in some numbers that are not crazy. And I cited a few of these and some of these I just guessed at. If you just multiply all these together, it is multiplicative.  You talk about brute force completion of the matrices is 800 million. That's why I think we're not going to get there. I think we can get something extremely valuable, but I don't think we'll get to completion. Oh, so how do you get to something that's extremely valuable? Well, you can focus. And this is just looking at one particular system that I'm very, very interested in and just looking at the myeloid component of hematopoiesis, bunch of different cell types that thanks to advances to allow us to do RNA-seq and attack-seq and small numbers of cells, you can actually fill in the relevant matrix a lot. Everything that's colored is actually known. As known six months ago, the black is from in code, the gray is from others. So, you know, focus will help you learn a lot. Of course, it won't cover every cell type, obviously. So that's current status. What else is needed? Well, my number one thing that I think is needed and this is consonant with other things you've heard is a 3D chromatin interaction map. This is just one example of this and showing that alpha-globin enhancers actually interact all through a region that's clearly that the regulatory region is meant by K27 acetylation. Now, this guy, Jim Hughes, used a capture approach to get high-resolution data. We saw some high-C stuff, much lower resolution. And we have to embrace a whole range of scales and try to understand that range and try to hit many different cell types. And I think we've got to jump into the dynamics of these interaction maps because you're actually seeing regulation and process in progress. I wish I knew more about what I thought 4D nucleon was going to give us lots of new data sets, right? And so I hope we get some clarity on that. But at least there's some money going into this and it's very, very important. We need to interface with it. And I do think that at least for several cell types, this could benefit from a top-down managed approach. There are other things we need. And so I actually do think we should move towards completion, even though I don't think we'll ever get to completion, but we will get to a useful point that I'll mention later. So you need to map more factors and more cell types. And these really are serious limitations. I mean, maybe antibodies will get us from 200, let's say it was 300 factors up to the 1,500 that are needed, but honestly I doubt it. And a lot of these cells are pretty rare. And so you really have to get down to smaller numbers of cells. Higher resolution would be very, very useful. I think you'll hear more about this from other speakers later. And maybe, I mean, you're hearing some calls for continuing with this top-down managed approach, like we have in the current phases have had an encode so far. I think there's a lot of value from opening it up to community-driven projects as well. And throughout all of this, I mean, the dynamics. Dynamics is how you really, I think you can really start to approach a clearer understanding of what you want to know from this. This is just a snapshot from a very well-studied system, erythroid maturation, beta-globin gene complex. And just looking across the time course, not only it was happening in the cells, but the regulatory regions which have this factor got a one bound early on. And you can see later on the response, a million fold increase in expression, a hundred fold increase in binding there. And I think this is a sort of data that we need throughout. And I'm gonna have to say likely chosen parts of that many dimensional matrix. Hence, I'm saying it should be driven by investigators who really understand these systems and can make the best case that this is where you're gonna get the biggest bang for your bucks. Oh, then another question I was asking, what validation and characterization do we need of the functional elements? Well, we need to do this seriously and happily. You're hearing many speakers embracing this. And I'm kind of breaking into there. There's some efforts that would benefit from being highly managed and closely coordinated. In fact, it's ongoing now in phase three of ENCODE. Obviously, you wanna use these high throughput genetic screens that have been developed recently. And we want to ensure that a certain fraction of the functional predictions are tested, and then you get an answer. How good were those predictions? You get this empirical p-value that Dana was asking about. Now, I think everybody knows, we're sure you're gonna start with the positive predictions and you're gonna test those. But I also wanna put in a pitch. Do it broadly, put in some negative predictions because you really also need to have some orthogonal ascertainment of what are you missing. You like this, all right, we're getting some enthusiasm here. Now, again, I don't see this happening throughout the entire matrix. But we have to have some well-chosen systems to investigate very, very deeply, and actually, this kind of information will extrapolate broadly. Now, I also, I do like the less tightly managed approaches and that there are all kinds of perturbations. I mean, you talk to anybody who's invested their career in a system or locus or whatever, that they're doing every kind of perturbation you can imagine and learning all kinds of things. So I think it's not just high throughput enhancer assays, large scale genetic engineering for loss of functions, and other things. And I think Will's gonna talk some about that later. And this is pressing the envelope of what the NHGRI envelope portfolio is. But I think we have to embrace these. And Lori's gonna talk a lot more about this. But why look at lots of different perturbations? Well, because we are working with a fairly limited vocabulary of regulatory elements. And you can tell that there's much more heterogeneity from all kinds of things. This is just two different assays for fairly sophisticated predictions of enhancers. And in both of these assays, some things work well, some things don't. And there's a large dynamic range about what's happening. On these different axes. So that tells you heterogeneity. If you dig into these enhancers, you see diverse combinations of transcription factors. If you take an unsupervised learning approach to find a chromatin states, you don't come up with two, you don't come up with four. In this particular paper, we had 25 because we said that's the number that we'll work with, right? It's bigger than that. So expanding the vocabulary and I hope we hear from that more. And we need, we know some popular assays right now. There's no reason to think that functional assays are, that we've come anywhere close to exhausting the possibilities. And I would love to see periodic calls for proposals. Now NHGRI can come in, this is that catalyst, that facilitator, take the good assays and get them genome wide. And you get them genome wide and then we can start to really get large amounts of data together in a way that we'll start to learn systems better and also find out things we didn't expect. Evolution has come up a few times and let me just emphasize. You always get a lot of power from interpretations of comparisons. Many of us kind of grew up in genomics lining up DNA sequences. And if you see motifs that are deeply conserved, it actually does mean something, it says this is powerful. And you can interpret these alignments in evolutionary terms. You can do the same thing for epigenomics. And comparative epigenomics really does tell you a lot. You can take, it's just the same transcription factor and same locus and mouse and human. And then they actually do line up quite well. They actually line up better than the underlying sequences do. And one of the things that came out from the mouse encode comparison was that there are these categories of functional evolution that's revealed by this comparative epigenomics. When I was younger, I really was in hopes that all functional regions would look like this where you'd see, if you see a factor bound in, say, erythroblastin and mouse, that the orthologous sequence in human would have a similar signal. And that does happen. It's a small minority of the time. And this marks some profoundly important regulatory elements. This is some work from Mike Snyder's lab and our lab, showed that these guys, their function is not restricted to red cells, that they're pliotropic, they function in many other tissues. Linear specificity, this is not, nature telling you it's not important, it's just nature telling you it's lineage specific. And we also see a lot of evidence. There's a beautiful paper from John's lab about this, and we covered it in this paper, that you can, even if you don't see that feature in mouse, and you don't see it in that tissue in humans, you can see that piece of DNA being used in another tissue. There's a lot of turnover, there's turnover in regulatory regions, but it's like the same pieces of DNA being used over and over again. And maybe, as we do expand filling these matrices better and better, maybe the dimensions will reduce. Maybe this reuse thing could actually turn into something that would simplify what we're doing. But anyway, so, but evolutionary comparison of both the genomes and the epigenomes is important. What future studies could be envisaged if not limited by technology? And this is really fun to think about, and I just stuck, I'm going to stick with one because it is so beautiful. And if it's, if this is really happening, we've got to understand it better. I know it's happening, but we need to understand the mechanisms better. Directed movement of genes in the nucleus. You really do see during activation, genes moving from inactive chromatin territories to active ones. Some people will call those places with abundant RNA poll to transcription factories. Other people don't like that term, but there is this movement. You can also see co-localization of actively transcribed genes. This is some work from Peter Frazier's group and all these pictures here, the alpha-globin complexes in red and there's some other erythroid locus in green. And every time you see yellow, that's co-localization. And there are other studies that show the dynamics of that movement. And here's just another picture from Peter's work just to kind of give you this image that it's not so much, it may not be so much gene activation by recruitment of all of these factors, but rather these factors bringing your locus to where it could really be highly transcriptionally, highly transcribed. So what directs that? Are there molecular locomotives? Is that part of the vocabulary that we need to be thinking about? And is that what one type of enhancer does? Are there tracks that the gene follows to get from one place to another? We've got a lot of unexplained factor binding, maybe. What determines how long you stay in that active zone? And that's a really good model. This is an old one, but a good model for what some enhancers might be doing is just holding the polymerase there. Oh, and how much of this directive movement is actually generating so much of this non-coding RNA that we don't know? How to explain? Something to try to get at if technology isn't a limitation. So I don't have to tell you, I don't have to come up with a way to do this. I just have to say it would be nice to know. And there are lots of other functional elements. And there are some things you don't know. You don't know. I know I don't know these. Replication machinery. Well, happily timing domains. That's coming out. And there's beautiful data people have been showing it. But I don't think we know where the origins are. I don't think we know what sequences determine those. We haven't mentioned much about how cells remember what they were as they go through mitosis. Now, you can certainly do factor binding through mitosis. You see some things that are stable through mitosis. And in this case, accessibility changes during mitosis. What's going on with those? What determines them? And is this a special type of bound site? I think it probably is. And I think it's saying, hey, we've got to turn these sites on real early. Recombination hotspots. I don't think we know. I don't know nearly as much as I'd like to know about those or matrix attachment regions or others. I think there are lots of other features to try to get at. That was OK. Now, transformative technologies. This is a new question now that I was asked. And here I'm just going to join in the chorus and say, yeah, mapping binding profiles for very large numbers of transcription factors. Now, so if there's a better way to do it. I mean, if antibodies can do it, oh, that's fine. I just don't think it's going to get us there. And there are lots of ways that you can think about more efficient, well, ways that are going to extrapolate to many different loci. Going down to smaller numbers of cells, I mean, to be able to look at multi-lendish progenitors is fantastic. I do want to emphasize one point. Because it's obvious as you go to smaller numbers of cells, you get down to one, right? But here's what I think, I mean, if you know this, but I have to emphasize that you go down to single cells. You're not just got a new technology. You've got a revolution in your thinking. Because now you can really see that the heterogeneity, this is just a picture from work from taric inverse. And this is not genome-wide or whatever. We can get this is the picture. If you see just colors here and there against the gray, that means it was expressing just one of many cells. But these were all, when I do the experiments, these are all the same thing, right? I'm always looking at this as a population. Heterogeneity, stochastic events, and these binary decision trees we show for differentiation, they could be all wrong. As an ensemble, they're correct. But in terms of following the path of any one cell, they may not be so useful. So I want to emphasize that. This is a revolution in the way you think about things. Now, transformative technologies. Oh, all right, so visualization. OK, everybody said we need better visualization. But nobody's showing us that. And just let me just picture this, right? So instead of going through your browser page after page and trying to remember what this locus looked like, another one just this room, that's your genome, right? Every table's a chromosome. And you guys are all features. And I can zoom around and really try and start to get a more full understanding and actually be able to look whole genome and let the brain, your brain is really good at pattern finding, way better than some machine learning approaches. And well-invested money that would bring in some new visualizations. I want to go into a virtual reality viewing environment and just really dig into it. All right, prioritizing needs. It's NIH, you've got to go with disease relevance. But man, if you can, it's new biological insights that drive things. And I like projects that dig into newly fertile ground on the enduring questions. That's what I would prioritize. Oh, OK, I've got to say I've got 38 seconds here. Let me guess what I'm still going to say. Oh, yeah, I've got two things to say here. First of all, all right, wasn't needed to make the new data interoperable. It's all data coordination. We have to have all of these aspects. And we've heard them before, rapid data release, expert curation, uniform data processing, easy access to everybody. This is the heart of anything. Whatever you call the next phase, this is it. You've got to have a really strong DCC. Oh, but you don't have to do everything in a top-down, managed way. You can do it with a community-driven project. But it all does feed into the DCC. And this is the last point I wanted to make. So this is kind of the current structure for ENCODE. You have some data production centers, a small number of them. And you've got the economy scale and all this. And they really pump out the data. And the DCC keeps it. This blue background means that there's a lot of crosstalk within here, a lot of coordination, and quarterly reports. This is it. You could have a consortium. It's less coordinated. The systems will be chosen by investigators proposing and reviewers evaluating. And there's going to be a much larger number of production centers. They still have to adhere to the standards. They can help develop them, evolve. It still goes through the DCC. And you have to have good interfaces for the users. This lighter background means less managed. Annual reports, perhaps. OK. How do you know when you're complete? We can do predictive modeling. And I'm out of time. So I might be out of town after I say this. But you need a metric for when you're complete. And whether you want to go with accuracy of predictive modeling or whatever else, there needs to be a measure. I just don't think the brute force approach is going to work. Oh, yeah. And this is the last point. Once you know enough that you can identify the gaps, sometimes you can find that gap is actually filled by something very valuable. This is the front range that the Poconos and the Delaware River cut through there a long, long time ago was absolutely gorgeous. So gaps can be good. OK. I'm going to stop now. Now, Carol, if you want me to take some questions now or wait. OK. Can you take questions about more structure? OK, good. All right. So I actually like your two structures. And I'm thinking more on the more less controlled structure. But do you think of some intermediate? So how would you make sure that the data can be, for example, managed by the DCC, and at least if the data quality reduced, even if the systems aren't coordinated, at the end, at least the assays are comparable? Right. So let's say there was a call for proposals. And it really fit along the structure I put over there on the right. Well, you still would have to, all the investigators would have to buy into that there are going to be data standards. Now, the data standard, number one, is there will be quality metrics put on all of these data. And exactly what the threshold is for bringing it in might, what that could probably evolve. But let me also say, there have been some studies.  There's a lot of really good stuff out there. And we need the numbers. And the numbers can be, the metrics are established. Yeah. OK. Truly? Quick, simple question. How many of the ENCODE cell lines have a good quality whole genome sequenced? How many ENCODE cell lines have a high quality genome sequence? Thank you. I knew somebody knew the answer. About four or five of them. They're messing.  Did you have a follow-up tool? You must have had something in mind. I was going to say, now that we have X10 and relatively cheap sequencing, would it be worthwhile to get the genomes of at least the cells that have most assays? OK, yes. And so that would be another type of data. We agreed to that five years ago. We just haven't finished it. Yeah, this is Mark. I just want to second that. I mean, people probably know I've always repeated that thing. I think just given the investment we have in the functional assays, it would be so valuable to have proper whole genome sequences for some of those core cell lines. So there's some history. The history doesn't matter. We started doing it with the big centers and had to stop. But I think ENCODE should do this this year. It could be done very quickly. I volunteer. Great. So if you have questions for Ross, hold them. We'll do them in the end. And so, Laurie, we're going to talk next.


Yahya Bello of Kogi has congratulated Alhaji Aminu Adubayero on his coronation as the 15th emir of Kano, urging him to continue to use his office to promote peace. Bello made this known while speaking to the news agency of Nigeria on the sidelines of the coronation ceremony. Bayero as the 15th emir of Kano on Saturday. Bello urged the newly-turbant emir to work closely with the state governor of Delaya Ganduje and the civil authorities to ensure security, unity and peace. The governor also expressed his appreciation to the good people of Kano for the rosy welcome they gave to him on arrival, pledging to always support them and their cause.