38
1 Introduction to Sequence Analysis Utah State University – Fall 2019 Statistical Bioinformatics (Biomedical Big Data) Notes 11

Introduction to Sequence Analysis - USU2 References Chapters 2-7 of Biological Sequence Analysis (Durbin et al., 2001) Eddy, S. R. (1998).Profile hidden Markov models. Bioinformatics,

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Introduction to Sequence Analysis - USU2 References Chapters 2-7 of Biological Sequence Analysis (Durbin et al., 2001) Eddy, S. R. (1998).Profile hidden Markov models. Bioinformatics,

1

Introduction to Sequence Analysis

Utah State University – Fall 2019Statistical Bioinformatics (Biomedical Big Data)Notes 11

Page 2: Introduction to Sequence Analysis - USU2 References Chapters 2-7 of Biological Sequence Analysis (Durbin et al., 2001) Eddy, S. R. (1998).Profile hidden Markov models. Bioinformatics,

2

References

Chapters 2-7 of Biological Sequence Analysis (Durbin et al., 2001)

Eddy, S. R. (1998). Profile hidden Markov models. Bioinformatics, 14:755-763

Bodenhofer et al. (2015) Bioinformatics 31(24):3997-3999.

Page 3: Introduction to Sequence Analysis - USU2 References Chapters 2-7 of Biological Sequence Analysis (Durbin et al., 2001) Eddy, S. R. (1998).Profile hidden Markov models. Bioinformatics,

3

Review

Genes are:- sequences of DNA that “do” something- can be expressed as a string of:

nucleic acids: A,C,G,T (4-letter alphabet) Central Dogma of Molecular Biology

DNA mRNA protein bio. action Proteins can be expressed as a string of:

amino acids: (20-letter alphabet)(sometime 24 due to “similarities”)

Page 4: Introduction to Sequence Analysis - USU2 References Chapters 2-7 of Biological Sequence Analysis (Durbin et al., 2001) Eddy, S. R. (1998).Profile hidden Markov models. Bioinformatics,

4

Why look at protein sequence? Levels of protein structure

Primary structure: order of amino acids Secondary structure: repeating structures (beta-sheets

and alpha-helices) in “backbone” Tertiary structure: full three-dimensional folded structure Quartenary structure: interaction of multiple “backbones”

Sequence shape function

Similar sequence similar function -?

Page 5: Introduction to Sequence Analysis - USU2 References Chapters 2-7 of Biological Sequence Analysis (Durbin et al., 2001) Eddy, S. R. (1998).Profile hidden Markov models. Bioinformatics,

5

Consider simple pairwise alignment Sequence 1: HEAGAWGHEE Sequence 2: PAWHEAE

How similar are these two sequences? Match up exactly? Subsequences similar? Which positions could be possibly matched without severe

penalty?

To find the “best” alignment, need some way to:

rate alignments

Page 6: Introduction to Sequence Analysis - USU2 References Chapters 2-7 of Biological Sequence Analysis (Durbin et al., 2001) Eddy, S. R. (1998).Profile hidden Markov models. Bioinformatics,

6

Possible alignments

Alignment 1:HEAGAWGHEE

PAWHEAE

Alignment 3:HEA-GAWGHEE

PAWHEAE

Alignment 2:HEAGAWGHEE

PAW-HE-AE

Alignment 4:HEAGAWGHE-E

PAW-HEAE

Sequence 1: HEAGAWGHEESequence 2: PAWHEAE

Think of gaps in alignment as:

mutational insertion or deletion

Page 7: Introduction to Sequence Analysis - USU2 References Chapters 2-7 of Biological Sequence Analysis (Durbin et al., 2001) Eddy, S. R. (1998).Profile hidden Markov models. Bioinformatics,

7

Basic idea of scoring potential alignments

+ score: identities and “conservative” substitutions

- score: non- “conservative” changes -(not expected in “real” alignments)

Add score at each position Equivalent to assuming mutations are:

independent Reasonable assumption for DNA and proteins but

not structural RNA’s

Page 8: Introduction to Sequence Analysis - USU2 References Chapters 2-7 of Biological Sequence Analysis (Durbin et al., 2001) Eddy, S. R. (1998).Profile hidden Markov models. Bioinformatics,

8

Some Notation

{ }

{ } ∏

∏∏=

=

==

iyx

jy

ix

ab

a

ii

ji

PMyxP

qqRyxP

yx

baPPaq

|, : ModelMatched

|, : ModelRandom

2. sequence be and 1, sequence be Let

}ancestor common from ,{ sequence, in letter of freq.

assume independence of sequences

assume residues a & b are aligned as a pair with prob. Pab

Page 9: Introduction to Sequence Analysis - USU2 References Chapters 2-7 of Biological Sequence Analysis (Durbin et al., 2001) Eddy, S. R. (1998).Profile hidden Markov models. Bioinformatics,

9

Compare these two models

{ }{ }

ab

ba

ab

iii

i yx

yx

P

qqPbas

yxsS

qqP

RyxPMyxP

ii

ii

:Need

log),( ere wh

,),( : RatioOdds Log

|,|, : RatioOdds

=

=

=

log likelihood ratio of pair (a,b) occurring as aligned pair, as opposed to unaligned pair

Page 10: Introduction to Sequence Analysis - USU2 References Chapters 2-7 of Biological Sequence Analysis (Durbin et al., 2001) Eddy, S. R. (1998).Profile hidden Markov models. Bioinformatics,

10

Score Matrix – or “substitution matrix”

A R N D ... Y VA | 5 -2 -1 -2 -2 0R | -2 7 -1 -2 -1 3 N | -1 -1 7 ...D | -2 -2 ...

... | s(a,b)Y | -2 -1 ...V | 0 3

This is a portion of the BLOSUM50 substitution matrix; others exist.

These are scaled and rounded log-odds values(for computational efficiency)

Page 11: Introduction to Sequence Analysis - USU2 References Chapters 2-7 of Biological Sequence Analysis (Durbin et al., 2001) Eddy, S. R. (1998).Profile hidden Markov models. Bioinformatics,

11

How to get these substitution values?

Basic idea: Look at existing, “known” alignments Compare sequences of aligned proteins and look at

substitution frequencies This is a chicken-or-the-egg problem:

- alignment -- scoring scheme -

Maybe better to base alignment on:tertiary structures

(or some other alignment)

Page 12: Introduction to Sequence Analysis - USU2 References Chapters 2-7 of Biological Sequence Analysis (Durbin et al., 2001) Eddy, S. R. (1998).Profile hidden Markov models. Bioinformatics,

12

Some substitution matrix types BLOSUM (Henikoff)

BLOCK substitution matrix derived from BLOCKS database – set of aligned ungapped

protein families, clustered according to threshold percentage (L) of identical residues – compare residue frequencies between clusters

L=50 BLOSUM50

PAM (Dayhoff) percentage of acceptable point mutations per 108 years derived from a general model for protein evolution, based

on number L of PAMs (evolutionary distance) PAM1 from comparing sequences with <1% divergence L=250 PAM250 = PAM1^250

Page 13: Introduction to Sequence Analysis - USU2 References Chapters 2-7 of Biological Sequence Analysis (Durbin et al., 2001) Eddy, S. R. (1998).Profile hidden Markov models. Bioinformatics,

13

Which substitution matrix to use? No universal “best” way In general: low PAM find short alignments of similar seq. high PAM find longer, weaker local alignments BLOSUM standards:

BLOSUM50 for alignment with gaps BLOSUM62 for ungapped alignments

higher PAM, lower BLOSUM more divergent(looking for more distantly related proteins)

A reasonable strategy:BLOSUM62 complemented with PAM250

Page 14: Introduction to Sequence Analysis - USU2 References Chapters 2-7 of Biological Sequence Analysis (Durbin et al., 2001) Eddy, S. R. (1998).Profile hidden Markov models. Bioinformatics,

14

Which matrix for aligning DNA sequences?

The BLOSUM and PAM matrices are based on similarities between amino acids –

- no such similarity assumed for nucleic acids; residues either match or they don’t

Unitary matrix: identity matrix+1 for identical match – (or +3 or …)

0 for non-match – (or -2 or …)

Page 15: Introduction to Sequence Analysis - USU2 References Chapters 2-7 of Biological Sequence Analysis (Durbin et al., 2001) Eddy, S. R. (1998).Profile hidden Markov models. Bioinformatics,

15

How to score gaps?

One way: affine gap penalty

egdg )1()( −+=γ

length of gap

gap opening penalty

gap extension penalty(e < d)

linear transformation followed by a translation

Think of gaps in alignment as: mutational insertion or deletion

Page 16: Introduction to Sequence Analysis - USU2 References Chapters 2-7 of Biological Sequence Analysis (Durbin et al., 2001) Eddy, S. R. (1998).Profile hidden Markov models. Bioinformatics,

16

Tabular representation of alignment

H E A G A W G H E E0

P |A |W |H |E |A |E |

start with 0

begin (or continue) gap: -d (or -e)

match letters (residues): + s(a,b)

Fill in table to give max. of possible values at each successive element – keep track of which direction generated max. – then use the “path” that gives highest final score (lower right corner)

Page 17: Introduction to Sequence Analysis - USU2 References Chapters 2-7 of Biological Sequence Analysis (Durbin et al., 2001) Eddy, S. R. (1998).Profile hidden Markov models. Bioinformatics,

17

Alignment algorithms Global: Needleman-Wunsch

- find optimal alignment for entire sequences (prev. slide)

Local: Smith-Waterman- find optimal alignment for subsequences

Repeated matches- allow for starting over sequences

(find motifs in long sequences) Overlap matches

- allow for one sequence to contain or overlap the other (for comparing fragments)

Heuristic: BLAST, FASTA- for comparing a single sequence against a large database of sequences

Page 18: Introduction to Sequence Analysis - USU2 References Chapters 2-7 of Biological Sequence Analysis (Durbin et al., 2001) Eddy, S. R. (1998).Profile hidden Markov models. Bioinformatics,

18

Compare global and local alignments

Global Pairwise Alignment (1 of 1)pattern: [1] HEAGAWGHE-E subject: [1] P---AW-HEAE score: 23

Sequence 1: HEAGAWGHEESequence 2: PAWHEAE

Local Pairwise Alignment (1 of 1)pattern: [5] AWGHE-E subject: [2] AW-HEAE score: 32

Page 19: Introduction to Sequence Analysis - USU2 References Chapters 2-7 of Biological Sequence Analysis (Durbin et al., 2001) Eddy, S. R. (1998).Profile hidden Markov models. Bioinformatics,

19

Simple pairwise alignment in Rlibrary(Biostrings)

# Define sequencesseq1 <- "HEAGAWGHEE"seq2 <- "PAWHEAE"

# perform global alignmentg.align <- pairwiseAlignment(seq1, seq2,

substitutionMatrix='BLOSUM50', gapOpening=-4,gapExtension=-1, type='global')

g.align

# perform local alignmentl.align <- pairwiseAlignment(seq1, seq2,

substitutionMatrix='BLOSUM50', gapOpening=-4,gapExtension=-1, type='local')

l.align

Page 20: Introduction to Sequence Analysis - USU2 References Chapters 2-7 of Biological Sequence Analysis (Durbin et al., 2001) Eddy, S. R. (1998).Profile hidden Markov models. Bioinformatics,

20

Look at a “bigger” exampleThe pairseqsim package (now archived by Bioconductor) has a companion file (ex.fasta) with sequence data for 67 protein sequences in “FASTA” format:

http://www.stat.usu.edu/jrstevens/bioinf/ex.fasta

>At1g01010 NAC domain protein, putativeMEDQVGFGFRPNDEELVGHYLRNKIEGNTSRDVEVAISEVNICSYDPWNLRFQSKYKSRD...VISWIILVG>At1g01020 unknown proteinMAASEHRCVGCGFRVKSLFIQYSPGNIRLMKCGNCKEVADEYIECERMIIFIDLILHRPKVYRHVLYNAINPATVNIQHLLWKLVFAYLLLDCYRSLLLRKSDEESSFSDSPVLLSIKVRSFLFNGLN>At1g01030 DNA-binding protein, putativeMDLSLAPTTTTSSDQEQDRDQELTSNIGASSSSGPSGNNNNLPMMMIPPPEKEHMFDKVV...EESWLVPRGEIGASSSSSSALRLNLSTDHDDDNDDGDDGDDDQFAKKGKSSLSLNFNP>At1g01040 CAF proteinMVMEDEPREATIKPSYWLDACEDISCDLIDDLVSEFDPSSVAVNESTDENGVINDFFGGI...DKDRKRARVCSYQSERSNLSGRGHVNNSREGDRFMNRKRTRNWDEAGNNKKKRECNNYRR...

Page 21: Introduction to Sequence Analysis - USU2 References Chapters 2-7 of Biological Sequence Analysis (Durbin et al., 2001) Eddy, S. R. (1998).Profile hidden Markov models. Bioinformatics,

21

“Bigger” example:For a given sequence (subject),

"At1g01010 NAC domain protein, putative"

find the most similar sequence in a list (pattern)

"At1g01190 cytochrome P450, putative"

Global Pairwise Alignment (1 of 1)pattern: [1] MRTEIESLWVF-----ALASKFNIYMQQHFASLL---VAIAITWFTITI ...subject: [1] MEDQVG--FGFRPNDEELVGH---YLRNKIEGNTSRDVEVAIS—EVNIC ...score: 313

(names refer to gene name or locus)

Page 22: Introduction to Sequence Analysis - USU2 References Chapters 2-7 of Biological Sequence Analysis (Durbin et al., 2001) Eddy, S. R. (1998).Profile hidden Markov models. Bioinformatics,

22

# read in data in FASTA formatf1 <- "C://folder//ex.fasta" # saved from website (slide 20)ff <- readAAStringSet(f1, "fasta")

# compare first sequence (subject) with the others (pattern)sub <- ff[1]names(sub) # "At1g01010 NAC domain protein, putative"pat <- ff[2:length(ff)]

# get scores of all global alignmentss <- pairwiseAlignment(pat, sub, substitutionMatrix='PAM250',

gapOpening=-4, gapExtension=-1, type='global',scoreOnly=TRUE)

hist(s, main=c('global alignment scores with',names(sub)))

# look at best alignmentk <- which.max(s)names(pat[k]) # "At1g01190 cytochrome P450, putative"pairwiseAlignment(pat[k], sub, substitutionMatrix='PAM250',

gapOpening=-4, gapExtension=-1, type='global')

Page 23: Introduction to Sequence Analysis - USU2 References Chapters 2-7 of Biological Sequence Analysis (Durbin et al., 2001) Eddy, S. R. (1998).Profile hidden Markov models. Bioinformatics,

23

Phylogenetic trees – intro & motivation

Phylogeny: relationship among species Phylogenetic tree: visualization of phylogeny

(usually a dendrogram) How can we do this here? Consider multiple sequences

(maybe from different species) “Similar” sequences are called homologues

- descended from common ancestor sequence?- similar function?

Want to visualize these relationships

Page 24: Introduction to Sequence Analysis - USU2 References Chapters 2-7 of Biological Sequence Analysis (Durbin et al., 2001) Eddy, S. R. (1998).Profile hidden Markov models. Bioinformatics,

24

Quick review of agglomerative clustering

p q

i

- define distance between points

- each “point” (sequence here) starts as its own cluster

- find closest clusters and merge them

- Linkage: how to define distance between new cluster and existing clusters

Page 25: Introduction to Sequence Analysis - USU2 References Chapters 2-7 of Biological Sequence Analysis (Durbin et al., 2001) Eddy, S. R. (1998).Profile hidden Markov models. Bioinformatics,

25

Recall linkage methods (a few)

( )

( )

( ) ( )

qp

qiqpipi

iqp

pqiqiiqpiipi

qipii

qipii

nndndn

d

nnndndnndnn

d

ddd

ddd

++

=

++−+++

=

+=

=

:UPGMA

:Ward

2/ :Average

,min :neighbor)(nearest Singlep q

i

.cluster in points ofnumber the be and cluster, ,

new theand between distance thebe

distance, thebe clusters, be ,,Let

p

nqpi

dqpd

iqp

p

i

pq −

Page 26: Introduction to Sequence Analysis - USU2 References Chapters 2-7 of Biological Sequence Analysis (Durbin et al., 2001) Eddy, S. R. (1998).Profile hidden Markov models. Bioinformatics,

26

Defining “distance” between sequences i & j

Why not Euclidean, Pearson, etc.?- sequences are not points in space

Could use (after pairwise alignment): 1 – normalized score {score (or 0) divided by smaller selfscore} 1 – %identity 1 – %similarity

Making use of models for residue substitution (for DNA): Let f = fraction of sites in pairwise alignment where residues differ

= 1 - %identity Jukes-Cantor distance: ( )3/41log

43 fdij −−=

based on length of shorter sequence

Page 27: Introduction to Sequence Analysis - USU2 References Chapters 2-7 of Biological Sequence Analysis (Durbin et al., 2001) Eddy, S. R. (1998).Profile hidden Markov models. Bioinformatics,

27

Visualize relationships among 11 sequences from ex.fasta file

Page 28: Introduction to Sequence Analysis - USU2 References Chapters 2-7 of Biological Sequence Analysis (Durbin et al., 2001) Eddy, S. R. (1998).Profile hidden Markov models. Bioinformatics,

28

# Function to get phylogenetic distance matrix for multiple sequences# -- don't worry about syntax here; just see next slide for usageget.phylo.dist <- function(seqs,subM='BLOSUM62',open=-4,ext=-1,type='local'){

# Get matrix of pairwise local alignment scoresnum.seq <- length(seqs)s.mat <- matrix(ncol=num.seq, nrow=num.seq)for(i in 1:num.seq){ for(j in i:num.seq)

{ s.mat[i,j] <- s.mat[j,i] <-pairwiseAlignment(seqs[i], seqs[j], substitutionMatrix=subM, gapOpening=open, gapExtension=ext, type=type, scoreOnly=TRUE) } }

# Convert scores to normalized scoresnorm.mat <- matrix(ncol=num.seq, nrow=num.seq)for(i in 1:num.seq){ for(j in i:num.seq)

{ min.self <- min(s.mat[i,i],s.mat[j,j])norm.mat[i,j] <- norm.mat[j,i] <- s.mat[i,j]/min.self}

norm.mat[i,i] <- 0 }

# Return distance matrixcolnames(norm.mat) <- rownames(norm.mat) <- substr(names(seqs),1,9)return(as.dist(1-norm.mat))

}

Page 29: Introduction to Sequence Analysis - USU2 References Chapters 2-7 of Biological Sequence Analysis (Durbin et al., 2001) Eddy, S. R. (1998).Profile hidden Markov models. Bioinformatics,

29

R code for phylogenetic trees from pairwise distances

# Choose sequencesseqs <- ff[50:60] # recall ff object from slide 22

# Phylogenetic treedmat <- get.phylo.dist(seqs,subM='BLOSUM62',type='local')plot(hclust(dmat,method="average"),main='Phylogenetic Tree',

xlab='Normalized Score')

# heatmap representationlibrary(cluster)library(RColorBrewer)hmcol <- colorRampPalette(brewer.pal(10,"PuOr"))(256)hclust.ave <- function(d){hclust(d,method="average")}heatmap(as.matrix(dmat),sym=TRUE,col=hmcol,

cexRow=4,cexCol=1,hclustfun=hclust.ave)

Page 30: Introduction to Sequence Analysis - USU2 References Chapters 2-7 of Biological Sequence Analysis (Durbin et al., 2001) Eddy, S. R. (1998).Profile hidden Markov models. Bioinformatics,

30

Aside: visualizing sequence contenttab <- table(strsplit(as.character(ff[1]),""))use.col <- rep('yellow',length(tab))t <- names(tab)=='S'use.col[t] <- 'blue'barplot(tab,col=use.col,main=names(ff[1]))

Probably more useful for:

assessing C-G counts in DNA sequences

Page 31: Introduction to Sequence Analysis - USU2 References Chapters 2-7 of Biological Sequence Analysis (Durbin et al., 2001) Eddy, S. R. (1998).Profile hidden Markov models. Bioinformatics,

# get sequence (coding region) of a gene;# example: ENSG00000160551library(biomaRt)use.mart <- useMart("ensembl",dataset="hsapiens_gene_ensembl")seq <- getSequence(id="ENSG00000160551", type="ensembl_gene_id",

seqType="coding", mart=use.mart)seq[,1] # this returns three sequences; compare these: #1 looks like a substring of both 3 & 4; #3 appears to be mostly a substring of 4

31

[1] "ATGCCATCAAC … CAAGTTTC[2] "Sequence unavailable" [3] "ATGCCATCAAC … CAAGTTTCTAC … GCTTAAAGAGTCTAAAGAACT …[4] "ATGCCATCAAC … CAAGTTTCTAC … GCTTAAAGAGGAGCTAAATGA …

Page 32: Introduction to Sequence Analysis - USU2 References Chapters 2-7 of Biological Sequence Analysis (Durbin et al., 2001) Eddy, S. R. (1998).Profile hidden Markov models. Bioinformatics,

tab <- table(strsplit(seq[1,1],""))use.col <- rep('yellow', length(tab))t <- names(tab)=='A'use.col[t] <- 'blue'barplot(tab,col=use.col, main="sequence content of ENSG00000160551")

32

Page 33: Introduction to Sequence Analysis - USU2 References Chapters 2-7 of Biological Sequence Analysis (Durbin et al., 2001) Eddy, S. R. (1998).Profile hidden Markov models. Bioinformatics,

33

What about more than two sequences?

Multiple Sequence Alignment- many possible strategies to find and score

possible alignments

One common way: ClustalW a “progressive alignment” approach construct pairwise distances based on evolutionary

distance essentially follow an agglomerative clustering approach,

progressively aligning nodes in order of decreasing similarity

additional heuristics make final alignment more accurate

Page 34: Introduction to Sequence Analysis - USU2 References Chapters 2-7 of Biological Sequence Analysis (Durbin et al., 2001) Eddy, S. R. (1998).Profile hidden Markov models. Bioinformatics,

Common summary: “pretty-printing”

34(See R package msa, published 2015 Bioinformatics)

Page 35: Introduction to Sequence Analysis - USU2 References Chapters 2-7 of Biological Sequence Analysis (Durbin et al., 2001) Eddy, S. R. (1998).Profile hidden Markov models. Bioinformatics,

35

Follow-up to a sequence alignment

Consider pairwise (or multiple) alignment What does alignment mean?

possibly represents common ancestry Possible questions Does alignment describe some “family”? How can we describe its internal structure?

Can sometimes characterize these “family” structures as profile Hidden Markov Model

Page 36: Introduction to Sequence Analysis - USU2 References Chapters 2-7 of Biological Sequence Analysis (Durbin et al., 2001) Eddy, S. R. (1998).Profile hidden Markov models. Bioinformatics,

36

Using HMMs to describe a “family” Suppose we have an alignment of multiple

sequences – we can model their “relationship” as a family of sequences – call this the family’s: “profile”

PSSM – position-specific score matrix- estimate this to: describe this particular profile (e.g., should ‘A’ count for more at a particular position in the alignment?)

Allow for insertions and deletions, where “cost” could also be position-specific

Use this profile to describe the alignment and look for other similar sequences

Page 37: Introduction to Sequence Analysis - USU2 References Chapters 2-7 of Biological Sequence Analysis (Durbin et al., 2001) Eddy, S. R. (1998).Profile hidden Markov models. Bioinformatics,

37

Profile example (from hmmer / hmmbuild)HMM A C D ... Q R S T ...

...

15 2.35 4.27 3.26 3.50 3.44 0.99 2.83 15

16 3.08 4.91 3.57 3.09 0.88 3.16 3.34 16

17 2.66 0.81 4.20 4.12 3.89 2.93 3.13 17

18 2.35 4.27 3.26 3.50 3.44 0.99 2.83 18

19 2.35 4.27 3.26 3.50 3.44 0.99 2.83 19

...

Page 38: Introduction to Sequence Analysis - USU2 References Chapters 2-7 of Biological Sequence Analysis (Durbin et al., 2001) Eddy, S. R. (1998).Profile hidden Markov models. Bioinformatics,

38

Summary

Look at sequence similarity to find functional similarity (and families)

Pairwise alignment basics Scoring matrix

BLOSUM, PAM, etc. Alignment algorithm

global, local, etc. Tools for multiple alignment & pattern (motif) finding Coming up: searching online databases (BLAST)