So, thank you for coming back for the afternoon session. I have a lot of material to go over, so I'm going to go over it quickly, and I hope that everybody sticks around for this afternoon, because speaking personally, those are the lectures I'm looking forward to the most, the very difficult issues about what to do clinically with families that you use this technique for. So I am a practicing pediatrician and a medical geneticist, and I went to graduate school in a genome sequencing center, but most of the work I've done with NexGen is through the Undiagnosed Diseases Program, and we see families and individuals with mystery syndromes, and often they, multiple families will not have the same thing, so each one will be a unique case, and so we're using Exome Sequence for an individual or a small family. I'm going to present examples and ideas from some UDP projects, and I'm also going to be presenting the work of some of my collaborators. I will be talking about some platforms and the usual disclaimers, I'm not advocating for any of them. I'm going to use Next Generation to refer to Exome Sequencing, and when I say variant, that's going to be any difference from the defined reference sequence. A pathogenic variant is going to be a variant that is wholly or partially responsible for a phenotype of interest, so this is roughly equivalent to a verified mutation, and a candidate variant is something that's on your list of things that might end up being the pathogenic variant, but you haven't verified that yet, and that's the list that varies as you go through all the filtering techniques you heard about today. So I'm going to start mentioning a few things about project design, hopefully not overlapping too much with the great talks this morning, and the core of the talk is going to be a discussion of how to integrate some other technologies with Exome Analysis to improve your chances of success, in particular SNP arrays, and also phenotype and family history data, and then at the end I'm going to talk a little bit about validation to add a few comments to what's been talked about before, and the same for reanalysis of uninformative data sets. So because of my background, the examples I'm going to use are going to be for Mendelian inherited diseases and high penetrance, small number of genes and humans. Hopefully there will be some overlap if you work with different types of projects and somebody's phone is up here if that's okay. I don't think it's my financial advisor. And the basic problem as we've discussed before is you usually, when you go to look for the needle in the haystack, end up with a big pile of needles, and you need to pick which one of those is the one that is your disease causing variant. So how can you improve your chances of success? There have been a lot of examples this morning of how careful project selection can improve the outcome of an exome project, and I'm going to give one more example that we use. You can also use parallel analyses. So I'm going to use the Snipchip array as an example, but there's lots of things you can consider, including phenotyping and expression analysis. There are also lots of variables to consider in experimental design. In listening to the questions before the break, it was clear that some people are starting early in the process of sequencing and data collection, and other people are analyzing data that's been obtained through a collaborator, and even analysis can be broken up into a bunch of different pieces. So before you even start the project, it's worth thinking about how you're going to carry out all these steps, which things you're going to do yourself, and which things you're going to do collaboratively. So in the Undiagnosed Diseases Program, we see many families, and we only have the resources to apply exome sequencing to a few of them, and so we have a tool that we use to prioritize the families, and we consider things like phenotype. Is the phenotype more multifactorial in appearance, or does it look very genetic, early onset severe? Is the material available a single individual or a family? Is it a phenotype that is overlaps with common conditions, or is it severe and compelling? And is the family show multiple affected individuals or only one affected individual? And we need to use this kind of rubric because our families, we don't have a large pedigree with lots of affected people and a clear pattern of inheritance, so we need to do a little bit of screening. So for all of the type of analyses that you may add to an exome project, and that includes the filtering things we heard about earlier, and also some of the things I'm going to talk about today, it's worth asking a few questions. And I'm going to use the SNP array data to explore some of those, and as I mentioned, we'll include some other examples, and I would like to touch on at the end using accumulated data for multiple exome projects, which is again something that came up during the question session. So if you think about the criteria you might use to decide whether a filter is worth doing, or an additional analysis of the data or DNA is worth doing, you first want to ask how much is the candidate variant list going to be reduced? So is it worth the trouble of doing that step? And then the second thing you'll probably want to ask is how error-prone is it? And actually there's a very nice discussion during the cancer presentation about trying to get a sense for whether true variants were thrown out or false variants that your analysis is designed to exclude were in fact included. And we heard about examples of that. For instance, DB SNP can be a powerful tool. It's certainly been used in a lot of studies, but it can fall into both of those error categories pretty easily, whereas segregation filtering, if you have high-quality data and a correct genetic model, has very favorable characteristics. So let's dive into talking about SNP since we're going to talk about a SNP array. So a SNP, as you probably well know, is a single base at a defined genomic position. The exact nucleotide varies in the population, and the location itself is defined by conserved sequences nearby. And you may be familiar with this logo type of display where the height of each one of these positions is proportional to the conservation. This is the one end of the mammalian splice site and the G and T are highly conserved, whereas in other regions you can see that there are two nucleotides that are commonly found at this site. And the most common allele is typically called the A allele or major allele, and the less common allele is the minor allele or B allele. And a perfect site would have lots of highly conserved sequence to define the position of the SNP and then would have a SNP with two nucleotides. So the way that assays for SNPs are carried out is that the technique, which I'm not going to explore in detail, uses a different floor for each of the two possible nucleotides. And so this is a graph from Genome Studio, which is a tool that we use to analyze this type of data. Along the left is the fluorescent intensity for the B allele, and along the bottom is the fluorescent intensity for the A allele. And each one of these spots represents an individual person. So this whole graph is for one SNP with multiple individuals. And by quantitating the fluorescence, you can create a genotype. So for instance, this is all B, this is all A, and this is about half intensity of each of those. So those are called heterozygotes. And those same principles can be used to define hemizygous spots, duplications of various combinations, and places where there's a total deletion. So this is probably the most complicated slide, so bear with me. This is a display from Genome Studio. And two things to point out. One is that before each dot was an individual, and the whole diagram was for a SNP. In this case, the dots are a series of SNPs from left to right across to locus. And there's only two patients here, the one with the blue and the one with the yellow. There are two important plots to know about when you're analyzing SNP sequences. The top one is the B allele plot. And this is a normalized level of B or minor allele signal for each one of these SNPs. So in most cases, some of the SNPs will have the two copies of the minor allele, some will be heterozygotes, and some will have two copies of the major allele. But you can see that there's a gap here where there's no heterozygotes, and that's because this is a spot where there's a single copy DNA deletion. There's another way to look at the SNP data, which is a log of the total intensity that you see over a reference amount of intensity. And if the reference intensity and the total intensity are the same, that's the log of one over one or zero. And so those spots cluster along the zero line here. And if you have, if the log is 0.5 over one, then you get a decrease. And you can see along the bottom here that these are slightly shifted down. And if we go to the next slide, that's blown up a little bit. So the B allele plot here shows no heterozygotes and there's the shift here for single copy deletions. And this same technique can be used for double copy deletions and for duplications. So why should you include SNP chip analysis along with your exome analysis? Well, as you saw this morning, the short reads from SNP, from exome analysis, tend to pile up over regions of interest over the exon here. And for the SNP, although these are much, much less dense, they're spread out across the, across the genome. And this is more, this is easier to see if you look at these are chromosomes now. And at every place except for some centromeric regions, you see there's a dense coverage of SNPs that cover most all of the, most all of the genome. And so this really provides a survey of the entire genomic structure. We were talking quite a bit about dosage abnormalities. And this is one way to get that information. And it's cheaper than doing genomes. So for call it 200 to $300 a pop, you can do SNP analysis on families where it costs maybe $5,000 to do a genome. So you can do this analysis and combine it with your exome analysis for less money than it would cost to do everybody with genome. And you can detect things like dosage changes, we just talked about that. You can detect chromosomal mosaicism, consanguinity, uniparental dysome, regions of anomalous continuous homozygosity, which are stretches or spans of homozygous SNPs, which are longer than you would expect for that region. And there's actually a question before the break about a case of doing an analysis in such a region. And then recombination mapping if you've got pedigrees. And so we'll talk about each one of these. So as far as detecting those dosage changes, you've got a couple of options. You can use the manufacturer provided software and look at the something like the Bealeal frequency. Another thing you can do is there's a piece of software called PenCNV, which will automatically detect regions of dosage changes and will print out a list. And that can be integrated, for instance, using Jamie's Varsifter tool into a set of include and exclude regions to combine with your exome data. So here's an example of how this was useful for one of our UDP cases. So this is a 10 year old male complex neurologic phenotype. And we guessed that this was going to be autosomal recessive, although of course it could have been dominant as well. And we applied multiple filters as we discussed this morning and we didn't find anything. So we reanalyzed the data with new filtering tool that we're using, something developed by a person in our group, Marat Singhan, VAR MD, which automates some of those filtering steps that we talked about. And it also allows you to relax some of the filtering constraints. And we talked about the role of doing that in an iterative analysis process. And we found a candidate. Now this candidate had originally been thrown out because it didn't follow the rules of Mendelian segregation.  And the geneticist in the crowd will guess that, in fact, the mother was not homozygous, but she was hemizygous. And the SNP chip data confirmed that there was a small deletion that the mother had that she passed on to the child. And this was the cause of his disease. So single copy deletions may pair with deleterious sequence variants. Duplications can result in subtle but important changes in gene dosage. And you can create a bed file with PEN-C and V output incorporate this into your exome analysis. So this type of analysis can also find chromosomal mosaicism. I'm not going to spend a long time on this figure, but just to say that you can see here that there's more than the usual three populations we expect for this B allele plot. And this separation of these two populations of SNPs is because, in fact, you've got one that's triple B, one that's AAB, one that's I'm sorry, ABB, AAB and AAA. And this turns out to be a case of mosaicism. And this type of mosaicism can be quantitated fairly accurately, even more so than you can do with karyotypes. So consider the effect of mosaicism on sequencing quality. Homozygous and heterozygous base calling, as you learned this morning, or you may have known, use the relative proportions of short sequence reads with different genotypes. So if you have mosaicism, it's going to change those proportions, and it's going to affect the quality of base calling. They also may indicate regions of interest in the genome. And of course, they may be important in somatically evolving cells, like the cancer examples we saw earlier. A third thing that you can use SNP chips for is consanguinity and homozygosity mapping. So here is a normal B allele plot. We visited this before, and you can see that there are, as I mentioned before, a few gaps where they're at the centromeres. But here's a family that has many large gaps. And these are regions of homozygosity. And I can highlight those by putting some arrows in them. So there are many more than you would expect to see in a family that was completely outbred. And some work done by Tom Markello in our group, in his work, he took a group of families with a known amount of consanguinity, and he compared them to the total sum of linear length of homozygous regions in the genome, and he found out that those things correlated pretty well. So with this type of calibration, you can actually determine the amount of consanguinity using the chip. So once again, if you want to incorporate this into data, into your data, you can use the Illumina or Affymetrics or other platform and look at plots like we just looked at. There's also a tool called Plink out of Harvard, and among its many capabilities is the ability to auto-detect regions of homozygosity, which you can incorporate into your analysis. Here's an example of a case, one of the early UDP successes where we found a new disease, and in this case, it was the presence of a region of homozygosity that allowed us to find the gene. So you can identify these using Bealeal plots. You can look at just the variants that fall within a homozygous region, and in fact, that's probably makes up the bulk of the successful exome papers that are available is exome projects that were done with homozygosity mapping. And it may even alter the planning of next-gen experiments, and to be fully forthcoming in that we never did exome on that previous slide, that study because we found a region that we could just go and look at the gene without doing exome sequencing. But it can be incorporated into which variants you're looking at. Also, when thinking about the consenuinity level, the optimum is probably second or third cousins or a little further out. If the families are too related, you end up with many, many regions of consenuinity, and then that doesn't comprise a very effective filter for your variants. So far, we've been talking about analyses with SNP chips that you can do using intensity measurements, but you can also use Boolean tools. So Boolean tools are those such as the one that Jamie showed you in Varsifter, and Genome Studio also has a set of tools for doing Boolean queries, wherein you ask if a certain set of SNPs follows some rules that you impose based upon a genetic model or other criteria. And this is usually based on fairly straightforward genetics. So if the mother is AB and the father is AA, then a child who is AB had to get the B allele from the mother because she was the only one that had a B allele to give. And if we say that at an adjacent locus the same is true, then if some children are AA and some are AB, or some are AA, AB at those two loci, and some are AB and AA at the second loci, then a recombination is suggested. And you can see that here. So the parental genotype is AB, AB, and the recombination genotype is AA, AB. So to set up a Boolean filter to check for these is fairly straightforward with a small family. As you get to larger families, you need more rules to be able to incorporate all of the possibilities. So I'd like to contrast this a little bit with formal linkage analysis and positional mapping such as that that Dr. Bissecker talked about earlier. So classic linkage analysis usually uses fairly robust markers, tan and repeats and those sorts of things. They tend to be fewer and more widely spaced, so there's 440 of them and one of the most commonly used ABI sets for instance. And the analysis must therefore take into account the chance of a double recombination between those markers or other recombination event. Whereas with snipped based linkage mapping, the markers are admittedly less robust. They can be uninformative and the snipped genotype can be wrong. However, you have a much higher density of markers and so you have many assays to test for recombinations and at the end of the day they're dense enough that it makes the chance of a double recombination between informative markers unlikely. So you get out a slightly different kind of data. So this is this is a graph that shows the log of the odds ratio on the left hand side because this was done on a small family, the black plot here which is the log of the odds ratio doesn't go up to the high significance level of three that you would use to confirm a place in a whole genome. But really what I want to do is contrast the fact of this continuous plot with these discrete intervals that you get from recombination mapping using a chip. And when you look at these close up, once again you can see that there are these discrete intervals that are defined by the snipped based recombination map. So here's an example to show how we've used this in the past. So two children out of four are affected with neurodegenerative disorder in this family and six members were sent for snipped chip analysis and were sent for exome sequencing and these were somewhat older chips so we came up with about 112,000 variants for the family and recombination mapping was applied. So this is what the snips look like before we applied the recombination filter and when we filtered for only those regions which segregated in a manner that was consistent with our genetic model we ended up with this subset and were able to use that as part of a filter which is again was successful and at the end there's only two genes in this list and one of them turned out to be the answer. And here is how some of that analysis looks in varsifter which we used extensively for this project. So this recombination mapping requires a defensible genetic model and multiple family members but fewer than for a linkage study and it can be used to define segments of the genome that segregate according to a given genetic model and it can exclude segregation in consistent regions and their associated variants to comprise a filter. So what are some other types of data that you can integrate into your exome project? There's phenotype and pedigree information clearly so for phenotyping, phenotyping may implicate pathways which you can use for pathway analysis and we heard about that in the cancer talk earlier and that could be true for any sort of pathway that you can reasonably associate with the phenotype in front of you. It may provide clues for candidate validation and it may provide clues as to an appropriate genetic model. The pedigrees in the family history just as they are with linkage are a powerful resource for variant filtering but the phenotype is critical so if you get the phenotype wrong none of the family-based techniques are going to work and so you need to have a clear, unaffected status and penetrance estimation to use these small family methods. So the type of gene lists in addition to the cancer list that we saw earlier that you might consider would be mitochondrial genes, metabolic genes interacting with the given metabolite, pathways or clinical syndromes that have genetic heterogeneity are a large number of genes that cause the same phenotype and an example of one of those is hereditary spastic parapheresis which is one that we've discussed as a potential diagnosis in several of our patients and varsifters nicely can incorporate a gene include list. So if you do your phenotyping and you think oh this is developmental you can make a list of developmental genes and you can look at only those in varsifters. So here's an example of where phenotyping helped us to make a diagnosis. So this is a 19 year old female this is the brain of a 19 year old female with slowly progressive neurologic disease and her course was suggestive of a lysosomal storage disease and one of those is a GM1 ganglioncidosis however that had been excluded by the gold standard of enzymatic testing. Exome sequencing however detected candidate variants in that gene. So the combination of those molecular results plus the fact that we had a clinical suspicion for a lysosomal storage disease prompted us to go and redo the the gold standard testing and in fact that had been a an incorrect clinical result and this patient had enzymatic activity that was consistent with GM1 ganglioncidosis. So this is an expensive way to come up with a known disease I will grant you but in this case it was the combination of the of phenotype and careful phenotyping and the suspicions that generated plus the molecular data of exome that helped us. Another very healthy and ongoing debate we have in our laboratory is to whether to send single exomes or small pedigrees for a new family. So clearly single exomes are less expensive. The analysis is more straightforward. There's fewer tools required but you will generate more variants. I hope to show you that. A small pedigree is more expensive. The analysis requires some additional tools and expertise but you get fewer candidate variants. And again the point is that the filtration that you can do using that pedigree information has a low error rate if you have a correct genetic model and high quality data. And in fact you can think of two ways of using that family data. So you could ask me well why not just do a SNP chip and do the recombination mapping rather than doing multiple exome family members. It turns out that the candidate variants that you exclude using the recombination mapping is not exactly the same set as the variants you exclude by forcing individual variants to follow segregation that has been dealing consistency. And so you actually get a larger set of variants excluded by doing both of these things than you would from just doing one of them. So this graph shows has paired results. So for every line up in this red section there is another line down in the black section. All of the red traces are the path of filtering from the beginning of the ending of the project using only the proband whereas the black traces are using the proband plus the family members. On the left hand side is the log cumulative number of post filtration variants and along the bottom are all of the filtering steps. And importantly these last two aren't actually continuous columns these are all the heterozygotes and these are the homozygotes. And the point that I want to make here is when you only use the proband for these families we got between a hundred and a thousand candidate variants where when we included the family information we got around 10 sometimes a little bit more sometimes a little bit less. Obviously this is going to vary a lot with the particular project and chemistry that you're using. But I just wanted to give you some evidence that you get improved filtration by including extra family members. And here's another way to look at the same thing. So here's log of number of variants each one of these is a different exome project and I'd like you just to focus on the red the red columns. And the general pattern I'd like to point out is these smaller simpler families with trios ended up generating between a hundred and a thousand variants on average and the ones that had more family members included generated fewer variants. So overall this technique can be a very powerful way of filtering your data. So at the end we would say use exome data when you've got any other clues available or a single exome. So if you've got a pathway if you've got a homozygous region you've mapped if you've got a gene list then by all means consider doing a single exome because you've got other means of doing filtering. If you have no clue going into the family and it's a single family you may consider using additional family members assuming that good phenotyping is available. And for this type of mapping especially for recessive conditions it helps to have both parents and at least one sibling in addition to the pro band trios are less useful for recessive models in particular. So we've talked about a couple of different types of data integration. Use all available resources that you have to help filter your lists. For exome sequencing consider using SNP arrays for all the reasons we discussed. The study design should include as much in for a priori information as you can put in from careful phenotyping and family history. And really new approaches are coming out on a monthly basis.  So just a few words on sequence validation and reanalyzing projects. There's a couple of ways to think about sequence validation and I was very interested to hear that some of this was explored in the cancer talk. So you can think about one type of validation just to do Sanger sequencing to make sure whatever you found in the exome is real you pick a subset of things that you're interested in you may have to do some clear sequencing if you're returning results to families. The point that I'd like to make is the likelihood of the verification is in part based on your filtering techniques and I think that may have come out in some earlier talks as well. So for us for an autosome or assessive model that we've done the most stringent filtering on we can have 90 percent or more of the variants detected by exome analysis will verify. Whereas for an autosome will dominant model especially with new dominance and with less ability to filter the variants in some cases we verified 30 percent or less. So you may see some variation in how accurate the genotyping is based upon what type of filtering you use. And the point for functional validation that I would like to make is that functional validation is determining the biological effect of a variant and there are no in silico methods that can replace functional analysis in the laboratory for previously uncharacterized variants. So during the break I had talked with a couple people about about this pathogenicity prediction software like SIFT and Polyfen for instance. And this is a study from 2012. You can look it up the authors in the hand out there. But the point is that this confirmed data from earlier studies that all of these methods basically have a 10 to 20 percent false negative and 10 to 20 percent false positive rate. So what that means is that they're pretty good for ordering along list of variants to decide which ones to look at first but they're not so good in determining whether an individual variant is pathogenic or disease causing and shouldn't be relied on for such. And also from our experience editors will ask for evidence of functional consequences. There are papers out there where they don't but every paper just about I think every paper that we put out with exome data and they wanted to have protein and RA measurements or enzyme activity or rescue experiments or model organisms something to really show that you found the right thing. The exceptions are probably previously well characterized variants and maybe severe variants and well characterized genes but even for the latter you may have to have some experimental evidence. So what happens when you come up empty handed and we've already heard about this iterative approach which I would wholeheartedly endorse. You really need to revisit all of the assumptions you made along the line about who had the disease and who didn't have the disease what the genetic model was what the frequency of the disease was for some of your filters and you need to know what your technique measures and doesn't. We heard all through the morning about the fact that targeting, capturing, alignment, base calling all of these things collect only a portion of the total possible world of true genotypes in the family you're studying so you need to explore the sources of false negative results and study data quality and actual coverage. So here is one exon and plotted above it is the coverage and this is using a fairly old kit. This is getting this coverage consistency is getting better but you can see that the coverage varies a lot even across this exon and there are some known determinants of this phenomenon GC content sequence complexity and near identical repeats and changes in representation due to unequal amplification during the during the prep steps for sequencing. But I'd ask you just to consider what an average coverage means in terms of this type of granularity that may not provide you the quality the total quality story that that you need to go forward. Genotyping quality and completeness and exome sequencing is complex and it can fail differently than Sanger sequencing which is very interesting to those of us who are thinking about eventually reporting this out clinically. So you need to think about a number of different aspects of what went into your experiment and for many of them there are specific things you can look at for instance for targeting or what was actually the study was designed to capture you can create a bed file to show where all the baits were so you can see what was supposed to be targeted and what was not targeted. For capture and complexity this is a somewhat involved topic but historical data can be used for sequencing and alignment. You can use coverage and other metrics and also historical data. And for base calling you can use the MPG scores that we talked about and other metrics and also historical data. So clearly I've mentioned historical data three times and the reason I did that is because an accumulated set of data using the same techniques is an invaluable resource. They do expire as came up in the the talk before the the break. So if you've got something which was captured using much much different chemistry than what you're currently using it may be less useful but you should certainly accumulate and study data sets until they diverge as far as technique goes because they can be very instructive. An example of that is we use some of our previously collected data from the UDP plus some data that was kindly shared with us from Clintseek and we looked at several hundred exomes and looked for genotypes that were out of Hardy Weinberg equilibrium. So we used the Fisher's exact test and we used a Bonferroni correction because it was essentially doing a multiple testing hypothesis to look at all of these sites using a multiple testing protocol. And there are two error types that jumped out at us. There's some more complex interesting things too. But one of these error types was when all of the genome type calls were homozygous non-reference and that would suggest probably that the reference sequence is either wrong or has a minor allele in it. A second type of error that we saw is when all of the genotypes were heterozygous and that suggests that two similar regions were aligned together to form a compression and the few spots that they differ show up as heterozygotes and we could use this data from our historical data set to make an exclusion list for further filtering. We did another experiment where we asked the question given a set of genes associated with the known disorder. So this is the genetic heterogeneity question. How well are those things covered? And so we took 114 exomes from 27 families and we used gene lists. One was of a variety of muscle disorders and the second one was for hereditary spastic periparasis. And you should know that even though this isn't always true, sometimes clinicians will assume that if a clinical sequencing test comes back negative, then all of the sequence regions were sequenced with sufficient quality to detect all variants in those regions or put in simpler terms, I can take that diagnosis and set it aside and move on to another diagnostic consideration. For these two gene lists, and mind you, this is using somewhat older technology. So the targeted capture kits included from 47 to 73% of nucleotides within those gene lists. And this is probably lower than average, but it was true for these lists. And while the average coverage was high, 40x to 100x, 2% to 3% of the nucleotides had less than fourfold coverage. So my point here is not that these techniques are very, very error-prone and don't use them. My point is that you need to understand the assay characteristics and know what's missed. And here's a great example to illustrate that. So this is some work done by one of my collaborators and this was a full-on chariot race. The first one to identify the gene gets the good paper. And this was a large region that was identified by linkage mapping. And many, many genes were sequenced over a year or several years and nothing was found. Exome sequencing came along. Take the project out of the fridge just like Dr. Beeseker talked about and try exome sequencing. Didn't find anything. So then another member of the lab went back and looked for specific regions that had been missed by the exome sequencing. And it turned out that the answer, the causative gene, was in one of those sections that had been missed by the exome sequencing. And you may ask who won the race. Well, actually this and two other papers were simultaneously published in Nature Genetics. So I guess it was a tie. So for validation and reanalysis and summary, functional validation is required to prove that a candidate that you have is the pathogenic variant. And if there are no good candidates at the end of the analysis, use the iterative approach that's been talked about today. Revisit assumptions and analysis parameters. Use historical data and study the quality and coverage issues of your particular project using historical data if possible. And data quality is constantly improving, but that doesn't mean that each new technique won't have some sort of failure modes that need to be studied. So in conclusion, be sure to give plenty of time to experimental design, hopefully before you start your project. Consider using adjunct technologies to complement exome analysis like the SNP analysis we talked about. Phenotyping is critical, especially when using family data. Consider using additional family members in certain cases. Functional proof of pathogenicity is required and analyze the data in an integrative manner, altering your assumptions and filtering constraints as you go. So I have many people to thank. I'm not going to thank them all individually. These are from several different groups, including our own. I would say that Tom Markello, Neil Borkle, Murat Sinkhan, Karin and Praveen are sort of our core bioinformatics group for the UDP now. But we benefit from collaboration with other members of the NHGRI and other intramural communities. So thank you very much.


Discover the exquisite beauty of Islam with our exclusive poster collection, showcasing the 99 names of Allah. Each poster meticulously presents the Arabic name, pronunciation and English translation, embodying the essence of our Creator. Elevate your surroundings with these high quality designs that not only serve as art, but also offer a glimpse into the profound beauty of Islamic culture. Immerse yourself in the collection and unveil the magnificence of the 99 names. Links in the description box. Alright guys, welcome back to the channel. If you're a new Marmus Bobby guys, you really want me to react to Andrew Huberman and his faith in God. Andrew Huberman PhD is a neuroscientist and professor in the department of neurobiology and by courtesy, psychiatry and behavioral sciences at Stanford School of Medicine. From what I know, Andrew is a Christian and therefore it would be very interesting to hear how a Christian with a scientific background perceives God. What his thoughts are of God himself and moreover, if they really align with Christianity or do they align more with Islam? We shall find out guys. Before we jump into the video, leave me a thumbs up if you enjoy my content. Subscribe to the channel if you haven't already and check out the links in the description box to further support. And now with no further ado, let's have a look.  It's like, when you think how all that works, I have to take an aside and say, how could that happen in nature is without a creator? Yeah, so. Well, here's the thing. I mean, we know that the programs meaning genes.  We know that those mechanisms are incredibly well conserved from mice to humans. Now, certain things happen in the human brain that you don't see in other species, like the elaboration of the parts of the brain that are involved in context and planning, especially. Sure. But the memory systems, the ones that control hormones, breathing, heart rate, they're very similar, not exactly the same, but very similar. Okay. When you start to study and understand brain development, as I did, or neuroplasticity or dopamine, you have to.  Now, then, of course, there's this difference among scientists as to who believes in God, who doesn't. I'll just go on record. I'm very comfortable saying that. I believe in God. I do. I think it's very interesting to observe and very tragic at the same time that he as a scientist has to say, well, I'm going to go on record. I am very comfortable. But if he was very comfortable, then he wouldn't have to say that he is comfortable that I believe in God. So it is very interesting to see what this scientific, quote unquote, culture has created a culture that can believe only in either or. It cannot believe in science and in God. Those are contradictory. And I believe that this is due to Christianity and due to the corruption within the Bible. Certain texts such as that God rested on the seventh day. Certain attributions to God that depict him as a sky daddy are simply not scientific. It is absolutely true. And therefore Christianity is in contradiction to science. However, if you would give Islam a chance, you would actually find out that Islam and science go hand in hand. I believe in God. I do. I think there are many things that science can explain. There are certain things science can't explain. But I'll even go a step further, which is that all the elements of science are entirely compatible with the idea of there being a God. And I'm not the first scientist to say this. I mean, Einstein believed in God. Carl Jung, one of the greatest psychologists ever clearly believed in God. There are many atheist scientists. There are agnostic scientists who are just kind of like unsure, right?  It's just incredible that we're sitting here having this conversation. It's just language that there are little sound waves that you're perceiving and understanding. And I think the brain represents the apex of incredible in terms of biology. Like the heart is interesting. The immune system is interesting. The liver is interesting. But the brain is unbelievable. I mean, think about the number of different ways you can move your body compared to another species. Think about what you did today. Think about what I was attempting to do today, right? Yeah. Spectacular. Think about technology.  I mean, yeah, the Internet. I mean, unbelievable. And yet, oh, so real. Yeah.  Secretly, I've always prayed. I grew up in a split religion home. My family's like the UN. We've got people from Guatemala, Denmark, Argentina, New York, like all the different political battles are in my family. Super left, super right, libertarians, lefties to the, you know, it's crazy. Thanksgiving can be difficult. Yeah. But I'll say this, you know, I absolutely pray. I absolutely love that the idea, but also what for me is really a deep belief, which is that we can't control everything. We're not in as much control as we think we are. And that the magnificence of biology and the magnificence of nature is it's impossible for me to conceive how that could come about any other way. Yeah, this is really beautiful to see, because as Muslims, what we hear here is the fitra, of course. The fitra is the natural predisposition of men to understand that there must be a creator and Andrew Huberman is marveling at the creation of the creator. It is innate in him. And you can see that he is in awe. Here is a passage of the Quran that describes exactly this phenomena that Andrew Huberman is experiencing. Indeed, in the creation of the heavens and the earth and the alternation of the night and the day are signs for those of understanding. So those passages in the Quran describe nature, our earth, and moreover, the believer, the believer that understands innately that there must be a creator. I would say that Andrew Huberman got this completely. Innately, he understands that there must be a creator to the creation. It is way too complex to come out of nothing. It just is.  Who do you pray to? Interesting. That's an interesting one, because I think God. Yeah. So I absolutely do. I've actually started reading the Bible recently, start to finish. I feel like it's my duty to like learn and in some sense compare all the New Testament. Yep. I'm like really, I'm really interested in the stories, but I'm also, I'm fascinated by the story of us, right? And the story of everything. And so, but yeah, I pray out loud in the morning, sometimes again in the middle of the night if I wake up. And it's only recently that I've been doing this more often. It's giving you peace. Oh my goodness. It's giving me so much. It's giving me peace. And you know, it's going to sound weird and probably people are going to be like, what are you talking about? I feel like it works. It works.  Yes, that's absolutely works. And this yet again reminds me of the Quran because in the Quran we read your Lord says, call upon me. I will respond to you. This is the promise that we can find within the Quran as long as you pray to God directly. Of course, God will answer you. You do not have to pray to Jesus, to Mother Mary, to certain saints. You do not need any intercession. You pray to God alone.  This is what we believe as Muslims. And therefore it is absolutely amazing here that Andrew actually wants to compare the Old Testament to the New Testament. It will be really interesting to hear how he reconciles the contradictions. Why is the New Testament so different from the old one? And this is truly what happened to me because if you don't know, I come from an Orthodox Christian background before opening up the Quran. Everything started falling into place once I looked at the Quran and after it looked at the Bible from the lens of the Quran. I started understanding why I had those contradictions, those issues with the Bible in the first place. Because within the Old Testament we can clearly see most of the time at least monotheism. But then later on out of a sudden it becomes a Jesus worship centric religion. And this is why it is so extremely confusing. But here you can see that Andrew Huberman apparently hasn't read the Bible completely up until now. He is identified culturally potentially as a Christian, but nevertheless intuitively, naturally, he prays to God alone. And this is what Islam is. Dear Andrew, in case if you're watching, Islam is simply the worship of one God alone. We do not attribute any partners to God. We do not worship anybody besides God. It is not about having some other type of prophet here. This was my background. I really believed, oh well, Christians have Jesus, the Buddhists have Buddha and the Muslims they have Muhammad. That's not what Islam is about. Islam simply identifies who those people were. We believe in Jesus, we believe in Abraham, we believe in Noah and of course we believe in Prophet Muhammad. May peace be upon them all. But what we believe is that those people are creations of God. Exalted creations. But creations nevertheless, they came to us with the same message. The message is worship one God alone. This is Islam and therefore Islam, if you look into it, has beautiful practices such as praying five times per day. And I'm sure that this will resonate with Andrew, of course, because naturally he's drawn towards praying even more. And he says it works. Of course it works because you redirect your focus from the mundane everyday life onto the highest, onto God. And God will surely guide you if you do so. I couldn't do it. And it was all internal. And I just couldn't do it. How are you trying to resolve these things? Like have an answer? Yeah, discipline myself.  I mean, obviously I have a lot of self-discipline.  I want to, you know, I certainly pray for other people. I mostly, you know, these days I pray for the ability to really harness as much care and love for other people. And for myself, something I haven't been that good at in my lifetime. In order to be able to put the best possible work into the world to really serve. Like I really see myself as serving higher power. Like I'm a conduit. Right. And the better I can do that, the better I'm serving. The better I'm serving, the more I feel connected to humanity. It's again, absolutely amazing listening to this because his perspective truly aligns with Islam. He wants to be a servant of God. He wants to serve God. And this is the relationship that Islam proposes here as well. Within Christianity, we are seen as children of God. Some say metaphorically. Others mean it literally. It is a bit confusing.  And within Islam, we see ourselves as slaves to God. Absolute servants to God. We understand that he is all powerful and that everything happens within his will. We have no chance but to obey him because he is God. After all, the creator of all things. There is no higher deity but him. And because we love God and because we understand that God is the creator of all goodness, we want to submit ourselves to him. And this is what Islam means translated. Islam, the word translated. Simply means submitting to God. A Muslim is a believer that submits his will to God's will. Understanding that his will oftentimes is flawed. If you look at people and their will, it is most of the time just desires. I want a fancy car. I want more money. I want more food. I want sex and what not. But by removing our will and submitting ourselves to God, we want his will to be done. This is something that you can find within the father's prayer, within Christianity. This is the closest that you will come to Islam when you use Christian prayers. But Islam itself proposes that we submit ourselves to God alone. And through that, we find ultimate peace within Islam. Do you think that with this, I don't know if you've always felt like this. It sounds like it's more of a newer feeling. Somewhat, although secretly, like in Santa Barbara, I'll just say there's this place Sands Beach down at the end of the beach for anyone who's ever been there. I used to run down there once a week. I always did a long run, long for me, run on Sunday minus a 72 pound rock. And I would pray. And I just pray for, you know, be honest with myself, be honest with others. And that was years ago. God was 18, 19, 20. So, and then, you know, I've seen some hardship along the way. I would just mention that I've had three amazing scientific advisors. You know, Harry shot himself two weeks after I told him we publish a paper in science. He said, come on down to Santa Barbara. It'd be great to take you out for pizza and celebrate. Two weeks later, ate a bullet in the bathtub. Barbara died of cancer when she was 50. I'm friends with her daughter. She did have those two kids. One's a neuroscientist at McGill. And she was like a mom to me. She died. I was speaking at her memorial. And then my postdoc advisor died. He was a pretty impressive guy in his own right. And so at one point I'm thinking like, what's going on? You know, I'm the common denominator. How am I picking these people? But they were amazing.   That's going to happen. People are going to go. That's just the reality. But there were times I'm like, you know, it's dark. It was, you know, like where am I? Why me? And at those moments too, just accepting that there's a plan and it's happening for a reason. And I don't know what it is. And just putting my trust in that allowed me to grieve those things properly and to really try and, you know, I got the message. I got the download to take the lessons from them and just not waste a single day. And yet again, there's absolutely mind blowing because pretty much everything that he states here is absolutely Islamic. This actually reminds me of a hadith of the Prophet, Salah alayhi wasalam, where he says, And if something bad befalls you, do not say, had I only done such and such, then such and such would have happened. Rather say, this is from the will of Allah and he does whatever he wills. This one of the aspects of a true Muslim, of a true believer, when you understand that everything happens because of the will of God. And who are you to question it? I always give the example of my son.  That is his will. I on the other hand, as a father, I'm a little bit wiser than him. And of course, I know that eating candy every day is not a good idea. Therefore, I impose my will on to him, of course. And I say, nope, today you won't have candy.  But I am looking out for him. I know why certain things have to happen. I know better than him. And it's the same understanding with God. You understand there is a greater intelligence than you out there.  Everything has been created by that magnificent creator. And so therefore we understand that we are limited in our outlook and therefore our will will lead us astray. And this is why when we see bad things happening, we have to accept them as they are. Ultimately, they are good because they're decreed by God. To do things that I really felt mattered. So to me, it's all always been linked to forces greater than me, certainly. Does it feel like, hearing all this, does it feel like once you've taken a more intentional turn for being grateful and praying, you're not drinking since 2019? It seems like that's been in tandem with your success. People that don't know alcohol within Islam is absolutely prohibited. It is the only religion that prohibits alcohol completely. Christians drink wine. If you look into any other religion, Jews, for example, they can drink alcohol as well. It is only Islam that prohibits alcohol completely. And as a scientist, as a neuroscientist, he clearly understands the detrimental effects of alcohol. I always wanted to have a deeper relationship to God. I always wanted that. Why don't I have that? Well, duh. That's like saying, I want to be fit. I'm not fit because you're not running, you're not lifting, you're not doing the things. And it was a couple of different people that kept showing up in my life and they were doing it. And it was like, we'll pray. And I've learned, and I certainly try and do this, that a lot of prayer is about listening. And a lot of prayer is about you ask for things or listen for things. And then an hour later, two days later, you go, wait. Like it doesn't happen in the moment necessarily, just like fitness. I don't want to compare fitness. I don't want to trivialize prayer by comparing to fitness, but there's some parallels. It's irrelevant. It's consistent work. Yeah, it's consistent work.  That makes so much sense. Now, I think that the success of the podcast, first of all, I'm incredibly grateful for it, incredibly grateful. But in many ways, I'm doing exactly what I was doing when I was that six, seven, eight, nine year old kid. I'm learning and sharing. So it was always in me. And it always felt like this energy, this thing like it's like, how did I end up like this? How come all the other kids like don't have this? All right. This is it for today's video. I'm going to cut it off here. It was absolutely beautiful to see that pretty much everything that he stated was aligning with Islam. And this is really what it boils down to. This is what we call the fitra, the natural predisposition of men. You can clearly see that he hasn't read much into Christianity yet because nothing that he mentioned here was Christian whatsoever. He didn't talk about Jesus, Mother Mary, the Trinity, et cetera, et cetera. You name it. He was talking naturally, intuitively, instinctively about his relationship to God with the things that he learned in life. He understood that if you put in the work such as with fitness and I come from a fitness background myself, then you will see a positive outcome. It is the same thing with the relationship to God. Yes, absolutely. And this is where you see people, especially people that are into martial arts or bodybuilding, gravitating towards Islam because they identify that within Islam, there are steps to success, spiritual success. They are the same success steps that they've seen prior to it within their sports. Many martial artists, as I said, are converting to Islam because they understand. They have to train day in, day out, diet, weight cut and whatnot. It is gruesome, but if you put in the work, you will reap the reward. Why would it be any other way with anything in life, let alone with God? And this is where Christianity and Islam differ tremendously because Christians believe that they're saved by faith alone. Just believe in Jesus and you're going to be saved. Proclaim Jesus is Lord. Well, I don't believe that it is that easy and Andrew Huberman doesn't either. And anybody that truly rationalizes faith doesn't believe that either. Christianity is very idealistic ultimately. Hey, Jesus died for your sins and now you can do whatever you want to do. Basically, you are saved by grace. That doesn't make sense. We are created by God. We have a responsibility towards our Creator and towards His creation as well. We are supposed to do good in this world and prepare for the hereafter. We have certain obligations, especially as men. And therefore yet again, everything that he mentioned here is absolutely Islamic. Which yet again confirms Islam because Islam is the only religion that talks about the natural predisposition within Christianity. You have the Old Testament. You had prophets that came, but all of a sudden Jesus comes and dies for your sins. And now we all have to be Christians. But what was prior to Jesus? Noah was not a Christian. Abraham was not a Christian. And if you look into those characters, then you find out, well, they weren't Jews either. So who were those people? Once you read into those archetypes, you will find out that those people submitted their will to God. This was their relationship with the Creator. Abraham went so far that he would have sacrificed his firstborn son to God because he believed in God so much. He understood that the will of God is superior to his will. And therefore he submitted, which makes him a Muslim. This is the only relationship, the only natural relationship that you can have with God. And this is why we say within Islam that we are all born as believers, as Muslims. But then our parents make us into Christians or Hindus or Buddhists or what not. But our natural predisposition wants to worship God alone. And this is what Andrew Huberman has done intuitively. Now if you would really like to get even closer to God and within Islam we say when you make one step towards God, God makes thousands of steps towards you. The next step would be of course to read the Koran. Alright guys, but this is it for today's video. If you liked it, leave the thumbs up, subscribe to the channel if you haven't already. Check out the links in the description box below. Thank you so much for your ongoing support. And as always, may God bless you all. Much love and peace.


In 2023, St. Lucia continues in Kindle Consciousness through Emancipation Celebration. We climax with LaWars Festival Guafet on the streets of Broseille on Wednesday, August 30th from 10.30 a.m. For the full calendar of activities, go to CDF, Facebook and Instagram pages.


I want to tell you today that you have a future you have a destiny you have a hope you have a plan that God is That that God has free and this plan God says that it's good for you and any dream and your hope anything in your life That may be died anything that maybe you bear it and give up on God says he can rise Because same spirit that lifted Christ from the dead lives inside of you tonight You didn't hear what I said the same spirit that raised Christ from the dead lives inside of you tonight Hallelujah, Hallelujah Hallelujah The same spirit that lifted Christ from death that defied all the laws of physics defied the death and everything that That that could possibly stand in a way the same spirit that raised Christ from the dead It lives inside of us and if he can lift them up from death, then he can lift up lift us up from any situation He can lift your family from any situation He can lift your financial life from any situation. He can lift you up. This is the spirit of God He's a good spirit. He's a spirit of light that there's no darkness in him and he wants the best and good for us Amen. Amen church if you believe you put your hands together for Jesus Hallelujah Right now we come into the time when we're gonna pray and we're gonna pray for our city We're gonna pray for the people that God has put in our lives. We're gonna pray for family members We're gonna pray for those that cannot help themselves We're gonna pray for those that are so hopeless in their situation. They don't know a way out. I Want to read to you before we pray so that we have a foundation of faith and the word of God is always the best Foundation for our faith. Amen. I want to read to you from acts 12 Acts chapter 12 verse 5 it says but while Peter was in prison the church prayed very earnestly for him. I Just give you a little story of the background story for the verse that I read So that was this king named Herod and he Started persecuting Christians and this particular situation he got James and Peter in the prison and then he killed James with a sword and then The church when she saw when the church saw that that Herod King Herod he began he was getting ready to kill Paul church We get church began to pray for Paul and then angel came and appeared to Paul and brought him out of the prison I want you to just kind of see a couple things and just draw a couple conclusions out of the story before we're gonna pray I want you to see Herod is an enemy. He's an enemy of church. He's an enemy of people John I want to see John and Paul as a souls as people and he and Herod is an enemy as Satan demons. They hold people in prisons they take and put people in prisons and Bible says that their job is to kill still and destroy and We see it in this situation that James was killed and when church realized that they need to pray to begin to pray Then when church started to pray The Paul Peter was released for the prayer from the prison When church begins to pray souls begin to be in released when church begins to pray salavations begin to happen The chains begin to fall off. I want you to see one thing when church began to pray Angel came and shown a light. I want you to see angel as the Holy Spirit Holy Spirit comes and brings the light light is the salvation Light shines into your life the way we came to Christ the way I came to crisis at one point in our life The light was shown into our life And we saw that we were in the darkness and we were in Holy Spirit Let us out when Holy Spirit comes number two chains begin to fall off. We see that Change of Peter if you read it further chains fall off number three that happened Holy Spirit begin to lead Peter out of the prison That speaks of strongholds in the minds of people beginning to change people beginning to get out They begin to like we've been talking past couple months. Our mind begins to get renewed But only that happens because church in verse five began to pray So if we I want you to notice one thing I want you to notice one thing that church could not go and free Peter Under physical strength that couldn't do it. There was here it There is armies there was soldier and he was deep in prison. They couldn't get to him We are on our own strength can do nothing The only thing that we can do as a church is we can pray and then Holy Spirit can go and set people free I remember a story of my brother if you've been coming to your church You probably heard it almost every single service, but here's he hit what it was when when my brother David And he's here now and you can see him when he got deep into drugs and when he when just devil Just really binding him to the point that he got so heavy on drugs that he lost his mind He forgot his name. He forgot how to read right? He forgot in how to tie a shoe I remember a moment where we had to take I had to take him to the court to go He had to go faces his finds and everything and I had to tie his shoes because he couldn't tie his own shoes And we talked to him we pleaded with him we begged him David stop This is not the way to go we asked him parents cried and asked him Please stop don't do this. Don't you see you're destroying your life? Nothing happened because you on your own strength can do nothing This is why we pray this is why we intercede because as though we do our job and we go witness and we go Invite people we go talk to our family members. We go try to tell them look This is there is a way out. There is a better way. There is a higher way But at the end of the day our efforts fall short Until we step in into the spiritual realm we partner up with the Holy Spirit and we come against the enemy And Holy Spirit comes to people he wakes them up He shines the light in their life He leads them to Jesus to change as a result begin to fall off of their life Their mind begins to change and today you see David you talk to him He's a completely different person and the best part of all Holy Spirit Angel set Peter free so that he can go and preach the gospel Holy Spirit sets people free. He will set our relatives our friends our co-workers Our Classmates he will set them free and he will use them to save the world And today you can see David. He's a witness for Jesus Christ everywhere. He goes. He's in sauna He's in a gym. He's out on the street Every time he gets to talk to a person he tells them what God has done in their life And this is a result because in acts chapter 12 verse 5 church Begin to pray earnestly Church, are you ready to pray today earnestly? Are you ready to see people like david? Many people like those that those marriages that are lost in confusion in a break of divorce Are you ready to see those those marriages being restored?


The first step of getting here I saw all white on the ground. It was just snow. I had never seen that much snow in my life and I just wasn't sure how people were functioning. I've never seen people walking down the street in snow and to me it just did not seem normal. So talk about a culture shock and then the first step was to go to Kroger's which is a Michigan Midwest store. So the first thing my aunt did was we went to buy winter jackets. So literally left the airport to Kroger's to buy my first winter jacket and you know looking back I had that winter jacket for over 10 years and I don't know why I didn't let go of that winter jacket. Probably because it was part of my story of landing in the United States and gosh letting go of that jacket actually was it signified something. It signified moving and letting go of who I was and recognizing that I have now migrated. I'm now kind of in the American system and I live in America. I'm not just a Nigerian who's visiting the United States. I'm now part of the United States.


What's up, everybody? It's an honor to be closing out the day. I'm from Chicago, part of the Chicago Ruby community, so I probably don't know who I am. I've been a software developer for about 20 years. Started using Ruby via Rails in 2006. I went to school to study speech. Audiology and speech pathology. And after graduating, I realized that my degree prepared me to do absolutely nothing. So I was able to get an entry-level programming job at a nonprofit in my town. And one thing led to another, and I just kept programming. I figured that one day people would find out I don't really know any computer science, and then I would have to find another job. Now I've come to learn that it's kind of called imposter syndrome when you feel like you don't belong when you actually do. And it took about 10 years for me to kind of realize that actually I'm just as capable as someone else who might have a computer science degree. And then I actually had a very anti-computer science attitude. I became to the point in my career where I was hiring other people. And I would interview college graduates who had just come out of college with a CS degree. And I felt like they didn't really know anything in terms of actually being able to sit down and start doing programming. That's because I had a misconception in my head that I'm gonna explain here. So I just had this very strong anti-attitude toward computer science. Not a number of years ago, I guess I got to the point where I became interested, actually, where I would be reading things on the Rails talk mailing list or on the Ruby core list. And they'd be mentioning terms that I didn't really know what they were. And so I would start to look those up and I found myself getting into some computer science. I now teach in the master's program for computer science at the University of Chicago. Don't tell them I don't have a computer science degree. Is that camera on? Oh, yeah. But I just wanna tell you a quick story of how my foray into computer science has changed me as a developer and hopefully it can be inspiring to you as well. The title you might have already caught on is an inside joke to the famous Crockford book about JavaScript. This picture I think appears like every conference. It kinda makes the rounds. There's the JavaScript, the definitive guide on the left and then there's the good parts on the right. And you can tell by the relative thickness. Yeah, so what I'm gonna try to do is kinda do the same with computer science. I'm just gonna try to make you aware of some of the good parts just enough so that you guys can learn on your own. I'm not gonna go into great depth. I don't need to with this crowd. But I'm just taking a very beginner focused approach so you don't need to know anything about computer science hopefully to get something out of this. If you were to open up any computer science textbook you would see something about data structures. And this is usually where I close the book. So I can't think of anything more boring. But computer programming is arguably just a matter of data transformation. This is kind of a weird way to think about computer programming for, especially for someone like me. I'm an object oriented kind of thinker. And to think about data as having that primary role might seem strange. This is a photo of no one's garage. This is, hey, this was taken from an ad for the things you can do to organize your garage. But I guess the idea is that if you've got something to put away, you wanna put it away in such a way that you can easily go get it again. And depending on what you're trying to put away you might need different kinds of containers. And this is how I start to think about data structures. You know, we use data structures only because we need a place to put data when we're not using it right at that moment. Okay, so it would behoove us to be able to put it away in such a way that we can go get it again easily when we need to. So let's start with probably the most primary data structure that one learns in computer science. The linked list. All right, so this is my favorite linked list.  A linked list is not an array. It's an array with just the most primitive operations you can possibly think of to just barely be able to store a list of things. And in a linked list you have only the ability to go get the first thing in the list. From there you can only get the next thing that it's connected to. So each element is linked to the next. I kind of imagine it's like elephants going, you know, trunk to tail, trunk to tail. And if I once sat down to try to build a Ruby class that would give me the ability to only push things into the list, get only the first element and from that element get the next one. So everything I had to do, I couldn't just say give me element number five. I would have to start at the first element and walk the chain to get to that fifth element. That's a great exercise. If you were to space out from here to the end of the talk, if you were to just try to sit down tonight and write a Ruby class that had that minimal functionality, I think it would warp your brain a little bit. It did for me. The solution is generally very counterintuitive and there's lots of different solutions. So you'll hear the term linked list. It's just our entryway into a data structure. From there, you may have heard of this idea of a binary tree. Instead of having just one connection between elements, we can have two. And the cool thing about that is if you're a little bit smart about how you make the connections, you can actually pre-sort the data as you go. And basically the way it works is that, let's say we start with the number 60. Great, I've got the number 60 and someone then gives me 31. Instead of just attaching it, I've got two choices. And so I just use a rule that would be convenient. So in this case, if it's less than 60, I'll put it on the left. And if it's greater than, I'll put it on the right. So 31 would go on the left. Let's say the next number that comes at me is 80. That would go on the right. If the next number that came at me was 70, well, I would start at the top 60, 70 is greater than 60, I move to the right. Oh wait, there's an 80 there. Let me go to the left and so on. And that's how we start to populate this binary tree. And it actually makes traversing this tree now very easy to go get elements. It's kind of already in assorted order. Who would ever use such a thing? Well, actually, this kind of binary tree, if we stop to think about it for a minute, is used for lots of things. Decision trees, if you've worked on any sort of decision management system or business logic, business rule logic system. Object hierarchies, if you wanted to, like how does Ruby actually keep track of all the classes and subclasses that we write? If you get into compilers, if you're curious about implementing programming languages, abstract syntax trees use the same kind of approach. And you can do very important things with it, like a Star Wars family tree that someone put on the internet. I don't know why. If you break free from just having two connections per node, you get to what we call a graph. This confused me for years. I thought a graph was like a bar graph. So I'd be reading something and be like, oh, you just use a graph. I'm like, how do I use a bar graph? To make I don't understand. But this graph is just a generic word for nodes that are kind of connected. And you can have as many connections as you want. This actually turned out to be amazingly useful for modeling things like social networks, maps, plumbing systems, electrical grids, security systems, figuring out degrees of separation, air traffic control, if you want to somehow tilt this into a three-dimensional space where the nodes are moving, very fun. Figuring out the shortest path between things, neural networks, it's how we start getting into machine learning and artificial intelligence. So this graph structure, which a minute ago you probably said, oh yeah, that's pretty easy. Well, if you thought that was great, because that's actually your gateway drug into all of these other areas of computer science. So speaking of maps, so coming down from Chicago, actually I flew, I was thinking about driving, and so I punched it in and Google Maps instantly gives me these three options. How did it figure that out? How does that actually work? This kind of thing keeps me up at night. This is just a graph, but the edges, the connections between all these roads, have values, which is either distance or traffic, and using that we can figure out shortest path. That's also great in industry for things like lease cost. You can model them as a graph. By the way, why does Honolulu have an interstate highway? I don't, oh no, if anybody's here from Hawaii, please talk to me afterwards, I'll have to learn. This is a snapshot of our current transmission grid, electrical grid. This is an automated self-balancing network that we've been building. It's an amazing thing. Our lives now depend on this kind of technology.  Who do you think? Awesome, this is a picture from the Curiosity rover that we landed on Mars years ago, and of course the first thing that we taught it to do once it landed is take a selfie, right? So there it is. The landing procedure, this is too small to read, just note that it's extremely complex. The way that we usually, we land things on Mars up until Curiosity was we would just wrap the thing in a big trampoline, throw it at Mars, and it would land and bounce and wherever it stopped, we're like, that's a good place to explore right there. So they came up, but this was a big rover, it was a cost a lot of money, they came up with this extremely complicated parachute, heat shield, crane, throw, just incredible system. That was, I heard about this only two days before it was gonna happen, I was like, this is never gonna work. Like I'm in computers and I know this is never gonna work. This system was completely under computer control. It's not like there's someone at NASA with a joystick moving around because one move of the joystick to transmit that takes about three minutes to get to Mars. So by the time you see the Martian monster, it's too late, right, to actually change it. And I don't think they thought it was gonna work either. And, but so much of our lives now are done automatically through computers without human intervention. So data structures though, you can't really do anything without talking about algorithms. And many of you know Charles Babbage and Ada Lovelace, kind of the first ones to really start thinking creatively. This is around, this is 1820, 1830, about how to get a machine to try to do something with a procedure. They were trying to do some simple mathematics at the time. And it eventually, just shortly after that, led to this event. This is actually my favorite photo of all time. This is Apollo 11 and here's Neil Armstrong coming down the ladder. He's about, do you know how long he thought about this moment? How many years he trained? How much work it took for the space program to get him to this point? He's about to actually be the step on the moon. But then I thought, wait a minute, if that's Neil Armstrong, who's taking the picture? There are aliens on the moon. No, so actually that's Buzz Aldrin. Neil Armstrong had already come down and he's got the camera. But this was the first time that we trusted computers with our lives. The way that this early computer we had to invent just for this. Imagine when they climbed back after they're done running around the moon for a while, if they were to climb back in this piece of tinfoil, push the button to lift off. If that button doesn't work, there was no rescue plan. There's no other way to go get them. So we had at least reached the point where we could trust computers.  If we have to go to the hospital, they have this amazing technology now and we just expect it to work. But this computer worked. Because a lot of people worked on it, but particularly this person. Many of you I'm sure already know the story of Margaret Hamilton, lead engineer for the Apollo Space Program. This is a famous photo where she's standing next to the printout. If you print out all the source code of that guidance computer. And she's the one that saved their lives. Actually, if you watch on YouTube, the original recording of Neil Armstrong landing, there were multiple alarms going off 60 seconds before he was trying to land. Her invention of like threading to have the computer do multiple things at once and then to put a priority idea on top of that allowed them to land and live. Instead of having the computer worry about an alarm that actually was not important at that moment. So her, she was really the first person to coin the word software engineer. She did a lot for us to talk about software quality and what it means to have a system that works. So from there I wanna talk about this notion of complexity. We know that for any given problem there are an infinite number of good solutions. How do we compare one against the other? Not all implementations are created equal. And there are generally two ways that we can compare.  And that's to look at how it uses time and how it uses space. You may remember Einstein talked a lot about time and space and how they're connected. Most people don't know his 1907 paper saying that time is money, which was genius. So the way that we kind of in computer science give a notion of complexity is what we call big O notation. And I did not understand this for a very long time. And let me just see if I can give a couple examples. See this capital O of N is weird looking thing. This is how we kind of describe the complexity of the lame implementation that I've got right there in Ruby. I kind of, of course, is not really idiomatic Ruby. I just want to use it for demonstration purposes. But here's a method exists. Does this name to find exist in this list of names? I go through each one. I return true if I find it, so I stop the loop early. Otherwise our return falls. Now, the reason that this is O of N, this means that as your input size gets bigger, in the worst case, the time it takes for this method to do its work will vary directly linearly with that input size. So if I have 100 items and it takes however many seconds on your computer, if you have 200 items, we know it will take twice as long in the worst case. If you have 1,000 items, we know it'll take 10 times as long. And that's just good to know so that you can be aware when you're writing your methods how it's gonna do when you throw a lot of data at it. And so you can graph it. It's just a line, it's where you say O of N. N is the input size. How many things are you trying to battle against in your algorithm? Now here's another implementation of that same method. Still returns true or false. It's just what we call a binary search algorithm. Don't worry about the details too much here. But basically, it's just like you would look up a name in a phone book. I don't know if anybody knows what a phone book is anymore. I'm old. So if you told me to look at a name in a phone book and I, for Cincinnati, I've never been to Cincinnati, I would basically just open up in the middle, right? See where I am and then I know that the phone book is sorted so I can then go half and half again until I get close and then I'm there. Same idea, I grabbed the midpoint. I look and see if I got lucky. If so, I'm done. If not, I say, okay, is my name gonna be before that or after that. And I just recursively call that same function again now using a subset. This lets me zero in on a name in four or five tries, even in a phone book that's got millions of names. And so this performs very well against large data sets. So what we call logarithmic complexity. And so we would say O of log N. And one way to think about logarithms is if it's just the number of digits in your number. If you have 1,000 items versus a million, it'll only take twice as long, not 1,000 times more. So you can barely see that green line along the bottom. So that's really good. You wanna use methods that have logarithmic complexity if you have a choice. Anybody use the Atom Editor like I do? Okay, about a year ago I wanna say they did a blog post on one of the things they were doing to increase the speed of their editor. And they talked about how one of their breakthroughs was to use this divide and conquer type of algorithm. They used the big O notation in there. And I was actually able to understand what they were talking about. And so hopefully if you come across this type of thing to them, it'll be easier for you as well. Finally, here's a counter example. Let's say I've got an array and I wanna find all possible combinations of that array and make a bigger array. Here I'm just gonna map those items. But I'm gonna, for each item, I need to go through all the items also in order to make all the possible combinations. This has what we call N squared complexity. This is bad. Do not do this. In fact, the tell-tale sign is if you ever see that you have nested loops, you should worry very badly. So as the number of items increases only a little bit, the time it's gonna take you is the square of that. And so very rapidly, it gets out of control. There are other big O notations, but hopefully now, if you weren't familiar with it before, or weren't comfortable with it before, you can now start to look those things up and go from there. All right, so finally, let's talk about the future a little bit. Sort of what's next in computer science? And that's why I'm so excited to be now a part of this. Let me go back to World War II. So who can name the British mathematician that helped break the German and England machine and helped end the war? Exactly, this guy, right?  Actually, he did a lot more than that. After the war was over, he did a lot of deep thinking about the role of computers in society. Ideas that made no sense to his peers. He was worried about what if machines start to run our lives? And I think his peers were like, dude, it was just running a thing against the code. Don't worry, it's the size of a room, don't worry about it. But he was already thinking about what does this mean? What if machines can, can they learn to think like our brains can think? And if so, what would happen? And that's in the news today, right? Elon Musk is often talking about, should we worry about artificial intelligence? But the main ideas that I learned from studying him was that computer science is not computer programming. I thought it was. It's not. It's really two different things. I was able to do computer programming just fine, knowing very little computer science. Because the two things, yeah, they're related, one can empower the other. But let's not mistake one for the other. I believe computer science, it's more about a way of thinking. Some people call this computational thinking. And it means, do you know how to look for cause and effect? Do you use logic and experiment and empirical results? That's part of computational thinking. Breaking things down into small pieces. Breaking a problem down into small pieces. Super critical. I specialize in working with non-programmers who are just beginning to learn programming. And these elements are usually what's hardest for new programmers to learn. It is second nature to the rest of us. Be able to do thought experiments like Turing did about artificial intelligence and machine learning. But also, the inspiring thing about Alan Turing was he focused on what was important. When he found himself in a bureaucracy that was more concerned with minutiae than the important things of the day, he would get out of that situation. He just wouldn't, he couldn't stand it. And it reminds me of this other hero in our history of computer science, Grace Hopper. She was also of the same era. She became the first female admiral. She basically invented COBOL. She was the first one to give us the notion of a compiler and this notion of an indirection between the code that you write and the actual machine language code. Maybe from there we get the adage that there's no problem that another level of indirection can't solve. She tells a story of how generals would come to her and say, this would be like in the 60s. And they would complain and they would say, I'm trying to get this communication from ship to shore and it takes so long. It's going up to a satellite and down at the speed of light. Why is it taking so long? And she would look at them and she would take out a piece of wire that is this long.  She would ask them, do you know how far light travels in one nanosecond? And she would hold up this wire. It's 11 and five eighths inches, almost a foot. She said, so when you're trying to send something from ship to shore, up to the satellite and down, like give her brother a break. Like it's gonna take the light a little while to be able to do that. And she also is kind of famous for recording, back in the beginning, this is too small to see, but relay number 70, panel F, parenthesis Moth, found in the relay, this was the first bug. They had suspected that insects were getting into the circuitry and that was causing problems but now she finally approved it. But she didn't just work on the technical side. She was inspiring because she said, humans are allergic to change. I don't know if you work somewhere like this. They love to say, we've always done it that way. Well, I try to fight that. It reminds me of Turing.  Is there a technical reason why? No, we only do that for tradition, but challenging assumptions, such an important part of computer science. We need people to push the envelope. Back in the 70s, famous rock musician Frank Zappa said, without deviation from the norm, progress isn't possible and I think that's true. She said, you know, a ship in port is safe but that's not what ships are for. Sail out to sea and do new things. Many of us here are entrepreneurs, others of us are not, but we're all trying to do new things. Now the sea is a scary place. But if you've ever actually sailed out to sea, it's a scary place. We're fearful of becoming isolated or falling overboard, but I'm perhaps most grateful for having encountered computer science for the following reason, that I am not alone. We are not alone. Hopefully as you've seen, we are standing on the shoulders of the work of all these other people and computer science isn't really about data structures and algorithms. It's about joining a long tradition of using computer programming to advance the world. Life is short. To many of my friends and family, I have these amazing superpowers that I can make apps. So what am I gonna use it for? I would submit to you to do something important. It's something that's important to you or your family or your community. You know, Matt's has said that perhaps the biggest invention to come from the Ruby language is the Ruby community. But we need to help each other. I mean, like it or not, we depend on each other. Just look at our gem files. I cannot pay my mortgage without the work that many of you do. So instead of reinventing the wheel next time, contribute to someone's existing open source project or help mentor someone else learn something you already know. If we make the tide rise just a little bit, all of our boats will be lifted up. Thank you very much.


Even though now the U.S. influence over Latin America is starting to wane, back in 1973 when Chile elected a socialist government and elected socialist president Salvador Allende, we backed a coup and overthrew that government. And that led to one of the most harshest, brutal authoritarian regimes ever. And even though Augusto Pinochet is no longer in control in Chile, his legacy remains. And his legacy wasn't just of authoritarianism, it was also a legacy of neoliberalism that was ruthless as well. So as Kenny Stansel of Common Dreams explains, after a U.S.-backed coup toppled Chile's democratically elected socialist president Salvador Allende on September 11th of 1973, Pinochet's regime implemented a wave of pro-market policies under anti-democratic circumstances at the behest of economists trained at the University of Chicago. This led to vast inequalities and rendered egalitarian reform exceedingly difficult even in the post-dictatorship period that began in 1990. There have been numerous attempts over the past 30 years to rein in market fundamentalism in Chile. But because neoliberalism was so deeply embedded in the country's 1980 constitution, the reign of Pinochet's policies outlived the military dictator. And to give you a sense of how terrible it is in Chile, it's often referred to as a laboratory for neoliberalism. All of the policies that we want implemented here in the United States, the neoliberal policies that we want here, that conservatives want here to be clear, they've been implemented in Chile. For example, the Wall Street executives and big business interests have been trying to privatize social security in the United States, but they've never been successful at doing that. However, in Chile, that actually did happen. And conservatives always point to Chile as the model for how we should run our social security system. And they continue to do this even as the system in Chile is literally falling apart to the point where hundreds of thousands of protesters took to the streets of Santiago to demand reform. But the good news is that things are starting to change. We are on the cusp of a new dawn in Chile because the policies of Augusto Pinochet may soon come to an end because of what is taking place currently in the country. So Common Dreams continues during a historic referendum last October, which represented the culmination of a decades-long revolt against the neoliberal model. Chileans voted in a 4-to-1 landslide to rewrite the dictatorship-era constitution. Notably, voters chose for the new constitution to be written by a popularly elected assembly of constituents rather than a mixed assembly of politicians and citizens. At the time, political theorist Melanie Cruz called the overwhelmingly popular support for a new constitution a chance to bury Pinochet's legacy and rebuild the country on a truly democratic basis. Still, the question remained, who would be in charge of the process? Which of the more than 1,300 candidates would be selected for this monumental task? During this past weekend's election, originally scheduled for April would push back due to an increase in coronavirus infections. Chileans were finally given a chance to answer that question definitively. Of the 155 citizens elected to the constituent assembly, only 38, which is less than a quarter, came from the right-wing coalition known as Vamos Porchile. By delivering a knockout blow to the country's right-wing, voters ensured that a large majority of the 155 delegates responsible for establishing a new political framework at the constituent assembly will be bringing progressive perspectives rather than neoliberal orthodoxy to the table, increasing the likelihood that a genuinely emancipatory constitution gets created. Greg Grandin, a world-renowned historian of Latin America, tweeted, Allende is smiling, alluding to neoliberalism. Grandin added that it started in Chile, it will end in Chile. So finally, after multiple decades, only now, Chile is finally starting to undo the damage that we caused by supporting a coup d'etat that ousted their democratically elected socialist president back in the 1970s. And it's not just that neoliberalism will be going the way of the Dota, hopefully. We'll have to wait and see what constitution they craft. But it's also the case that currently in Chile, they have some of the most restrictive laws related to abortion in the world. So social equality is also going to be a thing that gets promoted, most likely, at this constitutional convention. And in an article for The Guardian, Cherise McGowan argues that this could actually be a game-changing moment for gender equality in Chile. And she writes in Chile, feminist constitutional candidates stress that parity in the new constitution does not only benefit women, but any minority group that has been excluded from political spaces, including the country's indigenous communities, LGBT groups, and gender non-conforming people. So that sounds incredible, and it gets better. There will be 17 seats allocated to indigenous people. So this truly is a chance for Chile to lead the world now, not in neoliberal policies, not for them to be a laboratory of neoliberalism to export the policies that they produce after testing it there to the United States and other countries. Now is their chance to actually right the wrongs of the Pinochet era and actually form a constitution that benefits the people of Chile. And it's truly, it's honestly remarkable to see the shift in Latin American politics where they're no longer just accepting U.S. influence, no longer accepting what the United States says. Now they're charting their own path, and it really is just so inspiring to see. And one more thing I want to share is this tweet from Professor Richard Wolff, who writes, Salute to Chile, rising from the long night since Allende's murder, Pinochet's dictatorship, Milton Friedman's economic policies for the rich, a special bravo to Chile's women pioneering a new constitution. Yeah, and we'll leave that there. So, Chile was one of the first Latin American countries that I learned about specifically as it pertains to U.S. intervention and how we backed the coup that ousted the socialist leader that led to a brutal dictatorship. And now to see it all finally change and to see the people of Chile have a chance to have a future, to have a new opportunity. It really is phenomenal to see. So I stand in solidarity with the people of Chile, and I'm excited to see the constitution that they craft. They elected the right people. So now we'll see what they come up with. But hopefully this will be a new standard for constitutions throughout the world because, you know, if they prove that they can actually chart a new path and respect the rights of indigenous people, marginalized groups and workers, then perhaps now Chile could become a laboratory for democracy and socialism and not neoliberalism. And I can't wait to see what they do.