Difference between revisions of "BCH394P BCH364C 2019"

From Marcotte Lab
Jump to: navigation, search
Line 218: Line 218:
  
 
'''Jan 31, 2019 - Sequence Alignment I'''
 
'''Jan 31, 2019 - Sequence Alignment I'''
* For those of you who might be interested, Rosalind is having a [http://bioinf.me/contest Bioinformatics Contest].  Sign up runs until Feb. 3, the qualification round is Feb. 3-11, and Feb. 24 is the final round, with 24 hours to solve as many problems as you can. First prize in 2017 was to get your genome (exome) sequenced!
+
* For those of you who might be interested, Rosalind is having a [http://bioinf.me/contest Bioinformatics Contest].  Sign up runs until Feb. 2, the qualification round is Feb. 2-10, and Feb. 23 is the final round, with 24 hours to solve as many problems as you can. First prize in 2019 is to get your genome (exome) sequenced or get your own nanopore sequencer!
* [http://www.marcottelab.org/users/BCH339N_2018/BCH339N-Spring2018-SequenceAlignmentI.pdf Today's slides]<br>
+
* [http://www.marcottelab.org/users/BCH394P_364C_2019/BCH394P-364C-SequenceAlignmentI.pdf Today's slides]<br>
Problem Set I, due before midnight Feb. 5, 2018:<br>
+
Problem Set I, due before midnight Feb. 11, 2019:<br>
* [http://www.marcottelab.org/users/BCH339N_2018/BCH339N_ProblemSet1_Spring2018.pdf Problem Set 1]
+
* [http://www.marcottelab.org/users/BCH394P_364C_2019/BCH394P-364C_ProblemSet1_Spring2019.pdf Problem Set 1]
* [http://www.marcottelab.org/users/BCH339N_2018/Hinfluenzae.txt H. influenzae genome]. [https://en.wikipedia.org/wiki/Haemophilus_influenzae 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.'''
+
* [http://www.marcottelab.org/users/BCH394P_364C_2019/Hinfluenzae.txt H. influenzae genome]. [https://en.wikipedia.org/wiki/Haemophilus_influenzae 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.'''
* [http://www.marcottelab.org/users/BCH339N_2018/Taquaticus.txt T. aquaticus genome]. [https://en.wikipedia.org/wiki/Thermus_aquaticus Thermus aquaticus] helped spawn the genomic revolution as the source of heat-stable Taq polymerase for PCR.
+
* [http://www.marcottelab.org/users/BCH394P_364C_2019/Taquaticus.txt T. aquaticus genome]. [https://en.wikipedia.org/wiki/Thermus_aquaticus Thermus aquaticus] helped spawn the genomic revolution as the source of heat-stable Taq polymerase for PCR.
* 3 mystery genes (for Problem 5): [http://www.marcottelab.org/users/BCH339N_2018/MysteryGene1.txt MysteryGene1], [http://www.marcottelab.org/users/BCH339N_2018/MysteryGene2.txt MysteryGene2], [http://www.marcottelab.org/users/BCH339N_2018/MysteryGene3.txt MysteryGene3]<br>
+
* 3 mystery genes (for Problem 5): [http://www.marcottelab.org/users/BCH394P_364C_2019/MysteryGene1.txt MysteryGene1], [http://www.marcottelab.org/users/BCH394P_364C_2019/MysteryGene2.txt MysteryGene2], [http://www.marcottelab.org/users/BCH394P_364C_2019/MysteryGene3.txt MysteryGene3]<br>
 
* '''*** 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.
 
* '''*** 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.
 
* For those of you who could use more tips on programming, there's a peer-led open coding hour happening on Tuesdays 3-4pm in MBB 2.232 (2nd floor lounge). It's a very informal setting where you can ask questions of more experienced programmers.
 
* For those of you who could use more tips on programming, there's a peer-led open coding hour happening on Tuesdays 3-4pm in MBB 2.232 (2nd floor lounge). It's a very informal setting where you can ask questions of more experienced programmers.
 
Reading:<br>
 
Reading:<br>
* [http://www.marcottelab.org/users/BCH339N_2018/NBTPrimer-BLOSUM.pdf BLOSUM primer]
+
* [http://www.marcottelab.org/users/BCH394P_364C_2019/NBTPrimer-BLOSUM.pdf BLOSUM primer]
* [http://www.marcottelab.org/users/BCH339N_2018/BLOSUM_paper.pdf The original BLOSUM paper] (hot off the presses from 1992!)
+
* [http://www.marcottelab.org/users/BCH394P_364C_2019/BLOSUM_paper.pdf The original BLOSUM paper] (hot off the presses from 1992!)
* [http://www.marcottelab.org/users/BCH339N_2018/BLOSUM62Miscalculations.pdf BLOSUM miscalculations improve performance]
+
* [http://www.marcottelab.org/users/BCH394P_364C_2019/BLOSUM62Miscalculations.pdf BLOSUM miscalculations improve performance]
 
* There is a good discussion of the alignment algorithms and different scoring schemes [http://www.bioinformaticsonline.org/ch/ch03/supp-all.html here]
 
* There is a good discussion of the alignment algorithms and different scoring schemes [http://www.bioinformaticsonline.org/ch/ch03/supp-all.html here]
  
Line 237: Line 237:
 
* [http://www.scipy-lectures.org/packages/statistics/index.html Statistics in Python]
 
* [http://www.scipy-lectures.org/packages/statistics/index.html Statistics in Python]
 
* We'll be finishing Python slides from last time.
 
* We'll be finishing Python slides from last time.
 
+
-->
 
'''Jan 24, 2019 - Intro to Python'''
 
'''Jan 24, 2019 - Intro to Python'''
* Given '''SNOWPOCALYPSE 2018''' and our lost first day of class, we'll pick up mid-stream: Today's lecture will combine the planned short intro from lecture 1 with a plunge right into Python...
 
-->
 
<!--
 
* News of the day/Science in action:  There's a huge ongoing debate raging about the development of CRISPR genome editing technology, stemming in part from an [https://www.washingtonpost.com/news/wonk/wp/2016/01/13/control-of-crispr-biotechs-most-promising-breakthrough-is-up-for-grabs/ ongoing patent contest] over who made key innovations in characterizing, engineering, and applying CRISPR. You can read some of the debate [http://www.the-scientist.com/?articles.view/articleNo/45072/title/Who-Owns-CRISPR--Cont-d/ here], [http://www.the-scientist.com/?articles.view/articleNo/45119/title/-Heroes-of-CRISPR--Disputed/ here], and [http://genotopia.scienceblog.com/579/landergate-a-link-list/ here], among many other sites.  There's a good chance we'll hear the major CRISPR patents decided this semester.
 
-->
 
<!--
 
 
* REMINDER:  My email inbox is always fairly backlogged (e.g., my median time between non-spam emails was 11 minutes when I measured last year), so please copy the TA on any emails to me to make sure they get taken care of.
 
* REMINDER:  My email inbox is always fairly backlogged (e.g., my median time between non-spam emails was 11 minutes when I measured last year), so please copy the TA on any emails to me to make sure they get taken care of.
* [http://www.marcottelab.org/users/BCH339N_2018/BCH339N-PythonPrimer-Spring2018.pdf Today's slides]<br>
+
* [http://www.marcottelab.org/users/BCH394P_364C_2019/BCH394P-364C-PythonPrimer-Spring2019.pdf Today's slides]<br>
* [http://www.marcottelab.org/users/BCH339N_2018/BCH339N_Lecture2-Python_primer-Spring2018.pdf Python primer]
+
* [http://www.marcottelab.org/users/BCH394P_364C_2019/BCH394P-364C-Lecture2-Python_primer-Spring2019.pdf Python primer]
* [http://www.marcottelab.org/users/BCH339N_2018/Ecoli_genome.txt E. coli genome]
+
* [http://www.marcottelab.org/users/BCH394P_364C_2019/Ecoli_genome.txt E. coli genome]
 
* [http://astrofrog.github.io/blog/2015/05/09/2015-survey-results/ Python 2 vs 3?]. For compatibility with Rosalind and other materials, we'll use version 2.7. The current plan is for Python 2.7 support to be halted in 2020, but there is some hope (wishful thinking?) that Python 4 will be backwards compatible, [http://astrofrog.github.io/blog/2016/01/12/stop-writing-python-4-incompatible-code/ unlike Python 3]. Regardless, you're welcome to use whichever version you prefer, but we'll use 2.7 for all class explanations in the interests of simplicity and consistency. For beginners, the [http://www.practicepython.org/blog/2017/02/09/python2-and-3.html differences are quite minimal].
 
* [http://astrofrog.github.io/blog/2015/05/09/2015-survey-results/ Python 2 vs 3?]. For compatibility with Rosalind and other materials, we'll use version 2.7. The current plan is for Python 2.7 support to be halted in 2020, but there is some hope (wishful thinking?) that Python 4 will be backwards compatible, [http://astrofrog.github.io/blog/2016/01/12/stop-writing-python-4-incompatible-code/ unlike Python 3]. Regardless, you're welcome to use whichever version you prefer, but we'll use 2.7 for all class explanations in the interests of simplicity and consistency. For beginners, the [http://www.practicepython.org/blog/2017/02/09/python2-and-3.html differences are quite minimal].
-->
+
 
 
'''Jan 22, 2019 - Introduction'''
 
'''Jan 22, 2019 - Introduction'''
* [http://www.marcottelab.org/users/BCH394P_364C_2019/BCH394P_364C-IntroAndRosalind-Spring2019.pdf Today's slides]<br>
+
* [http://www.marcottelab.org/users/BCH394P_364C_2019/BCH394P-364C-IntroAndRosalind-Spring2019.pdf Today's slides]<br>
 
* Some warm-up videos to get you started on Python (2 not 3, unless you pay for an upgrade): [https://www.codecademy.com/learn/learn-python Code Academy's Python coding for beginners]<br>
 
* Some warm-up videos to get you started on Python (2 not 3, unless you pay for an upgrade): [https://www.codecademy.com/learn/learn-python Code Academy's Python coding for beginners]<br>
 
* We'll be conducting homework using the online environment [http://rosalind.info/faq/ Rosalind].  Go ahead and register on the site, and enroll specifically for BCH394P-BCH364C-Spring2019 using [http://rosalind.info/classes/enroll/127bf319a3/ ''this link''].  Homework #1 (worth 10% of your final course grade) has already been assigned on Rosalind and is '''due by 11:59PM January 31'''.
 
* We'll be conducting homework using the online environment [http://rosalind.info/faq/ Rosalind].  Go ahead and register on the site, and enroll specifically for BCH394P-BCH364C-Spring2019 using [http://rosalind.info/classes/enroll/127bf319a3/ ''this link''].  Homework #1 (worth 10% of your final course grade) has already been assigned on Rosalind and is '''due by 11:59PM January 31'''.
Line 259: Line 253:
 
== Syllabus & course outline ==
 
== Syllabus & course outline ==
  
[http://www.marcottelab.org/users/BCH394P_364C_2019/BCH394P_364C_2019_syllabus.pdf Course syllabus]
+
[http://www.marcottelab.org/users/BCH394P_364C_2019/BCH394P-364C_Spring2019_syllabus.pdf Course syllabus]
  
 
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.<br>
 
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.<br>
Line 278: Line 272:
 
Online probability texts: [http://omega.albany.edu:8008/JaynesBook.html #1], [http://www-users.york.ac.uk/~mb55/pubs/pbstnote.htm #2], [http://www.dartmouth.edu/~chance/teaching_aids/books_articles/probability_book/pdf.html #3]<br>
 
Online probability texts: [http://omega.albany.edu:8008/JaynesBook.html #1], [http://www-users.york.ac.uk/~mb55/pubs/pbstnote.htm #2], [http://www.dartmouth.edu/~chance/teaching_aids/books_articles/probability_book/pdf.html #3]<br>
  
'''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).'''  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, 2018.  The last three classes will be spent presenting your projects to each other. (The presentation will account for 5% of the project.)'''<br>
+
'''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).'''  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 29, 2019.  The last 2.5 classes will be spent presenting your projects to each other. (The presentation will account for 5/25 points for the project.)'''<br>
  
 
Online homework will be assigned and evaluated using the free bioinformatics web resource [http://rosalind.info/faq/ Rosalind].<br>
 
Online homework will be assigned and evaluated using the free bioinformatics web resource [http://rosalind.info/faq/ Rosalind].<br>
Line 288: Line 282:
 
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'' '''. 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 ([http://deanofstudents.utexas.edu/sjs/acint_student.php UT academic integrity policy]) and cause for dismissal with a failing grade.'''
 
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'' '''. 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 ([http://deanofstudents.utexas.edu/sjs/acint_student.php UT academic integrity policy]) and cause for dismissal with a failing grade.'''
  
'''The final project web site is due by midnight April 25, 2019.'''
+
'''The final project web site is due by midnight April 29, 2019.'''
  
 
* How to make a web site for the final project  
 
* How to make a web site for the final project  

Revision as of 16:50, 20 January 2019

BCH394P/BCH364C Systems Biology & Bioinformatics

Course unique #: 54044/53945
Lectures: Tues/Thurs 11 – 12:30 PM in JGB 2.202
Instructor: Edward Marcotte, marcotte @ icmb.utexas.edu

  • Office hours: Wed 11 AM – 12 noon in MBB 3.148BA

TA: Caitie McCaffery, clmccafferty @ utexas.edu

  • TA Office hours: Mon 11-12/Fri 2-3 in NHB 3.400B atrium (or MBB 3.128B) Phone: 512-232-3919

Lectures & Handouts

Jan 24, 2019 - Intro to Python

  • REMINDER: My email inbox is always fairly backlogged (e.g., my median time between non-spam emails was 11 minutes when I measured last year), so please copy the TA on any emails to me to make sure they get taken care of.
  • Today's slides
  • Python primer
  • E. coli genome
  • Python 2 vs 3?. For compatibility with Rosalind and other materials, we'll use version 2.7. The current plan is for Python 2.7 support to be halted in 2020, but there is some hope (wishful thinking?) that Python 4 will be backwards compatible, unlike Python 3. Regardless, you're welcome to use whichever version you prefer, but we'll use 2.7 for all class explanations in the interests of simplicity and consistency. For beginners, the differences are quite minimal.

Jan 22, 2019 - Introduction

  • Today's slides
  • Some warm-up videos to get you started on Python (2 not 3, unless you pay for an upgrade): Code Academy's Python coding for beginners
  • We'll be conducting homework using the online environment Rosalind. Go ahead and register on the site, and enroll specifically for BCH394P-BCH364C-Spring2019 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 31.
  • A useful online resource if you get bogged down: Python for Biologists. (& just a heads-up that some of their instructions for running code relate to a command line environment that's a bit different from the default one you install following the Rosalind instructions. It won't affect the programs, just the way they are run or how you specific where files are located.) However, if you've never programmed Python before, definitely check this out!!!

Syllabus & course outline

Course syllabus

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.

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),

For biologists rusty on their stats, The Cartoon Guide to Statistics (Gonick/Smith) is very good. A reasonable online resource for beginners is Statistics Done Wrong.

Some online references:
An online bioinformatics course
Assorted bioinformatics resources on the web: Assorted links
Online probability texts: #1, #2, #3

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). 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 29, 2019. The last 2.5 classes will be spent presenting your projects to each other. (The presentation will account for 5/25 points for the project.)

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 . 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 (UT academic integrity policy) and cause for dismissal with a failing grade.

The final project web site is due by midnight April 29, 2019.