Biol375 2018: Difference between revisions

From QiuLab
Jump to navigation Jump to search
imported>Weigang
imported>Weigang
 
(38 intermediate revisions by the same user not shown)
Line 88: Line 88:
* 9/20 (Th). 4:10 - 5:10pm '''Midterm Exam I''' <font color="red">Bring pencils, erasers, and a calculator</font>
* 9/20 (Th). 4:10 - 5:10pm '''Midterm Exam I''' <font color="red">Bring pencils, erasers, and a calculator</font>


===Part 2. Trait & Sequence Evolution===
===Part 2. analysis of Trait Evolution===
* 9/24 (M).  Traits & trait matrix
* 9/24 (M).  Traits & trait matrix
** Textbook Chapter 5, pages 180-183
** Textbook Chapter 5, pages 180-183
Line 107: Line 107:
|  
|  
# Download or Copy/Paste [http://media.hhmi.org/biointeractive/activities/lizard/Anolis-DNA-sequences.txt the lizard DNA sequences] to your own computer and save the file as "lizard.txt"
# Download or Copy/Paste [http://media.hhmi.org/biointeractive/activities/lizard/Anolis-DNA-sequences.txt the lizard DNA sequences] to your own computer and save the file as "lizard.txt"
# Align the DNA sequences [http://www.phylogeny.fr/one_task.cgi?task_type=muscle using this website] and save the aligned DNA file ("Output->Alignment in Fasta format") as "lizard-aligned.txt" (No need to print or submit the above two DNA sequence files; save them for next week's assignment)
# Align the DNA sequences [http://www.phylogeny.fr/one_task.cgi?task_type=muscle using this website] and save the aligned DNA file ("Output->Alignment in Fasta format") as "lizard-aligned.txt". Use "one-click" option to make a tree.
# Based on [http://media.hhmi.org/biointeractive/activities/lizard/Lizard-Cards-Color.pdf the lizard card], construct a character-state matrix for all lizard species. For each species, list its character state for each of the following two characters (as columns): (1) Geographic origin, and (2) Habitat. Re-watch [http://media.hhmi.org/biointeractive/films/OriginSpecies-Lizards.html the video] may help this assignment. '''Hint''': use Excel & hand in a printout of your Excel sheet.
# Based on [http://media.hhmi.org/biointeractive/activities/lizard/Lizard-Cards-Color.pdf the lizard card], construct a character-state matrix for all lizard species. For each species, list its character state for each of the following two characters (as columns): (1) Geographic origin, and (2) Habitat.
# Determine which hypothesis ("Multiple origin" or "Single origin" of ecomorphs) is more supported by the mtDNA tree. Explain.
|}
|}
* 10/1 (M). Parsimony reconstruction (Chapter 5).  
* 10/1 (M). Parsimony reconstruction (Chapter 5).  
** Textbook Chapter 5, pages 188-191
** Textbook Chapter 5, pages 188-191
** In-Class Exercise 4
* 10/4 (TH). Parsimony reconstruction (Continued)
* 10/4 (TH). Genome & gene structure (Chapter 3)
** In-Class Exercise 4 (Due next session)
* 10/11 (TH). Genome & gene structure (Chapter 3)  
** [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3622293/ | Graur et al (2013). "On the immotality of television sets"]
* 10/15 (M). Review & Practices. Lecture Slides: [[File:Part-2-trait-evolution-posted.pdf|thumbnail]]
** In-Class Exercise 5. Pretest Part 2 (molecular phylogenetics in forensics)
** In-Class Exercise 5. Pretest Part 2 (molecular phylogenetics in forensics)
{| class="wikitable sortable mw-collapsible"
|- style="background-color:lightsteelblue;"
! Assignment #5 (10 pts; Due 10/12)
|- style="background-color:white;"
|
# Use the DNA alignment from the last assignment to build a tree of ''Anolis'' species.
## Set working directory to where you have downloaded the DNA alignment file: e.g., setwd("/Users/ann/Document")
## Load library: library(ape)
## Read alignment: aln.an <- read.FASTA("lizard-aligned.txt")
## Calculate pairwise distance matrix: dist.an <- dist.dna(aln.an)
## Estimate tree: tr.an <- bionj(dist.an)
## Reroot tree: tr.root <- root(tr.an, outgroup = "Leiocephalus_barahonensis", resolve.root = T)
## Save tree: write.tree(tr.root, "rerooted.dnd")
## Read re-rooted tree: tr.2 <- read.tree("rerooted.dnd")
## Download [http://diverge.hunter.cuny.edu/w/images/2/21/Pheno.txt the phenotype file] and save it as "pheno.txt" (or use your own file)
## Read phenotype with the command: ph <- read.table("pheno.txt", row.names = 1, header=F)
## Assign column names: colnames(ph) <- c("hab", "geo", "hab_id", "geo_id")
## Plot re-rooted tree: plot(tr.2, x.lim = 1, y.lim = 18, show.tip.label = F)
## Add species names: text(rep(0.2,17), 1:17, tr.2$tip.label, pos=4, font = 3)
## Reorder according to tree: ph <- ph[tr.2$tip.label,]
## Add a column: text(rep(0.5,17), 1:17, ph[,1], pos=4, col = ph[,3])
## Add another column: text(rep(0.7,17), 1:17, ph[,2], pos=4, col = ph[,4])
## Add a heading: text(0.5, 18, "Ecomorph", font = 2, pos=4)
## Add another heading: text(0.7, 18, "Geography", font = 2, pos=4)
## Export & print two copies (in color, preferably)
# On one copy, infer locations (i.e., islands) of all internal nodes using parsimony
# On another copy, infer habitats (i.e., ecomorphs) of all ancestors
# Based on your reconstructed trait evolution, count the number of character-state changes and calculate consistency index for each trait.
# Compare the two consistency indices & explain why the molecular phylogeny supports convergent adaptive evolution to habitats.
|}
* 10/11 (TH). In-class exercises
* 10/15 (M). Review & Practices. Lecture Slides: [[File:Part-2-trait-evolution-2017.pdf|thumbnail]]
* 10/18 (TH). '''Midterm Exam 2'''
* 10/18 (TH). '''Midterm Exam 2'''


===Part 3. Tree Algorithms===
===Part 3. Tree Algorithms===
* 10/22 (M). BLAST & Alignments (Chapter 3. pages 93-100)
* 10/22 (M). BLAST & Alignments (Chapter 3. pages 93-100). In-class exercise: Run BLAST; show alignment & explain E-value
{| class="wikitable sortable mw-collapsible"
* 10/25 (TH). Genetic distances & Sequence-evolutionary models (Chapter 3, pages 79-88). In-class exercise: Poisson simulation & explain
|- style="background-color:lightsteelblue;"
<font color='red'>* 10/29 (Mon). No class (instructor traveling)</font>
! Assignment #6 (10 pts; Due 10/30, Monday)
* 11/1 (TH). Maximum parsimony (Chapter 5, pages 191-194). In-class exercise: parsimony scores
|- style="background-color:white;"
* 11/5 (M). Distance methods (Chapter 5, pages 184-187). In class exercise: use APE package to calculate genetic distances
| Based on the [http://www.ncbi.nlm.nih.gov/gene/54205 NCBI Gene Page for cytochrome C (CYCS)], answer the following questions:
* 11/8 (TH). Likelihood & Bayesian methods; Tree Testing (Chapter 5, pages 194-198).
* What is the molecular function of CYCS?
* 11/12 (M). Review (Chapter 5, pages 207-209).  Review exercises. Lecture slides: [[File:Part-3-tree-construction-small-2018.pdf|thumbnail]]
* Describe its chromosomal location and gene structure (number of introns and exons, length of protein)
* 11/15 (TH). '''Midterm Exam 3'''
* Click the link "HomoloGene" and then in the section "Pairwise alignments generated using BLAST", run BLAST between Human and Mouse protein sequences. Show BLAST report.
 
* Pick another species and generate a BLAST alignment between the Human and this species. Show BLAST report. <font color="red">Explain the meaning of "Expect" by rephrasing from [http://blast.ncbi.nlm.nih.gov/Blast.cgi?CMD=Web&PAGE_TYPE=BlastDocs&DOC_TYPE=FAQ#expect this page]</font>
===Part 4. Mechanisms of molecular evolution===
|}
* 11/19 (M). Mechanism of molecular evolution: Overview (pages 35-38) & Rates of nucleotide substitutions (pages 111-125).
* 10/25 (TH). Genetic distances & Sequence-evolutionary models (Chapter 3, pages 79-88)
* 11/26 (M). Ka/Ks test of natural selection (pg 116-124). In-class exercise
* 10/29 (M). Maximum parsimony (Chapter 5, pages 191-194).  
* 11/29 (TH). In-class computer exercise:
* 11/1 (TH). Distance methods (Chapter 5, pages 184-187). In class exercise #6; In-class computer exercise:
{| class="wikitable sortable mw-collapsible"
{| class="wikitable sortable mw-collapsible"
|- style="background-color:lightsteelblue;"
|- style="background-color:lightsteelblue;"
! Assignment #7 (10 pts). Due 11/6 (Monday)
! Final project (20 pts). Due: 12/6, Thursday)
|- style="background-color:white;"
|- style="background-color:white;"
|  
|  
# [Do NOT use computer for this part] Compare [[Datafile|these two Ebola VP30 sequences]], one from the 2014 outbreak and the other from the 1994 outbreak.
# Calculate genetic distances
## Calculate the proportion of difference (''p'') between the two sequences
## Download or Copy/Paste [http://media.hhmi.org/biointeractive/activities/lizard/Anolis-DNA-sequences.txt the lizard DNA sequences] to your own computer and save the file as "anoles.txt"
## Calculate Jukes-Cantor distance (''d'') between the two sequences (specify unit)
## Align the DNA sequences [http://www.phylogeny.fr/one_task.cgi?task_type=muscle using this website] and save the aligned DNA file ("Output->Alignment in Fasta format") as "anoles-aligned.txt" (No need to print or submit the above two DNA sequence files; save them in a folder)
## Count the number of transitions and transversions (arrange in a table, as we did in the class)
## Identify the number of synonymous and nonysynonymous substitutions
## Assuming that the total number of synonymous sites S=174 and the total number of nonsynonymous sites N=690, calculate <i>K<sub>S</sub> and K<sub>A</sub></i> (with Jukes-Cantor correction)
# [Computer Exercise] Calculate & compare genetic distances among the primate mitochondria sequences using R-Studio
## Make sure you have a file "Mt_primate.txt" in your working directory (e.g., "/Users/john/Documents") [Note: Refer back to Assignment #3 if you couldn't locate the file.]
## Load library: library(ape)
## Load library: library(ape)
## Read alignment: mt = read.FASTA("Mt_primate.txt")
## Read alignment: mt = read.FASTA("anoles-aligned.txt")
## Calculate raw distance: mt.raw = dist.dna(mt, model = "raw")
## Calculate raw distance: mt.raw = dist.dna(mt, model = "raw")
## Apply Juke-Cantor (one-parameter model) correction: mt.jc = dist.dna(mt, model = "JC")
## Apply Juke-Cantor (one-parameter model) correction: mt.jc = dist.dna(mt, model = "JC")
Line 188: Line 154:
## Export an PDF and print a copy
## Export an PDF and print a copy
## Use the graph to explain (1) Why it is necessary to correct for raw distances when comparing sequences from distantly related species; (2) What is the key difference between the K80 and JC models
## Use the graph to explain (1) Why it is necessary to correct for raw distances when comparing sequences from distantly related species; (2) What is the key difference between the K80 and JC models
|}
* 11/5 (M). Likelihood & Bayesian methods (Chapter 5, pages 194-198). Lecture slides posted: [[File:Part-3-tree-construction-posted.pdf|thumbnail]]
In-class exercise:
{| class="wikitable sortable mw-collapsible"
|- style="background-color:lightsteelblue;"
! Assignment #8 (10 pts). Due 11/13 (Monday)
|- style="background-color:white;"
|
# Comparison of distance and parsimony trees (review previous assignments for detailed R-Studio instructions)
# Comparison of distance and parsimony trees (review previous assignments for detailed R-Studio instructions)
## In R studio, load the "ape" and "phangnorm" libraries
## In R studio, install & load the "ape" and "phangnorm" libraries
## Read the "Mt_primate.txt" file, save as "aln"
### Obtain a neighbor-joining tree using K80 model: tree.nj = NJ(mt.k80)
## Obtain a distance tree:
### Calculate K80 distance matrix, save as "mt.dist"
### Obtain a neighbor-joining tree: tree.nj = NJ(mt.dist)
### Plot a midpoint rooted tree: plot(midpoint(tree.nj))
### Plot a midpoint rooted tree: plot(midpoint(tree.nj))
### Add a scale bar: add.scale.bar()
### Add a scale bar: add.scale.bar()
### Print tree and answer this question: what does the distance represent? What is the unit?
### Print tree and answer this question: what does the distance represent? What is the unit?
## Obtain a maximum parsimony tree
## Obtain a maximum parsimony tree
### Convert object to a different class: aln.phy = as.phyDat(aln)
### Convert object to a different class: aln.phy = as.phyDat(mt)
### Search maximum parsimony tree.mp = optim.parsimony(tree.nj, aln.phy)
### Search maximum parsimony tree.mp = optim.parsimony(tree.nj, aln.phy)
### Get tree distance: tree.mp = acctran(tree.mp, aln.phy)
### Get tree distance: tree.mp = acctran(tree.mp, aln.phy)
Line 214: Line 169:
## Compare the two trees and explain the differences in these two methods: Which one uses full sequence information and why?
## Compare the two trees and explain the differences in these two methods: Which one uses full sequence information and why?
# Bootstrap analysis
# Bootstrap analysis
## Read alignment: aln.fas = read.dna("Mt_primate.txt", format = "fasta")
## aln.fas <- read.dna("anoles-aligned.txt", format ="fasta")
## Create a function for re-rooted distance tree: f = function(x) root(nj(dist.dna(x)), outgroup = c("lemur", "tarsier"), resolve.root = T)
## Create a function for re-rooted distance tree: tree.fun = function(x) root(nj(dist.dna(x)), outgroup = c("Leiocephalus_barahonensis"), resolve.root = T)
## Calculate a tree: tr = f(aln.fas)
## Calculate a tree: tr = tree.fun(aln.fas)
## Perform bootstrap for 100 pseudo-replicates:  boot.trees = boot.phylo(tr, aln.fas, f, B=100, rooted =T)
## Perform bootstrap for 100 pseudo-replicates:  boot.trees = boot.phylo(tr, aln.fas, tree.fun, B=100, rooted =T)
## Plot tree: plot(tr, no.margin = T)
## Plot tree: plot(tr, no.margin = T)
## Add bootstrap values as node labels: nodelabels(boot.trees, bg= "white")
## Add bootstrap values as node labels: nodelabels(boot.trees, bg= "white")
## Explain (1) Does bootstrap test for tree precision or tree accuracy? (2) What does a bootstrap value of 80% mean?
## Explain (1) Does bootstrap test for tree precision or tree accuracy? (2) What does a bootstrap value of 80% mean?
|}
|}
* 11/8 (TH). Tree-testing & Review (Chapter 5, pages 207-209).  Lecture slides posted in the last session
* 12/3 (M). SNP statistics & gene frequency analysis: In-class exercises.
* 11/12 (M). '''Midterm Exam 3'''
* 12/6 (TH) Genetic Drift (pages 47-49). Lecture slides: [[File:Part-4-evol-mechanism-2018.pdf|thumbnail]]
 
* 12/10 (M). (Last Lecture) Review & Course evaluations. Final review slides: [[File:Final-review-2018.pdf|thumbnail]]
===Part 4. Population Genetics (Chapter 2) ===
** '''Submit your Teacher's Evaluation''', using either:
* 11/15 (TH). Mechanism of molecular evolution: Overview (pages 35-38); SNP statistics  
* 11/19 (M).
{| class="wikitable sortable mw-collapsible"
|- style="background-color:lightsteelblue;"
! Assignment #9 (10 pts; Due 11/30, Thursday)
|- style="background-color:lightblue;"
|[[File:Snp-pa1.png|thumbnail]]
The left figure shows a codon alignment of 38 strains of a bacterium, with an outgroup sequence (which starts with a string of SNPs: "....g...c..ca..", etc), answer the following questions (<font color="red">with the outgroup sequence excluded.</font>) <font color="green">Do not print the figure directly. Hand-copy the sequences to a graph sheet, include only sequences at the two variable codon positions</font>:
# There are two SNP sites. For each SNP, determine whether it is a synonymous or nonsynonymous change (could be both if more than 2 states). You may simply list the codons and their corresponding amino acids, at each aligned codon site.
# Calculate allele frequencies at each SNP site (for 3 SNP states, calculate frequencies of all three separately)
# List all haplotypes using the 2 SNP sites
# Calculate frequencies of all haplotypes
# Using the outgroup sequence, determine the ancestral and derived SNP, codon, and amino-acid states at each codon site. Explain with a tree including the outgroup sequence.
|}
* 11/26 (M).
* 11/29 (TH). Neutral Theory & Molecular Clock (pages 58-59; 72-74)
* 12/3 (M). Genetic Drift (pages 47-49). Computer exercises of Assignment #10 (below) will be done in class.
{| class="wikitable sortable mw-collapsible"
|- style="background-color:lightsteelblue;"
! Assignment # (10 pts; Due 12/11, Monday)
|- style="background-color:lightblue;"
|Statistical experiments to explore gene-frequency change due to genetic drift:
# With R-studio, make two populations of N=1000 haploid individuals consisting of alleles "A" and "G" at a SNP site: <code>pop1 = c(rep("A",500), rep("G",500)); pop2 = c(rep("A",100), rep("G",900))</code>
# Count alleles in each population: <code>table(pop1); table(pop2)</code>. Which population is more diverse? Why?
# Define a function to calculate heterozygosity: <code>hg = function(x) {cts = table(x); total=sum(cts); if (length(cts)==1) {return(0) } else { freq1=cts[1]/total; freq2=cts[2]/total; return(1-(freq1^2+freq2^2)) } }</code>
# Calculate heterozygosity of each population: <code>hg(pop1); hg(pop2)</code>. The results should match your answer to the 2nd question.
# Permute population 1 and take a random sample of 100 individuals: <code>pop1=sample(pop1); s = sample(pop1, 100); counts=table(s); heterozygosity = hg(s)</code>. Is the sample more or less diverse than the original population? Repeat 10 times and report all counts and diversity (e.g., with a table)
# Repeat the above with a smaller sample of 10 individuals
# Repeat with population 2 and a sample of 100 individuals
# Repeat the above with a smaller sample of 10 individuals
# Define "genetic diversity" verbally (+2 pts for giving and using formula for calculating heterozygosity).
# Define "genetic drift". Using results from the above four statistical experiments, discuss the effect of genetic drift to genetic diversity within population. What's the general trend (increase or decrease) of genetic diversity as a result of random sampling of gametes? Is the gain or loss of genetic diversity due to genetic drift more rapid in small or large population (contrasting results with different sample sizes)?
|}
* 12/6 (TH) Rates of nucleotide substitutions (pages 111-125). Part 4 slides: [[File:Part-4-evol-mechanisms-2017.pdf|thumbnail]]
* 12/11 (M). (Last Lecture) Review & Course evaluations. Review slides: [[File:Final-review-2017.pdf|thumbnail]]. '''Submit your Teacher's Evaluation''', using either:
** Personal computer at [http://www.hunter.cuny.edu/te www.hunter.cuny.edu/te]; or,
** Personal computer at [http://www.hunter.cuny.edu/te www.hunter.cuny.edu/te]; or,
** Smartphone at [http://www.hunter.cuny.edu/mobilete www.hunter.cuny.edu/mobilete]
** Smartphone at [http://www.hunter.cuny.edu/mobilete www.hunter.cuny.edu/mobilete]
* 12/17 (Monday, 4-6pm) '''Comprehensive Final  Exam'''
* 12/17 (Monday, 4-6pm) '''Comprehensive Final  Exam'''

Latest revision as of 17:51, 11 December 2018

Molecular Evolution (BIOL 375.00/790.64/793.03, Fall 2018)
Instructor: Dr Weigang Qiu, Professor, Department of Biological Sciences
Room: 926 HN (Seminar Room, North Building)
Hours: Mon. & Thur 4:10-5:25 pm
Office Hours: Belfer Research Building (Google Map) BB-402; Tuesdays 5-7 pm or by appointment
Course Website: http://diverge.hunter.cuny.edu/labwiki/Biol375_2018

Borreliabase-screenshot-1.png

Course Description

Molecular evolution is the study of the change of DNA and protein sequences through time. Theories and techniques of molecular evolution are widely used in species classification, biodiversity studies, comparative genomics, and molecular epidemiology. Contents of the course include:

  • Population genetics, which is a theoretical framework for understanding mechanisms of sequence evolution through mutation, recombination, gene duplication, genetic drift, and natural selection.
  • Molecular systematics, which introduces statistical models of sequence evolution and methods for reconstructing species phylogeny.
  • Bioinformatics, which provides hands-on training on data acquisition and the use of software tools for phylogenetic analyses.

This 3-credit course is designed for upper-level biology-major undergraduates. Hunter pre-requisites are BIOL203, and MATH150 or STAT113.

Please note that starting from fall 2015, completing this course no longer counts towards research credits for biology majors.

Textbooks

  • (Required) Graur, 2016, Molecular and Genome Evolution, First Edition, Sinauer Associates, Inc. ISBN: 978-1-60535-469-9. Publisher's Website (Student discount: a 15% discount and receive free UPS standard shipping)

http://www.sinauer.com/molecular-and-genome-evolution.html)

  • (Recommended) Baum & Smith, 2013. Tree Thinking: an Introduction to Phylogenetic Biology, Roberts & Company Publishers, Inc.

Learning Goals

  • Be able to describe evolutionary relationships using phylogenetic trees
  • Be able to use web-based as well as stand-alone software to infer phylogenetic trees
  • Understand mechanisms of DNA sequence evolution
  • Understand algorithms for building phylogenetic trees

Links for phylogenetic tools

Exams & Grading

  • Bonus for full attendance & active participation in classroom discussions.
  • Assignments. All assignments should be handed in as hard copies only. Email submission will not be accepted. Late submissions will receive 10% deduction (of the total grade) per day.
  • Three Mid-term Exams (30 pts each)
  • Comprehensive Final Exam (50 pts)

Academic Honesty

While students may work in groups and help each other for assignments, duplicated answers in assignments will be flagged and investigated as possible acts of academic dishonesty. To avoid being investigated as such, do NOT copy anyone else's work, or let others copy your work. At the least, rephrase using your own words. Note that the same rule applies regarding the use of textbook and online resources: copied sentences are not acceptable and will be considered plagiarism.

Hunter College regards acts of academic dishonesty (e.g., plagiarism, cheating on examinations, obtaining unfair advantage, and falsification of records and official documents) as serious offenses against the values of intellectual honesty. The College is committed to enforcing the CUNY Policy on Academic Integrity and will pursue cases of academic dishonesty according to the Hunter College Academic Integrity Procedures.

Course Schedule

Part 1. Tree Thinking

  • 8/27 (M). Overview & Introduction. Textbook Chapter: "Introduction" (pages 1-3)
Assignment 1 (10 pts; Due next class 8/30)
  • (10 pts) Pre-test: Full credits will be given as long as each question is answered with some reasoning. In other words, it will NOT be graded on being right or wrong. It's an assessment tool, to be compared with later test outcomes to show teaching/learning results.
  • 8/30 (TH). Introduction (Continued).
    • Go over pre-test questions
    • Tutorial: R & R-Studio (Bring your own computer).
Assignment 2 (5 pts; Due: next session)
R exercises
  1. Install R & R-studio (see "Links for phylogenetic tools" above)
  2. Open R-studio and install the "ape" package using the "Packages"->"Install" menu, located within the lower right window
  3. Type in the console window (lower left) the following commands (one at a time, wait for the prompt ">" to appear before proceed to the next command; quit & restart R-studio if stuck):
    1. library(ape)
    2. tr <- read.tree(text = "(monkey:0.09672,((tarsier:0.18996,lemur:0.14790)0.999:0.09005,(macaque:0.18524,(gibbon:0.10388,(orang-utan:0.09481,(human:0.03391,(gorilla:0.06135,chimpanzee:0.05141):0.01580)0.316:0.05381)1.000:0.03019)0.978:0.05616)0.997:0.05042)0.965:0.09672);")
    3. plot(tr)
  4. Export the tree graph using the "Export"->"Save as PDF" or "Save as Image" menu in the lower right window
  5. Exit R studio by typing the command "q()" and type "y" to answer the question for saving the R session
  6. Copy & paste the tree image into your document to be handed in
  • 9/5 (Wed; Monday Schedule). Intro to trees.
  • 9/6 (TH). Intro to trees.
    • In-class exercise 2. (5 pts; Due next session)
    • Textbook Chapter 5: "Molecular Phylogenetics" (pages 170-175; 201-202)
  • 9/13 (TH). Species Tree & Lineage Sorting.
    • Textbook Chapter 5: "Molecular Phylogenetics" (pages 177-180).
  • 9/17 (M). Consensus Tree & Review.
  • 9/20 (Th). 4:10 - 5:10pm Midterm Exam I Bring pencils, erasers, and a calculator

Part 2. analysis of Trait Evolution

  • 9/24 (M). Traits & trait matrix
    • Textbook Chapter 5, pages 180-183
Assignment #3 (5 pts; Due next session)
Watch Origin of Species: Lizards in an Evolutionary Tree. Provide short answer (1-3 sentences) to each of the following three questions.
  1. What are the two hypotheses explaining the origin of different ecomorphs of lizards on Caribbean Islands?
  2. What is the expected phylogeny under each hypothesis?
  3. Which hypothesis is supported by the phylogeny of actual DNA sequences?
  • 9/27 (TH). Homoplasy & consistency
Assignment #4 (5 pts; Due next session)
  1. Download or Copy/Paste the lizard DNA sequences to your own computer and save the file as "lizard.txt"
  2. Align the DNA sequences using this website and save the aligned DNA file ("Output->Alignment in Fasta format") as "lizard-aligned.txt". Use "one-click" option to make a tree.
  3. Based on the lizard card, construct a character-state matrix for all lizard species. For each species, list its character state for each of the following two characters (as columns): (1) Geographic origin, and (2) Habitat.
  4. Determine which hypothesis ("Multiple origin" or "Single origin" of ecomorphs) is more supported by the mtDNA tree. Explain.

Part 3. Tree Algorithms

  • 10/22 (M). BLAST & Alignments (Chapter 3. pages 93-100). In-class exercise: Run BLAST; show alignment & explain E-value
  • 10/25 (TH). Genetic distances & Sequence-evolutionary models (Chapter 3, pages 79-88). In-class exercise: Poisson simulation & explain

* 10/29 (Mon). No class (instructor traveling)

  • 11/1 (TH). Maximum parsimony (Chapter 5, pages 191-194). In-class exercise: parsimony scores
  • 11/5 (M). Distance methods (Chapter 5, pages 184-187). In class exercise: use APE package to calculate genetic distances
  • 11/8 (TH). Likelihood & Bayesian methods; Tree Testing (Chapter 5, pages 194-198).
  • 11/12 (M). Review (Chapter 5, pages 207-209). Review exercises. Lecture slides:
  • 11/15 (TH). Midterm Exam 3

Part 4. Mechanisms of molecular evolution

  • 11/19 (M). Mechanism of molecular evolution: Overview (pages 35-38) & Rates of nucleotide substitutions (pages 111-125).
  • 11/26 (M). Ka/Ks test of natural selection (pg 116-124). In-class exercise
  • 11/29 (TH). In-class computer exercise:
Final project (20 pts). Due: 12/6, Thursday)
  1. Calculate genetic distances
    1. Download or Copy/Paste the lizard DNA sequences to your own computer and save the file as "anoles.txt"
    2. Align the DNA sequences using this website and save the aligned DNA file ("Output->Alignment in Fasta format") as "anoles-aligned.txt" (No need to print or submit the above two DNA sequence files; save them in a folder)
    3. Load library: library(ape)
    4. Read alignment: mt = read.FASTA("anoles-aligned.txt")
    5. Calculate raw distance: mt.raw = dist.dna(mt, model = "raw")
    6. Apply Juke-Cantor (one-parameter model) correction: mt.jc = dist.dna(mt, model = "JC")
    7. Apply Kimura(two-parameter model, for Ts and Tv) correction: mt.k80 = dist.dna(mt, model = "K80")
    8. Plot JC distance vs the raw distance: plot(mt.raw, mt.jc, xlab = "uncorrected distance (diff/site)", ylab = "corrected distance (sub/site)", xlim = c(0,0.4), ylim = c(0,0.5), las =1)
    9. Add a 1:1 line: abline(0,1, col = "red")
    10. Add K80 distances: points(mt.raw, mt.k80, pch = 3, col = "blue")
    11. Add a legend: legend(0.05, 0.45, legend = c("JC (1-parameter)", "K80 (2-parameter)"), pch = c(1,3), col = c("black","blue"), bty = "n")
    12. Export an PDF and print a copy
    13. Use the graph to explain (1) Why it is necessary to correct for raw distances when comparing sequences from distantly related species; (2) What is the key difference between the K80 and JC models
  2. Comparison of distance and parsimony trees (review previous assignments for detailed R-Studio instructions)
    1. In R studio, install & load the "ape" and "phangnorm" libraries
      1. Obtain a neighbor-joining tree using K80 model: tree.nj = NJ(mt.k80)
      2. Plot a midpoint rooted tree: plot(midpoint(tree.nj))
      3. Add a scale bar: add.scale.bar()
      4. Print tree and answer this question: what does the distance represent? What is the unit?
    2. Obtain a maximum parsimony tree
      1. Convert object to a different class: aln.phy = as.phyDat(mt)
      2. Search maximum parsimony tree.mp = optim.parsimony(tree.nj, aln.phy)
      3. Get tree distance: tree.mp = acctran(tree.mp, aln.phy)
      4. Plot tree: plot(midpoint(tree.mp))
      5. Add a scale bar: add.scale.bar()
      6. Print tree and answer the question: what does the distance represent? What is the unit?
    3. Compare the two trees and explain the differences in these two methods: Which one uses full sequence information and why?
  3. Bootstrap analysis
    1. aln.fas <- read.dna("anoles-aligned.txt", format ="fasta")
    2. Create a function for re-rooted distance tree: tree.fun = function(x) root(nj(dist.dna(x)), outgroup = c("Leiocephalus_barahonensis"), resolve.root = T)
    3. Calculate a tree: tr = tree.fun(aln.fas)
    4. Perform bootstrap for 100 pseudo-replicates: boot.trees = boot.phylo(tr, aln.fas, tree.fun, B=100, rooted =T)
    5. Plot tree: plot(tr, no.margin = T)
    6. Add bootstrap values as node labels: nodelabels(boot.trees, bg= "white")
    7. Explain (1) Does bootstrap test for tree precision or tree accuracy? (2) What does a bootstrap value of 80% mean?