In this class, we will compare DNA from an individual against a reference human genome to find potentially disease-causing mutations. We will also learn how to identify the function of a protein even if it has been bombarded by so many mutations compared to similar proteins with known functions that it has become barely recognizable.
In previous courses in the Specialization, we have discussed how to sequence and compare genomes. This course will cover advanced topics in finding mutations lurking within DNA and proteins.
In the first half of the course, we would like to ask how an individual's genome differs from the "reference genome" of the species. Our goal is to take small fragments of DNA from the individual and "map" them to the reference genome. We will see that the combinatorial pattern matching algorithms solving this problem are elegant and extremely efficient, requiring a surprisingly small amount of runtime and memory.
In the second half of the course, we will learn how to identify the function of a protein even if it has been bombarded by so many mutations compared to similar proteins with known functions that it has become barely recognizable. This is the case, for example, in HIV studies, since the virus often mutates so quickly that researchers can struggle to study it. The approach we will use is based on a powerful machine learning tool called a hidden Markov model.
Finally, you will learn how to apply popular bioinformatics software tools applying hidden Markov models to compare a protein against a related family of proteins.
In this class, we will consider the following two central biological questions (the computational approaches needed to solve them are shown in parentheses):
How Do We Locate Disease-Causing Mutations? (Combinatorial Pattern Matching)
Why Have Biologists Still Not Developed an HIV Vaccine? (Hidden Markov Models)
Graded: How Do We Find Disease-Causing Mutations? (Week 1)
Graded: Open in order to Sync Your Progress: Stepik Interactive Text for Week 1
The Burrows-Wheeler Transform
This week, we will introduce a paradigm called the Burrows-Wheeler transform; after seeing how it can be used in string compression, we will demonstrate that it is also the foundation of modern read-mapping algorithms.
Graded: Open in order to Sync Your Progress: Stepik Interactive Text for Week 2
Speeding Up Burrows-Wheeler Read Mapping
Last week, we saw how the Burrows-Wheeler transform could be applied to multiple pattern matching. This week, we will speed up our algorithm and generalize it to the case that patterns have errors, which models the biological problem of mapping reads with errors to a reference genome.
Graded: How Do We Find Disease-Causing Mutations? (Weeks 2-3)
Graded: Open in order to Sync Your Progress: Stepik Interactive Text for Week 3
Introduction to Hidden Markov Models
This week, we will start examining the case of aligning sequences with many mutations -- such as related genes from different HIV strains -- and see that our problem formulation for sequence alignment is not adequate for highly diverged sequences.
To improve our algorithms, we will introduce a machine-learning paradigm called a hidden Markov model and see how dynamic programming helps us answer questions about these models.
Graded: Stepik Code Challenges for Week 4
Profile HMMs for Sequence Alignment
Last week, we introduced hidden Markov models. This week, we will see how hidden Markov models can be applied to sequence alignment with a profile HMM. We will then consider some advanced topics in this area, which are related to advanced methods that we considered in a previous course for clustering.
Graded: Why Have Biologists Still Not Developed an HIV Vaccine? (Weeks 4-5)
Graded: Stepik Code Challenges for Week 5
Week 6: Bioinformatics Application Challenge
This week brings our Application Challenge, in which we apply the HMM sequence alignment algorithms that we have developed.
World and internet is full of textual information. We search for information using textual queries, we read websites, books, e-mails. All those are strings from the point of view of computer science. To make sense of all that information and make search efficient, search engines use many string algorithms. Moreover, the emerging field of personalized medicine uses many search algorithms to find disease-causing mutations in the human genome.
Behavioral genetic methodologies from twin and adoption studies through DNA analysis will be described and applied to address longstanding questions about the origins of individual differences in behavioral traits.
The course covers basic algorithmic techniques and ideas for computational problems arising frequently in practical applications: sorting and searching, divide and conquer, greedy algorithms, dynamic programming. We will learn a lot of theory: how to sort data and how it helps for searching; how to break a large problem into pieces and solve them recursively; when it makes sense to proceed greedily; how dynamic programming is used in genomic studies. You will practice solving computational problems, designing new algorithms, and implementing solutions efficiently (so that they run in less than a second).
A good algorithm usually comes together with a set of good data structures that allow the algorithm to manipulate the data efficiently. In this course, we consider the common data structures that are used in various computational problems. You will learn how these data structures are implemented in different programming languages and will practice implementing them in our programming assignments.
How do we infer which genes orchestrate various processes in the cell? How did humans migrate out of Africa and spread around the world? In this class, we will see that these two seemingly different questions can be addressed using similar algorithmic and machine learning techniques arising from the general problem of dividing data points into distinct clusters.
This course distills for you expert knowledge and skills mastered by professionals in Health Big Data Science and Bioinformatics. You will learn exciting facts about the human body biology and chemistry, genetics, and medicine that will be intertwined with the science of Big Data and skills to harness the avalanche of data openly available at your fingertips and which we are just starting to make sense of.
Large-scale biology projects such as the sequencing of the human genome and gene expression surveys using RNA-seq, microarrays and other technologies have created a wealth of data for biologists. However, the challenge facing scientists is analyzing and even accessing these data to extract useful information pertaining to the system being studied. This course focuses on employing existing bioinformatic resources – mainly web-based programs and databases – to access the wealth of data to answer questions relevant to the average biologist, and is highly hands-on.
Are you interested in learning how to program (in Python) within a scientific setting? This course will cover algorithms for solving various biological problems along with a handful of programming challenges helping you implement these algorithms in Python. Each of the four weeks in the course will consist of two required components. First, an interactive textbook provides Python programming challenges that arise from real biological problems.
This course begins a series of classes illustrating the power of computing in modern biology. Please join us on the frontier of bioinformatics to look for hidden messages in DNA without ever needing to put on a lab coat.
What is a genome? A genome contains all of the information that a cell needs to develop, function, and reproduce itself, and all the information needed for those cells to come together to form a person, plant, or animal. Genomes contain an organism’s complete set of genes, and also the even tinier genetic structures that help regulate when and how those genes are used.
Learn various methods of analysis including: unsupervised clustering, gene-set enrichment analyses, Bayesian integration, network visualization, and supervised machine learning applications to LINCS data and other relevant Big Data from high content molecular and phenotype profiling of human cells.
This course introduces how the human body works and how it is more than the sum of its parts. The human body is made up of many individual parts that work together in a highly interactive and coordinated way. This course introduces the building blocks that make up the body, and how these are structured and maintained at a cellular level. We highlight the cardiovascular, hormonal and nervous systems, as critical coordination and control parts of the body. We investigate the structure of the musculoskeletal system, and how it helps us move through, and manipulate, our environment. We conclude by reviewing how the body replaces itself to create a new human being.
MOOCs – Massive Open Online Courses – enable students around the world to take university courses online. This guide, by the instructors of edX’s most successful MOOC in 2013-2014, Principles of Written English (based on both enrollments and rate of completion), advises current and future students how to get the most out of their online study, covering areas such as what types of courses are offered and who offers them, what resources students need, how to register, how to work effectively with other students, how to interact with professors and staff, and how to handle assignments. This second edition offers a new chapter on how to stay motivated. This book is suitable for both native and non-native speakers of English, and is applicable to MOOC classes on any subject (and indeed, for just about any type of online study).