ISC-5317 (+ISC4933 undergraduate section):
Graduate course: Computational Evolutionary Biology

Class Meeting

Tuesdays and Thursdays 2:00-3:15 PM Dirac Science Library Room 152


Peter Beerli
Office: 150-T DSL
Phone: (850) 559-9664

Class Assistant

Marjan Sadeghi
Office: 150-J DSL

Office Hours

  • Peter Beerli: by appointment (email: or text to 850 559 9664); or just come to my office, If do not have a meeting I will have time for you.


This course will introduce students to methods used in phylogenetics and population genetics and writing computer programs using such methods. Primary objectives of the course are:

  1. to expose students to a large set of modern methods used in the field of theoretical evolutionary biology, and learn about the details of often used methods in phylogenetic analysis and population genetics analysis.

  2. to introduce students to the programming aspects of the field. Students will learn and use the programming language Python to develop scripts and to understand details of the methods.

  3. to empower students to develop programming and analysis skills that involve development of scripts to change data format, execute applications, and analyze results.


Advanced computational methods are becoming increasingly important in biology. A wide range of applications — including, for instance, identifying pathogens, tracing viral transmission pathways, and reconstructing the geographic expansion of humans out of Africa — rely on evolutionary inference. This course will cover the methods currently used for evolutionary inference, the stochastic models and inference principles they are based on, and how they are implemented in practice. The students will get hands-on experience in developing computational software implementing these methods. We expect that the students leave the course with the necessary skills to develop their own ideas and are able to develop projects that are based on simulated data sets and scripts.


We will have no textbook, but we have extensive handouts available through the course website.


  • Grades will be based on students’ execution of the 7 assignments. Programming assignment will be judged on understanding the algorithms, code design, and program documentation. Summaries will be judged on being concise and accurate. [100 points each]

  • Either two students or a single student will work on a project on their own during the last few weeks of the semester and give a short presentation of their work during the last two classes periods. I expect that group projects are twice as large as single student projects [100 points for the report and 100 points for the presentation]

  • There will be no midterm and no final exam, the project substitutes for a final examination. The total number of points is 900.

A graduate student who accumulates 90% or more of the possible 900 points will receive a grade of "A", a student who accumulates between 80% and 89% of the possible points will receive a grade of "B", a student who accumulates between 70% and 79% of the possible points will receive a grade of "C", a student who accumulates between 60% and 69% of the possible points will receive a grade of "D", and a student who accumulates less than 60% of the possible points will receive a grade of "F".

An undergraduate student who accumulates 80% or more of the possible 900 points will receive a grade of "A", a student who accumulates between 70% and 79% of the possible points will receive a grade of "B", a student who accumulates between 60 % and 69% of the possible points will receive a grade of "C", a student who accumulates between 50% and 59% of the possible points will receive a grade of "D", and a student who accumulates less than 50% of the possible points will receive a grade of "F".

Missed/Late Assignments

Deadlines for assignments will be announced in class, when no deadline is given then the deadline is automatically 7 days later, deadline is usually 11:59pm; late assignments will be accepted for full grade only under extreme and documented circumstances. 5% of the total points (100pt) are deducted per day for late assignments.

University Attendance Policy

Excused absences include documented illness, deaths in the family and other documented crises, call to active military duty or jury duty, religious holy days, and official University activities. These absences will be accommodated in a way that does not arbitrarily penalize students who have a valid excuse. Consideration will also be given to students whose dependent children experience serious illness.

Academic Honor Policy

The Florida State University Academic Honor Policy outlines the University’s expectations for the integrity of students’ academic work, the procedures for resolving alleged violations of those expectations, and the rights and responsibilities of students and faculty members throughout the process. Students are responsible for reading the Academic Honor Policy and for living up to their pledge to “. . . be honest and truthful and ... [to] strive for personal and institutional integrity at Florida State University." (Florida State University Academic Honor Policy, found at

Americans With Disabilities Act

Students with disabilities needing academic accommodation should: (1) register with and provide documentation to the Student Disability Resource Center; and (2) bring a letter to the instructor indicating the need for accommodation and what type. Please note that instructors are not allowed to provide classroom accommodation to a student until appropriate verification from the Student Disability Resource Center has been provided. This syllabus and other class materials are available in alternative format upon request. For more information about services available to FSU students with disabilities, contact the:

Student Disability Resource Center 874 Traditions Way 108, Student Services Building, Florida State University, Tallahassee, FL 32306-4167
voice: (850) 644-9566, TDD: (850) 644-8504
Email: ; Website:

Free Tutoring from FSU

For tutoring and writing help in any course at Florida State University, visit the Academic Center for Excellence (ACE) Tutoring Services’ comprehensive list of tutoring options - see or contact for more information. High-quality tutoring is available by appointment and on a walk-in basis. These services are offered by tutors trained to encourage the highest level of individual academic success while upholding personal academic integrity.

Syllabus Change Policy

Except for changes that substantially affect implementation of the evaluation (grading) statement, this syllabus is a guide for the course and is subject to change with advance notice.

Lectures: Topic overview

  1. Processes and patterns

    • Population genetics: Wright-Fisher population models, coalescence theory;

    • Phylogenetics: tree structures, speciation, Gene tree versus Species tree

    • Mutation models: mutation/substitution model

    • Simulation of data

  2. Inference:

    • Parsimony and Distance methods

    • Maximum likelihood, Bayesian inference, Monte Carlo, Markov chain Monte Carlo,

    • Model selection

    • Bootstrap/Jacknife

Each topic will include computational algorithms, problematic aspects such as convergence, biases, main focus will be on Bayesian and maximum likelihood methods.


This list of assignments is an example, difficulty of assignments will depend on the overall class programming skills. Each assignment topic will be introduced in detail during class. The final set of assignments is not specified yet but it will look similar/same to the ones shown below:

  1. Assignment 1: print the most parsimonous tree using PAUP*

  2. Assignment 2: write a python code to simulate the substitution process.

  3. Assignment 3: write a summary about maximum likelihood estimation on trees (not less than 180 word, not more than 250)

  4. Assignment 4: write a summary about Bayesian inference (not less than 180 word, not more than 250)

  5. Assignment 5: Genetic drift simulation in Python

  6. Assignment 6: Migrate tutorial

  7. Assignment 7: Describe your Project in 180 to 250 words

  8. Project: The project will discuss either (1) a complex analysis of data or (2) software development or (3) a theory section we did not discuss. The project consists of two parts, a report (of not more than 8 pages) and a presentation of 10 minutes. We will develop ideas for the project during class.

All assignments and projects will be submitted through CANVAS.

Lecture Schedule

  1. Introduction. Trees and tree representation (Aug. 27)

  2. Python and trees [Self study: Python tutorial] (Aug. 29)

  3. Selfstudy: Parsimony (Sep 3)

  4. Selfstudy: Install PAUP* [Assignment 1] (Sep 5)

  5. Number of trees; Searching for the best tree(s) (Sep 10)

  6. Substitution models and distance measures(Sep 12)

  7. Substitution models exercise (Sep 17) [Assignment 2]

  8. Paul Lewis: Maximum likelihood, substitution model and trees (Sep 19)

  9. Paul Lewis: Tree likelihood and rate heterogeneity (Sep 24) [Assignment 3]

  10. Paul Lewis: Bayesian inference and Markov Chain Monte Carlo (Sep 26)

  11. Paul Lewis: Bayesian inference on Trees (Oct 1) [Assignment 4]

  12. Question and Answer session about Paul Lewis lecture (Oct 3)

  13. Population genetics introduction (Oct 8)

  14. Population simulation in Python [Assignment 5] (Oct 10)

  15. The coalescent (Oct 15)

  16. Coalescent simulation and extensions to the coalescent (Oct 17)

  17. Coalescent simulation in Python [Assignment 6] (Oct 22)

  18. Gene tree vs Species tree (Oct 24)

  19. SVD quartets and other PAUP* evaluations (Oct 29)

  20. Analysis of admixture, networks (Nov 5)

  21. Model Selection (Nov 7) [Assignment 7]

  22. Model Selection exercise using Migrate (Nov 12)

  23. Bootstrap/Jacknife with PAUP* (Nov 14 )

  24. Project (Nov 19)

  25. Project (Nov 21)

  26. Project (Nov 26)

  27. Thanksgiving break

  28. Presentation (Dec 3)

  29. Presentation (Dec 5)

Peter Beerli, August 2019