Harvard:Biophysics 101/2007/Notebook:Kaull/2007-2-27

Program

 * 1) Due 2/27/07
 * 2) By Katherine Aull


 * 1) Feature Set:
 * 2)  Determination of reading frame
 * 3)  Nucleic acid point mutations
 * 4)   - silent vs. non-silent
 * 5)   - corresponding amino acid change
 * 6)  Nucleic acid insertions
 * 7)   - frameshift vs. non-frameshift
 * 8)   - amino acid position where change occurred
 * 9)  Detailed reporting of significant amino acid changes
 * 1)  Detailed reporting of significant amino acid changes

import sys from Bio import Clustalw, GenBank, Translate from Bio.Alphabet import IUPAC from Bio.Seq import Seq
 * 1) header collection
 * 2) !/usr/bin/env python


 * 1) helper function collection

geneticCode = {'GGG':'G', 'GGA':'G', 'GGC':'G', 'GGT':'G', 'GAG':'E', 'GAA':'E', 'GAC':'D', 'GAT':'D', 'GCG':'A', 'GCA':'A', 'GCC':'A', 'GCT':'A', 'GTG':'V', 'GTA':'V', 'GTC':'V', 'GTT':'V', 'AGG':'R', 'AGA':'R', 'AGC':'S', 'AGT':'S', 'AAG':'K', 'AAA':'K', 'AAC':'N', 'AAT':'N', 'ACG':'T', 'ACA':'T', 'ACC':'T', 'ACT':'T', 'ATG':'M', 'ATA':'I', 'ATC':'I', 'ATT':'I', 'CGG':'R', 'CGA':'R', 'CGC':'R', 'CGT':'R', 'CAG':'Q', 'CAA':'Q', 'CAC':'H', 'CAT':'H', 'CCG':'P', 'CCA':'P', 'CCC':'P', 'CCT':'P', 'CTG':'L', 'CTA':'L', 'CTC':'L', 'CTT':'L', 'TGG':'W', 'TGA':'*', 'TGC':'C', 'TGT':'C', 'TAG':'*', 'TAA':'*', 'TAC':'Y', 'TAT':'Y', 'TCG':'S', 'TCA':'S', 'TCC':'S', 'TCT':'S', 'TTG':'L', 'TTA':'L', 'TTC':'F', 'TTT':'F'}

def build_aa_data: aadata = {} aadata['A'] = {'name' : 'Ala', 'type' : 'nonpolar'} aadata['C'] = {'name' : 'Cys', 'type' : 'cysteine'} aadata['D'] = {'name' : 'Asp', 'type' : 'acidic'} aadata['E'] = {'name' : 'Glu', 'type' : 'acidic'} aadata['F'] = {'name' : 'Phe', 'type' : 'nonpolar'} aadata['G'] = {'name' : 'Gly', 'type' : 'nonpolar'} aadata['H'] = {'name' : 'His', 'type' : 'basic'} aadata['I'] = {'name' : 'Ile', 'type' : 'nonpolar'} aadata['K'] = {'name' : 'Lys', 'type' : 'basic'} aadata['L'] = {'name' : 'Leu', 'type' : 'nonpolar'} aadata['M'] = {'name' : 'Met', 'type' : 'nonpolar'} aadata['N'] = {'name' : 'Asn', 'type' : 'polar'} aadata['P'] = {'name' : 'Pro', 'type' : 'nonpolar'} aadata['Q'] = {'name' : 'Gln', 'type' : 'polar'} aadata['R'] = {'name' : 'Arg', 'type' : 'basic'} aadata['S'] = {'name' : 'Ser', 'type' : 'polar'} aadata['T'] = {'name' : 'Thr', 'type' : 'polar'} aadata['V'] = {'name' : 'Val', 'type' : 'nonpolar'} aadata['W'] = {'name' : 'Trp', 'type' : 'nonpolar'} aadata['Y'] = {'name' : 'Tyr', 'type' : 'polar'} aadata['*'] = {'name' : '***', 'type' : 'stop codon'} return aadata
 * 1) this helper function populates the amino acid data tables

aadata = build_aa_data

def gb_reader(inputs): db = {} for filename in inputs: handle = open(filename, 'r') parser = GenBank.FeatureParser iterator = GenBank.Iterator(handle, parser) rawdata = iterator.next
 * 1) this helper function takes in command line input, reads files, returns data

name = filename[0:filename.find('.')] db[name] = {'rawseq': rawdata.seq} db[name]['revseq'] = db[name]['rawseq'].reverse_complement

return db

def find_orf_bounds(sequence, frame): bounds = {'starts':[], 'stops':[], 'maxorf':0} for x in range(frame-1,len(sequence)-2,3): codon = sequence[x:x+3].tostring if codon == 'ATG': bounds['starts'].append(x+1) if codon == 'TGA': bounds['stops'].append(x+1) if codon == 'TAA': bounds['stops'].append(x+1) if codon == 'TAG': bounds['stops'].append(x+1)
 * 1) this helper function takes Seq object and frame, finds starts/stops

for start in bounds['starts']: for stop in bounds['stops']: if (stop - start) > bounds['maxorf']: bounds['maxend'] = stop bounds['minstart'] = start bounds['maxorf'] = stop - start

return bounds

def format_frame(strand, frame, bounds): output = strand + ' frame ' output += str(frame) output += ': start codon position: ' + format_frame_list(bounds['starts']) output += ' stop codon position: ' + format_frame_list(bounds['stops']) output += ' Transcript length: ' + str(bounds['maxorf']) return output
 * 1) this helper function prints reading frame data correctly

def format_frame_list(plainlist): if plainlist == []: return 'NA.' else: prettystring = '' for x in range(len(plainlist)-1): prettystring += (str(plainlist[x]) + ', ') prettystring += (str(plainlist[len(plainlist)-1]) + '.') return prettystring
 * 1) this helper function takes list, prints in reading frame output format


 * 1) Main program
 * 1) Main program

inputs = sys.argv[1:len(sys.argv)]
 * 1) command line input: expecting 2 to n .gb files

master = inputs[0].split('.')[0] clones = [n.split('.')[0] for n in inputs[1:len(inputs)]]
 * 1) list names of "master" sequence and the comparison sequence(s)

seqsDB = gb_reader(inputs)
 * 1) import raw datafiles in GenBank format

print "Master sequence ID is: ", master
 * 1) Determination of reading frame

output = [] maxorf = 0 maxbounds = None maxstrand = None maxoutput = None maxframe = ''

curr_seq = seqsDB[master]['rawseq'] for shift in range(3): bounds = find_orf_bounds(curr_seq, shift+1) output.append(format_frame("5'->3'", shift+1, bounds)) if bounds['maxorf'] > maxorf: maxorf = bounds['maxorf'] maxoutput = shift maxbounds = bounds maxstrand = 'rawseq' maxframe = "(5'->3' frame " + str(shift+1) + ")"

curr_seq = seqsDB[master]['revseq'] for shift in range(3): bounds = find_orf_bounds(curr_seq, shift+1) output.append(format_frame("3'->5'", shift+1, bounds)) if bounds['maxorf'] > maxorf: maxorf = bounds['maxorf'] maxoutput = shift+3 maxbounds = bounds maxstrand = 'revseq' maxframe = "(3'->5' frame " + str(shift+1) + ")"

if maxorf > 0: output[maxoutput] += '. (**using this one**)' else: print "Warning: No ORF detected in sequence."

for datastring in output: print datastring print '\n'

FASTAfile = open('227.fasta', 'w')
 * 1) create FASTA file for alignment

orf = seqsDB[master][maxstrand][maxbounds['minstart']-1:maxbounds['maxend']] FASTAfile.write('>' + master + '\n' + orf.tostring + '\n')

for dbkey in clones: wholeseq = seqsDB[dbkey][maxstrand] FASTAfile.write('>' + dbkey + '\n' + wholeseq.tostring + '\n')

FASTAfile.close

cline = Clustalw.MultipleAlignCL('227.fasta') cline.set_output('227.aln') alignment = Clustalw.do_alignment(cline)
 * 1) run Clustalw in Python

alnDB = {} for x in alignment.get_all_seqs: name = x.description alnDB[name] = x.seq
 * 1) format alignment for use

start = 0 while alnDB[master][start] == '-': start += 1

orfDB = {} for dbkey in alnDB.keys: orfDB[dbkey] = alnDB[dbkey].tostring

stop = start while stop < len(orfDB[dbkey])-2: codon = orfDB[dbkey][stop:stop+3] stop += 3 if (codon=='TAA') or (codon=='TGA') or (codon=='TAG'): break

orfDB[dbkey] = orfDB[dbkey][start:stop]

for clone in clones: print "*** Comparing", clone, "sequence to", master, " ***"
 * 1) cycle through list of comparison sequences

mutDB = {'point':[], 'insertion':[], 'deletion':[]} warnings = {}

alnsize = min(len(orfDB[master]),len(orfDB[clone])) for pos in range(alnsize): if orfDB[master][pos] != orfDB[clone][pos]: if orfDB[master][pos] == '-': mutDB['insertion'].append(pos) elif orfDB[clone][pos] == '-': mutDB['deletion'].append(pos) else: mutDB['point'].append(pos)

#N-terminal additions if orfDB[clone][0:3] != 'ATG': print "N-terminal alterations detected." #Nucleic acid point mutations # - silent vs. non-silent # - corresponding amino acid change

for pos in mutDB['point']: codon_start = pos - pos%3 mcodon = orfDB[master][codon_start:codon_start+3] ccodon = orfDB[clone][codon_start:codon_start+3]

if geneticCode.has_key(mcodon) and geneticCode.has_key(ccodon): m_aa = geneticCode[mcodon] c_aa = geneticCode[ccodon] aa_pos = pos/3 if m_aa == c_aa: output = 'Silent' else: output = 'Non-silent' if (aadata[m_aa]['type'] != aadata[c_aa]['type']): if not warnings.has_key(aa_pos): warning = 'Warning: non-silent mutation at ' warning += 'amino acid position ' + str(aa_pos) + ': ' warning += aadata[m_aa]['type'] + ' residue ' warning += '(' + m_aa + ') replaced with ' warning += aadata[c_aa]['type'] + ' residue ' warning += '(' + c_aa + ')' warnings[aa_pos] = warning

mutbase = orfDB[master][pos] + str(pos) + orfDB[clone][pos] output += ' point mutation found: ' + mutbase + ' ' mutaa = aadata[m_aa]['name'] + str(aa_pos) + aadata[c_aa]['name'] output += 'Amino acid result: ' + mutaa

print output

#Nucleic acid insertions # - frameshift vs. non-frameshift # - amino acid position where change occurred for category in ['insertion', 'deletion']: poslist = mutDB[category]

startlist = [] if poslist != []: startlist.append(poslist[0]) for x in range(1,len(poslist),1): if poslist[x-1] != poslist[x]-1: startlist.append(poslist[x])

stoplist = [] for x in range(len(poslist)-1): if poslist[x] != poslist[x+1]-1: stoplist.append(poslist[x]) if poslist != []: stoplist.append(poslist[len(poslist)-1])

for x in range(len(startlist)): start = startlist[x] stop = stoplist[x] size = (stop-start)+1

if size%3 == 0: output = 'Frame shift ' else: output = 'Non-frame shift '

output += category + ' found: ' + str(size) + ' base ' output += category +', position ' output += str(start) + ' to ' + str(stop) + '.'

print output

DNAref = 'DNA Reference:   ' Protref = 'Prot Reference:  ' DNAresult = 'DNA Result:      ' Protresult = 'Prot Result:     '

begin_print = start-6 if begin_print%3 != 0: begin_print += (3 - begin_print%3) begin_print = max(begin_print, 0)

end_print = stop+6 if end_print%3 != 0: end_print -= (3 - end_print%3) end_print = min(end_print, alnsize)

mcodon = '' ccodon = '' for x in range(begin_print, end_print, 1): mcodon += orfDB[master][x] ccodon += orfDB[clone][x]

if len(ccodon) == 3: DNAresult += ccodon + ' ' Protresult += ' ' + geneticCode.get(ccodon, ' ') + ' ' ccodon = '' if len(mcodon) == 3: DNAref += mcodon + ' ' Protref += ' ' + geneticCode.get(mcodon, ' ') + ' ' mcodon = ''

Protref += '  ' + maxframe Protresult += '  ' + maxframe + '\n'

print DNAref print Protref print DNAresult print Protresult

#C-terminal additions if len(orfDB[master]) != len(orfDB[clone]): output = 'C-terminal alterations detected.\n' output += 'Stop codon moved to amino acid position ' output += str(len(orfDB[clone])/3) + ' (was'       output += str(len(orfDB[master]/3)) + ').' print output #Detailed reporting of significant amino acid changes dbkeys = warnings.keys dbkeys.sort for dbkey in dbkeys: print warnings[dbkey]

print '\n'

Output
Here is a sample run. The homo sapiens ApoE gene from refseq is the standard, and is compared with chimp and dog equivalents. soda-wlan-90:~/Documents/HST.510 kaull$ python 2-27.py hsapiens.gb ptroglodytes.gb cfamiliaris.gb Master sequence ID is: hsapiens 5'->3' frame 1: start codon position: 589, 595. stop codon position: 85, 316, 325, 340, 349, 382, 832. Transcript length: 243 5'->3' frame 2: start codon position: 128. stop codon position: 35, 269, 572, 596, 1154, 1157. Transcript length: 1029 5'->3' frame 3: start codon position: 84, 327, 339, 459, 510, 789, 798, 951, 1056. stop codon position: 9, 1035, 1149. Transcript length: 1065. (**using this one**) 3'->5' frame 1: start codon position: NA. stop codon position: 58, 478, 1207. Transcript length: 0 3'->5' frame 2: start codon position: 167, 272, 557, 713, 764, 884. stop codon position: 74, 191, 866, 980. Transcript length: 813 3'->5' frame 3: start codon position: 1107. stop codon position: 48, 69, 303, 564, 918, 930, 1110, 1152, 1203. Transcript length: 96

Non-silent point mutation found: C67T Amino acid result: Ala22Val Silent point mutation found: A158G Amino acid result: Ala52Ala Non-silent point mutation found: G166A Amino acid result: Arg55His Non-silent point mutation found: G253C Amino acid result: Arg84Thr Silent point mutation found: A344C Amino acid result: Ala114Ala Non-silent point mutation found: T405C Amino acid result: Cys135Arg Non-silent point mutation found: T475C Amino acid result: Val158Ala Silent point mutation found: T506C Amino acid result: Arg168Arg Silent point mutation found: C515G Amino acid result: Leu171Leu Non-silent point mutation found: C591G Amino acid result: Leu197Val Silent point mutation found: A680G Amino acid result: Leu226Leu Silent point mutation found: C687A Amino acid result: Arg229Arg Non-silent point mutation found: G930A Amino acid result: Val310Met
 * Comparing ptroglodytes sequence to hsapiens ***

Warning: non-silent mutation at amino acid position 84: basic residue (R) replaced with polar residue (T) Warning: non-silent mutation at amino acid position 135: cysteine residue (C) replaced with basic residue (R)

Silent point mutation found: T21C Amino acid result: Leu7Leu Non-silent point mutation found: C24G Amino acid result: Leu8Val Silent point mutation found: A32G Amino acid result: Thr10Thr Non-silent point mutation found: T33C Amino acid result: Phe11Leu Non-silent point mutation found: C48T Amino acid result: Gln16Trp Non-silent point mutation found: A49G Amino acid result: Gln16Trp Non-silent point mutation found: A54G Amino acid result: Lys18Asp Non-silent point mutation found: G56T Amino acid result: Lys18Asp Non-silent point mutation found: G60C Amino acid result: Glu20Gln Non-silent point mutation found: A64C Amino acid result: Gln21Pro Non-silent point mutation found: A65G Amino acid result: Gln21Pro Non-silent point mutation found: C67A Amino acid result: Ala22Glu Non-silent point mutation found: G69C Amino acid result: Val23Pro Non-silent point mutation found: T70C Amino acid result: Val23Pro Non-silent point mutation found: A75C Amino acid result: Thr25Leu Non-silent point mutation found: C76T Amino acid result: Thr25Leu Non-silent point mutation found: A77G Amino acid result: Thr25Leu Non-silent point mutation found: C82G Amino acid result: Pro27Arg Non-silent point mutation found: G83C Amino acid result: Pro27Arg Non-silent point mutation found: C88T Amino acid result: Pro29Leu Non-silent point mutation found: C89G Amino acid result: Pro29Leu Non-silent point mutation found: T94C Amino acid result: Leu31Pro Non-silent point mutation found: A127G Amino acid result: Glu42Gly Non-silent point mutation found: G136C Amino acid result: Ser45Thr Non-silent point mutation found: C137T Amino acid result: Ser45Thr Non-silent point mutation found: G145C Amino acid result: Arg48Pro Silent point mutation found: A152G Amino acid result: Glu50Glu Non-silent point mutation found: C153G Amino acid result: Leu51Ala Non-silent point mutation found: T154C Amino acid result: Leu51Ala Silent point mutation found: A158G Amino acid result: Ala52Ala Non-silent point mutation found: G163C Amino acid result: Gly54Ala Non-silent point mutation found: T164C Amino acid result: Gly54Ala Silent point mutation found: T170C Amino acid result: Phe56Phe Silent point mutation found: A197G Amino acid result: Thr65Thr Non-silent point mutation found: G206C Amino acid result: Glu68Asp Silent point mutation found: G215A Amino acid result: Gln71Gln Non-silent point mutation found: A220G Amino acid result: Glu73Gly Non-silent point mutation found: G221C Amino acid result: Glu73Gly Non-silent point mutation found: C222G Amino acid result: Leu74Val Non-silent point mutation found: G229A Amino acid result: Ser76Asn Non-silent point mutation found: T231A Amino acid result: Ser77Thr Non-silent point mutation found: G253C Amino acid result: Arg84Thr Silent point mutation found: C266T Amino acid result: Asp88Asp Non-silent point mutation found: T282G Amino acid result: Leu94Val Silent point mutation found: A296G Amino acid result: Lys98Lys Non-silent point mutation found: T297G Amino acid result: Ser99Ala Silent point mutation found: A302G Amino acid result: Glu100Glu Non-silent point mutation found: G308C Amino acid result: Glu102Asp Silent point mutation found: A311G Amino acid result: Glu103Glu Silent point mutation found: A314G Amino acid result: Gln104Gln Non-silent point mutation found: A318G Amino acid result: Thr106Gly Non-silent point mutation found: C319G Amino acid result: Thr106Gly Silent point mutation found: G323C Amino acid result: Pro107Pro Non-silent point mutation found: G324A Amino acid result: Val108Met Non-silent point mutation found: G327A Amino acid result: Ala109Thr Non-silent point mutation found: G329C Amino acid result: Ala109Thr Non-silent point mutation found: G330T Amino acid result: Glu110Ser Non-silent point mutation found: A331C Amino acid result: Glu110Ser Non-silent point mutation found: G340A Amino acid result: Arg113Gln Silent point mutation found: A344C Amino acid result: Ala114Ala Silent point mutation found: G347C Amino acid result: Arg115Arg Non-silent point mutation found: C348G Amino acid result: Leu116Val Non-silent point mutation found: T351G Amino acid result: Ser117Ala Non-silent point mutation found: G384C Amino acid result: Gly128Arg Non-silent point mutation found: G387T Amino acid result: Ala129Ser Non-silent point mutation found: T405C Amino acid result: Cys135Arg Non-silent point mutation found: G408A Amino acid result: Gly136Asn Non-silent point mutation found: G409A Amino acid result: Gly136Asn Non-silent point mutation found: G417A Amino acid result: Val139Thr Non-silent point mutation found: T418C Amino acid result: Val139Thr Non-silent point mutation found: G435C Amino acid result: Val145Leu Silent point mutation found: C449G Amino acid result: Leu149Leu Non-silent point mutation found: C460G Amino acid result: Thr153Ser Non-silent point mutation found: T475C Amino acid result: Val158Ala Non-silent point mutation found: C480T Amino acid result: Leu160Phe Non-silent point mutation found: C492A Amino acid result: Leu164Met Silent point mutation found: T506C Amino acid result: Arg168Arg Non-silent point mutation found: C513G Amino acid result: Leu171Val Non-silent point mutation found: C515G Amino acid result: Leu171Val Silent point mutation found: C518G Amino acid result: Leu172Leu Silent point mutation found: C521G Amino acid result: Arg173Arg Silent point mutation found: T524C Amino acid result: Asp174Asp Non-silent point mutation found: T530G Amino acid result: Asp176Glu Non-silent point mutation found: A541G Amino acid result: Lys180Arg Silent point mutation found: A551C Amino acid result: Ala183Ala Silent point mutation found: G554C Amino acid result: Val184Val Non-silent point mutation found: C558A Amino acid result: Gln186Lys Silent point mutation found: G566C Amino acid result: Gly188Gly Non-silent point mutation found: C568T Amino acid result: Ala189Val Non-silent point mutation found: C569G Amino acid result: Ala189Val Silent point mutation found: C578T Amino acid result: Gly192Gly Non-silent point mutation found: G588A Amino acid result: Gly196Ser Non-silent point mutation found: C591G Amino acid result: Leu197Val Non-silent point mutation found: C593G Amino acid result: Leu197Val Non-silent point mutation found: G597A Amino acid result: Ala199Ser Non-silent point mutation found: C598G Amino acid result: Ala199Ser Silent point mutation found: G614C Amino acid result: Leu204Leu Non-silent point mutation found: G615T Amino acid result: Gly205Trp Silent point mutation found: C620G Amino acid result: Pro206Pro Non-silent point mutation found: G624C Amino acid result: Val208Leu Silent point mutation found: A629G Amino acid result: Glu209Glu Non-silent point mutation found: G634C Amino acid result: Gly211Ala Non-silent point mutation found: T640A Amino acid result: Val213Glu Silent point mutation found: G644C Amino acid result: Arg214Arg Non-silent point mutation found: G645A Amino acid result: Ala215Asn Non-silent point mutation found: C646A Amino acid result: Ala215Asn Non-silent point mutation found: C652A Amino acid result: Thr217Lys Non-silent point mutation found: T653G Amino acid result: Thr217Lys Non-silent point mutation found: T660G Amino acid result: Ser220Ala Non-silent point mutation found: G669A Amino acid result: Gly223Thr Non-silent point mutation found: G670C Amino acid result: Gly223Thr Non-silent point mutation found: C671G Amino acid result: Gly223Thr Silent point mutation found: A680G Amino acid result: Leu226Leu Non-silent point mutation found: A682T Amino acid result: Gln227Leu Non-silent point mutation found: G683C Amino acid result: Gln227Leu Non-silent point mutation found: C693G Amino acid result: Gln231Asp Non-silent point mutation found: G695C Amino acid result: Gln231Asp Non-silent point mutation found: T699C Amino acid result: Trp233Leu Non-silent point mutation found: G700T Amino acid result: Trp233Leu Non-silent point mutation found: G705C Amino acid result: Glu235Gln Non-silent point mutation found: G709A Amino acid result: Arg236Gln Non-silent point mutation found: C718G Amino acid result: Ala239Gly Non-silent point mutation found: G721A Amino acid result: Arg240Gln Non-silent point mutation found: A723C Amino acid result: Met241Leu Non-silent point mutation found: G735A Amino acid result: Gly245Ser Non-silent point mutation found: A744G Amino acid result: Thr248Ala Non-silent point mutation found: A751G Amino acid result: Asp250Gly Non-silent point mutation found: G754A Amino acid result: Arg251His Non-silent point mutation found: C761G Amino acid result: Asp253Glu Non-silent point mutation found: G765A Amino acid result: Val255Met Non-silent point mutation found: A768C Amino acid result: Lys256Arg Non-silent point mutation found: A769G Amino acid result: Lys256Arg Non-silent point mutation found: G770C Amino acid result: Lys256Arg Non-silent point mutation found: G777A Amino acid result: Val259Ile Non-silent point mutation found: G779A Amino acid result: Val259Ile Non-silent point mutation found: G780C Amino acid result: Ala260Gln Non-silent point mutation found: C781A Amino acid result: Ala260Gln Silent point mutation found: C791G Amino acid result: Arg263Arg Non-silent point mutation found: C793T Amino acid result: Ala264Val Non-silent point mutation found: C794G Amino acid result: Ala264Val Non-silent point mutation found: C798A Amino acid result: Leu266Met Non-silent point mutation found: C813G Amino acid result: Gln271Asp Non-silent point mutation found: G815C Amino acid result: Gln271Asp Non-silent point mutation found: T826A Amino acid result: Leu275Gln Non-silent point mutation found: G827A Amino acid result: Leu275Gln Non-silent point mutation found: C828A Amino acid result: Gln276Lys Silent point mutation found: C848G Amino acid result: Ala282Ala Non-silent point mutation found: G876C Amino acid result: Val292Leu Non-silent point mutation found: C901A Amino acid result: Ala300Asp Silent point mutation found: T926G Amino acid result: Ala308Ala Non-silent point mutation found: G934C Amino acid result: Gly311Ala Non-silent point mutation found: G940T Amino acid result: Ser313Ile Non-silent point mutation found: G942C Amino acid result: Ala314Pro Non-silent point mutation found: G945A Amino acid result: Ala315Thr Non-silent point mutation found: C948T Amino acid result: Pro316Ser Non-silent point mutation found: G951A Amino acid result: Val317Lys Non-silent point mutation found: T952A Amino acid result: Val317Lys Silent point mutation found: C956T Amino acid result: Pro318Pro Non-silent point mutation found: A957G Amino acid result: Ser319Val Non-silent point mutation found: G958T Amino acid result: Ser319Val Non-silent point mutation found: C959G Amino acid result: Ser319Val Non-silent point mutation found: C962G Amino acid result: Asp320Glu Non-silent point mutation found: A963G Amino acid result: Asn321Glu Non-silent point mutation found: T965A Amino acid result: Asn321Glu Non-silent point mutation found: A967C Amino acid result: His322Pro Non-silent point mutation found: C968A Amino acid result: His322Pro
 * Comparing cfamiliaris sequence to hsapiens ***

Frame shift insertion found: 3 base insertion, position 98 to 100. DNA Reference:   CTG CG- --C Prot Reference:   L             (5'->3' frame 3) DNA Result:      CCG AAG GTC Prot Result:      P   K   V     (5'->3' frame 3)

Frame shift insertion found: 15 base insertion, position 109 to 123. DNA Reference:   CAG A-- --- --- --- --- -CC GAG Prot Reference:   Q                           E     (5'->3' frame 3) DNA Result:      CAG GAG CTG GAG CCA GAG GCC GGG Prot Result:      Q   E   L   E   P   E   A   G     (5'->3' frame 3)

Warning: non-silent mutation at amino acid position 16: polar residue (Q) replaced with nonpolar residue (W) Warning: non-silent mutation at amino acid position 18: basic residue (K) replaced with acidic residue (D) Warning: non-silent mutation at amino acid position 20: acidic residue (E) replaced with polar residue (Q) Warning: non-silent mutation at amino acid position 21: polar residue (Q) replaced with nonpolar residue (P) Warning: non-silent mutation at amino acid position 22: nonpolar residue (A) replaced with acidic residue (E) Warning: non-silent mutation at amino acid position 25: polar residue (T) replaced with nonpolar residue (L) Warning: non-silent mutation at amino acid position 27: nonpolar residue (P) replaced with basic residue (R) Warning: non-silent mutation at amino acid position 42: acidic residue (E) replaced with nonpolar residue (G) Warning: non-silent mutation at amino acid position 48: basic residue (R) replaced with nonpolar residue (P) Warning: non-silent mutation at amino acid position 73: acidic residue (E) replaced with nonpolar residue (G) Warning: non-silent mutation at amino acid position 84: basic residue (R) replaced with polar residue (T) Warning: non-silent mutation at amino acid position 99: polar residue (S) replaced with nonpolar residue (A) Warning: non-silent mutation at amino acid position 106: polar residue (T) replaced with nonpolar residue (G) Warning: non-silent mutation at amino acid position 109: nonpolar residue (A) replaced with polar residue (T) Warning: non-silent mutation at amino acid position 110: acidic residue (E) replaced with polar residue (S) Warning: non-silent mutation at amino acid position 113: basic residue (R) replaced with polar residue (Q) Warning: non-silent mutation at amino acid position 117: polar residue (S) replaced with nonpolar residue (A) Warning: non-silent mutation at amino acid position 128: nonpolar residue (G) replaced with basic residue (R) Warning: non-silent mutation at amino acid position 129: nonpolar residue (A) replaced with polar residue (S) Warning: non-silent mutation at amino acid position 135: cysteine residue (C) replaced with basic residue (R) Warning: non-silent mutation at amino acid position 136: nonpolar residue (G) replaced with polar residue (N) Warning: non-silent mutation at amino acid position 139: nonpolar residue (V) replaced with polar residue (T) Warning: non-silent mutation at amino acid position 186: polar residue (Q) replaced with basic residue (K) Warning: non-silent mutation at amino acid position 196: nonpolar residue (G) replaced with polar residue (S) Warning: non-silent mutation at amino acid position 199: nonpolar residue (A) replaced with polar residue (S) Warning: non-silent mutation at amino acid position 213: nonpolar residue (V) replaced with acidic residue (E) Warning: non-silent mutation at amino acid position 215: nonpolar residue (A) replaced with polar residue (N) Warning: non-silent mutation at amino acid position 217: polar residue (T) replaced with basic residue (K) Warning: non-silent mutation at amino acid position 220: polar residue (S) replaced with nonpolar residue (A) Warning: non-silent mutation at amino acid position 223: nonpolar residue (G) replaced with polar residue (T) Warning: non-silent mutation at amino acid position 227: polar residue (Q) replaced with nonpolar residue (L) Warning: non-silent mutation at amino acid position 231: polar residue (Q) replaced with acidic residue (D) Warning: non-silent mutation at amino acid position 235: acidic residue (E) replaced with polar residue (Q) Warning: non-silent mutation at amino acid position 236: basic residue (R) replaced with polar residue (Q) Warning: non-silent mutation at amino acid position 240: basic residue (R) replaced with polar residue (Q) Warning: non-silent mutation at amino acid position 245: nonpolar residue (G) replaced with polar residue (S) Warning: non-silent mutation at amino acid position 248: polar residue (T) replaced with nonpolar residue (A) Warning: non-silent mutation at amino acid position 250: acidic residue (D) replaced with nonpolar residue (G) Warning: non-silent mutation at amino acid position 260: nonpolar residue (A) replaced with polar residue (Q) Warning: non-silent mutation at amino acid position 271: polar residue (Q) replaced with acidic residue (D) Warning: non-silent mutation at amino acid position 275: nonpolar residue (L) replaced with polar residue (Q) Warning: non-silent mutation at amino acid position 276: polar residue (Q) replaced with basic residue (K) Warning: non-silent mutation at amino acid position 300: nonpolar residue (A) replaced with acidic residue (D) Warning: non-silent mutation at amino acid position 313: polar residue (S) replaced with nonpolar residue (I) Warning: non-silent mutation at amino acid position 315: nonpolar residue (A) replaced with polar residue (T) Warning: non-silent mutation at amino acid position 316: nonpolar residue (P) replaced with polar residue (S) Warning: non-silent mutation at amino acid position 317: nonpolar residue (V) replaced with basic residue (K) Warning: non-silent mutation at amino acid position 319: polar residue (S) replaced with nonpolar residue (V) Warning: non-silent mutation at amino acid position 321: polar residue (N) replaced with acidic residue (E) Warning: non-silent mutation at amino acid position 322: basic residue (H) replaced with nonpolar residue (P)