BCH394P BCH364C 2022
BCH394P/BCH364C Systems Biology & Bioinformatics
Course unique #: 54540/54450
Lectures: Tues/Thurs 11 – 12:30 PM on Zoom until Jan 27 (log in to Canvas for the link), then in WEL 2.110
Instructor: Edward Marcotte, marcotte @ utexas.edu
- Office hours: Wed 11 AM – 12 noon on Zoom
TA: Muyoung Lee, ml49649 @ utexas.edu
- TA Office hours: Mon 1-2/Fri 11-12 on Zoom
Class Slack channel: ut-sp22-bioinfo.slack.com
Class Canvas site: https://utexas.instructure.com/courses/1325179
Lectures & Handouts
April 19, 2022 - Phenologs
- Remember: The final project web page is due by midnight April 25, 2022, turned in as a URL emailed to the TA+Professor. Please indicate in the email if you are willing to let us post the project to the course web site. Also, note that late days can't be used for the final project
- Today's slides
- Phenologs and the drug discovery story we'll discuss in class. This is a fun example of the power of opportunistic data mining aka "research parasitism" in biomedical research.
- Search for phenologs here. You can get started by rediscovering the plant model of Waardenburg syndrome. Search among the known diseases for "Waardenburg", or enter the human genes linked to Waardenburg (Entrez gene IDs 4286, 5077, 6591, 7299) to get a feel for how this works.
Tools for finding orthologs:
- One good tool for discovering orthologs is InParanoid. Note: InParanoid annotation lags a bit, so you'll need to find the Ensembl protein id, or try a text search for the common name. Or, just link there from Uniprot. InParanoid tends towards higher recall, lower precision for finding orthologs. Approaches with higher precision include OMA (introduced in this paper), PhylomeDB, and EggNOG. The various algorithms basically have different trade-offs with regard to precision vs recall, and ease of use. For example, we use EggNOG in the lab for annotating genes in new genomes/transcriptomes because the EggNOG HMM ortholog models are easily downloadable/re-run on any set of genes you happen to be interested in.
- All (well, at least some) of your ortholog definition questions answered!
Apr 14, 2022 - Networks
- Today's slides
- Metabolic networks: The wall chart (it's interactive. For example, can you find enolase?), the human metabolic reaction network, a review of mapping transcriptional networks by Chip-SEQ (with the current record holder in this regard held by ENCODE), and a review of protein interaction mapping in humans and how it is informing disease genetics.
- Useful gene network resources include:
- Reactome), which we've seen before, links human genes according to reactions and pathways, and also calculated functional linkages from various high-throughput data.
- HumanNet (older versions for other organisms at netbiolab.org and FunctionalNet), which provides interactive searches of a human functional gene network. The earlier versions helped my own group find genes for a wide variety of biological processes.
- STRING is available for many organisms, including large numbers of prokaryotes. Try searching on the E. coli enolase (Eno) as an example.
- GeneMania, which aggregates many individual gene networks.
- The best interactive tool for network visualization is Cytoscape. You can download and install it locally on your computer, then visualize and annotated any gene network, such as are output by the network tools linked above. There is also a web-based network viewer that can be incorporated into your own pages (e.g., as used in YeastNet). Here's an example file to visualize, the human protein complex map from Hu.MAP.
- Clustering algorithms can be applied to networks. For example, we frequently use the Walktrap algorithm developed by Pascal Pons and Matthieu Latapy, which is available in the Python iGraph library. Here's a nice blog demonstration using it.
- The Yeast SGA map
- The pan-plant PPI map
- Functional networks
- Review of predicting gene function and phenotype from protein networks
- Primer on visualizing networks
Apr 12, 2022 - Deep learning
- Guest speaker: Dr. Claire McWhite, who is a Lewis-Sigler Fellow at Princeton where she develops protein language models using deep learning. She previously completed her B.S. at Rice University, interned at the National Cancer Institute, earned her Ph.D. at UT Austin working extensively in computational biology and proteomics, and appeared as a contestant in BahFest.
- Today's slides
- Why neural networks aren't neural networks
Apr 7, 2022 - Principal Component Analysis (& the curious case of European genotypes)
- Reminder: Problem Set 3 is due tomorrow!
- Science news of the day: Just a fun piece, a chromosome level genome assembly of the extinct thylacine (Tasmanian tiger)"
- Today's slides
- European men, their genomes, and their geography
- The tSNE interactive visualization tool also performs PCA
- Relevant to today's lecture for his eponymous distance measure: Mahalanobis
A smattering of links on PCA:
- NBT Primer on PCA
- A PCA overview (.docx format) & the original post
- Science Signaling (more specifically, Neil R. Clark and Avi Ma’ayan!) had a nice introduction to PCA that I've reposted here (with slides)
- Python code for performing PCA yourself. This example gives a great intro to several important numerical/statistical/data mining packages in Python, including pandas and numpy.
Apr 5, 2022 - Classifiers
- A topical tSNE visualization
- Today's slides
- A nice review explaining Support Vector Machines and k-NN classifiers
- Classifying leukemias, and a 2018 review and 2021 review of how that field has led to commercial cancer diagnostics, such as the Prosigna breast cancer diagnostic.
- For those of you interesting in trying out classifiers on your own, here's the best stand-alone open software for do-it-yourself classifiers and data mining: Weka. There is a great introduction to using Weka in this book chapter Introducing Machine Learning Concepts with WEKA, as well as the very accessible Weka-produced book Data Mining: Practical Machine Learning Tools and Techniques.
- & to do this directly in Python, there's a really excellent library of simple, easy-to-use, classification, regression, machine learning and data mining tools called scikit-learn. I highly recommend using scikit-learn in combination with the pandas library, which makes it easy to work with large, tabular datasets. Here's a helpful pandas tutorial to get you started.
Mar 31, 2022 - 3D Protein Structure Modeling
- Guest speaker: Caitie McCafferty, who is finishing up her Ph.D. at UT Austin, prior to which she earned her B.S. in Chemistry at the University of Maryland and worked as a computational researcher for 3 years at the NIH National Eye Institute. She has mentored numerous undergrads in computational structural biology, co-developed the citizen science video game Protein Puzzles, and is now leading local efforts to solve the 3D structures of ciliary proteins by cryoEM, mass spec, and integrative modeling.
- Today's slides and the EVcouplings method discussed
- 3D macromolecular structural modeling software: UCSF ChimeraX, the Rosetta software suite, and an overview of what it can do for you, and last but not least: AlphaFold predicted structures and the AlphaFold colab where you can run your own structure predictions.
- & a few other useful 3D structure tools: The Protein Data Bank, MODELLER, and Pymol
Mar 29, 2022 - Clustering II
- We'll be continuing the slides from just before the guest lecture
- I'm also posting the next (last) problem set:
Problem Set 3, due before midnight Apr. 8, 2022. You will need the following software and datasets:
- The clustering software is available here. There is an alternative package here that you can download and install on your local computer if you prefer.
- Amino acid sequences of 1832 human proteins
- Human protein phylogenetic profiles. These data come from this paper.
- Human protein co-fractionation/mass spectrometry profiles. These data come from this paper.
- Review of phylogenetic profiles
- Fuzzy k-means
- SOM gene expression
- Links to various applications of SOMs: 1, 2, 3. You can run SOM clustering with the Open Source Clustering package with the '-s' option, or GUI option (here's the manual). (FYI, it also supports PCA). If you are not happy with Cluster's SOM function, the statistical package R also provides a package for calculating SOMs (http://cran.r-project.org/web/packages/som/index.html).
Mar 24, 2022 - Proteomics
- Guest speaker: Dr. Daniel Boutz, who earned his Ph.D. at UCLA and worked extensively in the UT Center for Systems and Synthetic Biology and the Army Research Laboratories - South in Austin. He co-developed a highly effective therapeutic antibody discovery approach that he is now setting up a dedicated center around at Houston Methodist Hospital.
- Today's slides
Mar 22, 2022 - Functional Genomics & Data Mining - Clustering I
- Science news of the day: The latest tests of HexaPro look very promising! UT has granted a royalty-free license to 80 low and middle income countries around the world for vaccine use of HexaPro. You can read more about the development of HexaPro by the McLellan, Finkelstein, and Maynard labs in this very nice NYT article.
- Today's slides
- Primer on clustering
- K-means example (.ppt)
- Here's a nice explanation of some of the various distance measures used for clustering
- B cell lymphomas
Mar 15,17, 2022 - SPRING BREAK
- Don't forget to finish HW3 and turn in the proposal for your course project by "March 21st".
Mar 10, 2022 - Motifs
- Due March 21 by email to the TA+Instructor - One to two (full) paragraphs describing your plans for a final project, along with the names of your collaborators. Please limit to no more than 3 per group, please. It's also fine to do this independently, if you prefer. (Do you have a particular skill/interest/exciting dataset you need help analyzing? There is a class_projects channel on the slack where you can ask around for partners.) This assignment (planning out your project) will account for 5 points out of your 25 total points for your course project. Here are a few examples of final projects from previous years: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
- We'll talk about motif finding today.
- Today's slides
- Wordle as an excuse to learn about information theory & entropy and sequence logos and motifs!
- NBT Primer - What are motifs?
- NBT Primer - How does motif discovery work?
- The biochemical basis of a particular motif
- Gibbs Sampling
Mar 8, 2022 - NGS analysis best practices
- Homework #3 (worth 10% of your final course grade) has been assigned on Rosalind and is due by 11:59PM March 21. In past years, we've run into problems with Rosalind timing out before Meme completes although it usually runs eventually, so be warned you may have to try it a couple of times. Meme also runs faster using the "zero to one" or "one" occurrence per sequence option, rather than the "any number of repeats" option.
- Guest speaker: Anna Battenhouse from the Center for Biomedical Research Support, where she maintains the Biomedical Research Computing Facility.
- Today's slides
Mar 3, 2022 - Genomes II
- We're finishing up the slides from last time. Note that we give short shrift to read mapping/alignment algorithms, of which there are now a very long list. Here's an interesting discussion by Lior Pachter of the major developments in that field.
- Here is an excellent explanation of how the BWT relates to a suffix tree and enables fast read mapping to a genome
- If you want a more detailed explanation, the BWA paper more formally describes how the Burrows–Wheeler transform can be used to construct an index.
- Two notable advances in genome assembly: String Graphs and more recently, multiplexed De Bruijn graphs. Both have been used to assemble a fully complete human genome sequence (check out the beautiful string graph visualizations of the final assemblies)
Mar 1, 2022 - Genome Assembly
- A gentle reminder that Problem Set 2 is due by 11:59PM Mar 3
- Science news of the day: UC Berkeley loses core CRISPR patent rights
- If you would like a few examples of proteins annotated with their transmembrane and soluble regions (according to UniProt) to help troubleshoot your homework, here are some example yeast protein sequences.
- From last time, some definitions of sensitivity/specificity & precision/recall. Note that the gene finding community settled early on to a different definition of specificity that corresponds to the precision or PPV in other fields. Other fields define specificity as the true negative rate.
- Today's slides
- DeBruijn Primer and Supplement
Feb 24, 2022 - Gene finding II
- Short classes at UT start this week in genome sequencing, proteomics, and bioinformatics
- Several of you have asked about programming the Viterbi algorithm for the homework, so I wanted to make sure everyone realized that you are not required to program it. The sequence is short enough that you can solve it in a spreadsheet if that's easier for you.
- We're finishing up the slides from last time.
Feb 22, 2022 - Gene finding
- Science news of the day from two years ago: A great connection to HMMs, using deep learning to annotate the protein universe, just out in Nature Biotech
- Today's slides on gene finding
- For a few more examples of HMMs in action, here's a paper on sequencing the human genome by nanopore, which used HMMs in 3-4 different ways for polishing, contig inspection, repeat analysis and 5-methylcytosine detection.
- The UCSC genome browser
- A few useful links about programming: Recommendations for "good enough" programming habits
Reading (a couple of old classics + a review + better splice site detection):
Feb 17, 2022 - HMMs II Problem Set 2, due before midnight Mar. 3, 2022:
- Problem Set 2.
- You'll need these 3 files: State sequences, Soluble sequences, Transmembrane sequences
- Link to a great interactive visualization of Markov chains, by Victor Powell & Lewis Lehe. It's worth checking out to build some intuition. They correctly point out that Google's PageRank algorithm is based on Markov chains. There, the ranking of pages in a web search relates to how random walks across linked web pages spend more time on some pages than on others.
- A non-biological example of using log odds ratios & Bayesian stats to learn the authors of the Federalist Papers
Feb 15, 2022 - Hidden Markov Models
- Happy Class-After-Valentine's Day!
- Don't forget: Rosalind Homework #2 (worth 10% of your final course grade) is due by 11:59PM February 16.
- More stats for comp biologists worth checking out: Modern Statistic for Modern Biology, by Susan Holmes and Wolfgang Huber. It's currently available online and available on dead tree. (FYI, all code is in R.)
- Today's slides
- HMM primer and Bayesian statistics primer #1, Bayesian statistics primer #2, Wiki Bayes
- Care to practice your regular expressions? (In python? & a Python regexp cheat sheet)
Feb 10, 2022 - Biological databases
- Homework #2 (worth 10% of your final course grade) has been assigned on Rosalind and is due by 11:59PM February 16.
- Science news of the day: Reanimated 46,000-year-old nematodes!
- Just a note that we'll be seeing ever more statistics as go on. Here's a good primer from Prof. Lauren Ancel Myers (who leads the UT Austin COVID-19 Modeling Consortium) to refresh/explain basic concepts.
- Today's slides
Feb 8, 2022 - BLAST
- For those of you who could use more tips on programming, the weekly peer-led open coding hour is starting up again! Every Wednesday, 12:30-1:30, in the MBB 2.232 student lounge. It's a very informal setting where you can work and ask questions of more experienced programmers.
- Science news of the day: There are still lots of fundamental discoveries to be made using sequence alignment, e.g. using peta-scale sequence alignment to discovery >10^5 new RNA viruses. Plus, fodder for your end-of-class projects: "we deposited 7.3 terabytes of virus alignments and assemblies into an open-access database that can be explored via a graphical web interface."
- Our slides today are modified from a paper on Teaching BLAST by Cheryl Kerfeld & Kathleen Scott.
- The original BLAST paper
- The protein homology graph paper. Just for fun, here's a stylized version of this plot that we exhibited in the engaging Design and the Elastic Mind show at New York's Museum of Modern Art, now in their permanent collection.
Feb 3, 2022 - ICEPOCALYPSE 2022
- WEATHER WARNING: Per the President's email, "all classes will be canceled", so no class on Feb. 3. We'll pick up with the scheduled material when campus re-opens!
- Yes, responding to popular request, we'll extend the Problem Set 1 deadline to midnight Feb. 9, 2022
Feb 1, 2022 - Sequence Alignment II
- We're meeting in person (!) in WEL 2.110 and introducing dynamic programming. We'll be finishing up slides from last time.
- Science news of the day: We're exactly 2 years from publication of the SARS-CoV-2 genome papers 1 2. The release of the genome sequences immediately launched the COVID vaccine design process. Here's a great write-up in the NYT of the story of the vaccine development process, including the McLellan lab's key S2P double proline mutations introduced to stabilize the spike protein.
- Fact and Fiction in Sequence Alignments
- Dynamic programming primer
- An example of dynamic programming using Excel, created by Michael Hoffman (a former U Texas undergraduate, now U Toronto professor, who took a prior incarnation of this class)
- A few examples of proteins with internally repetitive sequences: 1, 2, 3
Jan 27, 2022 - Sequence Alignment I
Problem Set I, due before midnight Feb. 7, 2022:
- Problem Set 1
- H. influenzae genome. Haemophilus influenza was the first free living organism to have its genome sequenced. NOTE: there are some additional characters in this file from ambiguous sequence calls. For simplicity's sake, when calculating your nucleotide and dinucleotide frequencies, you can just ignore anything other than A, C, T, and G.
- T. aquaticus genome. Thermus aquaticus helped spawn the genomic revolution as the source of heat-stable Taq polymerase for PCR.
- 3 mystery genes (for Problem 5): MysteryGene1, MysteryGene2, MysteryGene3
- *** HEADS UP FOR THE PROBLEM SET *** If you try to use the Python string.count function to count dinucleotides, Python counts non-overlapping instances, not overlapping instances. So, AAAA is counted as 2, not 3, dinucleotides. You want overlapping dinucleotides instead, so will have to try something else, such as the python string[counter:counter+2] command, as explained in the Rosalind homework assignment on strings.
Extra reading, if you're curious:
- BLOSUM primer
- The original BLOSUM paper (hot off the presses from 1992!)
- BLOSUM miscalculations improve performance
- There is a good discussion of the alignment algorithms and different scoring schemes here
Jan 25, 2022 - Intro to Python #2
- Reminder that today will be part 2 of the "Python boot camp" for those of you with little to no previous Python coding experience. We'll be finishing the slides from last time, plus Rosalind help & programming Q/A.
- Also, don't forget that the Rosalind assignments are due by 11:59PM January 27. Please do start if you haven't already, or you won't have time to get help if you have any issues installing Python.
- Another strong recommendation (really) to the Python newbies to download Eric Matthes's GREAT, free Python command cheat sheets that he provides to accompany his Python Crash Course book.
Jan 20, 2022 - Intro to Python
- STANDARD REMINDER: My email inbox is always fairly backlogged (e.g., my median time between non-spam emails was 11 minutes when I measured it some time ago, and it's gotten much worse since then), so please copy the TA on all emails to help us make sure they get taken care of.
- Today's slides
- E. coli genome
- Python 2 vs 3? Bioinformatics researchers held out for 2 until quite recently, but the shift to 3 is pretty clear now. We'll use Python 3 (the latest version is 3.10, but any recent version will be fine), but Rosalind and some materials are only available in Python 2.7, so we'll generally try to be version agnostic for compatibility. Use whichever you wish, but be aware that support for Python 2.7 has officially been stopped. For beginners, the differences are quite minimal and are summarized in a table here. There's also a great cheat sheet here for writing code compatible with both versions.
Jan 18, 2022 - Introduction
- Today's slides
- We'll be conducting homework using the online environment Rosalind. Go ahead and register on the site, and enroll specifically for BCH394P/364C (Spring 2022) Systems Biology/Bioinformatics using this link. Homework #1 (worth 10% of your final course grade) has already been assigned on Rosalind and is due by 11:59PM January 27.
Here are some online Python resources that you might find useful:
- Practical Python, worth checking out!
- If you have any basic experience at all in other programming languages, Google offered an extremely good, 2 day intro course to Python that is now on available Youtube.
- Khan Academy has archived their older intro videos on Python here
- & very, very useful if you're a complete Python newbie: Eric Matthes's Python Crash Course book. He made some GREAT, free Python command cheat sheets to support the book.
Syllabus & course outline
An introduction to systems biology and bioinformatics, emphasizing quantitative analysis of high-throughput biological data, and covering typical data, data analysis, and computer algorithms. Topics will include introductory probability and statistics, basics of Python programming, protein and nucleic acid sequence analysis, genome sequencing and assembly, proteomics, synthetic biology, analysis of large-scale gene expression data, data clustering, biological pattern recognition, and gene and protein networks.
Open to graduate students and upper division undergrads (with permission) in natural sciences and engineering.
Prerequisites: Basic familiarity with molecular biology, statistics & computing, but realistically, it is expected that students will have extremely varied backgrounds. Undergraduates have additional prerequisites, as listed in the catalog.
Note that this is not a course on practical sequence analysis or using web-based tools. Although we will use a number of these to help illustrate points, the focus of the course will be on learning the underlying algorithms and exploratory data analyses and their applications, esp. in high-throughput biology. By the end of the course, students will know the fundamentals of important algorithms in bioinformatics and systems biology, be able to design and implement computational studies in biology, and have performed an element of original computational biology research.
Most of the lectures will be from research articles and slides posted online, with some material from the...
Optional text (for sequence analysis): Biological sequence analysis, by R. Durbin, S. Eddy, A. Krogh, G. Mitchison (Cambridge University Press),
No exams will be given. Grades will be based on online homework (counting 30% of the grade), 3 problem sets (given every 2-3 weeks and counting 15% each towards the final grade) and an independent course project (25% of final grade), which can be collaborative (1-3 students/project). The course project will consist of a research project on a bioinformatics topic chosen by the student (with approval by the instructor) containing an element of independent computational biology research (e.g. calculation, programming, database analysis, etc.). This will be turned in as a link to a web page. The final project is due by midnight, April 25, 2022. The last 3 classes will be spent presenting your projects to each other. (The presentation will account for 5/25 points of the project grade.)
Since we will be in coronavirus lockdown at the start of this semester, this portion of the class will be web-based. We will hold lectures by Zoom during the normally scheduled class time. Log in to the UT Canvas class page for the link, or, if you are auditing, email the TA and he will send the link by return email. Slides will be posted before class on this web site so you can follow along with the material. We'll record the lectures & post the recordings afterward on Canvas so any of you who might be in other timezones or otherwise be unable to make class will have the opportunity to watch them. Note that the recordings will only be available on Canvas and are reserved only for students in this class for educational purposes and are protected under FERPA. The recordings should not be shared outside the class in any form. Violation of this restriction by a student could lead to Student Misconduct proceedings.
Online homework will be assigned and evaluated using the free bioinformatics web resource Rosalind.
All projects and homework will be turned in electronically and time-stamped. No makeup work will be given. Instead, all students have 5 days of free “late time” (for the entire semester, NOT per project, and counting weekends/holidays). For projects turned in late, days will be deducted from the 5 day total (or what remains of it) by the number of days late (in 1 day increments, rounding up, i.e. 10 minutes late = 1 day deducted). Once the full 5 days have been used up, assignments will be penalized 10 percent per day late (rounding up), i.e., a 50 point assignment turned in 1.5 days late would be penalized 20%, or 10 points.
Homework, problem sets, and the project total to a possible 100 points. There will be no curving of grades, nor will grades be rounded up. We’ll use the plus/minus grading system, so: A= 92 and above, A-=90 to 91.99, etc. Just for clarity's sake, here are the cutoffs for the grades: 92% = A, 90% = A- < 92%, 88% = B+ < 90%, 82% = B < 88%, 80% = B- < 82%, 78% = C+ < 80%, 72% = C < 78%, 70% = C- < 72%, 68% = D+ < 70%, 62% = D < 68%, 60% = D- < 62%, F < 60%.
Students are welcome to discuss ideas and problems with each other, but all programs, Rosalind homework, problem sets, and written solutions should be performed independently (except the final collaborative project). Students are expected to follow the UT honor code. Cheating, plagiarism, copying, & reuse of prior homework, projects, or programs from CourseHero, Github, or any other sources are all strictly forbidden and constitute breaches of academic integrity and cause for dismissal with a failing grade, possibly expulsion (UT's academic integrity policy). In particular, no materials used in this class, including, but not limited to, lecture hand-outs, videos, assessments (papers, projects, homework assignments), in-class materials, review sheets, and additional problem sets, may be shared online or with anyone outside of the class unless you have the instructor’s explicit, written permission. Any materials found online (e.g. in CourseHero) that are associated with you, or any suspected unauthorized sharing of materials, will be reported to Student Conduct and Academic Integrity in the Office of the Dean of Students. These reports can result in sanctions, including failure in the course.
The final project web site is due by midnight April 25, 2022.
Finally, between the pandemic and snowpocalypse, the last two years have really pushed our class schedule around a lot, so we’re going to reserve the last class day, May 5, as an emergency flex day. The current plan is for classes to end on May 3 and for there to be NO CLASS on May 5, but if weather, the pandemic, etc, leads to loss of lecture days, we’ll vote as a class to extend class to May 5.
- How to make a web site for the final project
- Google Site: https://sites.google.com/new