160 likes | 193 Views
This bioinformatics tool guide features solutions and examples from a development manager, covering sequence analysis, microarray data analysis, algorithm design, and machine learning tools in MATLAB. Learn about dotplots, molecular weights, protein properties, and hydrophobicity plots.
E N D
MATLAB Bioinformatics Tools Rob Henson The MathWorks, Inc.
Who Am I? • Development manager for Bioinformatics group at The MathWorks • Natick, MA • Software developer • Background in algorithm design and software engineering
What do I do? • Write software for bioinformatics • Sequence analysis • Microarray data analysis • Some consulting • Bioinformatics algorithm design • Machine learning tools • E.g. Neural networks, HMMs etc.
My solution to dotplot >> map = eye(128); >> spy(map(seq1,seq2)) Why does this work? How could we make this better?
Enhancements to dotplot • Does map need to be 128? • What is the right value? • Can we use less memory? • How do we deal with bad inputs? • Can we extend this to look for longer patterns?
Some useful tools • edit • dbstop • profiler • Getting help • Documentation • Technical Support Knowledge Base • Newsgroup
A full implementation of dotplot function matches = dotplot(seq1,seq2,window,stringency) % DOTPLOT Visualize sequence matches. % DOTPLOT(S,T) plots the sequence matches of sequences S and T. % % DOTPLOT(S,T,WINDOW,NUM) plots sequence matches when there % are at least NUM matches in a window of size WINDOW. For nucleotide % sequences a WINDOW of 11 and NUM of 7 is recommended in the % literature. % % MATCHES = DOTPLOT(...) returns the number of dots in the dotplot % matrix. % % Example: % moufflon = getgenbank('AB060288','sequence',true); % takin = getgenbank('AB060290','sequence',true); % dotplot(moufflon,takin,11,7) % % This shows the similarities between prion protein (PrP) nucleotide % sequences of two ruminants, the moufflon and the golden takin. % % See also NWALIGN, SWALIGN.
Sequence properties • Amino acid composition • histc function • Molecular weight • Indexing and sum function • Hydrophobicity
Molecular weights A: 89.000 R: 174.000 N: 132.000 D: 133.000 D: 121.000 Q: 146.000 E: 147.000 G: 75.000 H: 155.000 I: 131.000 L: 131.000 K: 146.000 M: 149.000 F: 165.000 P: 115.000 S: 105.000 T: 119.000 W: 204.000 Y: 181.000 V: 117.000 http://cn.expasy.org/tools/pscale/Molecularweight.html
mw = [89.0900 0 121.1500 133.1000 147.1300 165.1900 75.0700 155.1600 131.1700 0 146.1900 131.1700 149.2100 132.1200 0 115.1300 146.1500 174.2000 105.0900 119.1200 0 117.1500 204.2300 0 181.1900]; seq = ‘MATLAPEEPQSDPSVEPPLSQETFSDLWKLLPENNVLSP’; seqmw = mw(seq-’A’+1); plot(seqmw)
Assignments 1. Create a hydrophobicity plot You can get the amino acid values from http://cn.expasy.org/cgi-bin/protscale.pl Use Kyte & Doolittle’s values. Create a function that has two inputs, the sequence and the window size. The function will create a hydrophobicity plot. The help for the function is on the next slide…
function hydrophobic(sequence, window_length) % HYDROPHOBIC plots the hydrophobicity of an amino acid sequence % HYDROPHOBIC(SEQUENCE,WINDOW_LENGTH) creates a hydrophobicity plot of % SEQUENCE using a smoothing window of length, WINDOW_LENGTH. % % SEQUENCE must be a valid amino acid sequence. If SEQUENCE contain any % symbols other than the standard 20 amino acid letters, the function % will give an error message. SEQUENCE can be either upper or lower case. % % WINDOW_LENGTH must be an odd positive integer. %
Assignments 2. Modify the function to return the maximum and minimum hydrophobicity values in the plot. Make appropriate changes to the help for the function.
Advanced example • Alignment significance • Alignment algorithms such as Smith-Waterman and Needleman-Wunsch always find some alignment. How do we know if what they find is significant or simply random?