(original) (raw)
%!PS-Adobe-2.0 %%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software %%Title: IEEE.dvi %%Pages: 11 %%PageOrder: Ascend %%BoundingBox: 0 0 612 792 %%DocumentFonts: Times-Bold Times-Italic Times-Roman Courier %%+ Helvetica-Bold Helvetica %%EndComments %DVIPSWebPage: (www.radicaleye.com) %DVIPSCommandLine: dvips -t letter IEEE.dvi -o IEEE.ps %DVIPSParameters: dpi=600, compressed %DVIPSSource: TeX output 2003.06.08:1429 %%BeginProcSet: texc.pro %! /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin /FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array /BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get }B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr 1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3 1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{ rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B /chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{ /cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{ A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse} ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17 {2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{ 1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop} forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put }if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X 1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N /p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{ /Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) (LaserWriter 16/600)]{A length product length le{A length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M} B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{ p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end %%EndProcSet %%BeginProcSet: 8r.enc % @@psencodingfile@{ % author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry", % version = "0.6", % date = "22 June 1996", % filename = "8r.enc", % email = "kb@@mail.tug.org", % address = "135 Center Hill Rd. // Plymouth, MA 02360", % codetable = "ISO/ASCII", % checksum = "119 662 4424", % docstring = "Encoding for TrueType or Type 1 fonts to be used with TeX." % @} % % Idea is to have all the characters normally included in Type 1 fonts % available for typesetting. This is effectively the characters in Adobe % Standard Encoding + ISO Latin 1 + extra characters from Lucida. % % Character code assignments were made as follows: % % (1) the Windows ANSI characters are almost all in their Windows ANSI % positions, because some Windows users cannot easily reencode the % fonts, and it makes no difference on other systems. The only Windows % ANSI characters not available are those that make no sense for % typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen % (173). quotesingle and grave are moved just because it's such an % irritation not having them in TeX positions. % % (2) Remaining characters are assigned arbitrarily to the lower part % of the range, avoiding 0, 10 and 13 in case we meet dumb software. % % (3) Y&Y Lucida Bright includes some extra text characters; in the % hopes that other PostScript fonts, perhaps created for public % consumption, will include them, they are included starting at 0x12. % % (4) Remaining positions left undefined are for use in (hopefully) % upward-compatible revisions, if someday more characters are generally % available. % % (5) hyphen appears twice for compatibility with both ASCII and Windows. % /TeXBase1Encoding [ % 0x00 (encoded characters from Adobe Standard not in Windows 3.1) /.notdef /dotaccent /fi /fl /fraction /hungarumlaut /Lslash /lslash /ogonek /ring /.notdef /breve /minus /.notdef % These are the only two remaining unencoded characters, so may as % well include them. /Zcaron /zcaron % 0x10 /caron /dotlessi % (unusual TeX characters available in, e.g., Lucida Bright) /dotlessj /ff /ffi /ffl /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef % very contentious; it's so painful not having quoteleft and quoteright % at 96 and 145 that we move the things normally found there down to here. /grave /quotesingle % 0x20 (ASCII begins) /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash % 0x30 /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question % 0x40 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O % 0x50 /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore % 0x60 /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o % 0x70 /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef % rubout; ASCII ends % 0x80 /.notdef /.notdef /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl /circumflex /perthousand /Scaron /guilsinglleft /OE /.notdef /.notdef /.notdef % 0x90 /.notdef /.notdef /.notdef /quotedblleft /quotedblright /bullet /endash /emdash /tilde /trademark /scaron /guilsinglright /oe /.notdef /.notdef /Ydieresis % 0xA0 /.notdef % nobreakspace /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen % Y&Y (also at 45); Windows' softhyphen /registered /macron % 0xD0 /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown % 0xC0 /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis % 0xD0 /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls % 0xE0 /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis % 0xF0 /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis ] def %%EndProcSet %%BeginProcSet: texps.pro %! TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2 index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics exch def dict begin Encoding{exch dup type/integertype ne{pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def} ifelse}forall Metrics/Metrics currentdict end def[2 index currentdict end definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{ dup sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[exch{dup CharStrings exch known not{pop/.notdef/Encoding true def} if}forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def} def end %%EndProcSet %%BeginProcSet: special.pro %! TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N /vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N /rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N /@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{ /hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B /@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{ /urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known {userdict/md get type/dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup length 20 add dict copy def}if end md begin /letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{ itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack} if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{ noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{ Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale }if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState save N userdict maxlength dict begin/magscale true def normalscale currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts /psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR/showpage{}N/erasepage{}N/copypage{}N/p 3 def @MacSetUp}N/doclip{ psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath moveto}N/endTexFig{end psf$SavedState restore}N/@beginspecial{SDict begin/SpecialSave save N gsave normalscale currentpoint TR @SpecialDefaults count/ocount X/dcount countdictstack N}N/@setspecial{ CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR }{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury lineto closepath clip}if/showpage{}N/erasepage{}N/copypage{}N newpath}N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{end} repeat grestore SpecialSave restore end}N/@defspecial{SDict begin}N /@fedspecial{end}B/li{lineto}B/rl{rlineto}B/rc{rcurveto}B/np{/SaveX currentpoint/SaveY X N 1 setlinecap newpath}N/st{stroke SaveX SaveY moveto}N/fil{fill SaveX SaveY moveto}N/ellipse{/endangle X/startangle X /yrad X/xrad X/savematrix matrix currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end %%EndProcSet TeXDict begin 40258431 52099146 1000 600 600 (IEEE.dvi) @start /Fa 134[33 1[50 33 37 21 29 29 1[37 37 37 54 21 2[21 37 37 21 33 37 33 37 37 11[54 42 37 46 1[46 1[50 62 42 1[33 25 1[54 3[50 46 46 7[37 2[37 1[37 2[37 2[19 25 3[25 25 40[{TeXBase1Encoding ReEncodeFont}43 74.7198 /Times-Italic rf /Fb 172[32 3[45 2[39 4[45 13[29 29 29 29 29 29 29 29 29 29 1[15 46[{TeXBase1Encoding ReEncodeFont}15 58.1154 /Times-Bold rf /Fc 105[37 27[33 37 37 54 37 37 21 29 25 37 37 37 37 58 21 37 1[21 37 37 25 33 37 33 37 33 3[25 1[25 46 54 54 71 54 54 46 42 50 1[42 1[54 66 46 54 29 25 54 54 42 46 54 50 50 54 6[21 37 37 37 37 37 37 37 37 37 37 1[19 25 19 2[25 25 37[42 2[{ TeXBase1Encoding ReEncodeFont}69 74.7198 /Times-Roman rf %DVIPSBitmapFont: Fd cmex9 9 3 /Fd 3 89 df<1430147014E0EB01C0EB03801307EB0F00131E133E133C5B13F85B12015B 1203A2485AA2120F5BA2121F90C7FCA25AA2123EA2127EA5127C12FCB3127C127EA5123E A2123FA27EA27F120FA27F1207A26C7EA212017F12007F13787F133E131E7FEB07801303 EB01C0EB00E0147014301459758223>0 D<12C07E12707E7E121E7E6C7E7F12036C7E7F 12007F1378137CA27FA2133F7FA21480130FA214C0A21307A214E0A5130314F0B314E013 07A514C0A2130FA21480A2131F1400A25B133EA25BA2137813F85B12015B485A12075B48 C7FC121E121C5A5A5A5A14597D8223>I88 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fe cmr8 8 4 /Fe 4 111 df<13031307130E131C1338137013F0EA01E013C01203EA0780A2EA0F00A2 121EA35AA45AA512F8A25AAB7EA21278A57EA47EA37EA2EA0780A2EA03C0120113E0EA00 F013701338131C130E1307130310437AB11B>40 D<12C07E12707E7E7E120FEA07801203 13C0EA01E0A2EA00F0A21378A3133CA4131EA5131FA2130FAB131FA2131EA5133CA41378 A313F0A2EA01E0A2EA03C013801207EA0F00120E5A5A5A5A5A10437CB11B>I108 D<3807C0FE39FFC3FF809038 C703E0390FDE01F0EA07F8496C7EA25BA25BB2486C487E3AFFFE1FFFC0A2221E7E9D27> 110 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Ff msbm7 7 1 /Ff 1 84 df<017F13C03803FFE1380FC0FF381F803E383F001C0076130E0066130700E6 130300C61301A200C7130012C36D1300EAC1E0EAE070EA603C38700F80383803E0381C00 78000F131E380380073901F0038039007C01C090380F00E09038038070903801E0309038 007038EC3818141C00C0130C140E6C1306A215386C14306C147000DCEB0EE000CEEB0DC0 00DFEB1F8039FFC07E0038E1FFF838C03FC01D2A7EA830>83 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fg cmsy5 5 1 /Fg 1 49 df48 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fh cmmi6 6 12 /Fh 12 117 df<127812FCA212FEA2127E1206A3120CA2121C121812301260124007107A 8513>59 D73 D<90B57E92C7FCEB07C0A2495AA449C8FCA4133EA45BA45BED 0180A2ED0300485A1506A2150E48485B153C15F800071303B6FC5D21227CA12A>76 D78 D<001FB612FCA29039003E007C00 3C151C00385B12300070151812605C5AA3C648481300A4495AA4495AA4495AA449C8FCA3 5B381FFFFE5C26227DA124>84 D98 D<1338137CA2137813701300A7EA0780 EA1FC0EA38E01230EA60F0EAC1E0A3EA03C0A3EA0780A2EA0F0013041306EA1E0CA21318 121CEA1E70EA0FE0EA07800F237DA116>105 D<1418143C147CA214381400A7EB0780EB 1FE01338EB60F013C0A2EA0180A2380001E0A4EB03C0A4EB0780A4EB0F00A4131EA21238 EA783CEAF8381378EA70F0EA7FC0001FC7FC162D81A119>I<13F8EA0FF0A21200A2485A A4485AA43807801E147FEB81C3EB8387380F060F495A1318EB700E4848C7FCA213FCEA1E 7EEA3C0F80EB0781158039780F0300A21402EB070600F0138CEB03F8386000F019247CA2 21>II<000F13FC381FC3FF3931C707803861 EC0301F813C0EAC1F0A213E03903C00780A3EC0F00EA0780A2EC1E041506D80F00130C14 3C15181538001EEB1C70EC1FE0000CEB07801F177D9526>110 D<133013785BA4485AA4 485AB51280A23803C000485AA448C7FCA4121EA25B1480383C03001306A25BEA1C38EA0F F0EA07C011217D9F18>116 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fi cmr6 6 6 /Fi 6 62 df<1438B2B712FEA3C70038C7FCB227277C9F2F>43 D<13FF000313C0380781 E0380F00F0001E137848133CA248131EA400F8131FAD0078131EA2007C133E003C133CA2 6C13786C13F0380781E03803FFC0C6130018227DA01E>48 D<13E01201120712FF12F912 01B3A7487EB512C0A212217AA01E>II<1278 12FCA412781200A9127812FCA4127806157A9412>58 D61 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fj cmmi9 9 17 /Fj 17 122 df<147F903803FFE090380FC0F890383F007C017C017E1360497F484815E0 484890381F80C0120748481481EEC1804848130F003F15C390C7140016C74815C6007E15 CE16DC16D816F8485D5E5E127CA3151F6C143F037713C06C903801E7E03A0F800783E13B 07C07E03E3803B01FFF801FF003A007F80007C2B227EA031>11 DI18 D<150C151CA21518A21538A21530A21570 A21560A215E0A25DA21401A2EC1FF891B5FC903907F38FC090391F8383E090397E0301F8 01FCEB00FC2601F007137CD803E0143E3807C006000F153F261F800E131FEA3F00140C12 7E021C133F12FE481318A20238137F167E48133016FC1470ED01F86C90386003F0007C15 E09138E007C06CEC0F80003F9038C03F00D81F80137E3907C1C1F83903F1CFE0C6B5C7FC EB1FF8EB0380A291C8FCA25BA21306A2130EA2130CA2131CA2131828447DB32E>30 D<123C127E12FFA4127E123C08087A8715>58 D<123C127EB4FCA21380A2127F123D1201 A412031300A25A1206120E120C121C5A5A126009177A8715>I<1530157815F8A215F014 01A215E01403A215C01407A21580140FA215005CA2143EA2143C147CA2147814F8A25C13 01A25C1303A25C1307A2495AA291C7FC5BA2131E133EA2133C137CA2137813F8A25B1201 A25B1203A2485AA25B120FA290C8FC5AA2121E123EA2123C127CA2127812F8A25A12601D 4B7CB726>61 D<010FB512F0A39026003FE0C7FC5DA25DA2147FA292C8FCA25CA25CA213 01A25CA21303A25CA21307A25CA2130FA25C170C011F151C17185C1738013F153017705C 17E0137F160191C7EA03C0160749EC0F80161F49147F0001913803FF00B8FCA25E2E337D B234>76 D<133FEA1FFFA25B1200A35BA21201A25BA21203A25BA21207A2EBE0F8EBE3FF 390FEF07809038FC03C001F813E0EBF001D81FE013F013C0138015F8123FA21300A24813 0315F0127EA2140700FE14E05AA2EC0FC0A2EC1F80007C14005C147E003C137C003E5B38 1E01F0380F07C06CB4C7FCEA00FC1D357EB321>98 D100 D104 DI<151C157E15FEA315FC15781500AA143FECFFC0 903801C3E0EB038390380701F0130EEB0C03131C1338133014071370012013E01300140F A215C0A2141FA21580A2143FA21500A25CA2147EA214FEA25CA21301A25CA21303001C5B 127F495AA238FE0FC0495AD8783FC7FCEA707CEA3FF0EA0FC01F4281B11F>I<011F131F 90397FC07FE09039E3E1E0F09039C3E380783A01C1F7007CD981FE133CD983FC133E0003 5BEB03F0163FEA0707120600025B1200010F147F167E5CA2011F14FE16FC5CA2013FEB01 F8A291380003F016E0491307ED0FC002801380ED1F009038FFC03E9038FEE0F89038FC7F E0EC1F80000190C8FCA25BA21203A25BA21207A25BB57EA3283083A027>112 D<903801F803903807FE0790381F071F90387C03BF9038F801BED801F013FE0003130048 5A4913FC120F485A1401D83F0013F8A3481303007E14F0A300FE13074814E0A3140F15C0 127C141F143F003CEB7F80003E13FF381E01DF380F07BF3907FE3F00EA00F813005C147E A314FE5CA21301A25C90387FFFE090B5FCA220307EA022>I<90391F801F8090397FE07F E09039E0F0E0703A01C0F9C0F83903807D833807007F000E1403000C15F0001C137E0018 EC01C002FEC7FC00385B1210C7FC13015CA31303A25C1640010714E016C0001C5B007E14 01010F148000FE1403011FEB0700011B130E39F839F01C397070F878393FE07FE0390F80 1F8025227EA02C>120 D<13F0D803FCEB01C0D8071EEB03E0D80E1F1307121C00381380 0030140F013F14C000701300126049131FD8E07E14801240EA00FE49133F000115005BA2 5D0003147E5BA215FE5D5BA214015DEBF00314070001130F3900F83FF0EB3FFBEB0FC3EB 00075DA20007130FD81F805B003F495AA24AC7FCEB007E003E137C00385B381803F0381E 07C0D807FFC8FCEA01F823317EA026>I E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fk cmsy9 9 6 /Fk 6 107 df<007FB712FCB812FEA26C16FC2F047A943C>0 D<1630167816F8A2ED01F0 A2ED03E0A2ED07C0A2ED0F80A2ED1F00A2153EA25DA25DA24A5AA24A5AA24A5AA24A5AA2 4AC7FCA2143EA25CA25CA2495AA2495AA2495AA2495AA249C8FCA2133EA25BA25BA2485A A2485AA2485AA2485AA248C9FCA2123EA25AA25AA25A1260254675B500>54 D<0060ED018000F0ED03C0B3AF6C1507A2007CED0F80A26CED1F00003F5D6C6C147ED80F E0495AD807F8EB07F83A01FF807FE06C90B55A013F91C7FC010F13FC010013C02A307CAD 33>91 D102 D<12FCEAFFC0EA07F0EA01FC6C7E137F7F80131FB3A580130F6D 7E6D7EEB01FC9038007FC0EC1FE0EC7FC0903801FC00EB03F0495A495A131F5CB3A5133F 91C7FC5B13FE485AEA07F0EAFFC000FCC8FC1B4B7BB726>I<126012F0B3B3B3B3126004 4B78B715>106 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fl cmr9 9 10 /Fl 10 62 df2 D<0107B512FCA390260007FCC8FC6E5AA6B4EE1FE001C0157F001F170001 E05D000F5E01F0140100075EAAD803F84A5AA3D801FC4A5AA200005E01FE140F017F4A5A D93F83495AD91FC349C7FCD907E313FC6DB55AD9007F13C0DA0FFEC8FCEC03F8A74A7E01 07B512FCA333337CB23C>9 D22 D<14C01301EB0380EB0F0013 0E5B133C5B5BA2485A485AA212075B120F90C7FC5AA2121E123EA3123C127CA55AB0127C A5123C123EA3121E121FA27E7F12077F1203A26C7E6C7EA213787F131C7F130FEB0380EB 01C01300124A79B71E>40 D<12C07E1270123C121C7E120F6C7E6C7EA26C7E6C7EA27F13 78137C133C133EA2131E131FA37F1480A5EB07C0B0EB0F80A514005BA3131E133EA2133C 137C137813F85BA2485A485AA2485A48C7FC120E5A123C12705A5A124A7CB71E>I<1560 15F0B3A4007FB812C0B912E0A26C17C0C800F0C8FCB3A4156033327CAB3C>43 D48 D<13075B5B137FEA07FFB5FC13BFEAF83F1200B3B3A2497E007FB51280A319327AB126> II<007FB812C0B912E0A26C17C0CCFCAC007F B812C0B912E0A26C17C033147C9C3C>61 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fm msbm9 9 2 /Fm 2 84 df<267FFFF092380FFFFCB56C5D6C5F2603F03C92383E07C02600F81C92387E 0F00021E160EEBFC0E18FEEBFE0FD9EE07EC01EE01EF7FD9E703EC03CEEC83C0D9E381EC 078E8102C0140F01E1160E6E7E01E00170131EECF078DA7038133CEC783CDA381C137815 1EDA3C0E13F8DA1C0F13F091381E0701020E14E0020F13819139070383C0ED83C3913903 81C780EDC1E7913901C0EF0016FF6F7E0200137EEDF03EED703C1578ED3838ED3C78ED1C 70ED1EF0ED0EE0A2486C010FEC1E0FD807FC6D4890387C07C0263FFFC00203B512FC486E 485A6C02017F463380B22E>77 D83 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fn msbm10 10 1 /Fn 1 84 df83 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fo msam10 10 1 /Fo 1 45 df<1538157CA215FE4A7EA2913803EF80A2913807C7C0A291380F83E0021F7F 150191383E00F8A24A137C02FC137E4A133E49487FA249486D7EA249486D7E010F814A13 0349C76C7EA2013E6E7E013FB6FCA36D5D90CBFCAA007FB812FCB912FEA26C17FCCCFCAE 007FB812FCB912FEA26C17FC37407BC942>44 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fp cmex10 10 5 /Fp 5 90 df2 DI81 D88 DI E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fq cmmi8 8 6 /Fq 6 122 df<147C49B4FC903803C78090380783C090381F03E0EB1E01133E017C13F0 13F8A2EA01F0120313E01207A2EA0FC01403A2EA1F80A21407003F14E0130090B5FCA239 7F000FC0127EA2141F1580127C00FC14005CA2147EA248137C14FC00785B495AA2387C03 E0383C07C0495A001C90C7FCEA1E3EEA0FF8EA03E01C307DAE21>18 D77 D<131FEA03FFA2EA003FA2 133EA2137EA2137CA213FCA25BA2120115F89038F003FCEC0F0E0003EB1C1EEC387EEBE0 7014E03807E1C09038E3803849C7FC13CEEA0FDC13F8A2EBFF80381F9FE0EB83F0EB01F8 1300481404150C123EA2007E141C1518007CEBF038ECF83000FC1470EC78E048EB3FC000 70EB0F801F2F7DAD25>107 D<3907C007E0391FE03FF83918F8783E393879E01E39307B 801F38707F00126013FEEAE0FC12C05B00815C0001143E5BA20003147E157C5B15FC0007 ECF8081618EBC00115F0000F1538913803E0300180147016E0001F010113C015E390C7EA FF00000E143E251F7E9D2B>110 D<013F137C9038FFC1FF3A01C1E383803A0380F703C0 390700F60F000E13FE4813FC12180038EC0700003049C7FCA2EA200100005BA313035CA3 01075B5D14C000385CD87C0F130600FC140E011F130C011B131C39F03BE038D8707113F0 393FE0FFC0260F803FC7FC221F7E9D28>120 DI E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fr cmmib10 10 1 /Fr 1 19 df<15FF020713C0021F13F091387F83F89138FF01FCD901FE7F903907FC00FF 495A494814804A137F133F495A01FF15C05C4815FFA24890C7FCA25A5B000F5CA2485AA2 4B1380123F5BA290B7FC481600A39038F0000F00FF5D5BA24B5AA25B5E153F5EA249495A A25E15FF5E4A90C7FCA2007F495A4A5A5D6C6C485A001F495A6D485A6C6CB4C8FC3803FF FC6C13F038003F802A3C7CBA2F>18 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fs cmsy7 7 4 /Fs 4 51 df0 D<0060140600F0140E0078141E6C143C6C1478 6C14F039078001E03903C003C03901E007803900F00F00EB781E6D5A6D5A6D5A6D5A6D5A 497E497EEB1E78497E497E497E3901E007803903C003C039078001E048C712F0001E1478 48143C48141E48140E006014061F1F769D34>2 D<13E0EA01F0EA03F8A3EA07F0A313E0 A2120F13C0A3EA1F80A21300A25A123EA35AA3127812F8A25A12100D1E7D9F13>48 D<49B5FC130F133F01FFC7FCEA01F8EA03E0EA078048C8FC121E121C123C123812781270 A212F05AA2B7FCA300E0C8FCA27E1270A212781238123C121C121E7E6C7EEA03E0EA01F8 6CB4FC013FB5FC130F130120277AA12D>50 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Ft cmmi5 5 16 /Ft 16 118 df<127012F812FCA2127C120CA31218A2123012601240060D7A8413>59 D<3A03FFF007FF16FE3A003E0003E01680ED0E005D4913705DEC03804AC7FCEBF81C143C 147EEBF9FE3801F33FEBFE1F9038F80F8001F07F3803E007811403813807C00181140081 3AFFFC07FFC0A2281C7C9B2F>75 D<3803FFFC5CD8003EC7FCA45BA45BA4485AA3150C48 481318A2153815304848137015F0EC01E0140FB612C0A21E1C7C9B28>III103 DI<137013F8A213F013E01300A6EA0F80EA1FC0EA31E01261A2EAC3C01203EA 0780A3EA0F001308EA1E18A213301370EA0FE0EA07800D1D7D9C16>IIII<3A0F01F807E03A3F87FE1F F83A33CE1F387C3A63D80F603CD8C3F013C001E01380D803C01300A22607801E5BA3EEF0 4048484814C0ED01E0EEE18016E3001E90397800FF00000C0130137C2A127D9133>I<38 0F03F0383F87FC3833DC1EEA63F8EAC3F013E0EA03C0A248485AA3EC7820D80F00136014 F015C014F1001EEB7F80000CEB3E001B127D9125>I<3803C0F8380FE3FE380CFF0F3918 FC07803830F80313F01200A23801E007A3EC0F00EA03C0141E6D5A6D5A3807BFE0EB8F80 0180C7FCA248C8FCA4EA7FE012FF191A7F911F>112 D<13C0EA01E0A3EA03C0A4EAFFFC A2EA0780A2EA0F00A4121EA31304EA3C0CA213181370EA1FE0EA0F800E1A7D9917>116 D<380F800C381FC01EEA39E012615C12C1EA03C0A25CEA0780A21540ECF0C0A213819038 83F1803903FE7F003800F81E1A127D9123>I E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fu cmr5 5 7 /Fu 7 62 df<13301360EA01C0EA038013001206120E5AA25AA35AA312F0AB1270A37EA3 7EA27E12067E1380EA01C0EA006013300C297B9E16>40 D<12C0126012387E120C7E1207 EA0380A2EA01C0A3EA00E0A313F0AB13E0A3EA01C0A3EA0380A2EA070012065A121C5A12 605A0C297C9E16>I<14E0B0B712C0A3C700E0C7FCB022237C9B2B>43 D48 D<1360EA01E0120F12FF12F11201B3A3387FFF80A2111C7B9B1C>II61 D E %EndDVIPSBitmapFont /Fv 139[22 4[33 37 26[37 3[52 2[44 4[52 71[{ TeXBase1Encoding ReEncodeFont}7 66.4176 /Times-Bold rf /Fw 138[51 2[32 5[23 2[23 1[51 1[46 2[51 46 12[51 13[51 15[46 46 46 46 46 46 2[23 46[{TeXBase1Encoding ReEncodeFont}17 83.022 /Helvetica-Bold rf %DVIPSBitmapFont: Fx cmbx10 10 3 /Fx 3 122 df65 D120 DI E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fy cmsy10 10 9 /Fy 9 107 df<007FB81280B912C0A26C17803204799641>0 D<0060150600F8150F6C15 1F007E153F6C157E6C6C14FC6C6CEB01F86C6CEB03F06C6CEB07E06C6CEB0FC06C6CEB1F 80017EEB3F006D137E6D6C5A90380FC1F8903807E3F0903803F7E06DB45A6D5B6EC7FCA2 4A7E497F903803F7E0903807E3F090380FC1F890381F80FC90383F007E017E7F49EB1F80 4848EB0FC04848EB07E04848EB03F04848EB01F84848EB00FC48C8127E007E153F48151F 48150F00601506282874A841>2 D24 D<91381FFFFE91B6FC1303010F14FED91FF0C7FCEB7F8001FEC8FCEA01F8485A48 5A485A5B48C9FCA2123EA25AA2127812F8A25AA2B712FE16FFA216FE00F0C9FCA27EA212 78127CA27EA27EA26C7E7F6C7E6C7E6C7EEA00FEEB7F80EB1FF06DB512FE010314FF1300 021F13FE283279AD37>50 D54 D77 D102 D<12FCEAFFC0EA07F0EA01FCEA007E7F80131F80130FB3A7801307806D7E6D7EEB007EEC 1FF0EC07F8EC1FF0EC7E00495A495A495A5C130F5CB3A7131F5C133F91C7FC137E485AEA 07F0EAFFC000FCC8FC1D537ABD2A>I<126012F0B3B3B3B3A91260045377BD17>106 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fz cmmi7 7 24 /Fz 24 122 df14 D18 D<1238127C12FE12FFA2127F123B1203A31206A3120C121812381270122008127A8614> 59 D64 D<013FB512FC16FF903A01FC00 1FC04AEB03E0EE01F801031400177C4A80A2010781A25CA2130F18805CA2011F1600A24A 5CA2133F173E91C8127E177C4915FC5F017E14015F01FE4A5AA2494A5A4C5A00014BC7FC 167C495CED03E00003EC1FC0B600FEC8FC15F031287DA736>68 D<90383FFFF0A2903801 FC005CA21303A25CA21307A25CA2130FA25CA2131FA25CA2133FA291C7FCA25BA2137EA2 13FEA25BA21201A25BA21203B512C0A21C287DA71D>73 D<90383FFFF8A2D901FCC7FC5C A21303A25CA21307A25CA2130FA25CA2131FA25CA2133FA291C8FCA249141C1618137E16 3801FE1430167049146016E000011401ED03C0491307ED0F800003147FB7FC160026287D A72E>76 DI<4AB4FC021F13E091387E01F8903901F8007ED907E013 1FD90F80EB0F8049C7EA07C0137E49EC03E0485A4915F0484814011207485A4915F8121F 90C8FC5A17F0007E1503A4007CED07E012FC17C0160F1780161F007C1600163E007E157E 003E017C5BD901FE5B3A1F038701F09039070387C03A0F86018F80D807C6019FC7FCD803 F613FC3900FF03F090393FFFC006EB07FDD90001130E6F5A163C6F5AEDFFF85E6E5B5E6F 5A033EC7FC2D347DA834>81 D<000FB712E05A9039800FE007D81E009038C001C05A0038 011F1300123000705C00601501023F148012E0481400A2C74890C7FCA2147EA214FEA25C A21301A25CA21303A25CA21307A25CA2130FA25CA2131F001FB57EA22B287DA727>84 D98 D103 D<133EEA07FEA2EA007CA213FCA25BA21201A25BA21203 14FCEBE3FF9038EF0780D807FC13C0EBF00313E0A2EA0FC014071380A2121FEC0F801300 A248EB1F00A2003E1406143E127EEC7C0C127C151800FCEB3C30157048EB1FE00070EB0F 801F297CA727>I<130E131F5BA2133E131C90C7FCA7EA03E0487EEA0C78EA187C1230A2 12605B12C0A2EA01F0A3485AA2485AA2EBC180EA0F81A2381F0300A213066C5A131CEA07 F06C5A11287DA617>I<1407EC0F80141FA21500140E91C7FCA7EB03E0EB07F8EB0C3C13 18EB303E136013C0A248485AA2C7FCA25CA4495AA4495AA4495AA4495AA21238D87C1FC7 FC12FC133E485AEA70F8EA7FE0EA1F80193380A61B>I<133EEA07FEA2EA007CA213FCA2 5BA21201A25BA21203EC07809038E01FC0EC38600007EB61E014C3EBC187EBC307D80FC6 13C09038CC038001B8C7FC13E0487E13FEEB3F80EB0FC0486C7E1303003E1460A2127EEC C0C0127CECC18012FC903801E30038F800FE0070137C1B297CA723>I<137CEA0FFCA2EA 00F8A21201A213F0A21203A213E0A21207A213C0A2120FA21380A2121FA21300A25AA212 3EA2127EA2EA7C18A3EAF830A21320EA786013C0EA3F80EA0F000E297EA715>I<3B0780 1FC007E03B0FE07FF01FF83B18F0E0F8783C3B30F1807CE03E903AFB007D801ED860FEEB 3F005B49133E00C14A133E5B1201A24848495BA35F4848485A1830EE01F0A23C0F8003E0 03E060A218C0933801E180271F0007C013E3933800FF00000E6D48137C341B7D993B>I< 9038F007C03901FC1FF039031E78780006EBE03C90381FC01C000CEB801E14005B001814 1F133E1200137E153E137CA213FC157C5B1578000114F0A2EC01E0EC03C03903FC078090 38FE1F00EBE7FCEBE1F0D807E0C7FCA25BA2120FA25B121FEAFFF8A22025809922>112 DI<131C133EA25BA45BA4485AB512E0A2 3801F000485AA4485AA4485AA448C7FC1460A214C0123EEB0180EB0300EA1E06EA1F1CEA 0FF8EA03E013267EA419>116 DI<90387C03C03901FF0FF03907 079C30390E03B078000CEBF0F8001813E1123015F0396007C0E015001200A2495AA449C7 FC15301238007C1460EAFC3E15C0EAF87E39F06F03803970C70700383F83FE381F01F81D 1B7D9926>120 DI E %EndDVIPSBitmapFont %DVIPSBitmapFont: FA cmr7 7 10 /FA 10 112 df0 D<1306130C13181330136013E0EA01C0EA0380A2EA0700 5A120E121EA2121C123CA35AA512F85AAB7E1278A57EA3121C121EA2120E120F7EEA0380 A2EA01C0EA00E0136013301318130C13060F3B7AAB1A>40 D<12C012607E7E7E120E7EEA 0380A2EA01C013E0120013F0A213701378A3133CA5133E131EAB133E133CA51378A31370 13F0A213E0120113C0EA0380A2EA0700120E120C5A5A5A5A0F3B7DAB1A>I<13381378EA 01F8121F12FE12E01200B3AB487EB512F8A215267BA521>49 D<13FF000313E0380E03F0 381800F848137C48137E00787F12FC6CEB1F80A4127CC7FC15005C143E147E147C5C495A 495A5C495A010EC7FC5B5B903870018013E0EA0180390300030012065A001FB5FC5A485B B5FCA219267DA521>I<1438A2147814F81301A2130313071306130C131C131813301370 136013C012011380EA03005A120E120C121C5A12305A12E0B612E0A2C7EAF800A7497E90 383FFFE0A21B277EA621>52 D61 D<90387E03E03901FF9FF03807C3FC380F00F048EBF800001E1378003E137CA6001E1378 001F13F86C5BEBC3E0380DFF80D81C7EC7FC90C8FCA3121E380FFFF014FC6C13FF001F14 80393E001FC000781307EC03E0481301A40078EB03C0007C13076CEB0F80390FC07E0038 03FFF838007FC01C277E9921>103 D108 D111 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: FB cmr10 10 16 /FB 16 111 df2 D<010FB612C0A3D90007 0180C7FCDA01FEC8FCA7D8FF80ED07FC01E0151F001F17E001F0153F000F17C001F8157F 00071780ACD803FCEDFF00A4D801FE4A5AA200005E017F4A5A02811307013F5DD91FC149 5AD90FE1495AD903F9017FC7FC0100B512FC023F13F0020390C8FC6E5AA8913807FF8001 0FB612C0A336397BB841>9 D22 D<146014E0EB01C0EB0380EB 0700130E131E5B5BA25B485AA2485AA212075B120F90C7FCA25A121EA2123EA35AA65AB2 127CA67EA3121EA2121F7EA27F12077F1203A26C7EA26C7E1378A27F7F130E7FEB0380EB 01C0EB00E01460135278BD20>40 D<12C07E12707E7E7E120F6C7E6C7EA26C7E6C7EA213 78A2137C133C133E131EA2131F7FA21480A3EB07C0A6EB03E0B2EB07C0A6EB0F80A31400 A25B131EA2133E133C137C1378A25BA2485A485AA2485A48C7FC120E5A5A5A5A5A13527C BD20>I<15301578B3A6007FB812F8B912FCA26C17F8C80078C8FCB3A6153036367BAF41> 43 D48 DIII<1538A2 157815F8A2140114031407A2140F141F141B14331473146314C313011483EB0303130713 06130C131C131813301370136013C01201EA038013005A120E120C5A123812305A12E0B7 12F8A3C73803F800AB4A7E0103B512F8A325397EB82A>I<007FB812F8B912FCA26C17F8 CCFCAE007FB812F8B912FCA26C17F836167B9F41>61 D91 D93 D108 D<3903F00FF000FFEB3FFCECF03F9039F1C01F803A0FF3800FC03803F70013FE496D7EA2 5BA35BB3A3486C497EB500C1B51280A329257EA42E>110 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: FC cmmi10 10 26 /FC 26 122 df11 D18 D<013FB612E090B712F05A120717E0270F807006C7FC391E00600E48 140C003813E04813C048141CEAC0011200148001035BA213071400A25B1578011E137CA3 133E133C137C157E13FC5B1201157F1203497FA3D801C0131C2C257EA32F>25 D<1503A35DA21506A2150EA2150CA2151CA21518A21538A21530A21570A2EC07FE91383F FFC0903901FCE3F0903907E0E0F890391F80C03ED93E007FEB7C01D801F8EC0F80D803F0 018013C0D807E014071403D80FC015E0D81F801300A248485AA2007E1306A2020E130F12 FE48010C14C0A2021CEB1F80A20218EB3F00A20238137E007C5D1430007E4A5A003E9038 7003F06CEC07C09138600F80D80F80013FC7FC3903E0E0FC3901F8E7F039007FFF80D90F FCC8FCEB01C0A25CA21303A291C9FCA25BA21306A2130EA2130CA22B4B7CB931>30 D<121C127FEAFF80A5EA7F00121C0909798817>58 D<121C127FEAFF80A213C0A3127F12 1C1200A412011380A2120313005A1206120E5A5A5A12600A19798817>I<0103B77E4916 F018FC903B0007F80003FE4BEB00FFF07F80020FED3FC0181F4B15E0A2141FA25DA2143F 19C04B143F1980027F157F190092C812FE4D5A4A4A5AEF0FF04AEC1FC005FFC7FC49B612 FC5F02FCC7B4FCEF3FC00103ED0FE0717E5C717E1307844A1401A2130F17035CA2131F4D 5A5C4D5A133F4D5A4A4A5A4D5A017F4BC7FC4C5A91C7EA07FC49EC3FF0B812C094C8FC16 F83B397DB83F>66 D<0103B7FC4916E018F8903B0007F80007FE4BEB00FFF03F80020FED 1FC0180F4B15E0F007F0021F1503A24B15F81801143F19FC5DA2147FA292C8FCA25C1803 5CA2130119F84A1507A2130319F04A150FA2010717E0181F4A16C0A2010FEE3F80A24AED 7F00187E011F16FE4D5A4A5D4D5A013F4B5A4D5A4A4A5A057FC7FC017F15FEEE03FC91C7 EA0FF049EC7FC0B8C8FC16FC16C03E397DB845>68 D<0103B812F05BA290260007F8C712 3F4B1407F003E0020F150118005DA2141FA25D19C0143FA24B1330A2027F1470190092C7 126017E05C16014A495A160F49B6FCA25F9138FC000F01031407A24A6DC8FCA201075C18 034A130660010F160693C7FC4A150E180C011F161C18184A1538A2013F5E18F04A4A5AA2 017F15074D5A91C8123F49913803FF80B9FCA295C7FC3C397DB83D>I<0107B512FCA216 F890390007F8005DA2140FA25DA2141FA25DA2143FA25DA2147FA292C7FCA25CA25CA213 01A25CA21303A25CA21307A25CA2130FA25CA2131FA25CA2133FA25CA2137FA291C8FC49 7EB6FCA326397DB824>73 D<0103B6FC5B5E90260007FCC8FC5D5D140FA25DA2141FA25D A2143FA25DA2147FA292C9FCA25CA25CA21301A25CA21303A25CA2130718404A15C0A201 0F150118804A1403A2011F16005F4A1406170E013F151E171C4A143C177C017F5D160391 C7120F49EC7FF0B8FCA25F32397DB839>76 D<902603FFF893383FFF80496081D9000794 38FF80000206DC01BFC7FCA2020E4C5A1A7E020C1606190CDA1C7E16FE4F5A02181630A2 0238166162023016C1F00181DA703F158395380303F002601506A202E0ED0C076202C015 18183001016D6C140F06605B028015C0A20103923801801FDD03005B140092380FC00649 173F4D91C8FC01065DA2010E4B5B4D137E130C6F6C5A011C17FEDCE1805B011802E3C7FC A2013802E6130104EC5C1330ED03F8017016034C5C01F05CD807FC4C7EB500E0D9C007B5 12F01680150151397CB851>I<4BB4FC031F13F09238FE01FC913903F0007EDA07C0EB1F 80DA1F80EB0FC0023EC7EA07E002FCEC03F0495A4948EC01F8495A4948EC00FC495A013F 16FE49C9FC13FE187F485A12035B12075B120F4916FF121FA2485AA34848ED01FEA448C9 EA03FCA3EF07F8A218F0170F18E0171F18C0EF3F807EEF7F0017FEDA07C05B6C90391FF0 01F8903980383803001F496C485A9139E00C0FE0260FC0C0EB1F80D807E1D90E3FC7FC02 80137ED803F1EB07F8D801F95C3A007FC00FC0903A3FE07F0003903807FFFE0100018F5B DA000F1306170E171E705A177CEEC1F816FF5FA25F5F6F5B6F48C7FCED00F8384B7CBA42 >81 D<133FEA1FFFA3C67E137EA313FE5BA312015BA312035BA31207EBE0FCEBE3FF9038 E707C0390FFE03E09038F801F001F013F8EBE000485A15FC5BA2123F90C7FCA214015A12 7EA2140312FE4814F8A2140715F05AEC0FE0A215C0EC1F80143F00781400007C137E5C38 3C01F86C485A380F07C06CB4C7FCEA01FC1E3B7CB924>98 D<163FED1FFFA3ED007F167E A216FEA216FCA21501A216F8A21503A216F0A21507A2027E13E0903803FF8790380FC1CF 90381F00EF017EEB7FC049133F485A4848131F000715805B000F143F485A1600485A5D12 7F90C7127EA215FE5A485CA21401A248ECF80CA21403161CEDF0181407007C1538007E01 0F1330003E131F027B13706C01E113E03A0F83C0F9C03A03FF007F80D800FCEB1F00283B 7DB92B>100 D104 D<14E0EB03F8A21307A314F0EB01C090C7FCAB13F8EA03FEEA070F000E13 80121C121812381230EA701F1260133F00E0130012C05BEA007EA213FE5B1201A25B1203 5BA20007131813E01438000F133013C01470EB806014E014C01381EB838038078700EA03 FEEA00F815397EB71D>I107 DIII<90390F8003F090391FE00FFC903939F03C1F903A70F8 700F80903AE0FDE007C09038C0FF80030013E00001491303018015F05CEA038113015CA2 D800031407A25CA20107140FA24A14E0A2010F141F17C05CEE3F80131FEE7F004A137E16 FE013F5C6E485A4B5A6E485A90397F700F80DA383FC7FC90387E1FFCEC07E001FEC9FCA2 5BA21201A25BA21203A25B1207B512C0A32C3583A42A>112 D<02FC13C0903803FF0190 380F838390383F01C790397E00EF8049137F485A4848133F000715005B485A001F5C157E 485AA2007F14FE90C75AA3481301485CA31403485CA314075D140F127C141F007E495A00 3E137F381F01EF380F839F3903FF1F80EA00FC1300143F92C7FCA35C147EA314FE5C1301 90387FFFF0A322357DA425>I116 D<903907E001F090391FF807FC9039783E0E0F9039E01F1C1FD801C09038383F 803A03800FF07F0100EBE0FF5A000E4A1300000C157E021F133C001C4AC7FC1218A2C712 3FA292C8FCA25CA2147EA214FEA24A130CA20101141C001E1518003F5BD87F8114380183 5C00FF1560010714E03AFE0E7C01C0D87C1C495A2778383E0FC7FC391FF00FFC3907C003 F029267EA42F>120 D<13F8D803FE1470D8070F14F8000EEB8001121C12180038140300 3015F0EA701F1260013F130700E0010013E012C05BD8007E130F16C013FE5B151F000115 805BA2153F000315005BA25D157EA315FE5D1401000113033800F80790387C1FF8EB3FF9 EB0FE1EB00035DA2000E1307D83F805B007F495AA24A5A92C7FCEB003E007C5B00705B6C 485A381E07C06CB4C8FCEA01FC25367EA429>I E %EndDVIPSBitmapFont /FD 82[30 51[46 2[46 51 30 36 41 51 51 46 51 76 25 2[25 51 46 30 41 51 41 51 46 10[66 1[61 3[56 2[86 61 3[71 2[61 66 1[61 7[30 5[46 46 46 46 2[23 46[{TeXBase1Encoding ReEncodeFont} 37 91.3242 /Times-Bold rf /FE 133[26 3[29 33 18 26 26 1[33 33 33 48 18 2[18 33 33 18 29 33 29 33 33 11[48 32[33 6[22 45[{TeXBase1Encoding ReEncodeFont}23 66.4176 /Times-Italic rf /FF 199[25 25 25 25 25 25 25 25 49[{TeXBase1Encoding ReEncodeFont}8 49.8132 /Times-Roman rf /FG 136[42 1[29 16 23 19 29 29 29 29 45 16 29 1[16 29 29 19 26 29 26 29 26 16[32 1[42 52 6[32 36 1[39 1[42 7[29 29 29 29 29 29 29 29 29 29 1[15 46[{TeXBase1Encoding ReEncodeFont}39 58.1154 /Times-Roman rf /FH 104[66 2[29 29 24[29 33 33 48 33 33 18 26 22 33 33 33 33 52 18 33 18 18 33 33 22 29 33 29 33 29 3[22 1[22 3[63 2[41 37 2[37 1[48 59 3[22 48 48 37 41 48 44 44 48 6[18 33 33 33 2[33 33 33 33 33 1[17 22 17 2[22 22 22 35[37 37 2[{TeXBase1Encoding ReEncodeFont}63 66.4176 /Times-Roman rf %DVIPSBitmapFont: FI cmsy6 6 3 /FI 3 49 df0 D<136013701360A20040132000E0137038F861 F0387E67E0381FFF803807FE00EA00F0EA07FE381FFF80387E67E038F861F038E0607000 40132000001300A21370136014157B9620>3 D48 D E %EndDVIPSBitmapFont /FJ 107[37 37 24[37 42 42 60 42 42 23 32 28 42 42 42 42 65 23 42 23 23 42 42 28 37 42 37 42 37 28 2[28 1[28 2[60 78 60 60 51 46 55 1[46 60 60 74 51 60 1[28 60 60 46 51 60 55 55 60 5[23 23 42 42 42 42 42 42 42 42 42 42 23 21 28 21 47 1[28 28 28 1[69 42 32[46 46 2[{ TeXBase1Encoding ReEncodeFont}77 83.022 /Times-Roman rf /FK 134[42 3[46 28 32 37 46 46 42 46 69 23 2[23 46 42 28 37 46 37 46 42 10[60 2[46 3[65 60 78 55 4[65 1[55 60 1[55 60 6[28 5[42 42 42 42 2[21 28 21 44[{ TeXBase1Encoding ReEncodeFont}39 83.022 /Times-Bold rf /FL 107[46 46 24[32 37 37 55 37 42 23 32 32 42 42 42 42 60 23 37 1[23 42 42 23 37 42 37 42 42 11[60 46 42 2[51 2[69 3[28 60 2[51 60 1[51 51 5[28 28 5[42 2[42 2[21 28 21 40[42 42 2[{TeXBase1Encoding ReEncodeFont}47 83.022 /Times-Italic rf /FM 135[50 72 50 55 33 39 44 55 55 50 55 83 28 55 1[28 55 50 33 44 55 44 55 50 13[55 72 2[78 1[94 66 2[39 1[78 61 66 1[72 1[72 6[33 4[50 50 50 50 50 3[33 45[{TeXBase1Encoding ReEncodeFont}41 99.6264 /Times-Bold rf /FN 134[60 60 60 60 60 1[60 60 1[60 60 60 1[60 60 60 60 1[60 1[60 60 60 60 60 32[60 17[60 46[{ TeXBase1Encoding ReEncodeFont}22 99.6264 /Courier rf %DVIPSBitmapFont: FO cmsy8 8 2 /FO 2 4 df<123C127E12FFA4127E123C08087A9414>1 D<130C131EA50060EB01800078 130739FC0C0FC0007FEB3F80393F8C7F003807CCF83801FFE038007F80011EC7FCEB7F80 3801FFE03807CCF8383F8C7F397F0C3F8000FCEB0FC039781E078000601301000090C7FC A5130C1A1D7C9E23>3 D E %EndDVIPSBitmapFont /FP 134[50 1[72 50 50 28 39 33 1[50 50 50 78 28 50 1[28 50 50 33 44 50 44 50 44 8[72 94 1[72 1[55 66 1[55 1[72 89 61 72 39 33 3[61 72 66 66 72 7[50 1[50 2[50 1[50 1[50 1[25 1[25 44[{TeXBase1Encoding ReEncodeFont}46 99.6264 /Times-Roman rf /FQ 137[53 6[60 60 8[53 60 100[{ TeXBase1Encoding ReEncodeFont}5 119.552 /Times-Italic rf /FR 134[60 3[66 40 47 53 2[60 66 100 33 2[33 2[40 53 66 53 1[60 13[66 3[93 2[80 4[93 4[80 7[40 58[{ TeXBase1Encoding ReEncodeFont}21 119.552 /Times-Bold rf end %%EndProlog %%BeginSetup %%Feature: *Resolution 600dpi TeXDict begin %%BeginPaperSize: Letter letter %%EndPaperSize %%EndSetup %%Page: 1 1 1 0 bop 264 367 a FR(LOGOS:)30 b(a)g(modular)g(Bay)o(esian)f(model)h(f) m(or)f FQ(de)h(no)o(vo)f FR(motif)g(detection)831 677 y FP(Eric)c(P)-11 b(.)25 b(Xing)1316 640 y FO(\003)524 787 y FP(Computer)f(Science)i(Di)n(vision)597 897 y(Uni)n(v)o(ersity)c (of)j(California)667 1008 y(Berk)o(ele)o(y)-6 b(,)24 b(CA)i(94720)416 1118 y FN(epxing@cs.berkeley.edu)2523 677 y FP(W)-8 b(ei)25 b(W)-5 b(u)2231 787 y(Life)25 b(Sciences)h(Di)n (vision)2023 897 y(La)o(wrence)f(Berk)o(ele)o(y)h(National)e(Lab)2277 1008 y(Berk)o(ele)o(y)-6 b(,)25 b(CA)g(94720)2355 1118 y FN(wwu@lbl.gov)781 1279 y FP(Michael)g(I.)g(Jordan)488 1389 y(Computer)f(Science)i(and)f(Statistics)654 1499 y(Uni)n(v)o(ersity)e(of)i(California)725 1610 y(Berk)o(ele)o(y)-6 b(,)24 b(CA)i(94720)474 1720 y FN(jordan@cs.berkeley.edu)2350 1279 y FP(Richard)f(M.)g(Karp)2139 1389 y(Computer)g(Science)h(Di)n (vision)2212 1499 y(Uni)n(v)o(ersity)d(of)i(California)2282 1610 y(Berk)o(ele)o(y)-6 b(,)25 b(CA)g(94720)2091 1720 y FN(karp@cs.berkeley.edu)617 2069 y FM(Abstract)-83 2263 y FL(The)j(comple)n(xity)g(of)g(the)g(global)f(or)m(ganization)e (and)i(internal)-182 2358 y(structur)m(es)h(of)g(motifs)h(in)f(higher)g (eukaryotic)f(or)m(ganisms)g(r)o(aises)-182 2452 y(signi\002cant)33 b(c)o(halleng)o(es)f(for)j(motif)g(detection)e(tec)o(hniques.)66 b(T)-8 b(o)-182 2547 y(ac)o(hie)o(ve)17 b(successful)i(de)g(no)o(vo)e (motif)i(detection)f(it)h(is)h(necessary)f(to)-182 2642 y(model)24 b(the)i(comple)n(x)f(dependencies)e(within)i(and)g(among)e (motifs)-182 2736 y(and)f(incorpor)o(ate)g(biolo)o(gical)g(prior)h (knowledg)o(e)o(.)33 b(In)23 b(this)h(paper)-9 b(,)-182 2831 y(we)21 b(pr)m(esent)f FK(LOGOS)p FL(,)f(an)h(inte)m(gr)o(ated)f FK(LO)p FL(cal)h(and)f FK(G)p FL(l)p FK(O)p FL(bal)g(mo-)-182 2926 y(tif)29 b FK(S)p FL(equence)f(model)h(for)g(biopolymer)f (sequences,)i(whic)o(h)f(pr)l(o-)-182 3020 y(vides)34 b(a)h(principled)e(fr)o(ame)o(work)h(for)h(de)o(veloping)o(,)h (modulariz-)-182 3115 y(ing)o(,)29 b(e)n(xtending)e(and)g(computing)f (e)n(xpr)m(essive)j(motif)g(models)e(for)-182 3210 y(comple)n(x)g (biopolymer)f(sequence)g(analysis.)47 b FK(LOGOS)27 b FL(consists)-182 3304 y(of)i(two)h(inter)o(acting)e(submodels:)43 b(HMDM,)30 b(a)f(local)g(alignment)-182 3399 y(model)19 b(capturing)g(biolo)o(gical)g(prior)i(knowledg)o(e)e(and)g(positional) -182 3493 y(dependence)24 b(within)j(the)f(motif)h(local)g(structur)m (e;)j(and)c(HMM,)h(a)-182 3588 y(global)h(motif)j(distrib)n(ution)e (model)h(modeling)f(fr)m(equencies)g(and)-182 3683 y(dependencies)21 b(of)i(motif)h(occurr)m(ences.)33 b(Model)23 b(par)o(ameter)o(s)g(can) -182 3777 y(be)32 b(\002t)g(using)g(tr)o(aining)f(motifs)i(within)g(an) f(empirical)g(Bayesian)-182 3872 y(fr)o(ame)o(work.)24 b(A)18 b(variational)f(EM)i(algorithm)f(is)h(de)o(veloped)d(for)j(de) -182 3967 y(no)o(vo)f(motif)h(detection.)24 b FK(LOGOS)19 b FL(impr)l(o)o(ves)g(o)o(ver)g(e)n(xisting)h(mod-)-182 4061 y(els)j(that)g(ignor)m(e)f(biolo)o(gical)g(prior)o(s)i(and)e (dependencies)f(in)i(motif)-182 4156 y(structur)m(es)28 b(and)g(motif)g(occurr)m(ences,)i(and)d(demonstr)o(ates)h(supe-)-182 4251 y(rior)g(performance)f(on)h(both)f(semi-r)m(ealistic)h(test)h (data)e(and)g(cis-)-182 4345 y(r)m(e)m(gulatory)19 b(sequences)h(fr)l (om)i(yeast)f(and)f(Dr)l(osophila)g(sequences)-182 4440 y(with)i(r)m(e)m(gar)m(d)g(to)g(sensitivity)-5 b(,)23 b(speci\002city)-5 b(,)23 b(\003e)n(xibility)f(and)f(e)n(xtensi-)-182 4535 y(bility)-5 b(.)-182 4864 y FM(1)99 b(Intr)n(oduction)-83 5077 y FJ(The)22 b(identi\002cation)f(of)g(motif)h(structures)f(within) h(biopolymer)-182 5172 y(sequences)30 b(such)h(as)i(DN)m(A)f(and)f (protein)f(is)i(an)g(important)e(task)p -182 5248 788 4 v -99 5302 a FI(\003)-63 5325 y FH(T)-5 b(o)16 b(whom)h (correspondence)j(should)e(be)f(addressed.)1974 2069 y FJ(in)24 b(computational)e(biology)h(and)h(is)h(essential)g(in)g(adv) n(ancing)d(our)1974 2163 y(kno)n(wledge)f(about)i(biological)f (systems.)35 b(It)24 b(is)g(kno)n(wn)e(that)i(only)1974 2258 y(a)f(small)g(fraction)e(of)h(the)h(genomic)d(sequences)i(in)h (multi-cellular)1974 2353 y(higher)e(or)o(ganisms)g(constitute)h(the)h (protein)e(coding)h(information)1974 2447 y(of)g(the)h(genes)g(\(e.g.,) f(only)g(5\045)i(for)e(mammalian)f(genomes)h([18)o(]\),)1974 2542 y(whereas)38 b(the)g(rest)h(of)f(the)g(genome,)j(besides)e (playing)d(purely)1974 2637 y(structural)19 b(roles)g(such)g(as)i (forming)c(the)j(centromeres)e(and)h(telom-)1974 2731 y(eres)k(of)g(the)h(chromosomes,)d(contains)i(a)h(lar)o(ge)e(number)g (of)h(short)1974 2826 y(sequence)37 b(motifs)h(that)g(mak)o(e)g(up)f (an)h(immensely)f(rich)h(code-)1974 2921 y(book)33 b(of)i(the)g(gene)f (re)o(gulation)f(program,)k(kno)n(wn)c(as)j(the)f FK(cis-)1974 3015 y(r)o(egulatory)23 b(system)p FJ(.)43 b(It)27 b(is)g(belie)n(v)o (ed)d(that)i(this)h(re)o(gulatory)c(pro-)1974 3110 y(gram)c(determines) f(the)i(le)n(v)o(el,)f(location)g(and)g(chronology)d(of)k(gene)1974 3205 y(e)o(xpression,)25 b(which)g(signi\002cantly)-5 b(,)26 b(if)g(not)f(predominantly)-5 b(,)23 b(con-)1974 3299 y(trib)n(utes)15 b(to)h(the)f(de)n(v)o(elopmental,)e (morphological)f(and)j(beha)n(vioral)1974 3394 y(di)n(v)o(ersity)k(of)h (comple)o(x)e(or)o(ganisms)g([4].)2073 3489 y(The)e(problem)d(of)j FL(de)f(no)o(vo)g FJ(motif)g(detection)3370 3458 y FG(1)3417 3489 y FJ(has)h(been)f(widely)1974 3583 y(studied.)35 b(Numerous)22 b(algorithmic)g(approaches)f(ha)n(v)o(e)i(been)g(pro-) 1974 3678 y(posed,)31 b(most)e(of)g(which)g(use)h(probabilistic)e (generati)n(v)o(e)g(models)1974 3772 y(to)23 b(model)f(motifs)h(as)h (stochastic)f(string)f(patterns)h(randomly)e(em-)1974 3867 y(bedded)d(in)i(a)g(simple)f(background.)i(In)f(such)f(a)h (setting,)g(motif)f(de-)1974 3962 y(tection)f(can)g(be)g(formulated)e (as)j(a)g(standard)e(missing-v)n(alue)g(infer)n(-)1974 4056 y(ence)i(and)f(parameter)g(estimation)h(problem)e(\(for)h(motif)h (locations)1974 4151 y(and)32 b(position)g(weight)g(matrices,)k (respecti)n(v)o(ely\),)d(and)f(standard)1974 4246 y(methods)27 b(such)h(as)h(EM)g(and)e(Gibbs)i(sampling)e(can)h(be)g(applied.)1974 4340 y(This)j(literature)f(is)i(too)e(lar)o(ge)g(to)h(surv)o(e)o(y)e (here,)k(b)n(ut)e(some)g(rele-)1974 4435 y(v)n(ant)20 b(e)o(xamples)g(include)g(MEME)g([1)o(],)i(BioProspector)d([15)o(],)i (and)1974 4530 y(AlignA)m(CE)f([12)n(].)26 b(A)21 b(dif)n(ferent)e (frame)n(w)o(ork)g(based)h(on)g(w)o(ord)g(se)o(g-)1974 4624 y(mentation)g(and)h(dictionary)f(construction)f(w)o(as)k(proposed) c(in)j([3)o(],)1974 4719 y(which)c(pointed)g(out)h(the)g(importance)e (of)i(combinatorial)e(analysis)1974 4814 y(of)g(a)i(lar)o(ge)d(set)j (of)f(potential)e(motifs)i(jointly)-5 b(,)17 b(so)h(that)g(some)g (depen-)1974 4908 y(dencies)29 b(among)f(motifs)i(can)f(be)h(captured.) 52 b(A)30 b(similar)g(`w)o(ord-)1974 5003 y(enumeration')25 b(idea)i(also)h(appeared)d(in)j([17)n(].)47 b(Recently)-5 b(,)29 b(Gupta)1974 5097 y(and)f(Liu)h([9)o(])g(e)o(xtended)e(the)h (dictionary)f(model)h(to)h(a)g(stochastic)p 1974 5171 V 2064 5227 a FF(1)2093 5250 y FH(Not)14 b(to)g(be)f(confused)i(with)f FE(motif)g(scan)p FH(,)g(the)g(task)g(of)f(searching)j(kno)n(wn)e (motifs)1974 5325 y(based)k(on)f(gi)n(v)o(en)h(position)h(weight)f (matrices,)h(as)d(addressed)j(in)e([7)q(].)p eop %%Page: 2 2 2 1 bop -182 83 a FJ(dictionary)18 b(\(SD\))i(model)f(by)g(replacing)g (the)h(w)o(ords)f(in)i(the)f(dictio-)-182 178 y(nary)h(with)h FL(pr)l(obabilistic)f(wor)m(d)h(matrices)p FJ(,)g(allo)n(wing)f (stochastic-)-182 272 y(ity)i(of)h(motif)e(instances)i(to)g(be)f (modeled.)33 b(Man)o(y)23 b(of)g(these)h(meth-)-182 367 y(ods)j(are)g(widely)g(used)g(and)g(ha)n(v)o(e)g(been)g(successful)g (empirically)-182 462 y(for)g(motif)g(detection)f(in)i(well)g(curated)f (bacterial)g(or)g(yeast)h(gene)-182 556 y(re)o(gulatory)13 b(sequences.)22 b(Ho)n(we)n(v)o(er)m(,)15 b(generalization)f(of)h (these)h(suc-)-182 651 y(cessful)k(results)h(to)g(longer)m(,)d(more)i (comple)o(x)e(and)i(weakly)g(charac-)-182 746 y(terized)25 b(input)g(sequences)g(such)h(as)h(those)e(from)g(higher)g(eukary-)-182 840 y(otic)31 b(genomes)g(seems)h(less)h(immediate.)58 b(A)32 b(recent)f(surv)o(e)o(y)f(by)-182 935 y(Eisen)57 b([6)o(])28 b(raises)h(concerns)e(o)o(v)o(er)g(the)h(inability)g(of)g (some)g(con-)-182 1029 y(temporary)i(motif)i(models)h(to)f(incorporate) f(biological)g(kno)n(wl-)-182 1124 y(edge)17 b(of)h(global)g(motif)f (distrib)n(ution,)g(motif)h(structures)g(and)f(motif)-182 1219 y(sequence)i(composition.)-83 1313 y(Recent)33 b(w)o(ork)f(has)h (tried)f(to)h(address)f(these)h(concerns)e(from)-182 1408 y(se)n(v)o(eral)f(dif)n(ferent)g(perspecti)n(v)o(e.)58 b(F)o(or)31 b(e)o(xample,)i(some)e(authors)-182 1503 y(ha)n(v)o(e)h(proposed)e(better)i(objecti)n(v)o(e)f(functions)h(for)f (motif)i(detec-)-182 1597 y(tion,)24 b(by)f(scoring)g(motifs)g(based)h (on)f(the)h(statistical)h(signi\002cance)-182 1692 y(of)18 b(the)g(information)e(content)h([11)o(])h(and)g(considering)e (cooperati)n(v)o(e)-182 1787 y(motif)35 b(binding)f(between)i(multiple) f(transcription)f(f)o(actors)i([8)o(].)-182 1881 y(V)-9 b(an)21 b(Helden)h(et)h(al.)f([10)o(])g(recently)f(suggested)h(using)f (a)i(signature)-182 1976 y(conserv)n(ation)e(pattern)h(to)h(constrain)g (the)g(motif)g(patterns)f(and)h(in-)-182 2071 y(corporating)j(gene)h(e) o(xpression)g(data)i(from)f(microarrays.)48 b(Frith)-182 2165 y(et)22 b(al.)g([7)o(])g(used)g(an)g(HMM)g(in)g(their)g(motif)f (scanner)g(to)h(model)f(the)-182 2260 y(possible)31 b(presence)g(of)g (clustered)g(motif)g(occurrences)f(in)i(com-)-182 2354 y(ple)o(x)21 b FL(cis)p FJ(-re)o(gulatory)e(sequences.)29 b(Though)20 b(these)i(attempts)g(head)-182 2449 y(in)k(the)h(direction) e(of)i(more)f(e)o(xpressi)n(v)o(e)f(motif)h(models,)h(it)h(is)f(not) -182 2544 y(clear)i(whether)f(these)h(ideas)h(can)f(be)g(inte)o(grated) f(to)h(assemble)g(a)-182 2638 y(po)n(werful)20 b(yet)j(transparent)d (and)i(computationally)e(ef)n(\002cient)i(mo-)-182 2733 y(tif)e(detection)f(algorithm.)-83 2828 y(W)-7 b(e)42 b(are)f(interested)f(in)g(de)n(v)o(eloping)e(a)j(principled)e(general) -182 2922 y(frame)n(w)o(ork)g(for)i(motif)g(modeling,)k(which)c(is)h(e) o(xpressi)n(v)o(e)e(\(in)-182 3017 y(terms)33 b(of)g(being)g(able)g(to) h(describe)f(internal)f(structures,)k(inter)n(-)-182 3112 y(motif)28 b(relations,)i(motif)e(ab)n(undances,)g(etc.,)j(and)d (readily)g(incor)n(-)-182 3206 y(porates)33 b(prior)f(kno)n(wledge)f (from)i(e)o(xperimental)e(biology\),)k(yet)-182 3301 y(mathematically)d(and)g(algorithmically)g(transparent)g(and)h(well-) -182 3396 y(structured,)28 b(hence)f(simplifying)g(model)g (construction,)h(compu-)-182 3490 y(tation)22 b(and)g(e)o(xtension.)32 b(In)22 b(a)i(recent)e(methodological)e(paper)m(,)i(we)-182 3585 y(brie\003y)32 b(laid)h(out)f(a)h(theoretical)f(foundation)e(for)j (modular)e(mo-)-182 3680 y(tif)25 b(models)g(where)f(we)i(made)e(e)o (xplicit)h(the)g(decomposition)e(of)h(a)-182 3774 y(full)30 b(motif)g(model)g(into)g(the)h(follo)n(wing)e(tw)o(o)i(components:)44 b(the)-182 3869 y FL(global)19 b(distrib)n(ution)i(model)p FJ(,)f(which)h(models)f(the)h(frequencies)e(of)-182 3963 y(dif)n(ferent)32 b(motifs)i(and)f(the)h(dependencies)e(between)h (motif)g(oc-)-182 4058 y(currences)f(in)h(a)h(sequence;)39 b(and)33 b(the)h FL(local)f(alignment)f(model)p FJ(,)-182 4153 y(which)h(captures)g(the)i(intrinsic)e(properties)g(within)h (motifs,)j(in-)-182 4247 y(cluding)14 b(characteristic)g(position)h (weight)g(matrices)g(\(PWMs\))h(and)-182 4342 y(site)29 b(dependencies)e([22)n(].)51 b(Based)29 b(on)f(this)h(frame)n(w)o(ork,) g(we)g(e)o(x-)-182 4437 y(tended)21 b(the)i(con)m(v)o(entional)c (motif-alignment)h(model)i(into)g(a)h(v)o(ery)-182 4531 y(e)o(xpressi)n(v)o(e)14 b(hierarchical)h(Bayesian)h(Mark)o(o)o(vian)e (model,)i(called)f(a)-182 4626 y(hidden)i(Mark)o(o)o(v)g (Dirichlet-Multinomial)f(\(HMDM\))i(model,)g(for)-182 4721 y(local)29 b(alignment,)h(which)f(successfully)g(captures)f (internal)h(mo-)-182 4815 y(tif)17 b(structure)g(and)g(incorporates)e (prior)i(kno)n(wledge)e(from)h(biologi-)-182 4910 y(cally)i(kno)n(wn)e (motifs)i(using)g(a)g(structured)f(Bayesian)h(prior)f(model)-182 5005 y(for)22 b(the)h(PWMs)g(of)g(motifs.)32 b(In)23 b(the)g(current)e(paper)m(,)h(we)h(inte)o(grate)-182 5099 y(the)d(HMDM)g(model)f(into)h(a)h(general)e(frame)n(w)o(ork)f(for) i(the)g(model-)-182 5194 y(ing)25 b(of)g(motif-containing)d(biopolymer) h(sequences)i(and)g(present)-182 5288 y(a)20 b(fully)f(implemented)f (motif)i(detector)f(de)n(v)o(eloped)e(based)j(on)f(this)1974 83 y(frame)n(w)o(ork.)28 b(This)22 b(frame)n(w)o(ork)d(uses)k(the)f (HMDM)g(model)f(as)h(the)1974 178 y(local)c(alignment)f(submodel)f(and) i(uses)g(a)h(ne)n(wly)e(designed)g(HMM)1974 272 y(that)35 b(we)h(describe)e(here)h(for)f(the)i(global)e(submodel.)68 b(A)36 b FL(vari-)1974 367 y(ational)30 b(EM)h(algorithm)g FJ(is)h(de)n(v)o(eloped)c(for)j(ef)n(\002cient)f(Bayesian)1974 462 y(learning)25 b(and)g(prediction.)41 b(W)-7 b(e)27 b(call)f(our)g(frame)n(w)o(ork)e FK(LOGOS)p FJ(,)1974 556 y(for)19 b(inte)o(grated)g FK(LO)p FJ(cal)h(and)g FK(G)p FJ(l)p FK(O)p FJ(bal)g(motif)f FK(S)p FJ(equence)g(model)3863 526 y FG(2)3897 556 y FJ(.)1974 796 y FM(2)99 b(LOGOS:)50 b(A)g(Modular)g(Generati)o(v)o(e)g(Frame-)2123 907 y(w)o(ork)26 b(f)n(or)e(Motif)h(Sequences)1974 1131 y FD(2.1)90 b(Pr)n(eliminaries) 2073 1347 y FJ(Motifs)34 b(are)g(short)g(stochastic)g(string)f (patterns)g(scattered)h(in)1974 1441 y(biopolymer)14 b(sequences)i(such)g(as)h(DN)m(A)h(and)e(proteins.)22 b(The)17 b(char)n(-)1974 1536 y(acteristic)i(sequence)e(patterns)h(of)g (motifs)g(and)g(their)g(locations)g(of-)1974 1631 y(ten)i(relate)h(to)f (potentially)f(important)g(biological)g(functions)g(such)1974 1725 y(as)g(serving)e(as)h(the)g FL(cis)p FJ(-elements)g(for)f(gene)g (re)o(gulation)f(or)i(the)g(cat-)1974 1820 y(alytic)f(sites)i(for)e (protein)g(acti)n(vity)-5 b(.)23 b(Numerous)16 b(biological)g(studies) 1974 1915 y(ha)n(v)o(e)31 b(re)n(v)o(ealed)g(rich)h(architecture)f(in)h (the)g(global)f(or)o(ganization)1974 2009 y(and)h(the)g(internal)f (structures)h(of)g(motifs)g(in)g(higher)f(eukaryotic)1974 2104 y(or)o(ganisms.)51 b(T)-7 b(aking)29 b(DN)m(A)h(motifs)f(as)i(an)e (e)o(xample,)i(it)f(is)h(well)1974 2199 y(kno)n(wn)21 b(that)h(the)g FL(cis)p FJ(-re)o(gulatory)e(elements)i(often)g(occur)f (in)h(clus-)1974 2293 y(ters)h(\(referred)e(to)h(as)i FL(cis)p FJ(-modules\),)d(possibly)h(for)g(eliciting)h(syn-)1974 2388 y(er)o(gistic)d(or)g(more)f(rob)n(ust)h(re)o(gulatory)e(signals)j ([4)o(].)k(The)20 b(biophys-)1974 2482 y(ical)k(mechanisms)g(of)g(DN)m (A-protein)e(interactions)h(at)i(the)f(motif-)1974 2577 y(binding)f(sites)j(further)d(suggest)i(that)g(the)f(sites)i(within)f (the)g(DN)m(A)1974 2672 y(motifs)35 b(are)g(not)g(necessarily)f (uniformly)f(conserv)o(ed)g([21)o(,)i(20)o(].)1974 2766 y(Rather)m(,)c(the)e(conserv)n(ation)e(pattern)h(may)h(be)g(subject)g (to)g(a)h(con-)1974 2861 y(straint)25 b(imposed)f(by)h(the)g(structure) f(of)h(the)g(binding)f(protein,)g(re-)1974 2956 y(sulting)16 b(in)g(the)g(so-called)g(\223shape\224)f(bias)i(\(Figure)e(1\).)24 b(These)16 b FL(meta-)1974 3050 y(sequence)26 b(featur)m(es)g FJ(of)h(motif)f(structure)g(raise)h(signi\002cant)g(chal-)1974 3145 y(lenges)20 b(to)h(con)m(v)o(entional)c(motif-\002nding)h (algorithms,)h(which)h(pri-)1974 3240 y(marily)26 b(rely)h(on)f (simplifying)g(independence)e(assumptions)i(that)1974 3334 y(decouple)i(\(potential\))h(associations)h(among)e(sites)k (within)e(each)1974 3429 y(single)25 b(motif)f(and)h(among)e(multiple)i (instances)g(of)g(motifs.)39 b(\(F)o(or)1974 3524 y(e)o(xample,)17 b(the)h(con)m(v)o(entional)d(product)i(multinomial)f(model)i(to)g(be) 1974 3618 y(described)e(shortly)i(w)o(ould)f(assign)h(equal)f (probability)f(to)i(both)f(the)1974 3713 y(original)i(motif)h(and)f (its)i(permuted)e(v)o(ersion)g(in)h(Figure)g(1\).)2073 3807 y(In)27 b(the)f(follo)n(wing)f(paragraph,)g(we)i(introduce)d(the)j (necessary)1974 3902 y(notation)20 b(for)g(our)g(presentation.)26 b(Note)21 b(that)g(to)g(simplify)f(the)h(pre-)1974 3997 y(sentation,)i(we)g(use)g(DN)m(A)g(motifs)g(as)h(a)f(running)e(e)o (xample,)h(b)n(ut)g(it)1974 4091 y(should)27 b(be)h(clear)g(that)g(our) f(technique)g(is)i(readily)e(applicable)g(to)1974 4186 y(protein)19 b(motifs.)2073 4281 y(W)-7 b(e)33 b(denote)e(a)h(re)o (gulatory)d(DN)m(A)j(sequence)e(by)h(a)h(character)1974 4375 y(string)17 b FC(y)26 b FB(=)d(\()p FC(y)2409 4387 y FA(1)2446 4375 y FC(;)14 b(:)g(:)g(:)f(;)h(y)2671 4387 y Fz(T)2723 4375 y FB(\))24 b Fy(2)f(f)p FJ(A,T)-6 b(,C,G)o Fy(g)3223 4345 y Fz(T)3275 4375 y FJ(.)24 b(An)18 b(indicator)e(string) 1974 4470 y FC(x)30 b FJ(signals)g(the)f(locations)g(of)g(the)g(motif)g (occurrences.)50 b(F)o(ollo)n(w-)1974 4565 y(ing)31 b(biological)f(con) m(v)o(ention,)h(we)h(denote)f(the)g FL(multi-alignment)1974 4659 y FJ(of)21 b FC(M)30 b FJ(instances)21 b(of)g(a)g(motif)g(of)f (length)h FC(L)g FJ(by)f(an)h FC(M)28 b Fy(\002)19 b FC(L)i FJ(matrix)1974 4754 y Fx(A)p FJ(,)26 b(of)e(which)g(each)h FL(column)e FJ(corresponds)g(to)h(a)h FL(position)f FJ(or)g FL(site)1974 4849 y FJ(in)g(the)g(motif.)35 b(The)24 b(multi-alignment)d(of)j(all)g(instances)g(of)g(motif)p 1974 4946 788 4 v 2064 5002 a FF(2)2093 5025 y FH(Not)17 b(to)f(be)g(confused)h(with)g(\223)p FE(lo)o(go)p FH(,)-5 b(\224)18 b(a)e(graphic)h(representation)j(of)c(an)g(aligned)1974 5100 y(set)27 b(of)f(biopolymer)j(sequences)f(\002rst)f(introduced)i (by)e(T)-5 b(om)25 b(Schneider)k([19)q(])d(to)1974 5175 y(help)18 b(visualizing)i(the)e(consensus)g(and)g(the)g(entrop)o(y)h (\(or)e(\223information\224\))j(patterns)1974 5250 y(of)i(monomer)g (frequencies.)39 b(A)22 b FE(lo)o(go)h FH(is)f(not)h(a)f(motif)h (\002nding)g(algorithm,)i(b)o(ut)d(is)1974 5325 y(often)c(used)f(as)g (a)g(w)o(ay)h(to)f(present)i(motifs)e(visually)l(.)p eop %%Page: 3 3 3 2 bop -209 137 a FH(gal4:)-65 199 y @beginspecial 0 @llx 0 @lly 510 @urx 141 @ury 864 @rwi @setspecial %%BeginDocument: yeast_motifs/gal4.back.align.fasta.eps %!PS-Adobe-3.0 EPSF-3.0 %%Title: Sequence Logo: %%Creator: seqlogo (1.0) %%CreationDate: %%BoundingBox: 0 0 510 141 %%Pages: 0 %%DocumentFonts: %%EndComments % * seq_1 % * seq_2 % * seq_3 % * seq_4 % * seq_5 % * seq_6 % * seq_7 % * seq_8 % * seq_9 % * seq_10 % * seq_11 % * seq_12 % * seq_13 % * seq_14 % * NUCLEOTIDE ALIGNMENT % ---- CONSTANTS ---- /cmfactor 72 2.54 div def % defines points -> cm conversion /cm {cmfactor mul} bind def % defines centimeters % ---- VARIABLES ---- /black [0 0 0] def /red [0.8 0 0] def /green [0 0.8 0] def /blue [0 0 0.8] def /yellow [1 0.71 .0] def /purple [0.8 0 0.8] def /orange [1 0.7 0] def /logoWidth 18 cm def /logoHeight 5 cm def /logoTitle () def /yaxis true def /yaxisLabel (bits) def /yaxisBits 2 def % bits /xaxis true def /xaxisLabel ( ) def /showEnds (d) def % d: DNA, p: PROTEIN, -: none /showFineprint true def /fineprint () def /charsPerLine 17 def /logoLines 1 def /showingBox (n) def %n s f /shrinking false def /shrink 1 def /outline false def /IbeamFraction 1 def /IbeamGray 0.75 def /IbeamLineWidth 0.5 def /fontsize 12 def /titleFontsize 14 def /smallFontsize 6 def /defaultColor black def % Standard DNA/RNA color scheme /colorDict << (G) orange (T) red (C) blue (A) green (U) red >> def % Standard DNA/RNA color scheme % /colorDict << % (G) orange % (T) red % (C) blue % (A) green % (U) red % >> def % Standard Amino Acid colors %/colorDict << % (G) green % (S) green % (T) green % (Y) green % (C) green % (N) purple % (Q) purple % (K) blue % (R) blue % (H) blue % (D) red % (E) red % (P) black % (A) black % (W) black % (F) black % (L) black % (I) black % (M) black % (V) black %>> def % ---- DERIVED PARAMETERS ---- /leftMargin fontsize 2.5 mul def /bottomMargin fontsize 0.75 mul % Add extra room for axis xaxis {fontsize 1.75 mul add } if xaxisLabel () eq {} {fontsize 0.75 mul add} ifelse def /topMargin logoTitle () eq { 10 }{titleFontsize 4 add} ifelse def /rightMargin %Add extra room if showing ends showEnds (-) eq { fontsize}{fontsize 1.5 mul} ifelse def /yaxisHeight logoHeight bottomMargin sub topMargin sub def /ticWidth fontsize 2 div def /pointsPerBit yaxisHeight yaxisBits div def /isBoxed showingBox (s) eq showingBox (f) eq or { true } { false } ifelse def /stackMargin 1 def % Do not add space aroung characters if characters are boxed /charRightMargin isBoxed { 0.0 } {stackMargin} ifelse def /charTopMargin isBoxed { 0.0 } {stackMargin} ifelse def /charWidth logoWidth leftMargin sub rightMargin sub charsPerLine div charRightMargin sub def /charWidth4 charWidth 4 div def /charWidth2 charWidth 2 div def /stackWidth charWidth charRightMargin add def /numberFontsize fontsize charWidth lt {fontsize}{charWidth} ifelse def % movements to place 5'/N and 3'/C symbols /leftEndDeltaX fontsize neg def /leftEndDeltaY fontsize 1.5 mul neg def /rightEndDeltaX fontsize 0.25 mul def /rightEndDeltaY leftEndDeltaY def % Outline width is proporional to charWidth, % but no less that 1 point /outlinewidth charWidth 32 div dup 1 gt {}{pop 1} ifelse def % ---- PROCEDURES ---- /StartLogo { % Save state save gsave % Print Logo Title, top center gsave SetTitleFont logoWidth 2 div logoTitle stringwidth pop 2 div sub logoHeight logoLines mul titleFontsize sub moveto logoTitle show grestore % Print X-axis label, bottom center gsave SetStringFont logoWidth 2 div xaxisLabel stringwidth pop 2 div sub fontsize 3 div moveto xaxisLabel show grestore % Show Fine Print showFineprint { gsave SetSmallFont logoWidth fineprint stringwidth pop sub smallFontsize sub smallFontsize 3 div moveto fineprint show grestore } if % Move to lower left corner of last line, first stack leftMargin bottomMargin translate % Move above first line ready for StartLine 0 logoLines logoHeight mul translate SetLogoFont } bind def /EndLogo { grestore showpage restore } bind def /StartLine{ % move down to the bottom of the line: 0 logoHeight neg translate gsave yaxis { MakeYaxis } if xaxis { ShowLeftEnd } if } bind def /EndLine{ xaxis { ShowRightEnd } if grestore } bind def /MakeYaxis { gsave stackMargin neg 0 translate ShowYaxisBar ShowYaxisLabel grestore } bind def /ShowYaxisBar { gsave SetStringFont /str 10 string def % string to hold number /smallgap stackMargin 2 div def % Draw first tic and bar gsave ticWidth neg 0 moveto ticWidth 0 rlineto 0 yaxisHeight rlineto stroke grestore % Draw the tics % initial increment limit proc for 0 1 yaxisBits abs cvi {/loopnumber exch def % convert the number coming from the loop to a string % and find its width loopnumber 10 str cvrs /stringnumber exch def % string representing the number stringnumber stringwidth pop /numberwidth exch def % width of number to show /halfnumberheight stringnumber CharBoxHeight 2 div def numberwidth % move back width of number neg loopnumber pointsPerBit mul % shift on y axis halfnumberheight sub % down half the digit moveto % move back the width of the string ticWidth neg smallgap sub % Move back a bit more 0 rmoveto % move back the width of the tic stringnumber show smallgap 0 rmoveto % Make a small gap % now show the tic mark 0 halfnumberheight rmoveto % shift up again ticWidth 0 rlineto stroke } for grestore } bind def /ShowYaxisLabel { gsave SetStringFont ticWidth neg 2.75 mul yaxisHeight yaxisLabel stringwidth pop sub 2 div translate 90 rotate 0 0 moveto yaxisLabel show grestore } bind def /StartStack { % startstack xaxis {MakeNumber}{pop} ifelse gsave } bind def /EndStack { grestore stackWidth 0 translate } bind def % Draw a character whose height is proportional to symbol bits /MakeSymbol{ % charbits character MakeSymbol gsave /char exch def /bits exch def /bitsHeight bits pointsPerBit mul def /charHeight bitsHeight charTopMargin sub dup 0.0 gt {}{pop 0.0} ifelse % if neg replace with zero def charHeight 0.0 gt { char SetColor charWidth charHeight char ShowChar showingBox (s) eq { % Unfilled box 0 0 charWidth charHeight false ShowBox } if showingBox (f) eq { % Filled box 0 0 charWidth charHeight true ShowBox } if } if grestore 0 bitsHeight translate } bind def /ShowChar { % ShowChar gsave /tc exch def % The character /ysize exch def % the y size of the character /xsize exch def % the x size of the character /xmulfactor 1 def /ymulfactor 1 def % if ysize is negative, make everything upside down! ysize 0 lt { % put ysize normal in this orientation /ysize ysize abs def xsize ysize translate 180 rotate } if shrinking { xsize 1 shrink sub 2 div mul ysize 1 shrink sub 2 div mul translate shrink shrink scale } if % Calculate the font scaling factors % Loop twice to catch small correction due to first scaling 2 { gsave xmulfactor ymulfactor scale ysize % desired size of character in points tc CharBoxHeight dup 0.0 ne { div % factor by which to scale up the character /ymulfactor exch def } % end if {pop pop} ifelse xsize % desired size of character in points tc CharBoxWidth dup 0.0 ne { div % factor by which to scale up the character /xmulfactor exch def } % end if {pop pop} ifelse grestore } repeat % Adjust horizontal position if the symbol is an I tc (I) eq { charWidth 2 div % half of requested character width tc CharBoxWidth 2 div % half of the actual character sub 0 translate % Avoid x scaling for I /xmulfactor 1 def } if % ---- Finally, draw the character newpath xmulfactor ymulfactor scale % Move lower left corner of character to start point tc CharBox pop pop % llx lly : Lower left corner exch neg exch neg moveto outline { % outline characters: outlinewidth setlinewidth tc true charpath gsave 1 setgray fill grestore clip stroke } { % regular characters tc show } ifelse grestore } bind def /ShowBox { % x1 y1 x2 y2 filled ShowBox gsave /filled exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath clip filled { fill }{ 0 setgray stroke } ifelse grestore } bind def /MakeNumber { % number MakeNumber gsave SetNumberFont stackWidth 0 translate 90 rotate % rotate so the number fits dup stringwidth pop % find the length of the number neg % prepare for move stackMargin sub % Move back a bit charWidth (0) CharBoxHeight % height of numbers sub 2 div % moveto % move back to provide space show grestore } bind def /Ibeam{ % heightInBits Ibeam gsave % Make an Ibeam of twice the given height in bits /height exch pointsPerBit mul def /heightDRAW height IbeamFraction mul def IbeamLineWidth setlinewidth IbeamGray setgray charWidth2 height neg translate ShowIbar newpath 0 0 moveto 0 heightDRAW rlineto stroke newpath 0 height moveto 0 height rmoveto currentpoint translate ShowIbar newpath 0 0 moveto 0 heightDRAW neg rlineto currentpoint translate stroke grestore } bind def /ShowIbar { % make a horizontal bar gsave newpath charWidth4 neg 0 moveto charWidth4 0 lineto stroke grestore } bind def /ShowLeftEnd { gsave SetStringFont leftEndDeltaX leftEndDeltaY moveto showEnds (d) eq {(5) show ShowPrime} if showEnds (p) eq {(N) show} if grestore } bind def /ShowRightEnd { gsave SetStringFont rightEndDeltaX rightEndDeltaY moveto showEnds (d) eq {(3) show ShowPrime} if showEnds (p) eq {(C) show} if grestore } bind def /ShowPrime { gsave SetPrimeFont (\242) show grestore } bind def /SetColor{ % SetColor dup colorDict exch known { colorDict exch get aload pop setrgbcolor } { pop defaultColor aload pop setrgbcolor } ifelse } bind def % define fonts /SetTitleFont {/Times-Bold findfont titleFontsize scalefont setfont} bind def /SetLogoFont {/Helvetica-Narrow-Bold findfont charWidth scalefont setfont} bind def /SetStringFont{/Helvetica-Bold findfont fontsize scalefont setfont} bind def /SetPrimeFont {/Symbol findfont fontsize scalefont setfont} bind def /SetSmallFont {/Helvetica findfont smallFontsize scalefont setfont} bind def /SetNumberFont { /Helvetica-Bold findfont numberFontsize scalefont setfont } bind def %Take a single character and return the bounding box /CharBox { % CharBox gsave newpath 0 0 moveto % take the character off the stack and use it here: true charpath flattenpath pathbbox % compute bounding box of 1 pt. char => lx ly ux uy % the path is here, but toss it away ... grestore } bind def % The height of a characters bounding box /CharBoxHeight { % CharBoxHeight CharBox exch pop sub neg exch pop } bind def % The width of a characters bounding box /CharBoxWidth { % CharBoxHeight CharBox pop exch pop sub neg } bind def % Deprecated names /startstack {StartStack} bind def /endstack {EndStack} bind def /makenumber {MakeNumber} bind def /numchar { MakeSymbol } bind def %%EndProlog %%Page: 1 1 StartLogo StartLine % line number 1 (1) startstack 2 (C) numchar endstack (2) startstack 2 (G) numchar endstack (3) startstack 0.11634054809708 (C) numchar 1.51242712526204 (G) numchar endstack (4) startstack 0.108725556853473 (C) numchar 0.144967409137964 (G) numchar 0.253692965991437 (A) numchar endstack (5) startstack 0.0407206306445807 (T) numchar 0.0407206306445807 (A) numchar 0.122161891933742 (C) numchar 0.366485675801227 (G) numchar endstack (6) startstack 0.0291662301012623 (T) numchar 0.0291662301012623 (A) numchar 0.174997380607574 (G) numchar 0.174997380607574 (C) numchar endstack (7) startstack 0.0407206306445807 (T) numchar 0.0407206306445807 (C) numchar 0.122161891933742 (G) numchar 0.366485675801227 (A) numchar endstack (8) startstack 0.0525850590083181 (T) numchar 0.262925295041591 (G) numchar 0.420680472066545 (C) numchar endstack (9) startstack 0.434902227413892 (A) numchar 0.579869636551856 (T) numchar endstack (10) startstack 0.0194716661732515 (A) numchar 0.038943332346503 (T) numchar 0.0973583308662574 (C) numchar 0.116829997039509 (G) numchar endstack (11) startstack 0.0646489772562787 (G) numchar 0.193946931768836 (C) numchar 0.646489772562788 (T) numchar endstack (12) startstack 0.0316673780383698 (T) numchar 0.0316673780383698 (G) numchar 0.0475010670575546 (A) numchar 0.110835823134294 (C) numchar endstack (13) startstack 0.0194716661732515 (A) numchar 0.038943332346503 (T) numchar 0.0973583308662574 (C) numchar 0.116829997039509 (G) numchar endstack (14) startstack 0.027815911190597 (G) numchar 0.0556318223811939 (A) numchar 0.0834477335717909 (C) numchar 0.222527289524776 (T) numchar endstack (15) startstack 0.201189603059667 (G) numchar 1.207137618358 (C) numchar endstack (16) startstack 2 (C) numchar endstack (17) startstack 2 (G) numchar endstack EndLine EndLogo %%EOF %%EndDocument @endspecial 754 63 a(gal4-)754 137 y(permute:)1017 199 y @beginspecial 0 @llx 0 @lly 510 @urx 141 @ury 864 @rwi @setspecial %%BeginDocument: yeast_motifs/gal4.back.permute.fasta.eps %!PS-Adobe-3.0 EPSF-3.0 %%Title: Sequence Logo: %%Creator: seqlogo (1.0) %%CreationDate: %%BoundingBox: 0 0 510 141 %%Pages: 0 %%DocumentFonts: %%EndComments % * seq_1 % * seq_2 % * seq_3 % * seq_4 % * seq_5 % * seq_6 % * seq_7 % * seq_8 % * seq_9 % * seq_10 % * seq_11 % * seq_12 % * seq_13 % * seq_14 % * NUCLEOTIDE ALIGNMENT % ---- CONSTANTS ---- /cmfactor 72 2.54 div def % defines points -> cm conversion /cm {cmfactor mul} bind def % defines centimeters % ---- VARIABLES ---- /black [0 0 0] def /red [0.8 0 0] def /green [0 0.8 0] def /blue [0 0 0.8] def /yellow [1 0.71 .0] def /purple [0.8 0 0.8] def /orange [1 0.7 0] def /logoWidth 18 cm def /logoHeight 5 cm def /logoTitle () def /yaxis true def /yaxisLabel (bits) def /yaxisBits 2 def % bits /xaxis true def /xaxisLabel ( ) def /showEnds (d) def % d: DNA, p: PROTEIN, -: none /showFineprint true def /fineprint () def /charsPerLine 17 def /logoLines 1 def /showingBox (n) def %n s f /shrinking false def /shrink 1 def /outline false def /IbeamFraction 1 def /IbeamGray 0.75 def /IbeamLineWidth 0.5 def /fontsize 12 def /titleFontsize 14 def /smallFontsize 6 def /defaultColor black def % Standard DNA/RNA color scheme /colorDict << (G) orange (T) red (C) blue (A) green (U) red >> def % Standard DNA/RNA color scheme % /colorDict << % (G) orange % (T) red % (C) blue % (A) green % (U) red % >> def % Standard Amino Acid colors %/colorDict << % (G) green % (S) green % (T) green % (Y) green % (C) green % (N) purple % (Q) purple % (K) blue % (R) blue % (H) blue % (D) red % (E) red % (P) black % (A) black % (W) black % (F) black % (L) black % (I) black % (M) black % (V) black %>> def % ---- DERIVED PARAMETERS ---- /leftMargin fontsize 2.5 mul def /bottomMargin fontsize 0.75 mul % Add extra room for axis xaxis {fontsize 1.75 mul add } if xaxisLabel () eq {} {fontsize 0.75 mul add} ifelse def /topMargin logoTitle () eq { 10 }{titleFontsize 4 add} ifelse def /rightMargin %Add extra room if showing ends showEnds (-) eq { fontsize}{fontsize 1.5 mul} ifelse def /yaxisHeight logoHeight bottomMargin sub topMargin sub def /ticWidth fontsize 2 div def /pointsPerBit yaxisHeight yaxisBits div def /isBoxed showingBox (s) eq showingBox (f) eq or { true } { false } ifelse def /stackMargin 1 def % Do not add space aroung characters if characters are boxed /charRightMargin isBoxed { 0.0 } {stackMargin} ifelse def /charTopMargin isBoxed { 0.0 } {stackMargin} ifelse def /charWidth logoWidth leftMargin sub rightMargin sub charsPerLine div charRightMargin sub def /charWidth4 charWidth 4 div def /charWidth2 charWidth 2 div def /stackWidth charWidth charRightMargin add def /numberFontsize fontsize charWidth lt {fontsize}{charWidth} ifelse def % movements to place 5'/N and 3'/C symbols /leftEndDeltaX fontsize neg def /leftEndDeltaY fontsize 1.5 mul neg def /rightEndDeltaX fontsize 0.25 mul def /rightEndDeltaY leftEndDeltaY def % Outline width is proporional to charWidth, % but no less that 1 point /outlinewidth charWidth 32 div dup 1 gt {}{pop 1} ifelse def % ---- PROCEDURES ---- /StartLogo { % Save state save gsave % Print Logo Title, top center gsave SetTitleFont logoWidth 2 div logoTitle stringwidth pop 2 div sub logoHeight logoLines mul titleFontsize sub moveto logoTitle show grestore % Print X-axis label, bottom center gsave SetStringFont logoWidth 2 div xaxisLabel stringwidth pop 2 div sub fontsize 3 div moveto xaxisLabel show grestore % Show Fine Print showFineprint { gsave SetSmallFont logoWidth fineprint stringwidth pop sub smallFontsize sub smallFontsize 3 div moveto fineprint show grestore } if % Move to lower left corner of last line, first stack leftMargin bottomMargin translate % Move above first line ready for StartLine 0 logoLines logoHeight mul translate SetLogoFont } bind def /EndLogo { grestore showpage restore } bind def /StartLine{ % move down to the bottom of the line: 0 logoHeight neg translate gsave yaxis { MakeYaxis } if xaxis { ShowLeftEnd } if } bind def /EndLine{ xaxis { ShowRightEnd } if grestore } bind def /MakeYaxis { gsave stackMargin neg 0 translate ShowYaxisBar ShowYaxisLabel grestore } bind def /ShowYaxisBar { gsave SetStringFont /str 10 string def % string to hold number /smallgap stackMargin 2 div def % Draw first tic and bar gsave ticWidth neg 0 moveto ticWidth 0 rlineto 0 yaxisHeight rlineto stroke grestore % Draw the tics % initial increment limit proc for 0 1 yaxisBits abs cvi {/loopnumber exch def % convert the number coming from the loop to a string % and find its width loopnumber 10 str cvrs /stringnumber exch def % string representing the number stringnumber stringwidth pop /numberwidth exch def % width of number to show /halfnumberheight stringnumber CharBoxHeight 2 div def numberwidth % move back width of number neg loopnumber pointsPerBit mul % shift on y axis halfnumberheight sub % down half the digit moveto % move back the width of the string ticWidth neg smallgap sub % Move back a bit more 0 rmoveto % move back the width of the tic stringnumber show smallgap 0 rmoveto % Make a small gap % now show the tic mark 0 halfnumberheight rmoveto % shift up again ticWidth 0 rlineto stroke } for grestore } bind def /ShowYaxisLabel { gsave SetStringFont ticWidth neg 2.75 mul yaxisHeight yaxisLabel stringwidth pop sub 2 div translate 90 rotate 0 0 moveto yaxisLabel show grestore } bind def /StartStack { % startstack xaxis {MakeNumber}{pop} ifelse gsave } bind def /EndStack { grestore stackWidth 0 translate } bind def % Draw a character whose height is proportional to symbol bits /MakeSymbol{ % charbits character MakeSymbol gsave /char exch def /bits exch def /bitsHeight bits pointsPerBit mul def /charHeight bitsHeight charTopMargin sub dup 0.0 gt {}{pop 0.0} ifelse % if neg replace with zero def charHeight 0.0 gt { char SetColor charWidth charHeight char ShowChar showingBox (s) eq { % Unfilled box 0 0 charWidth charHeight false ShowBox } if showingBox (f) eq { % Filled box 0 0 charWidth charHeight true ShowBox } if } if grestore 0 bitsHeight translate } bind def /ShowChar { % ShowChar gsave /tc exch def % The character /ysize exch def % the y size of the character /xsize exch def % the x size of the character /xmulfactor 1 def /ymulfactor 1 def % if ysize is negative, make everything upside down! ysize 0 lt { % put ysize normal in this orientation /ysize ysize abs def xsize ysize translate 180 rotate } if shrinking { xsize 1 shrink sub 2 div mul ysize 1 shrink sub 2 div mul translate shrink shrink scale } if % Calculate the font scaling factors % Loop twice to catch small correction due to first scaling 2 { gsave xmulfactor ymulfactor scale ysize % desired size of character in points tc CharBoxHeight dup 0.0 ne { div % factor by which to scale up the character /ymulfactor exch def } % end if {pop pop} ifelse xsize % desired size of character in points tc CharBoxWidth dup 0.0 ne { div % factor by which to scale up the character /xmulfactor exch def } % end if {pop pop} ifelse grestore } repeat % Adjust horizontal position if the symbol is an I tc (I) eq { charWidth 2 div % half of requested character width tc CharBoxWidth 2 div % half of the actual character sub 0 translate % Avoid x scaling for I /xmulfactor 1 def } if % ---- Finally, draw the character newpath xmulfactor ymulfactor scale % Move lower left corner of character to start point tc CharBox pop pop % llx lly : Lower left corner exch neg exch neg moveto outline { % outline characters: outlinewidth setlinewidth tc true charpath gsave 1 setgray fill grestore clip stroke } { % regular characters tc show } ifelse grestore } bind def /ShowBox { % x1 y1 x2 y2 filled ShowBox gsave /filled exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath clip filled { fill }{ 0 setgray stroke } ifelse grestore } bind def /MakeNumber { % number MakeNumber gsave SetNumberFont stackWidth 0 translate 90 rotate % rotate so the number fits dup stringwidth pop % find the length of the number neg % prepare for move stackMargin sub % Move back a bit charWidth (0) CharBoxHeight % height of numbers sub 2 div % moveto % move back to provide space show grestore } bind def /Ibeam{ % heightInBits Ibeam gsave % Make an Ibeam of twice the given height in bits /height exch pointsPerBit mul def /heightDRAW height IbeamFraction mul def IbeamLineWidth setlinewidth IbeamGray setgray charWidth2 height neg translate ShowIbar newpath 0 0 moveto 0 heightDRAW rlineto stroke newpath 0 height moveto 0 height rmoveto currentpoint translate ShowIbar newpath 0 0 moveto 0 heightDRAW neg rlineto currentpoint translate stroke grestore } bind def /ShowIbar { % make a horizontal bar gsave newpath charWidth4 neg 0 moveto charWidth4 0 lineto stroke grestore } bind def /ShowLeftEnd { gsave SetStringFont leftEndDeltaX leftEndDeltaY moveto showEnds (d) eq {(5) show ShowPrime} if showEnds (p) eq {(N) show} if grestore } bind def /ShowRightEnd { gsave SetStringFont rightEndDeltaX rightEndDeltaY moveto showEnds (d) eq {(3) show ShowPrime} if showEnds (p) eq {(C) show} if grestore } bind def /ShowPrime { gsave SetPrimeFont (\242) show grestore } bind def /SetColor{ % SetColor dup colorDict exch known { colorDict exch get aload pop setrgbcolor } { pop defaultColor aload pop setrgbcolor } ifelse } bind def % define fonts /SetTitleFont {/Times-Bold findfont titleFontsize scalefont setfont} bind def /SetLogoFont {/Helvetica-Narrow-Bold findfont charWidth scalefont setfont} bind def /SetStringFont{/Helvetica-Bold findfont fontsize scalefont setfont} bind def /SetPrimeFont {/Symbol findfont fontsize scalefont setfont} bind def /SetSmallFont {/Helvetica findfont smallFontsize scalefont setfont} bind def /SetNumberFont { /Helvetica-Bold findfont numberFontsize scalefont setfont } bind def %Take a single character and return the bounding box /CharBox { % CharBox gsave newpath 0 0 moveto % take the character off the stack and use it here: true charpath flattenpath pathbbox % compute bounding box of 1 pt. char => lx ly ux uy % the path is here, but toss it away ... grestore } bind def % The height of a characters bounding box /CharBoxHeight { % CharBoxHeight CharBox exch pop sub neg exch pop } bind def % The width of a characters bounding box /CharBoxWidth { % CharBoxHeight CharBox pop exch pop sub neg } bind def % Deprecated names /startstack {StartStack} bind def /endstack {EndStack} bind def /makenumber {MakeNumber} bind def /numchar { MakeSymbol } bind def %%EndProlog %%Page: 1 1 StartLogo StartLine % line number 1 (1) startstack 0.0407206306445807 (T) numchar 0.0407206306445807 (A) numchar 0.122161891933742 (C) numchar 0.366485675801227 (G) numchar endstack (2) startstack 2 (C) numchar endstack (3) startstack 2 (C) numchar endstack (4) startstack 0.108725556853473 (C) numchar 0.144967409137964 (G) numchar 0.253692965991437 (A) numchar endstack (5) startstack 0.0194716661732515 (A) numchar 0.038943332346503 (T) numchar 0.0973583308662574 (C) numchar 0.116829997039509 (G) numchar endstack (6) startstack 0.11634054809708 (C) numchar 1.51242712526204 (G) numchar endstack (7) startstack 0.0194716661732515 (A) numchar 0.038943332346503 (T) numchar 0.0973583308662574 (C) numchar 0.116829997039509 (G) numchar endstack (8) startstack 0.0407206306445807 (T) numchar 0.0407206306445807 (C) numchar 0.122161891933742 (G) numchar 0.366485675801227 (A) numchar endstack (9) startstack 0.434902227413892 (A) numchar 0.579869636551856 (T) numchar endstack (10) startstack 0.0316673780383698 (T) numchar 0.0316673780383698 (G) numchar 0.0475010670575546 (A) numchar 0.110835823134294 (C) numchar endstack (11) startstack 2 (G) numchar endstack (12) startstack 0.027815911190597 (G) numchar 0.0556318223811939 (A) numchar 0.0834477335717909 (C) numchar 0.222527289524776 (T) numchar endstack (13) startstack 2 (G) numchar endstack (14) startstack 0.0291662301012623 (T) numchar 0.0291662301012623 (A) numchar 0.174997380607574 (G) numchar 0.174997380607574 (C) numchar endstack (15) startstack 0.201189603059667 (G) numchar 1.207137618358 (C) numchar endstack (16) startstack 0.0646489772562787 (G) numchar 0.193946931768836 (C) numchar 0.646489772562788 (T) numchar endstack (17) startstack 0.0525850590083181 (T) numchar 0.262925295041591 (G) numchar 0.420680472066545 (C) numchar endstack EndLine EndLogo %%EOF %%EndDocument @endspecial -209 365 a(pho4:)-65 427 y @beginspecial 0 @llx 0 @lly 510 @urx 141 @ury 864 @rwi @setspecial %%BeginDocument: yeast_motifs/pho4.back.align.fasta.eps %!PS-Adobe-3.0 EPSF-3.0 %%Title: Sequence Logo: %%Creator: seqlogo (1.0) %%CreationDate: %%BoundingBox: 0 0 510 141 %%Pages: 0 %%DocumentFonts: %%EndComments % * seq_1 % * seq_2 % * seq_3 % * seq_4 % * seq_5 % * seq_6 % * seq_7 % * seq_8 % * seq_9 % * seq_10 % * NUCLEOTIDE ALIGNMENT % ---- CONSTANTS ---- /cmfactor 72 2.54 div def % defines points -> cm conversion /cm {cmfactor mul} bind def % defines centimeters % ---- VARIABLES ---- /black [0 0 0] def /red [0.8 0 0] def /green [0 0.8 0] def /blue [0 0 0.8] def /yellow [1 0.71 .0] def /purple [0.8 0 0.8] def /orange [1 0.7 0] def /logoWidth 18 cm def /logoHeight 5 cm def /logoTitle () def /yaxis true def /yaxisLabel (bits) def /yaxisBits 2 def % bits /xaxis true def /xaxisLabel ( ) def /showEnds (d) def % d: DNA, p: PROTEIN, -: none /showFineprint true def /fineprint () def /charsPerLine 13 def /logoLines 1 def /showingBox (n) def %n s f /shrinking false def /shrink 1 def /outline false def /IbeamFraction 1 def /IbeamGray 0.75 def /IbeamLineWidth 0.5 def /fontsize 12 def /titleFontsize 14 def /smallFontsize 6 def /defaultColor black def % Standard DNA/RNA color scheme /colorDict << (G) orange (T) red (C) blue (A) green (U) red >> def % Standard DNA/RNA color scheme % /colorDict << % (G) orange % (T) red % (C) blue % (A) green % (U) red % >> def % Standard Amino Acid colors %/colorDict << % (G) green % (S) green % (T) green % (Y) green % (C) green % (N) purple % (Q) purple % (K) blue % (R) blue % (H) blue % (D) red % (E) red % (P) black % (A) black % (W) black % (F) black % (L) black % (I) black % (M) black % (V) black %>> def % ---- DERIVED PARAMETERS ---- /leftMargin fontsize 2.5 mul def /bottomMargin fontsize 0.75 mul % Add extra room for axis xaxis {fontsize 1.75 mul add } if xaxisLabel () eq {} {fontsize 0.75 mul add} ifelse def /topMargin logoTitle () eq { 10 }{titleFontsize 4 add} ifelse def /rightMargin %Add extra room if showing ends showEnds (-) eq { fontsize}{fontsize 1.5 mul} ifelse def /yaxisHeight logoHeight bottomMargin sub topMargin sub def /ticWidth fontsize 2 div def /pointsPerBit yaxisHeight yaxisBits div def /isBoxed showingBox (s) eq showingBox (f) eq or { true } { false } ifelse def /stackMargin 1 def % Do not add space aroung characters if characters are boxed /charRightMargin isBoxed { 0.0 } {stackMargin} ifelse def /charTopMargin isBoxed { 0.0 } {stackMargin} ifelse def /charWidth logoWidth leftMargin sub rightMargin sub charsPerLine div charRightMargin sub def /charWidth4 charWidth 4 div def /charWidth2 charWidth 2 div def /stackWidth charWidth charRightMargin add def /numberFontsize fontsize charWidth lt {fontsize}{charWidth} ifelse def % movements to place 5'/N and 3'/C symbols /leftEndDeltaX fontsize neg def /leftEndDeltaY fontsize 1.5 mul neg def /rightEndDeltaX fontsize 0.25 mul def /rightEndDeltaY leftEndDeltaY def % Outline width is proporional to charWidth, % but no less that 1 point /outlinewidth charWidth 32 div dup 1 gt {}{pop 1} ifelse def % ---- PROCEDURES ---- /StartLogo { % Save state save gsave % Print Logo Title, top center gsave SetTitleFont logoWidth 2 div logoTitle stringwidth pop 2 div sub logoHeight logoLines mul titleFontsize sub moveto logoTitle show grestore % Print X-axis label, bottom center gsave SetStringFont logoWidth 2 div xaxisLabel stringwidth pop 2 div sub fontsize 3 div moveto xaxisLabel show grestore % Show Fine Print showFineprint { gsave SetSmallFont logoWidth fineprint stringwidth pop sub smallFontsize sub smallFontsize 3 div moveto fineprint show grestore } if % Move to lower left corner of last line, first stack leftMargin bottomMargin translate % Move above first line ready for StartLine 0 logoLines logoHeight mul translate SetLogoFont } bind def /EndLogo { grestore showpage restore } bind def /StartLine{ % move down to the bottom of the line: 0 logoHeight neg translate gsave yaxis { MakeYaxis } if xaxis { ShowLeftEnd } if } bind def /EndLine{ xaxis { ShowRightEnd } if grestore } bind def /MakeYaxis { gsave stackMargin neg 0 translate ShowYaxisBar ShowYaxisLabel grestore } bind def /ShowYaxisBar { gsave SetStringFont /str 10 string def % string to hold number /smallgap stackMargin 2 div def % Draw first tic and bar gsave ticWidth neg 0 moveto ticWidth 0 rlineto 0 yaxisHeight rlineto stroke grestore % Draw the tics % initial increment limit proc for 0 1 yaxisBits abs cvi {/loopnumber exch def % convert the number coming from the loop to a string % and find its width loopnumber 10 str cvrs /stringnumber exch def % string representing the number stringnumber stringwidth pop /numberwidth exch def % width of number to show /halfnumberheight stringnumber CharBoxHeight 2 div def numberwidth % move back width of number neg loopnumber pointsPerBit mul % shift on y axis halfnumberheight sub % down half the digit moveto % move back the width of the string ticWidth neg smallgap sub % Move back a bit more 0 rmoveto % move back the width of the tic stringnumber show smallgap 0 rmoveto % Make a small gap % now show the tic mark 0 halfnumberheight rmoveto % shift up again ticWidth 0 rlineto stroke } for grestore } bind def /ShowYaxisLabel { gsave SetStringFont ticWidth neg 2.75 mul yaxisHeight yaxisLabel stringwidth pop sub 2 div translate 90 rotate 0 0 moveto yaxisLabel show grestore } bind def /StartStack { % startstack xaxis {MakeNumber}{pop} ifelse gsave } bind def /EndStack { grestore stackWidth 0 translate } bind def % Draw a character whose height is proportional to symbol bits /MakeSymbol{ % charbits character MakeSymbol gsave /char exch def /bits exch def /bitsHeight bits pointsPerBit mul def /charHeight bitsHeight charTopMargin sub dup 0.0 gt {}{pop 0.0} ifelse % if neg replace with zero def charHeight 0.0 gt { char SetColor charWidth charHeight char ShowChar showingBox (s) eq { % Unfilled box 0 0 charWidth charHeight false ShowBox } if showingBox (f) eq { % Filled box 0 0 charWidth charHeight true ShowBox } if } if grestore 0 bitsHeight translate } bind def /ShowChar { % ShowChar gsave /tc exch def % The character /ysize exch def % the y size of the character /xsize exch def % the x size of the character /xmulfactor 1 def /ymulfactor 1 def % if ysize is negative, make everything upside down! ysize 0 lt { % put ysize normal in this orientation /ysize ysize abs def xsize ysize translate 180 rotate } if shrinking { xsize 1 shrink sub 2 div mul ysize 1 shrink sub 2 div mul translate shrink shrink scale } if % Calculate the font scaling factors % Loop twice to catch small correction due to first scaling 2 { gsave xmulfactor ymulfactor scale ysize % desired size of character in points tc CharBoxHeight dup 0.0 ne { div % factor by which to scale up the character /ymulfactor exch def } % end if {pop pop} ifelse xsize % desired size of character in points tc CharBoxWidth dup 0.0 ne { div % factor by which to scale up the character /xmulfactor exch def } % end if {pop pop} ifelse grestore } repeat % Adjust horizontal position if the symbol is an I tc (I) eq { charWidth 2 div % half of requested character width tc CharBoxWidth 2 div % half of the actual character sub 0 translate % Avoid x scaling for I /xmulfactor 1 def } if % ---- Finally, draw the character newpath xmulfactor ymulfactor scale % Move lower left corner of character to start point tc CharBox pop pop % llx lly : Lower left corner exch neg exch neg moveto outline { % outline characters: outlinewidth setlinewidth tc true charpath gsave 1 setgray fill grestore clip stroke } { % regular characters tc show } ifelse grestore } bind def /ShowBox { % x1 y1 x2 y2 filled ShowBox gsave /filled exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath clip filled { fill }{ 0 setgray stroke } ifelse grestore } bind def /MakeNumber { % number MakeNumber gsave SetNumberFont stackWidth 0 translate 90 rotate % rotate so the number fits dup stringwidth pop % find the length of the number neg % prepare for move stackMargin sub % Move back a bit charWidth (0) CharBoxHeight % height of numbers sub 2 div % moveto % move back to provide space show grestore } bind def /Ibeam{ % heightInBits Ibeam gsave % Make an Ibeam of twice the given height in bits /height exch pointsPerBit mul def /heightDRAW height IbeamFraction mul def IbeamLineWidth setlinewidth IbeamGray setgray charWidth2 height neg translate ShowIbar newpath 0 0 moveto 0 heightDRAW rlineto stroke newpath 0 height moveto 0 height rmoveto currentpoint translate ShowIbar newpath 0 0 moveto 0 heightDRAW neg rlineto currentpoint translate stroke grestore } bind def /ShowIbar { % make a horizontal bar gsave newpath charWidth4 neg 0 moveto charWidth4 0 lineto stroke grestore } bind def /ShowLeftEnd { gsave SetStringFont leftEndDeltaX leftEndDeltaY moveto showEnds (d) eq {(5) show ShowPrime} if showEnds (p) eq {(N) show} if grestore } bind def /ShowRightEnd { gsave SetStringFont rightEndDeltaX rightEndDeltaY moveto showEnds (d) eq {(3) show ShowPrime} if showEnds (p) eq {(C) show} if grestore } bind def /ShowPrime { gsave SetPrimeFont (\242) show grestore } bind def /SetColor{ % SetColor dup colorDict exch known { colorDict exch get aload pop setrgbcolor } { pop defaultColor aload pop setrgbcolor } ifelse } bind def % define fonts /SetTitleFont {/Times-Bold findfont titleFontsize scalefont setfont} bind def /SetLogoFont {/Helvetica-Narrow-Bold findfont charWidth scalefont setfont} bind def /SetStringFont{/Helvetica-Bold findfont fontsize scalefont setfont} bind def /SetPrimeFont {/Symbol findfont fontsize scalefont setfont} bind def /SetSmallFont {/Helvetica findfont smallFontsize scalefont setfont} bind def /SetNumberFont { /Helvetica-Bold findfont numberFontsize scalefont setfont } bind def %Take a single character and return the bounding box /CharBox { % CharBox gsave newpath 0 0 moveto % take the character off the stack and use it here: true charpath flattenpath pathbbox % compute bounding box of 1 pt. char => lx ly ux uy % the path is here, but toss it away ... grestore } bind def % The height of a characters bounding box /CharBoxHeight { % CharBoxHeight CharBox exch pop sub neg exch pop } bind def % The width of a characters bounding box /CharBoxWidth { % CharBoxHeight CharBox pop exch pop sub neg } bind def % Deprecated names /startstack {StartStack} bind def /endstack {EndStack} bind def /makenumber {MakeNumber} bind def /numchar { MakeSymbol } bind def %%EndProlog %%Page: 1 1 StartLogo StartLine % line number 1 (1) startstack 0.0639035952556319 (C) numchar 0.255614381022528 (A) numchar 0.319517976278159 (T) numchar endstack (2) startstack 0.00580988110906624 (G) numchar 0.00580988110906624 (A) numchar 0.00871482166359936 (T) numchar 0.00871482166359936 (C) numchar endstack (3) startstack 0.0429049405545331 (G) numchar 0.0429049405545331 (C) numchar 0.0858098811090662 (A) numchar 0.257429643327199 (T) numchar endstack (4) startstack 0.00580988110906628 (T) numchar 0.00580988110906628 (G) numchar 0.00871482166359942 (C) numchar 0.00871482166359942 (A) numchar endstack (5) startstack 0.0956143810225276 (C) numchar 0.191228762045055 (G) numchar 0.191228762045055 (A) numchar endstack (6) startstack 0.255614381022528 (A) numchar 1.02245752409011 (C) numchar endstack (7) startstack 0.153100440641072 (G) numchar 1.37790396576965 (A) numchar endstack (8) startstack 2 (C) numchar endstack (9) startstack 2 (G) numchar endstack (10) startstack 2 (T) numchar endstack (11) startstack 0.255614381022528 (T) numchar 1.02245752409011 (G) numchar endstack (12) startstack 0.0639035952556319 (T) numchar 0.255614381022527 (C) numchar 0.319517976278159 (G) numchar endstack (13) startstack 0.0843220350552961 (T) numchar 0.168644070110592 (A) numchar 0.590254245387072 (G) numchar endstack EndLine EndLogo %%EOF %%EndDocument @endspecial 754 290 a(pho4-)754 365 y(permute:)1017 427 y @beginspecial 0 @llx 0 @lly 510 @urx 141 @ury 864 @rwi @setspecial %%BeginDocument: yeast_motifs/pho4.back.permute.fasta.eps %!PS-Adobe-3.0 EPSF-3.0 %%Title: Sequence Logo: %%Creator: seqlogo (1.0) %%CreationDate: %%BoundingBox: 0 0 510 141 %%Pages: 0 %%DocumentFonts: %%EndComments % * seq_1 % * seq_2 % * seq_3 % * seq_4 % * seq_5 % * seq_6 % * seq_7 % * seq_8 % * seq_9 % * seq_10 % * NUCLEOTIDE ALIGNMENT % ---- CONSTANTS ---- /cmfactor 72 2.54 div def % defines points -> cm conversion /cm {cmfactor mul} bind def % defines centimeters % ---- VARIABLES ---- /black [0 0 0] def /red [0.8 0 0] def /green [0 0.8 0] def /blue [0 0 0.8] def /yellow [1 0.71 .0] def /purple [0.8 0 0.8] def /orange [1 0.7 0] def /logoWidth 18 cm def /logoHeight 5 cm def /logoTitle () def /yaxis true def /yaxisLabel (bits) def /yaxisBits 2 def % bits /xaxis true def /xaxisLabel ( ) def /showEnds (d) def % d: DNA, p: PROTEIN, -: none /showFineprint true def /fineprint () def /charsPerLine 13 def /logoLines 1 def /showingBox (n) def %n s f /shrinking false def /shrink 1 def /outline false def /IbeamFraction 1 def /IbeamGray 0.75 def /IbeamLineWidth 0.5 def /fontsize 12 def /titleFontsize 14 def /smallFontsize 6 def /defaultColor black def % Standard DNA/RNA color scheme /colorDict << (G) orange (T) red (C) blue (A) green (U) red >> def % Standard DNA/RNA color scheme % /colorDict << % (G) orange % (T) red % (C) blue % (A) green % (U) red % >> def % Standard Amino Acid colors %/colorDict << % (G) green % (S) green % (T) green % (Y) green % (C) green % (N) purple % (Q) purple % (K) blue % (R) blue % (H) blue % (D) red % (E) red % (P) black % (A) black % (W) black % (F) black % (L) black % (I) black % (M) black % (V) black %>> def % ---- DERIVED PARAMETERS ---- /leftMargin fontsize 2.5 mul def /bottomMargin fontsize 0.75 mul % Add extra room for axis xaxis {fontsize 1.75 mul add } if xaxisLabel () eq {} {fontsize 0.75 mul add} ifelse def /topMargin logoTitle () eq { 10 }{titleFontsize 4 add} ifelse def /rightMargin %Add extra room if showing ends showEnds (-) eq { fontsize}{fontsize 1.5 mul} ifelse def /yaxisHeight logoHeight bottomMargin sub topMargin sub def /ticWidth fontsize 2 div def /pointsPerBit yaxisHeight yaxisBits div def /isBoxed showingBox (s) eq showingBox (f) eq or { true } { false } ifelse def /stackMargin 1 def % Do not add space aroung characters if characters are boxed /charRightMargin isBoxed { 0.0 } {stackMargin} ifelse def /charTopMargin isBoxed { 0.0 } {stackMargin} ifelse def /charWidth logoWidth leftMargin sub rightMargin sub charsPerLine div charRightMargin sub def /charWidth4 charWidth 4 div def /charWidth2 charWidth 2 div def /stackWidth charWidth charRightMargin add def /numberFontsize fontsize charWidth lt {fontsize}{charWidth} ifelse def % movements to place 5'/N and 3'/C symbols /leftEndDeltaX fontsize neg def /leftEndDeltaY fontsize 1.5 mul neg def /rightEndDeltaX fontsize 0.25 mul def /rightEndDeltaY leftEndDeltaY def % Outline width is proporional to charWidth, % but no less that 1 point /outlinewidth charWidth 32 div dup 1 gt {}{pop 1} ifelse def % ---- PROCEDURES ---- /StartLogo { % Save state save gsave % Print Logo Title, top center gsave SetTitleFont logoWidth 2 div logoTitle stringwidth pop 2 div sub logoHeight logoLines mul titleFontsize sub moveto logoTitle show grestore % Print X-axis label, bottom center gsave SetStringFont logoWidth 2 div xaxisLabel stringwidth pop 2 div sub fontsize 3 div moveto xaxisLabel show grestore % Show Fine Print showFineprint { gsave SetSmallFont logoWidth fineprint stringwidth pop sub smallFontsize sub smallFontsize 3 div moveto fineprint show grestore } if % Move to lower left corner of last line, first stack leftMargin bottomMargin translate % Move above first line ready for StartLine 0 logoLines logoHeight mul translate SetLogoFont } bind def /EndLogo { grestore showpage restore } bind def /StartLine{ % move down to the bottom of the line: 0 logoHeight neg translate gsave yaxis { MakeYaxis } if xaxis { ShowLeftEnd } if } bind def /EndLine{ xaxis { ShowRightEnd } if grestore } bind def /MakeYaxis { gsave stackMargin neg 0 translate ShowYaxisBar ShowYaxisLabel grestore } bind def /ShowYaxisBar { gsave SetStringFont /str 10 string def % string to hold number /smallgap stackMargin 2 div def % Draw first tic and bar gsave ticWidth neg 0 moveto ticWidth 0 rlineto 0 yaxisHeight rlineto stroke grestore % Draw the tics % initial increment limit proc for 0 1 yaxisBits abs cvi {/loopnumber exch def % convert the number coming from the loop to a string % and find its width loopnumber 10 str cvrs /stringnumber exch def % string representing the number stringnumber stringwidth pop /numberwidth exch def % width of number to show /halfnumberheight stringnumber CharBoxHeight 2 div def numberwidth % move back width of number neg loopnumber pointsPerBit mul % shift on y axis halfnumberheight sub % down half the digit moveto % move back the width of the string ticWidth neg smallgap sub % Move back a bit more 0 rmoveto % move back the width of the tic stringnumber show smallgap 0 rmoveto % Make a small gap % now show the tic mark 0 halfnumberheight rmoveto % shift up again ticWidth 0 rlineto stroke } for grestore } bind def /ShowYaxisLabel { gsave SetStringFont ticWidth neg 2.75 mul yaxisHeight yaxisLabel stringwidth pop sub 2 div translate 90 rotate 0 0 moveto yaxisLabel show grestore } bind def /StartStack { % startstack xaxis {MakeNumber}{pop} ifelse gsave } bind def /EndStack { grestore stackWidth 0 translate } bind def % Draw a character whose height is proportional to symbol bits /MakeSymbol{ % charbits character MakeSymbol gsave /char exch def /bits exch def /bitsHeight bits pointsPerBit mul def /charHeight bitsHeight charTopMargin sub dup 0.0 gt {}{pop 0.0} ifelse % if neg replace with zero def charHeight 0.0 gt { char SetColor charWidth charHeight char ShowChar showingBox (s) eq { % Unfilled box 0 0 charWidth charHeight false ShowBox } if showingBox (f) eq { % Filled box 0 0 charWidth charHeight true ShowBox } if } if grestore 0 bitsHeight translate } bind def /ShowChar { % ShowChar gsave /tc exch def % The character /ysize exch def % the y size of the character /xsize exch def % the x size of the character /xmulfactor 1 def /ymulfactor 1 def % if ysize is negative, make everything upside down! ysize 0 lt { % put ysize normal in this orientation /ysize ysize abs def xsize ysize translate 180 rotate } if shrinking { xsize 1 shrink sub 2 div mul ysize 1 shrink sub 2 div mul translate shrink shrink scale } if % Calculate the font scaling factors % Loop twice to catch small correction due to first scaling 2 { gsave xmulfactor ymulfactor scale ysize % desired size of character in points tc CharBoxHeight dup 0.0 ne { div % factor by which to scale up the character /ymulfactor exch def } % end if {pop pop} ifelse xsize % desired size of character in points tc CharBoxWidth dup 0.0 ne { div % factor by which to scale up the character /xmulfactor exch def } % end if {pop pop} ifelse grestore } repeat % Adjust horizontal position if the symbol is an I tc (I) eq { charWidth 2 div % half of requested character width tc CharBoxWidth 2 div % half of the actual character sub 0 translate % Avoid x scaling for I /xmulfactor 1 def } if % ---- Finally, draw the character newpath xmulfactor ymulfactor scale % Move lower left corner of character to start point tc CharBox pop pop % llx lly : Lower left corner exch neg exch neg moveto outline { % outline characters: outlinewidth setlinewidth tc true charpath gsave 1 setgray fill grestore clip stroke } { % regular characters tc show } ifelse grestore } bind def /ShowBox { % x1 y1 x2 y2 filled ShowBox gsave /filled exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath clip filled { fill }{ 0 setgray stroke } ifelse grestore } bind def /MakeNumber { % number MakeNumber gsave SetNumberFont stackWidth 0 translate 90 rotate % rotate so the number fits dup stringwidth pop % find the length of the number neg % prepare for move stackMargin sub % Move back a bit charWidth (0) CharBoxHeight % height of numbers sub 2 div % moveto % move back to provide space show grestore } bind def /Ibeam{ % heightInBits Ibeam gsave % Make an Ibeam of twice the given height in bits /height exch pointsPerBit mul def /heightDRAW height IbeamFraction mul def IbeamLineWidth setlinewidth IbeamGray setgray charWidth2 height neg translate ShowIbar newpath 0 0 moveto 0 heightDRAW rlineto stroke newpath 0 height moveto 0 height rmoveto currentpoint translate ShowIbar newpath 0 0 moveto 0 heightDRAW neg rlineto currentpoint translate stroke grestore } bind def /ShowIbar { % make a horizontal bar gsave newpath charWidth4 neg 0 moveto charWidth4 0 lineto stroke grestore } bind def /ShowLeftEnd { gsave SetStringFont leftEndDeltaX leftEndDeltaY moveto showEnds (d) eq {(5) show ShowPrime} if showEnds (p) eq {(N) show} if grestore } bind def /ShowRightEnd { gsave SetStringFont rightEndDeltaX rightEndDeltaY moveto showEnds (d) eq {(3) show ShowPrime} if showEnds (p) eq {(C) show} if grestore } bind def /ShowPrime { gsave SetPrimeFont (\242) show grestore } bind def /SetColor{ % SetColor dup colorDict exch known { colorDict exch get aload pop setrgbcolor } { pop defaultColor aload pop setrgbcolor } ifelse } bind def % define fonts /SetTitleFont {/Times-Bold findfont titleFontsize scalefont setfont} bind def /SetLogoFont {/Helvetica-Narrow-Bold findfont charWidth scalefont setfont} bind def /SetStringFont{/Helvetica-Bold findfont fontsize scalefont setfont} bind def /SetPrimeFont {/Symbol findfont fontsize scalefont setfont} bind def /SetSmallFont {/Helvetica findfont smallFontsize scalefont setfont} bind def /SetNumberFont { /Helvetica-Bold findfont numberFontsize scalefont setfont } bind def %Take a single character and return the bounding box /CharBox { % CharBox gsave newpath 0 0 moveto % take the character off the stack and use it here: true charpath flattenpath pathbbox % compute bounding box of 1 pt. char => lx ly ux uy % the path is here, but toss it away ... grestore } bind def % The height of a characters bounding box /CharBoxHeight { % CharBoxHeight CharBox exch pop sub neg exch pop } bind def % The width of a characters bounding box /CharBoxWidth { % CharBoxHeight CharBox pop exch pop sub neg } bind def % Deprecated names /startstack {StartStack} bind def /endstack {EndStack} bind def /makenumber {MakeNumber} bind def /numchar { MakeSymbol } bind def %%EndProlog %%Page: 1 1 StartLogo StartLine % line number 1 (1) startstack 0.0843220350552961 (T) numchar 0.168644070110592 (A) numchar 0.590254245387072 (G) numchar endstack (2) startstack 2 (G) numchar endstack (3) startstack 0.153100440641072 (G) numchar 1.37790396576965 (A) numchar endstack (4) startstack 0.255614381022528 (T) numchar 1.02245752409011 (G) numchar endstack (5) startstack 0.0639035952556319 (C) numchar 0.255614381022528 (A) numchar 0.319517976278159 (T) numchar endstack (6) startstack 2 (T) numchar endstack (7) startstack 0.00580988110906628 (T) numchar 0.00580988110906628 (G) numchar 0.00871482166359942 (C) numchar 0.00871482166359942 (A) numchar endstack (8) startstack 0.0956143810225276 (C) numchar 0.191228762045055 (G) numchar 0.191228762045055 (A) numchar endstack (9) startstack 2 (C) numchar endstack (10) startstack 0.0429049405545331 (G) numchar 0.0429049405545331 (C) numchar 0.0858098811090662 (A) numchar 0.257429643327199 (T) numchar endstack (11) startstack 0.00580988110906624 (G) numchar 0.00580988110906624 (A) numchar 0.00871482166359936 (T) numchar 0.00871482166359936 (C) numchar endstack (12) startstack 0.255614381022528 (A) numchar 1.02245752409011 (C) numchar endstack (13) startstack 0.0639035952556319 (T) numchar 0.255614381022527 (C) numchar 0.319517976278159 (G) numchar endstack EndLine EndLogo %%EOF %%EndDocument @endspecial -83 594 a Fw(Figure)21 b(1.)g FH(Shape)c(bias.)k(It)16 b(is)g(belie)n(v)o(ed)j(that)e(for)f(plausible)i(biological)-83 668 y(motifs)23 b(the)h(conserv)o(ed)h(sites)e(are)h(more)f(lik)o(ely)i (to)e(occur)h(consecuti)n(v)o(ely)-83 743 y(and)j(possibly)h(follo)n (wed)h(\(or)e(preceded\))i(by)e(heterogeneous)j(sites)d(that)-83 818 y(are)19 b(also)g(consecuti)n(v)o(e)j(\(rather)e(than)f (interspersed\).)28 b(Such)19 b(characteristic)-83 893 y(conserv)n(ation)26 b(patterns)f(of)d(the)h(sites)h(in)f(a)f(motif)h (are)h(often)f(re\003ected)i(in)-83 968 y(the)d(\223contour)i (shape\224)e(of)f(the)h(motif)g FE(lo)o(go)g FH(\(e.g.,)g FE(U-)f(or)g(bell-shaped)p FH(,)j(as)-83 1043 y(e)o(xhibited)18 b(by)d(motifs)g FE(gal4)h FH(and)f FE(pho4)p FH(,)h(respecti)n(v)o (ely\),)i(which)e(re\003ects)h(the)-83 1118 y FE(spatial)i FH(pattern)h(of)e(information)i(content)g(o)o(v)o(er)e(all)h(sites.)24 b(It)18 b(is)f(important)-83 1193 y(to)e(note)g(that)g(\223shape\224)h (is)e(only)h(associated)h(with)f(the)g(conserv)n(ation)i(pattern)-83 1268 y(of)g(a)g(motif)g(PWM,)f(b)o(ut)h Fv(not)f FH(with)i(an)o(y)f (speci\002c)h(consensus)g(sequences)g(of)-83 1343 y(the)g(motif.)-182 1568 y FL(k)31 b FJ(speci\002ed)g(by)f(the)h(indicator)f(string)g FC(x)i FJ(in)f(sequence)f FC(y)k FJ(is)e(de-)-182 1663 y(noted)23 b(by)h Fx(A)207 1633 y Fu(\()p Ft(k)q Fu(\))288 1663 y FB(\()p FC(x;)14 b(y)s FB(\))p FJ(.)39 b(W)-7 b(e)26 b(de\002ne)d(a)i FL(counting)e(matrix)h FC(h)p FB(\()p Fx(A)1672 1633 y Fu(\()p Ft(k)q Fu(\))1754 1663 y FB(\))-182 1758 y FJ(\(or)30 b FC(h)-6 1727 y Fu(\()p Ft(k)q Fu(\))75 1758 y FB(\()p FC(x;)14 b(y)s FB(\))p FJ(\))32 b(for)f(each)g(motif)f(alignment,)j(where)d(each)h(col-)-182 1852 y(umn)24 b FC(h)39 1864 y Fz(l)97 1852 y FB(=)33 b([)p FC(h)266 1864 y Fz(l)p FA(1)324 1852 y FC(;)14 b(:)g(:)g(:)g(;)g(h)557 1864 y Fz(l)p FA(4)615 1852 y FB(])638 1822 y Fs(0)687 1852 y FJ(is)27 b(an)e(inte)o(ger)g(v)o(ector) f(with)h(four)g(el-)-182 1947 y(ements,)i(specifying)d(the)i(number)e (of)i(occurrences)e(of)i(each)g(nu-)-182 2041 y(cleotide)20 b(\(nt\))h(at)g(position)g FC(l)i FJ(of)e(the)g(motif.)27 b(\(Similarly)21 b(we)g(de\002ne)-182 2136 y(the)c FL(counting)e (vector)i FC(h)518 2148 y Fz(bk)606 2136 y FJ(for)f(the)h(background)d (sequence)i FC(y)10 b Fy(\000)d Fx(A)p FJ(,)-182 2231 y(where)26 b(the)h(some)n(what)f(ab)n(usi)n(v)o(e)g(use)h(of)f(the)h (minus)f(sign)h(means)-182 2325 y(e)o(xcluding)13 b(all)k(motif)e (sub-sequences)g(in)h Fx(A)g FJ(from)f FC(y)s FJ(.\))24 b(W)-7 b(e)17 b(assume)-182 2420 y(that)h(the)g(nucleotides)e(at)j (position)e FC(l)j FJ(of)d(motif)h FL(k)g FJ(admit)g(a)g FL(position-)-182 2515 y(speci\002c)e(multinomial)f(distrib)n(ution)p FJ(,)i FC(\022)968 2476 y Fu(\()p Ft(k)q Fu(\))966 2540 y Fz(l)1049 2515 y FB(=)o([)p FC(\022)1177 2476 y Fu(\()p Ft(k)q Fu(\))1175 2540 y Fz(l)p FA(1)1259 2515 y FC(;)d(:)g(:)g(:)f(;)h (\022)1484 2476 y Fu(\()p Ft(k)q Fu(\))1482 2540 y Fz(l)p FA(4)1566 2515 y FB(])1589 2485 y Fs(0)1612 2515 y FJ(.)24 b(The)-182 2609 y(ordered)h(set)j(of)e(position-speci\002c)g (multinomial)f(parameters)h(of)-182 2704 y(all)40 b(positions)f(of)g (motif)g FC(k)s FJ(,)44 b FC(\022)762 2674 y Fu(\()p Ft(k)q Fu(\))879 2704 y FB(=)35 b Fy(f)p FC(\022)1062 2665 y Fu(\()p Ft(k)q Fu(\))1060 2726 y FA(1)1143 2704 y FC(;)14 b(:)g(:)g(:)g(;)g(\022)1369 2665 y Fu(\()p Ft(k)q Fu(\))1367 2737 y Ft(L)1407 2720 y Fu(\()p Ft(k)q Fu(\))1492 2704 y Fy(g)p FJ(,)44 b(is)c(re-)-182 2799 y(ferred)33 b(to)i(as)g(a)g FL(position)f(weight)h(matrix)g FJ(\(PWM\).)f(It)h(is)h(clear)-182 2893 y(that)29 b(the)h(counting)d (matrix)i FC(h)719 2863 y Fu(\()p Ft(k)q Fu(\))831 2893 y FJ(corresponds)e(to)j(the)f FL(suf)o(\002cient)-182 2988 y(statistics)40 b FJ(of)f(PWM)i FC(\022)537 2958 y Fu(\()p Ft(k)q Fu(\))618 2988 y FJ(.)83 b(F)o(ormally)-5 b(,)42 b(the)e(problem)e(of)h(mo-)-182 3083 y(tif)33 b(detection)e(is)j(that)f(of)f(inferring)f Fx(x)23 b FB(=)f Fy(f)p FC(x)1184 3052 y Fu(\(1\))1261 3083 y FC(;)14 b(:)g(:)g(:)g(;)g(x)1493 3052 y Fu(\()p Ft(N)5 b Fu(\))1592 3083 y Fy(g)32 b FJ(and)-182 3177 y(estimating)g Fr(\022)24 b FB(=)e Fy(f)p FC(\022)438 3147 y Fu(\(1\))515 3177 y FC(;)14 b(:)g(:)g(:)g(;)g(\022)741 3147 y Fu(\()p Ft(K)s Fu(\))840 3177 y Fy(g)p FJ(,)35 b(gi)n(v)o(en)c(a)i(set)h(of)e (sequences)-182 3272 y Fx(y)q FB(=)o Fy(f)p FC(y)19 3242 y Fu(\(1\))95 3272 y FC(;)14 b(:)g(:)g(:)g(;)g(y)324 3242 y Fu(\()p Ft(N)5 b Fu(\))422 3272 y Fy(g)484 3242 y FG(3)517 3272 y FJ(.)-182 3485 y FD(2.2)90 b(The)22 b(modular)g(motif)i(model)-83 3698 y FJ(W)m(ithout)i(loss)g(of)g (generality)-5 b(,)26 b(assume)g(that)g(the)g(occurrences)-182 3793 y(of)g(motifs)h(in)g(a)h(DN)m(A)f(sequence,)h(as)f(indicated)f(by) h FC(x)p FJ(,)i(are)e(go)o(v-)-182 3888 y(erned)i(by)g(a)i FK(global)e(distrib)n(ution)i(model)f FC(p)p FB(\()p FC(x)p Fy(j)p FB(\002)1366 3900 y Fz(g)1405 3888 y FC(;)14 b Fy(M)1542 3900 y Fz(g)1580 3888 y FB(\))p FJ(,)33 b(and)-182 3982 y(for)38 b(each)i(type)f(of)g(motif,)k(the)d(nucleotide)e (sequence)g(pattern)-182 4077 y(shared)21 b(by)h(all)h(its)h(instances) e(admits)h(a)f FK(local)g(alignment)h(model)-182 4172 y FC(p)p FB(\()p Fx(A)p FB(\()p FC(x;)14 b(y)s FB(\))p Fy(j)p FC(x;)g FB(\002)328 4184 y Fz(l)354 4172 y FC(;)g Fy(M)491 4184 y Fz(l)516 4172 y FB(\))p FJ(.)63 b(W)-7 b(e)33 b(further)e(assume)i(that)f(the)h(back-)-182 4266 y(ground)20 b(non-motif)h(sequences)h(are)h(modeled)f(by)g(a)i(simple)f (con-)-182 4361 y(ditional)36 b(model,)j FC(p)p FB(\()p FC(y)34 b Fy(\000)c Fx(A)p FB(\()p FC(y)s(;)14 b(x)p FB(\))p Fy(j)p FC(x;)g FB(\002)1058 4373 y Fz(bk)1129 4361 y FB(\))p FJ(,)41 b(where)36 b(the)h(back-)-182 4456 y(ground)30 b(nt-distrib)n(ution)g(parameters)h FB(\002)1054 4468 y Fz(bk)1157 4456 y FJ(are)h(assumed)g(to)h(be)-182 4550 y(estimated)26 b FL(a)g(priori)h FJ(from)e(the)h(entire)g (sequence.)43 b(The)26 b(symbols)-182 4645 y FB(\002)-117 4657 y Fz(g)-79 4645 y FJ(,)18 b FB(\002)25 4657 y Fz(l)50 4645 y FJ(,)h Fy(M)190 4657 y Fz(g)228 4645 y FJ(,)g Fy(M)368 4657 y Fz(l)411 4645 y FJ(stand)e(for)g(the)h(parameters)e (\(e.g.,)h(the)h(PWMs\))-182 4739 y(and)c(model)h(classes)i(\(e.g.,)e (a)h(product)d(multinomial)h(model\))g(in)i(the)-182 4834 y(respecti)n(v)o(e)23 b(submodels.)36 b(Thus,)25 b(the)f(lik)o(elihood)f(of)i(a)f(re)o(gulatory)-182 4929 y(sequence)19 b FC(y)k FJ(is:)p -182 5021 788 4 v -92 5077 a FF(3)-63 5100 y FH(F)o(or)14 b(simplicity)l(,)j(we)d(omit)h(the) g(superscript)h Fq(k)f FH(\(motif)g(type)g(inde)o(x\))h(of)e(v)n (ariable)-182 5175 y Fq(\022)21 b FH(and)f(the)h(superscript)g Fq(n)f FH(\(sequence)i(inde)o(x\))f(of)e(v)n(ariable)k Fq(x)c FH(and)h Fq(y)i FH(in)e(where)n(v)o(er)-182 5250 y(it)e(is)g(clear)h(from)f(the)g(conte)o(xt)i(that)f(we)f(are)h (focusing)g(on)f(a)g(generic)i(motif)e(type)h(or)-182 5325 y(a)e(generic)i(sequence.)2115 255 y FC(p)p FB(\()p FC(y)s Fy(j)p FB(\002)p FC(;)14 b Fy(M)p FB(\))23 b(=)2600 176 y Fp(X)2641 351 y Fz(x)2734 255 y FC(p)p FB(\()p FC(x)p Fy(j)p FB(\002)2943 267 y Fz(g)2982 255 y FC(;)14 b Fy(M)3119 267 y Fz(g)3157 255 y FB(\))p FC(p)p FB(\()p FC(y)s Fy(j)p FC(x;)g FB(\002)3479 267 y Fz(l)3504 255 y FC(;)g Fy(M)3641 267 y Fz(l)3666 255 y FB(\))2045 432 y(=)2133 353 y Fp(X)2174 527 y Fz(x)2266 432 y FC(p)p FB(\()p FC(x)p Fy(j)p FB(\002)2475 444 y Fz(g)2514 432 y FC(;)g Fy(M)2651 444 y Fz(g)2689 432 y FB(\))p FC(p)p FB(\()p Fx(A)p Fy(j)p FC(x;)g FB(\002)3039 444 y Fz(l)3065 432 y FC(;)g Fy(M)3202 444 y Fz(l)3227 432 y FB(\))p FC(p)p FB(\()p FC(y)n Fy(\000)-5 b Fx(A)p Fy(j)p FC(x;)14 b FB(\002)3676 444 y Fz(bk)3746 432 y FB(\))p FC(;)45 b FJ(\(1\))1974 693 y(where)37 b Fx(A)54 b Fo(,)g Fx(A)p FB(\()p FC(x;)14 b(y)s FB(\))p FJ(.)77 b(Note)37 b(that)h FB(\002)3250 705 y Fz(l)3313 693 y FJ(here)e(is)j(not)e(neces-)1974 787 y(sarily)30 b(equi)n(v)n(alent)f(to)h(the)g(PWMs)i(\()p Fr(\022)r FJ(\))e(of)g(the)g(motifs,)i(b)n(ut)f(is)g(a)1974 882 y(generic)23 b(symbol)g(for)g(parameters)g(of)h(a)g(more)f(general) g(model)g(of)1974 976 y(the)g(aligned)g(motif)g(instances.)35 b(\(E.g.,)23 b(in)h(the)g(HMDM)f(model)g(to)1974 1071 y(be)18 b(de\002ned)g(shortly)-5 b(,)17 b FB(\002)2665 1083 y Fz(l)2709 1071 y FJ(refers)h(to)h(the)f(hyperparameters)d(that)k (de-)1974 1166 y(scribe)h(a)g(distrib)n(ution)f(of)h(PWMs.\))2073 1260 y(Equation)38 b(\(1\))g(mak)o(es)g(e)o(xplicit)h(the)f(modular)g (structure)f(of)1974 1355 y(the)g FK(LOGOS)f FJ(frame)n(w)o(ork)f(for)h (generic)g(motif)g(models.)75 b(The)1974 1450 y(submodel)41 b FC(p)p FB(\()p FC(x)p Fy(j)p FB(\002)2549 1462 y Fz(g)2588 1450 y FC(;)14 b Fy(M)2725 1462 y Fz(g)2763 1450 y FB(\))43 b FJ(captures)f(properties)f(such)i(as)g(the)1974 1544 y(frequencies)33 b(of)h(dif)n(ferent)f(motifs)h(and)g(the)h (dependencies)e(be-)1974 1639 y(tween)22 b(motif)g(occurrences.)29 b(On)23 b(the)f(other)g(hand,)f(the)i(submodel)1974 1734 y FC(p)p FB(\()p Fx(A)p Fy(j)p FC(x;)14 b FB(\002)2292 1746 y Fz(l)2318 1734 y FC(;)g Fy(M)2455 1746 y Fz(l)2480 1734 y FB(\))j FJ(captures)f(the)g(intrinsic)g(properties)g(within)g (mo-)1974 1828 y(tifs)31 b(that)f(can)g(help)f(to)i(impro)o(v)o(e)d (sensiti)n(vity)h(and)h(speci\002city)g(to)1974 1923 y(genuine)24 b(motif)i(patterns.)42 b(Depending)24 b(on)i(the)g(v)n (alue)g(of)g(the)g(la-)1974 2018 y(tent)i(indicator)f FC(x)2498 2030 y Fz(t)2557 2018 y FJ(\(e.g.,)i(motif)e(or)h(not\))g(at) h(each)f(position)f FC(t)p FJ(,)k FC(y)3914 2030 y Fz(t)1974 2112 y FJ(admits)19 b(dif)n(ferent)f(probabilistic)g(distrib)n(utions,) g(such)h(as)h(a)g(partic-)1974 2207 y(ular)k(nucleotide)f(distrib)n (ution)g(inside)h(a)h(motif)f(or)g(a)h(background)1974 2301 y(distrib)n(ution.)2073 2396 y(F)o(or)d(e)o(xample,)f(the)h(con)m (v)o(entional)c FL(uniform)k(and)f(independent)1974 2491 y FJ(\(UI\))35 b(model)g(for)g(motif)h(start-positions)e(used)i(in)g (man)o(y)f(motif)1974 2585 y(\002nding)21 b(algorithms)h(is)h(an)g (instance)f(of)h(a)g(simple)f(global)g(model,)1974 2680 y(where)30 b(the)h(motif)g(instances)g(are)g(assumed)g(to)g(occur)f (indepen-)1974 2775 y(dently)17 b(with)h(uniform)e(probability)f(at)k (all)f(possible)g(locations)f(in)h(a)1974 2869 y(sequence.)27 b(So,)21 b FC(p)p FB(\()p FC(x)p FB(\))26 b(=)2726 2807 y Fp(Q)2804 2828 y Ft(M)2804 2894 y(m)p Fu(=1)2944 2869 y FC(p)p FB(\()p FC(x)3065 2881 y Fz(m)3129 2869 y FB(\))p FJ(,)c(where)e FC(p)p FB(\()p FC(x)3549 2881 y Fz(m)3614 2869 y FB(=)q FC(t)p FB(\))i FJ(is)g(the)1974 2964 y(mar)o(ginal)f (probability)g(of)i(the)g FC(m)p FJ(-th)g(motif)g(at)g(location)g FC(t)p FJ(,)h(which)1974 3059 y(in)19 b(this)g(case)g(is)g(a)g(uniform) e(distrib)n(ution)g(o)o(v)o(er)g(all)i FC(t)p FJ(,)g(and)f(the)h(same) 1974 3153 y(for)j(all)i FC(M)32 b FJ(instances.)h(Note)23 b(that)g(there)f(is)i(no)f FL(model)f(constr)o(aint)1974 3248 y FJ(to)32 b(pre)n(v)o(ent)d(ha)n(ving)i(o)o(v)o(erlapping)d (motif)j(instances)3580 3218 y FG(4)3613 3248 y FJ(.)60 b(The)31 b(UI)1974 3343 y(model)24 b(does)h(not)g(appear)f(to)i(be)f (problematic)f(in)h FL(de)g(no)o(vo)g FJ(motif)1974 3437 y(\002nding)30 b(tasks)i(in)m(v)n(olving)e(bacterial)h(or)g(e)n(v)o(en) g(simple)g(yeast)h(se-)1974 3532 y(quence)19 b(sets,)j(in)f(which)f (the)g(input)g(sequences)g(are)h(usually)f(small)1974 3626 y(in)j(size)h(and)f(homogeneous)d(in)j(content)f(\(e.g.,)h (pre-screened)e(ac-)1974 3721 y(cording)16 b(to)i(mRN)m(A)g(co-e)o (xpression\))d(and)i(the)h(motif)f(occurrences)1974 3816 y(tend)27 b(to)h(be)g(sparse.)48 b(But)29 b(some)f(recent)f(studies)h (as)h(well)f(as)h(our)1974 3910 y(e)o(xperiments)h(suggest)j(that)f (the)h(correctness)e(of)h(motif)g(\002nding)1974 4005 y(based)d(on)g(the)h(UI)g(assumption)e(starts)i(to)g(break)f(do)n(wn)f (for)h(less)1974 4100 y(well)g(pre-screened)d(input)h(sequences)h(or)g (those)g(with)h(clustered)1974 4194 y(motif)c(occurrences,)f(such)h(as) i(the)e(Drosophila)f(gene)h(re)o(gulatory)1974 4289 y(sequences)19 b([2)o(].)2073 4384 y(An)37 b(e)o(xample)d(of)i(the)g(local)g(model)g (is)h(the)f(standard)f(prod-)1974 4478 y(uct)e(multinomial)e(\(PM\))i (model,)i(where)e(the)g(position-speci\002c)1974 4573 y(nt-distrib)n(utions)24 b(within)i(a)h(motif)e(are)h(assumed)g(to)g (be)g(indepen-)1974 4668 y(dent)h([15)n(].)47 b(Thus)27 b(the)h(lik)o(elihood)e(of)h(a)h(multi-alignment)d Fx(A)j FJ(is:)1974 4784 y FC(p)p FB(\()p Fx(A)p Fy(j)p FB(\002\))23 b(=)2351 4722 y Fp(Q)2429 4743 y Fz(L)2429 4809 y(l)p FA(=1)2552 4722 y Fp(Q)2631 4743 y FA(4)2631 4809 y Fz(j)s FA(=1)2764 4717 y Fp(\002)2798 4784 y FC(\022)2837 4796 y Fz(lj)2894 4717 y Fp(\003)2928 4734 y Fz(h)2967 4743 y Ft(lj)3022 4784 y FJ(.)j(Although)18 b(a)j(popular)d(model)p 1974 4871 V 2064 4927 a FF(4)2093 4950 y FH(Heuristics)24 b(are)f(generally)i(emplo)o(yed\227such)g(as)d(thro)n(wing)h(a)o(w)o (ay)g(o)o(v)o(erlap-)1974 5025 y(ping)17 b(sampled)h(motifs)f(\(in)g (the)h(Gibbs)f(sampler\))g(or)g(rescaling)i(the)e(joint)h(posterior) 1974 5100 y(of)k Fq(x)g FH(\(in)h(MEME\)\227to)f(enforce)i(the)f FE(non-o)o(verlapping)j(constr)o(aint)p FH(.)39 b(Ne)n(v)o(erthe-)1974 5175 y(less,)23 b(this)g(results)g(in)g(inconsistencies)i(between)f (the)f(computed)h(motif)f(distrib)o(u-)1974 5250 y(tion)e(and)g(the)f (one)h(de\002ned)g(by)f(the)h(model,)g(and)g(incurs)g(a)f(sizable)j(o)o (v)o(erhead)f(due)1974 5325 y(to)17 b(w)o(asteful)i(computations.)p eop %%Page: 4 4 4 3 bop -182 83 a FJ(for)26 b(man)o(y)f FL(de)i(no)o(vo)f FJ(motif)g(\002nders,)h(PM)h(ne)n(v)o(ertheless)d(is)j(sensi-)-182 178 y(ti)n(v)o(e)d(to)h(noise)g(and)f(random)f(or)i(tri)n(vial)g (recurrent)e(patterns)h(\(e.g.,)-182 272 y(poly-N)e(or)i(repetitions)f (of)g(short)g FC(k)s FJ(-mers)h(such)f(as)i(GC)f(islands\),)-182 367 y(and)g(is)i(unable)e(to)h(capture)e(potential)i(site)g (dependencies)e(inside)-182 462 y(the)j(motifs.)48 b(V)-9 b(arious)27 b(pattern-dri)n(v)o(en)d(approaches)i(\(e.g.,)i(using)-182 556 y(a)g(fragmentation)d(model)i([16)o(],)j(splitting)d(a)h(\223tw)o (o-block\224)e(motif)-182 651 y(into)k(tw)o(o)g(coupled)f(sub-motifs)g ([15)o(,)i(1)o(],)i(or)d(imposing)g(e)o(xplicit)-182 746 y(\223shape\224)21 b([10)o(])i(or)f(entrop)o(y)f(constraints)g([14) o(]\),)i(ha)n(v)o(e)e(been)h(de)n(v)o(el-)-182 840 y(oped)15 b(to)h(handle)f(special)h(patterns)f(such)h(as)h(the)f FL(U-shaped)e FJ(motifs,)-182 935 y(b)n(ut)24 b(generalization)e(to)i (other)f(\223shapes\224)h(seen)g(from)f(kno)n(wn)g(mo-)-182 1029 y(tifs)i(is)h(not)e(v)o(ery)g(straightforw)o(ard.)36 b(Dirichlet)25 b(priors)f(for)g FC(\022)k FJ(ha)n(v)o(e)-182 1124 y(been)23 b(used)h(in)h(the)f(PM)h(setting)f([1)o(,)h(16)o(],)g(b) n(ut)g(the)o(y)e(are)h(primarily)-182 1219 y(used)g(for)g(smoothing)f (rather)g(than)i(for)e(e)o(xplicitly)h(incorporating)-182 1313 y(prior)19 b(kno)n(wledge)f(about)h(motifs.)-83 1408 y(Recently)-5 b(,)25 b(Xing)e(et)i(al.)g([22)n(])g(de)n(v)o (eloped)c(the)k(HMDM)f(model)-182 1503 y(for)j(motif)h(alignment,)h (which)f(captures)g(site)h(dependencies)d(in-)-182 1597 y(side)d(the)f(motifs)h(and)f(incorporates)e(prior)i(kno)n(wledge)f(of) h(nt)h(dis-)-182 1692 y(trib)n(utions)18 b(of)h(all)g(motif)g(sites)h (from)e(biologically)g(kno)n(wn)f(motifs.)-182 1787 y(It)g(sho)n(ws)h (impro)o(v)o(ed)d(sensiti)n(vity)i(\(compared)e(to)j(PM\))g(to)f(true)h (bio-)-182 1881 y(logical)e(motifs)g(in)h(the)f(presence)g(of)g (synthetic)g(f)o(alse)h(motifs)f(in)h(the)-182 1976 y(motif)25 b(detection)g(setting.)41 b(Frith)26 b(et)g(al.)g([7)o(])g(proposed)e (an)i(HMM)-182 2071 y(model)h(for)h FL(cis)p FJ(-element)g(clusters)g (in)h(higher)e(eukaryotic)g(DN)m(A,)-182 2165 y(which)19 b(sho)n(ws)g(promising)f(performance)e(in)k(motif)f(scanning)f(\(for) -182 2260 y(which)28 b(the)g(PWMs)i(are)e(gi)n(v)o(en\).)49 b(Our)28 b(goal)g(in)h(this)g(paper)e(is)j(to)-182 2354 y(de)n(v)o(elop)24 b(an)h(e)o(xpressi)n(v)o(e)g(modular)f(motif)h (model)g(that)i(b)n(uilds)e(on)-182 2449 y(these)20 b(pre)n(vious)f (lines)h(of)g(research.)-83 2544 y(W)-7 b(e)21 b(present)d(a)i FL(de)g(no)o(vo)e FJ(motif)h(detection)f(algorithm)g(using)h(an)-182 2638 y(HMM)28 b(as)h(the)f(global)g(distrib)n(ution)f(model)g(and)h(an) g(HMDM)g(as)-182 2733 y(the)h(local)h(alignment)f(model.)53 b(The)29 b(resulting)g(composite)g FK(LO-)-182 2828 y(GOS)g FJ(model)f(is)i(capable)e(of:)43 b(\(1\))28 b(performing)f(formal)h (and)g(ef-)-182 2922 y(\002cient)f(inference)f(of)h(global)f(motif)h (occurrences)e(under)h(a)h(\003e)o(x-)-182 3017 y(ible)h(setting)g (that)g(allo)n(ws)g(clustered)f(motif)h(instances,)i(multiple)-182 3112 y(motif)f(types,)j(motifs)d(on)h(re)n(v)o(erse)f(complementary)e (sequences;)-182 3206 y(\(2\))e(correctly)g(enforcing)f(the)i(non-o)o (v)o(erlapping)21 b(constraint;)29 b(\(3\))-182 3301 y(capturing)24 b(site)j(dependencies)d(inside)h(the)h(motifs)g(so)h(as) f(to)h(bias)-182 3396 y(prediction)21 b(to)n(w)o(ard)h(more)g (biologically)f(plausible)h(motifs)h(while)-182 3490 y(remaining)15 b(\003e)o(xible)i(with)h(re)o(gards)e(to)i(motif)f (shapes)g(and)g(lengths;)-182 3585 y(and)k(\(4\))g(incorporating)d (prior)i(kno)n(wledge)g(of)h(nt)h(composition)d(at)-182 3680 y(each)30 b(motif)g(site)i(to)f(pro)o(vide)e(smoothed)g(and)i(rob) n(ust)f(Bayesian)-182 3774 y(estimation)19 b(of)h(the)g(PWMs.)-182 3971 y FD(2.3)90 b(The)27 b(local)g(model:)43 b(an)27 b(HMDM)h(f)n(or)f(motif)h(align\255)23 4066 y(ment)-83 4263 y FJ(The)c(local)f(alignment)g(model)g(is)i(crucial)e(for)g (identifying)f(the)-182 4357 y(correct)17 b(motif)h(patterns)g(in)h(a)g (noisy)f(background.)j(As)e(mentioned)-182 4452 y(before,)34 b(man)o(y)d(motifs)h(are)h(not)f(uniformly)e(well-conserv)o(ed)g(at) -182 4547 y(all)38 b(their)g(sites)277 4517 y FG(5)349 4547 y FJ(\(e.g.,)k FL(gal4)37 b FJ(in)h(Figure)g(1\).)78 b(Biological)37 b(e)n(vi-)-182 4641 y(dence)29 b(sho)n(ws)h(that)g (conserv)o(ed)e(sites)j(are)g(lik)o(ely)e(to)i(occur)e(con-)-182 4736 y(secuti)n(v)o(ely)k([6].)69 b(This)35 b(is)h(called)f FL(site)h(clustering)p FJ(,)i(one)c(of)h(the)-182 4831 y(main)17 b(moti)n(v)n(ations)g(for)g(the)h(HMDM)g(model.)23 b(Ob)o(viously)16 b(the)i(PM)-182 4925 y(model)j(can)g(not)h(model)f (such)h(patterns:)28 b(gi)n(v)o(en)21 b(a)h(length)f FC(L)h FJ(motif)-182 5020 y(for)29 b(which)g(only)366 4987 y Fz(L)p 366 5001 46 4 v 372 5049 a FA(2)452 5020 y FJ(positions)g(are)g(conserv)o(ed,)h(PM)h(w)o(ould)e(as-)p -182 5096 788 4 v -92 5152 a FF(5)-63 5175 y FH(A)16 b(possible)h(reason)g(could)h(be)e(that)i(a)e(binding)i(protein)f(only) g(interacts)i(with)e(a)-182 5250 y(DN)n(A)f(tar)o(get)i(through)g(a)f (fe)n(w)g(highly)h(speci\002c)h(aa-nt)f(interactions,)i(b)o(ut)d(is)f (tolerant)-182 5325 y(of)h(v)n(ariation)j(in)d(other)h(sites.)1974 83 y FJ(sign)23 b(the)h(same)g(probability)e(re)o(gardless)g(of)h(the)h (locations)f(of)g(the)1974 178 y(conserv)o(ed)18 b(sites.)2288 1095 y @beginspecial 0 @llx 0 @lly 206 @urx 129 @ury 1584 @rwi @setspecial %%BeginDocument: figures/HMDM21.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: HMDM21.eps %%Creator: fig2dev Version 3.2 Patchlevel 3d %%CreationDate: Mon Apr 7 19:23:36 2003 %%For: epxing@dhcp-38-220 (eric xing) %%BoundingBox: 0 0 206 129 %%Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def F2psDictbeginF2psDict begin F2psDictbeginF2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save newpath 0 129 moveto 0 0 lineto 206 0 lineto 206 129 lineto closepath clip newpath -61.6 170.8 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def F2psBegin10setmiterlimit0.062990.06299scF2psBegin 10 setmiterlimit 0.06299 0.06299 sc % % Fig objects follow % 7.500 slw % Ellipse n 3870 900 225 225 0 360 DrawEllipse gs col0 s gr % Ellipse n 3870 1620 225 225 0 360 DrawEllipse gs col0 s gr % Polyline 2 slj gs clippath 3840 1410 m 3900 1410 l 3900 1259 l 3870 1379 l 3840 1259 l cp eoclip n 3870 1125 m 3870 1395 l gs col0 s gr gr % arrowhead 0 slj n 3840 1259 m 3870 1379 l 3900 1259 l 3840 1259 l cp gs 0.00 setgray ef gr col0 s % Ellipse n 3870 2340 225 225 0 360 DrawEllipse gs col0 s gr % Polyline n 3510 1980 m 4230 1980 l 4230 2700 l 3510 2700 l cp gs col0 s gr % Polyline 2 slj gs clippath 3840 2130 m 3900 2130 l 3900 1979 l 3870 2099 l 3840 1979 l cp eoclip n 3870 1845 m 3870 2115 l gs col0 s gr gr % arrowhead 0 slj n 3840 1979 m 3870 2099 l 3900 1979 l 3840 1979 l cp gs 0.00 setgray ef gr col0 s % Ellipse n 2340 900 225 225 0 360 DrawEllipse gs col0 s gr % Ellipse n 2340 1620 225 225 0 360 DrawEllipse gs col0 s gr % Polyline 2 slj gs clippath 2310 1410 m 2370 1410 l 2370 1259 l 2340 1379 l 2310 1259 l cp eoclip n 2340 1125 m 2340 1395 l gs col0 s gr gr % arrowhead 0 slj n 2310 1259 m 2340 1379 l 2370 1259 l 2310 1259 l cp gs 0.00 setgray ef gr col0 s % Ellipse n 2340 2340 225 225 0 360 DrawEllipse gs col0 s gr % Polyline n 1980 1980 m 2700 1980 l 2700 2700 l 1980 2700 l cp gs col0 s gr % Polyline 2 slj gs clippath 2310 2130 m 2370 2130 l 2370 1979 l 2340 2099 l 2310 1979 l cp eoclip n 2340 1845 m 2340 2115 l gs col0 s gr gr % arrowhead 0 slj n 2310 1979 m 2340 2099 l 2370 1979 l 2310 1979 l cp gs 0.00 setgray ef gr col0 s % Ellipse n 1350 900 225 225 0 360 DrawEllipse gs col0 s gr % Ellipse n 1350 1620 225 225 0 360 DrawEllipse gs col0 s gr % Polyline 2 slj gs clippath 1320 1410 m 1380 1410 l 1380 1259 l 1350 1379 l 1320 1259 l cp eoclip n 1350 1125 m 1350 1395 l gs col0 s gr gr % arrowhead 0 slj n 1320 1259 m 1350 1379 l 1380 1259 l 1320 1259 l cp gs 0.00 setgray ef gr col0 s % Ellipse n 1350 2340 225 225 0 360 DrawEllipse gs col0 s gr % Polyline n 990 1980 m 1710 1980 l 1710 2700 l 990 2700 l cp gs col0 s gr % Polyline 2 slj gs clippath 1320 2130 m 1380 2130 l 1380 1979 l 1350 2099 l 1320 1979 l cp eoclip n 1350 1845 m 1350 2115 l gs col0 s gr gr % arrowhead 0 slj n 1320 1979 m 1350 2099 l 1380 1979 l 1320 1979 l cp gs 0.00 setgray ef gr col0 s % Polyline 2 slj gs clippath 2130 930 m 2130 870 l 1979 870 l 2099 900 l 1979 930 l cp eoclip n 1575 900 m 2115 900 l gs col0 s gr gr % arrowhead 0 slj n 1979 930 m 2099 900 l 1979 870 l 1979 930 l cp gs 0.00 setgray ef gr col0 s % Polyline 2 slj gs clippath 2895 930 m 2895 870 l 2744 870 l 2864 900 l 2744 930 l cp eoclip n 2565 900 m 2880 900 l gs col0 s gr gr % arrowhead 0 slj n 2744 930 m 2864 900 l 2744 870 l 2744 930 l cp gs 0.00 setgray ef gr col0 s % Polyline 2 slj gs clippath 3705 930 m 3705 870 l 3554 870 l 3674 900 l 3554 930 l cp eoclip n 3375 900 m 3690 900 l gs col0 s gr gr % arrowhead 0 slj n 3554 930 m 3674 900 l 3554 870 l 3554 930 l cp gs 0.00 setgray ef gr col0 s /Times-Italic ff 300.00 scf sf 2250 945 m gs 1 -1 sc (q) col0 sh gr /Times-Italic ff 300.00 scf sf 3780 945 m gs 1 -1 sc (q) col0 sh gr /Symbol ff 300.00 scf sf 1260 1710 m gs 1 -1 sc (q) col0 sh gr /Symbol ff 300.00 scf sf 2250 1710 m gs 1 -1 sc (q) col0 sh gr /Symbol ff 300.00 scf sf 3780 1710 m gs 1 -1 sc (q) col0 sh gr /Times-BoldItalic ff 135.00 scf sf 1530 2655 m gs 1 -1 sc (M) col0 sh gr /Times-BoldItalic ff 135.00 scf sf 2520 2655 m gs 1 -1 sc (M) col0 sh gr /Times-BoldItalic ff 135.00 scf sf 4050 2655 m gs 1 -1 sc (M) col0 sh gr /Times-BoldItalic ff 150.00 scf sf 1395 1035 m gs 1 -1 sc (1) col0 sh gr /Times-BoldItalic ff 150.00 scf sf 2385 1035 m gs 1 -1 sc (2) col0 sh gr /Times-BoldItalic ff 150.00 scf sf 3915 1035 m gs 1 -1 sc (L) col0 sh gr /Times-BoldItalic ff 150.00 scf sf 1395 1755 m gs 1 -1 sc (1) col0 sh gr /Times-BoldItalic ff 150.00 scf sf 2385 1755 m gs 1 -1 sc (2) col0 sh gr /Times-BoldItalic ff 150.00 scf sf 3915 1755 m gs 1 -1 sc (L) col0 sh gr /Times-BoldItalic ff 450.00 scf sf 2970 945 m gs 1 -1 sc (...) col0 sh gr /Times-BoldItalic ff 450.00 scf sf 2970 2385 m gs 1 -1 sc (...) col0 sh gr /Times-Italic ff 300.00 scf sf 1260 945 m gs 1 -1 sc (q) col0 sh gr /Times-BoldItalic ff 300.00 scf sf 1170 2430 m gs 1 -1 sc (A) col0 sh gr /Times-BoldItalic ff 300.00 scf sf 2160 2430 m gs 1 -1 sc (A) col0 sh gr /Times-BoldItalic ff 120.00 scf sf 2340 2430 m gs 1 -1 sc (m,2) col0 sh gr /Times-BoldItalic ff 300.00 scf sf 3690 2430 m gs 1 -1 sc (A) col0 sh gr /Times-BoldItalic ff 120.00 scf sf 3870 2430 m gs 1 -1 sc (m,L) col0 sh gr /Times-BoldItalic ff 120.00 scf sf 1350 2430 m gs 1 -1 sc (m,1) col0 sh gr F2psBegin10setmiterlimit0.062990.06299scF2psEnd rs %%EndDocument @endspecial 2073 1242 a Fw(Figure)j(2.)g FH(The)16 b(HMDM)g(model)g (for)g(motif)h(instances)h(speci\002ed)g(by)d(a)2073 1317 y(gi)n(v)o(en)20 b Fq(x)p FH(.)k(The)18 b(circles)i(are)f(random)g (v)n(ariables)i(and)d(the)h(box)o(es)g(are)g(plates)2073 1392 y(representing)h(replicates)g(\(i.e.,)d Fq(M)23 b FH(instances)d(of)c(a)i(motif\).)2073 1601 y FJ(In)28 b(the)g(HMDM)g(model)f(\(Figure)g(2\),)i(we)f(assume)g(that)g(there) 1974 1696 y(are)d FC(I)32 b FJ(underlying)22 b(latent)j(nt-distrib)n (ution)e(prototypes)3616 1666 y FG(6)3646 1696 y FJ(,)k(accord-)1974 1791 y(ing)e(to)h(which)f(position-speci\002c)f(multinomial)h(distrib)n (utions)f(of)1974 1885 y(nt)19 b(are)f(determined,)f(and)h(that)h(each) f(prototype)e(is)k(represented)d(by)1974 1980 y(a)24 b(Dirichlet)g(distrib)n(ution.)35 b(Furthermore,)23 b(the)h(sequence)f (of)g(pro-)1974 2075 y(totypes)d(at)h(consecuti)n(v)o(e)d(positions)i (in)h(the)g(motif)f(is)h(go)o(v)o(erned)d(by)1974 2169 y(a)i(\002rst-order)f(Mark)o(o)o(v)g(process.)2073 2264 y(More)j(precisely)-5 b(,)20 b(a)i(multi-alignment)e Fx(A)i FJ(containing)e FC(M)31 b FJ(mo-)1974 2359 y(tif)20 b(instances)g(is)g(generated)f(by)g(the)h(follo)n(wing)e(process.)24 b(First)d(we)1974 2453 y(sample)e(a)g(sequence)f(of)g(prototype)f (indicators)h FC(q)26 b FB(=)c(\()p FC(q)3601 2465 y FA(1)3639 2453 y FC(;)14 b(:)g(:)g(:)g(;)g(q)3861 2465 y Fz(L)3910 2453 y FB(\))1974 2548 y FJ(from)38 b(a)h(\002rst-order)e (Mark)o(o)o(v)g(chain)h(with)h(initial)g(distrib)n(ution)1974 2643 y FC(\031)h FJ(and)35 b(transition)h(matrix)f FC(B)t FJ(.)73 b(Then)35 b(we)i(repeat)e(the)h(follo)n(w-)1974 2737 y(ing)e(for)h(each)f(column)g FC(l)52 b Fy(2)e(f)p FB(1)p FC(;)14 b(:)g(:)g(:)f(;)h(L)p Fy(g)p FJ(:)54 b(\(1\))34 b(A)i(component)1974 2832 y(from)29 b(a)i(Dirichlet)g(mixture)e FC(\013)43 b FB(=)f Fy(f)p FC(\013)3148 2844 y FA(1)3185 2832 y FC(;)14 b(:)g(:)g(:)f(;)h(\013)3422 2844 y Fz(I)3460 2832 y Fy(g)p FJ(,)34 b(where)c(each)1974 2926 y FC(\013)2027 2938 y Fz(i)2082 2926 y FB(=)e([)p FC(\013)2251 2938 y Fz(i)p FA(1)2311 2926 y FC(;)14 b(:)g(:)g(:)g(;)g(\013)2549 2938 y Fz(i)p FA(4)2610 2926 y FB(])2633 2896 y Fs(0)2679 2926 y FJ(is)24 b(the)f(parameter)e(v)o(ector)g(for)h(a)h(Dirichlet) 1974 3021 y(distrib)n(ution,)c(is)j(pick)o(ed)e(\(deterministically\))f (according)g(to)i(indi-)1974 3116 y(cator)g FC(q)2199 3128 y Fz(l)2224 3116 y FJ(.)29 b(Say)-5 b(,)21 b FC(q)2473 3128 y Fz(l)2523 3116 y FB(=)k FC(i)p FJ(,)d(thus)f(we)g(pick)o(ed)g FC(\013)3259 3128 y Fz(i)3287 3116 y FJ(.)28 b(\(2\))21 b(A)h(multinomial)1974 3210 y(distrib)n(ution)28 b FC(\022)2424 3222 y Fz(l)2480 3210 y FJ(is)j(sampled)e(according)f(to)i FC(p)p FB(\()p FC(\022)r Fy(j)p FC(\013)3517 3222 y Fz(i)3545 3210 y FB(\))p FJ(,)j(the)d(prob-)1974 3305 y(ability)g(de\002ned)f(by) g(Dirichlet)h(component)e FC(i)p FJ(.)55 b(\(3\))29 b(All)i(the)f(nu-) 1974 3400 y(cleotides)d(in)g(column)e FC(l)k FJ(are)e(generated)e FL(i.i.d.)45 b FJ(according)25 b(to)i(the)1974 3494 y(multinomial)19 b(distrib)n(ution)g(parametrized)f(by)h FC(\022)3399 3506 y Fz(l)3425 3494 y FJ(.)2073 3589 y(The)45 b(complete)g(lik)o (elihood)e(of)j(motif)e(alignment)g Fx(A)3771 3601 y Fz(M)6 b Fs(\002)p Fz(L)1974 3684 y FJ(characterized)18 b(by)i(a)h(counting)d(matrix)h FC(h)i FJ(is:)2033 3931 y FC(p)p FB(\()p Fx(A)p FC(;)14 b(q)s(;)g(\022)r Fy(j)p FC(x;)g FB(\002)2506 3943 y Fz(l)2531 3931 y FC(;)g Fy(M)2668 3943 y Fz(l)2693 3931 y FB(\))24 b(=)e FC(p)p FB(\()p FC(h)p Fy(j)p FC(x;)14 b(\022)r FB(\))p FC(p)p FB(\()p FC(\022)r Fy(j)p FC(q)s(;)g(\013)p FB(\))p FC(p)p FB(\()p FC(q)s Fy(j)p FC(\031)s(;)g(B)t FB(\))p FC(;)62 b FJ(\(2\))1974 4156 y(where)18 b(\(using)h(the)g(update)f(properties)g(of)h(the)g (Dirichlet)g(distrib)n(u-)1974 4250 y(tion)h(and)f(denoting)g FC(q)2616 4220 y Fz(i)2613 4274 y(l)2666 4250 y FB(=)k(1)d FJ(if)h FC(q)2925 4262 y Fz(l)2971 4250 y FJ(is)g(in)g(state)g FC(i)f FJ(and)g(0)g(otherwise\):)1977 4492 y FC(p)p FB(\()p FC(h)p Fy(j)p FC(x;)14 b(\022)r FB(\))p FC(p)p FB(\()p FC(\022)r Fy(j)p FC(q)s(;)g(\013)p FB(\))85 b(=)2841 4388 y Fz(L)2811 4413 y Fp(Y)2811 4592 y Fz(l)p FA(=1)2968 4388 y Fz(I)2932 4413 y Fp(Y)2931 4590 y Fz(i)p FA(=1)3052 4492 y FJ(Dir)p FB(\()p FC(\013)3248 4504 y Fz(i)3295 4492 y FB(+)18 b FC(h)3426 4504 y Fz(l)3451 4492 y FB(\))3483 4458 y Fz(q)3515 4433 y Ft(i)3513 4475 y(l)3546 4492 y FC(;)277 b FJ(\(3\))2257 4785 y FC(p)p FB(\()p FC(q)s Fy(j)p FC(\031)s(;)14 b(B)t FB(\))84 b(=)2848 4682 y Fz(I)2812 4707 y Fp(Y)2811 4883 y Fz(i)p FA(=1)2919 4785 y FB([)p FC(\031)2989 4797 y Fz(i)3017 4785 y FB(])3040 4751 y Fz(q)3072 4726 y Ft(i)3070 4768 y Fu(1)3121 4682 y Fz(L)p Fs(\000)p FA(1)3133 4707 y Fp(Y)3133 4885 y Fz(l)p FA(=1)3327 4682 y Fz(I)3291 4707 y Fp(Y)3265 4883 y Fz(i;j)s FA(=1)3423 4785 y FB([)p FC(B)3509 4797 y Fz(i;j)3587 4785 y FB(])3610 4749 y Fz(q)3642 4724 y Ft(i)3640 4766 y(l)3669 4749 y Fz(q)3701 4721 y Ft(j)3699 4770 y(l)p Fu(+1)3799 4785 y FC(:)24 b FJ(\(4\))p 1974 4946 V 2064 5002 a FF(6)2093 5025 y FH(W)-5 b(e)29 b(can)h(roughly)g (imagine)h(that)f(the)g(set)f(of)g(prototypes)i(should)f(include)1974 5100 y(prototypes)22 b(corresponding)g(to)e(four)g(possible)h(conserv)o (ed)h(nt-distrib)o(utions)h(\(i.e.,)1974 5175 y(those)e(ha)o(ving)g (most)f(of)g(the)h(probability)i(mass)c(at)i(A,)e(C,)h(G,)f(T)-5 b(,)19 b(respecti)n(v)o(ely\),)24 b(as)1974 5250 y(well)f(as)g(other)g (prototypes)i(corresponding)g(to)e(distrib)o(utions)i(that)f(are)f (less)g(con-)1974 5325 y(serv)o(ed)18 b(or)f(e)n(v)o(en)h (heterogeneous)i(in)e(dif)n(ferent)h(w)o(ays.)p eop %%Page: 5 5 5 4 bop -83 83 a FJ(The)29 b(major)g(role)g(of)h(the)f(HMDM)h(model)f (is)h(to)g(impose)f(dy-)-182 178 y(namic)23 b(priors)f(for)h(modeling)f (data)h(whose)g(distrib)n(utions)g(e)o(xhibit)-182 272 y(spatial)d(dependencies.)-83 367 y(As)38 b(Figure)f(2)g(mak)o(es)g (clear)m(,)k(this)c(model)f(is)j FL(not)d FJ(a)i(simple)-182 462 y(HMM)23 b(for)g(discrete)g(sequences.)34 b(In)23 b(an)h(HMM)f(model)g(the)h(tran-)-182 556 y(sitions)g(w)o(ould)g(be)g (between)g(the)g(emission)h(models)e(\(i.e.,)i(multi-)-182 651 y(nomials\))d(themselv)o(es,)g(and)g(the)h(output)f(at)h(each)g (time)g(w)o(ould)f(be)-182 746 y(a)f(single)f(data)g(instance)h(in)f (the)h(sequence.)j(In)d(HMDM,)f(the)h(tran-)-182 840 y(sitions)28 b(are)g(between)f(dif)n(ferent)f(priors)h(for)g(the)h (emission)g(mod-)-182 935 y(els,)20 b(and)f(the)h(direct)g(output)e(of) i(the)g(HMM)g(is)h(the)e(parameter)g(v)o(ec-)-182 1029 y(tor)25 b(of)g(a)h(generati)n(v)o(e)e(model,)h(which)g(will)h(be)g (sampled)f(multiple)-182 1124 y(times)i(at)g(each)g(position)f(to)h (generate)e(random)g(instances.)45 b(This)-182 1219 y(approach)23 b(is)k(especially)e(useful)g(when)g(we)h(ha)n(v)o(e)g(either)f(empiri-) -182 1313 y(cal)g(or)g(learned)f(prior)g(kno)n(wledge)f(\(e.g.,)i(from) g(training)f(motifs\))-182 1408 y(about)c(motif)h(properties)f(such)h (as)h FL(site)h(clustering)e FJ(or)g(other)f(posi-)-182 1503 y(tional)f(dependencies.)-182 1708 y FD(2.4)90 b(The)22 b(global)h(model:)34 b(an)22 b(HMM)i(f)n(or)e(motif)i(indica\255)23 1803 y(tors)-83 2009 y FJ(The)42 b(HMDM)h(generati)n(v)o(e)e(process)h (only)f(creates)i(aligned)-182 2104 y(multiple)15 b(instances)h(of)f(a) h(motif,)g(b)n(ut)g(does)g(not)f(complete)g(the)h(gen-)-182 2198 y(eration)22 b(of)g(the)h(observ)o(ed)e(sequence)h(set.)34 b(W)-7 b(e)24 b(need)e(a)i(model)e(for)-182 2293 y(the)k(background)c (sequences)j(and)h(another)e(process)i(that)g(gener)n(-)-182 2388 y(ates)21 b(the)f(positions)g(of)h(the)f(motif)g(instances.)26 b(F)o(or)21 b(this)g(we)g(need)e(a)-182 2482 y(global)i(model)g(for)g (the)h(indicator)f(v)n(ariable)g(sequence)g FC(x)i FJ(that)f(can)-182 2577 y(specify)d(the)h(locations)g(of)g(all)h(motif)e(instances.)-48 4096 y @beginspecial 0 @llx 0 @lly 411 @urx 342 @ury 2016 @rwi @setspecial %%BeginDocument: figures/hmm_new2.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: hmm_new2.eps %%Creator: fig2dev Version 3.2 Patchlevel 3d %%CreationDate: Sat Oct 19 02:35:45 2002 %%For: epxing@localhost.localdomain (eric xing) %%BoundingBox: 0 0 411 342 %%Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def F2psDictbeginF2psDict begin F2psDictbeginF2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save newpath 0 342 moveto 0 0 lineto 411 0 lineto 411 342 lineto closepath clip newpath -79.0 -384.5 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def F2psBegin10setmiterlimit0.060000.06000scF2psBegin 10 setmiterlimit 0.06000 0.06000 sc % % Fig objects follow % /Times-Italic ff 330.00 scf sf 7050 -11100 m gs 1 -1 sc (b) col0 sh gr /Times-Roman ff 150.00 scf sf 7200 -11325 m gs 1 -1 sc (\(1\)) col0 sh gr 7.500 slw % Ellipse n 7159 -11291 270 270 0 360 DrawEllipse gs col0 s gr % Ellipse n 6135 -11715 300 300 0 360 DrawEllipse gs col0 s gr % Ellipse n 3147 -11736 300 300 0 360 DrawEllipse gs col0 s gr % Ellipse n 4350 -11700 300 300 0 360 DrawEllipse gs col0 s gr % Polyline gs clippath 4050 -11685 m 4050 -11745 l 3899 -11744 l 4019 -11714 l 3899 -11684 l cp eoclip n 3435 -11715 m 4035 -11715 l gs col0 s gr gr % arrowhead n 3899 -11684 m 4019 -11714 l 3899 -11744 l 3899 -11684 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 4950 -11685 m 4950 -11745 l 4799 -11744 l 4919 -11714 l 4799 -11684 l cp eoclip n 4635 -11715 m 4935 -11715 l gs col0 s gr gr % arrowhead n 4799 -11684 m 4919 -11714 l 4799 -11744 l 4799 -11684 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 5850 -11685 m 5850 -11745 l 5699 -11744 l 5819 -11714 l 5699 -11684 l cp eoclip n 5535 -11715 m 5835 -11715 l gs col0 s gr gr % arrowhead n 5699 -11684 m 5819 -11714 l 5699 -11744 l 5699 -11684 l cp gs 0.00 setgray ef gr col0 s /Times-Roman ff 150.00 scf sf 3135 -11715 m gs 1 -1 sc (\(1\)) col0 sh gr /Times-Roman ff 150.00 scf sf 4410 -11715 m gs 1 -1 sc (\(1\)) col0 sh gr /Times-Roman ff 150.00 scf sf 6135 -11715 m gs 1 -1 sc (\(1\)) col0 sh gr /Times-Roman ff 420.00 scf sf 5085 -11640 m gs 1 -1 sc (...) col0 sh gr /Times-Roman ff 360.00 scf sf 3000 -11550 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 360.00 scf sf 4200 -11550 m gs 1 -1 sc (2) col0 sh gr /Times-Italic ff 360.00 scf sf 6000 -11550 m gs 1 -1 sc (L) col0 sh gr % Ellipse n 3150 -10875 300 300 0 360 DrawEllipse gs col0 s gr % Ellipse n 4950 -10875 300 300 0 360 DrawEllipse gs col0 s gr % Ellipse n 6150 -10875 300 300 0 360 DrawEllipse gs col0 s gr % Polyline gs clippath 5865 -10845 m 5865 -10905 l 5714 -10904 l 5834 -10874 l 5714 -10844 l cp eoclip n 5250 -10875 m 5850 -10875 l gs col0 s gr gr % arrowhead n 5714 -10844 m 5834 -10874 l 5714 -10904 l 5714 -10844 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 4665 -10845 m 4665 -10905 l 4514 -10904 l 4634 -10874 l 4514 -10844 l cp eoclip n 4350 -10875 m 4650 -10875 l gs col0 s gr gr % arrowhead n 4514 -10844 m 4634 -10874 l 4514 -10904 l 4514 -10844 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 3765 -10845 m 3765 -10905 l 3614 -10904 l 3734 -10874 l 3614 -10844 l cp eoclip n 3450 -10875 m 3750 -10875 l gs col0 s gr gr % arrowhead n 3614 -10844 m 3734 -10874 l 3614 -10904 l 3614 -10844 l cp gs 0.00 setgray ef gr col0 s /Times-Roman ff 150.00 scf sf 6135 -10890 m gs 1 -1 sc (\(1'\)) col0 sh gr /Times-Roman ff 420.00 scf sf 3900 -10800 m gs 1 -1 sc (...) col0 sh gr /Times-Roman ff 360.00 scf sf 6000 -10725 m gs 1 -1 sc (1) col0 sh gr /Times-Italic ff 360.00 scf sf 3000 -10725 m gs 1 -1 sc (L) col0 sh gr /Times-Roman ff 150.00 scf sf 3150 -10875 m gs 1 -1 sc (\(1'\)) col0 sh gr /Times-Italic ff 360.00 scf sf 4800 -10725 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 150.00 scf sf 5025 -10875 m gs 1 -1 sc (\(1'\)) col0 sh gr % Polyline gs clippath 6895 -11366 m 6929 -11416 l 6803 -11499 l 6887 -11408 l 6770 -11449 l cp eoclip n 6450 -11700 m 6900 -11400 l gs col0 s gr gr % arrowhead n 6770 -11449 m 6887 -11408 l 6803 -11499 l 6770 -11449 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 6929 -11158 m 6895 -11208 l 6770 -11123 l 6887 -11165 l 6803 -11073 l cp eoclip n 6900 -11175 m 6450 -10875 l gs col0 s gr gr % arrowhead n 6803 -11073 m 6887 -11165 l 6770 -11123 l 6803 -11073 l cp gs 0.00 setgray ef gr col0 s % Polyline 2 slj gs clippath 7359 -11132 m 7318 -11088 l 7428 -10983 l 7362 -11088 l 7469 -11026 l cp eoclip n 6975 -11100 m 6973 -11098 l 6969 -11095 l 6963 -11089 l 6954 -11080 l 6942 -11068 l 6929 -11055 l 6914 -11039 l 6900 -11023 l 6886 -11006 l 6875 -10988 l 6865 -10971 l 6858 -10954 l 6856 -10937 l 6857 -10920 l 6865 -10904 l 6879 -10889 l 6900 -10875 l 6923 -10866 l 6948 -10858 l 6975 -10852 l 7002 -10848 l 7028 -10844 l 7053 -10842 l 7077 -10840 l 7099 -10839 l 7121 -10838 l 7142 -10838 l 7163 -10838 l 7183 -10838 l 7204 -10838 l 7226 -10839 l 7248 -10840 l 7272 -10842 l 7297 -10844 l 7323 -10848 l 7350 -10852 l 7377 -10858 l 7402 -10866 l 7425 -10875 l 7446 -10889 l 7460 -10904 l 7468 -10920 l 7469 -10937 l 7467 -10954 l 7460 -10971 l 7450 -10988 l 7439 -11006 l 7425 -11023 l 7411 -11039 l 7396 -11055 l 7383 -11068 l 7371 -11080 l 7350 -11100 l gs col0 s gr gr % arrowhead 0 slj n 7469 -11026 m 7362 -11088 l 7428 -10983 l 7469 -11026 l cp gs 0.00 setgray ef gr col0 s /Symbol ff 240.00 scf sf 7125 -10575 m gs 1 -1 sc (b) col0 sh gr % Ellipse n 2175 -11250 237 237 0 360 DrawEllipse gs col0 s gr % Polyline 2 slj gs clippath 2879 -11683 m 2845 -11733 l 2720 -11648 l 2837 -11690 l 2753 -11598 l cp eoclip n 2400 -11400 m 2850 -11700 l gs col0 s gr gr % arrowhead 0 slj n 2753 -11598 m 2837 -11690 l 2720 -11648 l 2753 -11598 l cp gs 0.00 setgray ef gr col0 s % Polyline 2 slj gs clippath 2850 -10841 m 2876 -10895 l 2742 -10961 l 2836 -10881 l 2715 -10907 l cp eoclip n 2400 -11100 m 2850 -10875 l gs col0 s gr gr % arrowhead 0 slj n 2715 -10907 m 2836 -10881 l 2742 -10961 l 2715 -10907 l cp gs 0.00 setgray ef gr col0 s /Times-Italic ff 150.00 scf sf 3225 -10725 m gs 1 -1 sc (1) col0 sh gr /Times-Italic ff 150.00 scf sf 6225 -11550 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 180.00 scf sf 2400 -11550 m gs 1 -1 sc (1/2) col0 sh gr /Times-Roman ff 180.00 scf sf 2400 -10800 m gs 1 -1 sc (1/2) col0 sh gr /Times-Roman ff 180.00 scf sf 3675 -11775 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 180.00 scf sf 3675 -10950 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 180.00 scf sf 5550 -11775 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 180.00 scf sf 5550 -10950 m gs 1 -1 sc (1) col0 sh gr % Polyline 2 slj gs clippath 7727 -11453 m 7668 -11465 l 7639 -11316 l 7692 -11428 l 7697 -11304 l cp eoclip n 7470 -11295 m 7473 -11294 l 7479 -11292 l 7488 -11289 l 7500 -11285 l 7515 -11281 l 7530 -11278 l 7546 -11276 l 7564 -11276 l 7582 -11279 l 7601 -11285 l 7620 -11295 l 7637 -11309 l 7652 -11325 l 7663 -11342 l 7671 -11359 l 7678 -11376 l 7683 -11393 l 7688 -11410 l 7695 -11445 l gs col0 s gr gr % arrowhead 0 slj n 7697 -11304 m 7692 -11428 l 7639 -11316 l 7697 -11304 l cp gs 0.00 setgray ef gr col0 s % Polyline 2 slj gs clippath 7727 -11601 m 7670 -11617 l 7629 -11470 l 7691 -11578 l 7687 -11454 l cp eoclip n 7470 -11295 m 7472 -11296 l 7476 -11300 l 7482 -11305 l 7491 -11312 l 7502 -11322 l 7515 -11333 l 7528 -11344 l 7542 -11357 l 7556 -11371 l 7571 -11387 l 7587 -11404 l 7603 -11424 l 7620 -11445 l 7637 -11469 l 7652 -11492 l 7663 -11511 l 7671 -11528 l 7678 -11543 l 7683 -11558 l 7688 -11570 l 7695 -11595 l gs col0 s gr gr % arrowhead 0 slj n 7687 -11454 m 7691 -11578 l 7629 -11470 l 7687 -11454 l cp gs 0.00 setgray ef gr col0 s % Polyline 2 slj gs clippath 7653 -11822 m 7597 -11845 l 7540 -11704 l 7614 -11804 l 7596 -11681 l cp eoclip n 7470 -11295 m 7471 -11297 l 7472 -11302 l 7473 -11311 l 7476 -11323 l 7480 -11338 l 7484 -11357 l 7489 -11377 l 7494 -11399 l 7500 -11422 l 7506 -11447 l 7512 -11473 l 7519 -11500 l 7527 -11530 l 7536 -11562 l 7545 -11595 l 7556 -11631 l 7565 -11663 l 7574 -11691 l 7582 -11715 l 7589 -11736 l 7595 -11754 l 7601 -11771 l 7607 -11785 l 7611 -11798 l 7620 -11820 l gs col0 s gr gr % arrowhead 0 slj n 7596 -11681 m 7614 -11804 l 7540 -11704 l 7596 -11681 l cp gs 0.00 setgray ef gr col0 s % Polyline 2 slj gs clippath 1908 -11233 m 1952 -11274 l 1848 -11383 l 1909 -11276 l 1804 -11342 l cp eoclip n 1770 -11715 m 1769 -11713 l 1768 -11708 l 1766 -11700 l 1763 -11689 l 1759 -11675 l 1756 -11659 l 1753 -11641 l 1751 -11621 l 1751 -11600 l 1752 -11577 l 1755 -11551 l 1761 -11522 l 1770 -11490 l 1780 -11462 l 1792 -11436 l 1804 -11413 l 1817 -11391 l 1830 -11372 l 1843 -11354 l 1856 -11337 l 1868 -11321 l 1881 -11307 l 1892 -11294 l 1902 -11284 l 1920 -11265 l gs col0 s gr gr % arrowhead 0 slj n 1804 -11342 m 1909 -11276 l 1848 -11383 l 1804 -11342 l cp gs 0.00 setgray ef gr col0 s % Polyline 2 slj gs clippath 1904 -11235 m 1953 -11270 l 1865 -11391 l 1911 -11277 l 1816 -11356 l cp eoclip n 1845 -11565 m 1844 -11563 l 1843 -11558 l 1842 -11550 l 1840 -11540 l 1838 -11527 l 1836 -11513 l 1835 -11498 l 1835 -11481 l 1837 -11462 l 1840 -11439 l 1845 -11415 l 1852 -11391 l 1860 -11368 l 1868 -11349 l 1877 -11332 l 1886 -11317 l 1894 -11302 l 1902 -11290 l 1920 -11265 l gs col0 s gr gr % arrowhead 0 slj n 1816 -11356 m 1911 -11277 l 1865 -11391 l 1816 -11356 l cp gs 0.00 setgray ef gr col0 s % Polyline 2 slj gs clippath 1929 -11232 m 1940 -11291 l 1791 -11318 l 1904 -11267 l 1780 -11259 l cp eoclip n 1545 -11790 m 1545 -11788 l 1546 -11785 l 1548 -11778 l 1550 -11768 l 1554 -11754 l 1558 -11738 l 1563 -11719 l 1569 -11698 l 1575 -11675 l 1583 -11652 l 1591 -11627 l 1599 -11602 l 1609 -11577 l 1620 -11551 l 1631 -11525 l 1645 -11498 l 1660 -11470 l 1677 -11442 l 1695 -11415 l 1719 -11384 l 1742 -11358 l 1764 -11337 l 1784 -11320 l 1804 -11307 l 1822 -11296 l 1840 -11288 l 1857 -11281 l 1872 -11276 l 1887 -11272 l 1899 -11269 l 1920 -11265 l gs col0 s gr gr % arrowhead 0 slj n 1780 -11259 m 1904 -11267 l 1791 -11318 l 1780 -11259 l cp gs 0.00 setgray ef gr col0 s /Symbol ff 240.00 scf sf 7725 -11625 m gs 1 -1 sc (b) col0 sh gr /Times-Roman ff 135.00 scf sf 7875 -11550 m gs 1 -1 sc (1,i) col0 sh gr /Symbol ff 240.00 scf sf 1650 -11850 m gs 1 -1 sc (b) col0 sh gr /Times-Roman ff 135.00 scf sf 1800 -11775 m gs 1 -1 sc (i,1) col0 sh gr /Times-Roman ff 135.00 scf sf 7275 -10500 m gs 1 -1 sc (1,0) col0 sh gr /Times-Roman ff 180.00 scf sf 6600 -11700 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 180.00 scf sf 6600 -11100 m gs 1 -1 sc (1) col0 sh gr % Ellipse n 4759 -7241 270 270 0 360 DrawEllipse gs col0 s gr % Polyline 2 slj gs clippath 4959 -7082 m 4918 -7038 l 5028 -6933 l 4962 -7038 l 5069 -6976 l cp eoclip n 4575 -7050 m 4573 -7048 l 4569 -7045 l 4563 -7039 l 4554 -7030 l 4542 -7018 l 4529 -7005 l 4514 -6989 l 4500 -6973 l 4486 -6956 l 4475 -6938 l 4465 -6921 l 4458 -6904 l 4456 -6887 l 4457 -6870 l 4465 -6854 l 4479 -6839 l 4500 -6825 l 4523 -6816 l 4548 -6808 l 4575 -6802 l 4602 -6798 l 4628 -6794 l 4653 -6792 l 4677 -6790 l 4699 -6789 l 4721 -6788 l 4742 -6788 l 4763 -6788 l 4783 -6788 l 4804 -6788 l 4826 -6789 l 4848 -6790 l 4872 -6792 l 4897 -6794 l 4923 -6798 l 4950 -6802 l 4977 -6808 l 5002 -6816 l 5025 -6825 l 5046 -6839 l 5060 -6854 l 5068 -6870 l 5069 -6887 l 5067 -6904 l 5060 -6921 l 5050 -6938 l 5039 -6956 l 5025 -6973 l 5011 -6989 l 4996 -7005 l 4983 -7018 l 4971 -7030 l 4950 -7050 l gs col0 s gr gr % arrowhead 0 slj n 5069 -6976 m 4962 -7038 l 5028 -6933 l 5069 -6976 l cp gs 0.00 setgray ef gr col0 s /Symbol ff 240.00 scf sf 4725 -6525 m gs 1 -1 sc (b) col0 sh gr /Times-Italic ff 330.00 scf sf 4650 -7050 m gs 1 -1 sc (b) col0 sh gr /Times-Roman ff 150.00 scf sf 4800 -7275 m gs 1 -1 sc (\(0\)) col0 sh gr /Times-Roman ff 135.00 scf sf 4875 -6450 m gs 1 -1 sc (0,0) col0 sh gr % Polyline 2 slj gs clippath 4992 -7284 m 5036 -7243 l 5140 -7352 l 5036 -7286 l 5096 -7393 l cp eoclip n 5175 -7725 m 5176 -7723 l 5177 -7718 l 5179 -7710 l 5182 -7699 l 5186 -7685 l 5189 -7669 l 5192 -7651 l 5194 -7631 l 5194 -7610 l 5193 -7587 l 5190 -7561 l 5184 -7532 l 5175 -7500 l 5165 -7472 l 5153 -7446 l 5141 -7423 l 5128 -7401 l 5115 -7382 l 5102 -7364 l 5089 -7347 l 5077 -7331 l 5064 -7317 l 5053 -7304 l 5043 -7294 l 5025 -7275 l gs col0 s gr gr % arrowhead 0 slj n 5096 -7393 m 5036 -7286 l 5140 -7352 l 5096 -7393 l cp gs 0.00 setgray ef gr col0 s % Polyline 2 slj gs clippath 4991 -7280 m 5040 -7245 l 5128 -7366 l 5034 -7287 l 5079 -7401 l cp eoclip n 5100 -7575 m 5101 -7573 l 5102 -7568 l 5103 -7560 l 5105 -7550 l 5107 -7537 l 5109 -7523 l 5110 -7508 l 5110 -7491 l 5108 -7472 l 5105 -7449 l 5100 -7425 l 5093 -7401 l 5085 -7378 l 5077 -7359 l 5068 -7342 l 5059 -7327 l 5051 -7312 l 5043 -7300 l 5025 -7275 l gs col0 s gr gr % arrowhead 0 slj n 5079 -7401 m 5034 -7287 l 5128 -7366 l 5079 -7401 l cp gs 0.00 setgray ef gr col0 s % Polyline 2 slj gs clippath 5004 -7301 m 5015 -7242 l 5164 -7269 l 5041 -7277 l 5153 -7328 l cp eoclip n 5400 -7800 m 5400 -7798 l 5399 -7795 l 5397 -7788 l 5395 -7778 l 5391 -7764 l 5387 -7748 l 5382 -7729 l 5376 -7708 l 5370 -7685 l 5362 -7662 l 5354 -7637 l 5346 -7612 l 5336 -7587 l 5325 -7561 l 5314 -7535 l 5300 -7508 l 5285 -7480 l 5268 -7452 l 5250 -7425 l 5226 -7394 l 5203 -7368 l 5181 -7347 l 5161 -7330 l 5141 -7317 l 5123 -7306 l 5105 -7298 l 5088 -7291 l 5073 -7286 l 5058 -7282 l 5046 -7279 l 5025 -7275 l gs col0 s gr gr % arrowhead 0 slj n 5153 -7328 m 5041 -7277 l 5164 -7269 l 5153 -7328 l cp gs 0.00 setgray ef gr col0 s % Polyline 2 slj gs clippath 4256 -7490 m 4197 -7478 l 4227 -7329 l 4233 -7453 l 4285 -7341 l cp eoclip n 4455 -7320 m 4452 -7319 l 4446 -7317 l 4437 -7314 l 4425 -7310 l 4410 -7306 l 4395 -7303 l 4379 -7301 l 4361 -7301 l 4343 -7304 l 4324 -7310 l 4305 -7320 l 4288 -7334 l 4273 -7350 l 4262 -7367 l 4254 -7384 l 4247 -7401 l 4242 -7418 l 4237 -7435 l 4230 -7470 l gs col0 s gr gr % arrowhead 0 slj n 4285 -7341 m 4233 -7453 l 4227 -7329 l 4285 -7341 l cp gs 0.00 setgray ef gr col0 s % Polyline 2 slj gs clippath 4254 -7642 m 4197 -7626 l 4237 -7479 l 4234 -7603 l 4295 -7495 l cp eoclip n 4455 -7320 m 4453 -7321 l 4449 -7325 l 4443 -7330 l 4434 -7337 l 4423 -7347 l 4410 -7358 l 4397 -7369 l 4383 -7382 l 4369 -7396 l 4354 -7412 l 4338 -7429 l 4322 -7449 l 4305 -7470 l 4288 -7494 l 4273 -7517 l 4262 -7536 l 4254 -7553 l 4247 -7568 l 4242 -7583 l 4237 -7595 l 4230 -7620 l gs col0 s gr gr % arrowhead 0 slj n 4295 -7495 m 4234 -7603 l 4237 -7479 l 4295 -7495 l cp gs 0.00 setgray ef gr col0 s % Polyline 2 slj gs clippath 4327 -7870 m 4271 -7847 l 4328 -7706 l 4311 -7829 l 4384 -7729 l cp eoclip n 4455 -7320 m 4454 -7322 l 4453 -7327 l 4452 -7336 l 4449 -7348 l 4445 -7363 l 4441 -7382 l 4436 -7402 l 4431 -7424 l 4425 -7447 l 4419 -7472 l 4413 -7498 l 4406 -7525 l 4398 -7555 l 4389 -7587 l 4380 -7620 l 4369 -7656 l 4360 -7688 l 4351 -7716 l 4343 -7740 l 4336 -7761 l 4330 -7779 l 4324 -7796 l 4318 -7810 l 4314 -7823 l 4305 -7845 l gs col0 s gr gr % arrowhead 0 slj n 4384 -7729 m 4311 -7829 l 4328 -7706 l 4384 -7729 l cp gs 0.00 setgray ef gr col0 s /Symbol ff 240.00 scf sf 5475 -7650 m gs 1 -1 sc (a) col0 sh gr /Times-Roman ff 135.00 scf sf 5625 -7575 m gs 1 -1 sc (i,0) col0 sh gr /Symbol ff 240.00 scf sf 3900 -7650 m gs 1 -1 sc (b) col0 sh gr /Times-Roman ff 135.00 scf sf 4050 -7575 m gs 1 -1 sc (0,i) col0 sh gr /Symbol ff 240.00 scf sf 6300 -7425 m gs 1 -1 sc (a) col0 sh gr /Times-Roman ff 135.00 scf sf 6450 -7350 m gs 1 -1 sc (k,0) col0 sh gr /Symbol ff 240.00 scf sf 7125 -7275 m gs 1 -1 sc (a) col0 sh gr /Times-Roman ff 135.00 scf sf 7275 -7200 m gs 1 -1 sc (1,0) col0 sh gr /Symbol ff 240.00 scf sf 2250 -7275 m gs 1 -1 sc (b) col0 sh gr /Times-Roman ff 135.00 scf sf 2400 -7200 m gs 1 -1 sc (0,1) col0 sh gr /Symbol ff 240.00 scf sf 2925 -7500 m gs 1 -1 sc (b) col0 sh gr /Times-Roman ff 135.00 scf sf 3075 -7425 m gs 1 -1 sc (0,k) col0 sh gr % Ellipse n 7159 -8891 270 270 0 360 DrawEllipse gs col0 s gr % Polyline 2 slj gs clippath 7359 -8732 m 7318 -8688 l 7428 -8583 l 7362 -8688 l 7469 -8626 l cp eoclip n 6975 -8700 m 6973 -8698 l 6969 -8695 l 6963 -8689 l 6954 -8680 l 6942 -8668 l 6929 -8655 l 6914 -8639 l 6900 -8623 l 6886 -8606 l 6875 -8588 l 6865 -8571 l 6858 -8554 l 6856 -8537 l 6857 -8520 l 6865 -8504 l 6879 -8489 l 6900 -8475 l 6923 -8466 l 6948 -8458 l 6975 -8452 l 7002 -8448 l 7028 -8444 l 7053 -8442 l 7077 -8440 l 7099 -8439 l 7121 -8438 l 7142 -8438 l 7163 -8438 l 7183 -8438 l 7204 -8438 l 7226 -8439 l 7248 -8440 l 7272 -8442 l 7297 -8444 l 7323 -8448 l 7350 -8452 l 7377 -8458 l 7402 -8466 l 7425 -8475 l 7446 -8489 l 7460 -8504 l 7468 -8520 l 7469 -8537 l 7467 -8554 l 7460 -8571 l 7450 -8588 l 7439 -8606 l 7425 -8623 l 7411 -8639 l 7396 -8655 l 7383 -8668 l 7371 -8680 l 7350 -8700 l gs col0 s gr gr % arrowhead 0 slj n 7469 -8626 m 7362 -8688 l 7428 -8583 l 7469 -8626 l cp gs 0.00 setgray ef gr col0 s /Symbol ff 240.00 scf sf 7125 -8175 m gs 1 -1 sc (b) col0 sh gr /Times-Italic ff 330.00 scf sf 7050 -8700 m gs 1 -1 sc (b) col0 sh gr /Times-Roman ff 150.00 scf sf 7200 -8925 m gs 1 -1 sc (\(k\)) col0 sh gr % Ellipse n 6135 -9315 300 300 0 360 DrawEllipse gs col0 s gr % Ellipse n 3147 -9336 300 300 0 360 DrawEllipse gs col0 s gr % Ellipse n 4350 -9300 300 300 0 360 DrawEllipse gs col0 s gr % Ellipse n 3150 -8475 300 300 0 360 DrawEllipse gs col0 s gr % Ellipse n 4950 -8475 300 300 0 360 DrawEllipse gs col0 s gr % Ellipse n 6150 -8475 300 300 0 360 DrawEllipse gs col0 s gr % Polyline gs clippath 6895 -8966 m 6929 -9016 l 6803 -9099 l 6887 -9008 l 6770 -9049 l cp eoclip n 6450 -9300 m 6900 -9000 l gs col0 s gr gr % arrowhead n 6770 -9049 m 6887 -9008 l 6803 -9099 l 6770 -9049 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 6929 -8758 m 6895 -8808 l 6770 -8723 l 6887 -8765 l 6803 -8673 l cp eoclip n 6900 -8775 m 6450 -8475 l gs col0 s gr gr % arrowhead n 6803 -8673 m 6887 -8765 l 6770 -8723 l 6803 -8673 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 4050 -9285 m 4050 -9345 l 3899 -9344 l 4019 -9314 l 3899 -9284 l cp eoclip n 3435 -9315 m 4035 -9315 l gs col0 s gr gr % arrowhead n 3899 -9284 m 4019 -9314 l 3899 -9344 l 3899 -9284 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 4950 -9285 m 4950 -9345 l 4799 -9344 l 4919 -9314 l 4799 -9284 l cp eoclip n 4635 -9315 m 4935 -9315 l gs col0 s gr gr % arrowhead n 4799 -9284 m 4919 -9314 l 4799 -9344 l 4799 -9284 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 5850 -9285 m 5850 -9345 l 5699 -9344 l 5819 -9314 l 5699 -9284 l cp eoclip n 5535 -9315 m 5835 -9315 l gs col0 s gr gr % arrowhead n 5699 -9284 m 5819 -9314 l 5699 -9344 l 5699 -9284 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 5865 -8445 m 5865 -8505 l 5714 -8504 l 5834 -8474 l 5714 -8444 l cp eoclip n 5250 -8475 m 5850 -8475 l gs col0 s gr gr % arrowhead n 5714 -8444 m 5834 -8474 l 5714 -8504 l 5714 -8444 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 4665 -8445 m 4665 -8505 l 4514 -8504 l 4634 -8474 l 4514 -8444 l cp eoclip n 4350 -8475 m 4650 -8475 l gs col0 s gr gr % arrowhead n 4514 -8444 m 4634 -8474 l 4514 -8504 l 4514 -8444 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 3765 -8445 m 3765 -8505 l 3614 -8504 l 3734 -8474 l 3614 -8444 l cp eoclip n 3450 -8475 m 3750 -8475 l gs col0 s gr gr % arrowhead n 3614 -8444 m 3734 -8474 l 3614 -8504 l 3614 -8444 l cp gs 0.00 setgray ef gr col0 s /Times-Roman ff 150.00 scf sf 3135 -9315 m gs 1 -1 sc (\(k\)) col0 sh gr /Times-Roman ff 150.00 scf sf 4410 -9315 m gs 1 -1 sc (\(k\)) col0 sh gr /Times-Roman ff 150.00 scf sf 6135 -9315 m gs 1 -1 sc (\(k\)) col0 sh gr /Times-Roman ff 420.00 scf sf 5085 -9240 m gs 1 -1 sc (...) col0 sh gr /Times-Roman ff 360.00 scf sf 3000 -9150 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 360.00 scf sf 4200 -9150 m gs 1 -1 sc (2) col0 sh gr /Times-Italic ff 360.00 scf sf 6000 -9150 m gs 1 -1 sc (L) col0 sh gr /Times-Roman ff 150.00 scf sf 6135 -8490 m gs 1 -1 sc (\(k'\)) col0 sh gr /Times-Roman ff 420.00 scf sf 3900 -8400 m gs 1 -1 sc (...) col0 sh gr /Times-Italic ff 360.00 scf sf 3000 -8325 m gs 1 -1 sc (L) col0 sh gr /Times-Roman ff 150.00 scf sf 3150 -8475 m gs 1 -1 sc (\(k'\)) col0 sh gr /Times-Italic ff 360.00 scf sf 4800 -8325 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 150.00 scf sf 5025 -8475 m gs 1 -1 sc (\(k'\)) col0 sh gr /Times-Roman ff 360.00 scf sf 6000 -8325 m gs 1 -1 sc (1) col0 sh gr /Times-Italic ff 150.00 scf sf 6225 -9150 m gs 1 -1 sc (k) col0 sh gr /Times-Italic ff 150.00 scf sf 3225 -8325 m gs 1 -1 sc (k) col0 sh gr % Ellipse n 2175 -8925 237 237 0 360 DrawEllipse gs col0 s gr % Polyline 2 slj gs clippath 2876 -9279 m 2850 -9333 l 2715 -9265 l 2836 -9292 l 2742 -9211 l cp eoclip n 2400 -9075 m 2850 -9300 l gs col0 s gr gr % arrowhead 0 slj n 2742 -9211 m 2836 -9292 l 2715 -9265 l 2742 -9211 l cp gs 0.00 setgray ef gr col0 s % Polyline 2 slj gs clippath 2845 -8441 m 2879 -8491 l 2753 -8574 l 2837 -8483 l 2720 -8524 l cp eoclip n 2400 -8775 m 2850 -8475 l gs col0 s gr gr % arrowhead 0 slj n 2720 -8524 m 2837 -8483 l 2753 -8574 l 2720 -8524 l cp gs 0.00 setgray ef gr col0 s /Times-Roman ff 180.00 scf sf 2400 -9225 m gs 1 -1 sc (1/2) col0 sh gr /Times-Roman ff 180.00 scf sf 2400 -8475 m gs 1 -1 sc (1/2) col0 sh gr /Times-Roman ff 180.00 scf sf 3675 -9375 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 180.00 scf sf 3675 -8550 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 180.00 scf sf 5550 -9375 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 180.00 scf sf 5550 -8550 m gs 1 -1 sc (1) col0 sh gr % Polyline 2 slj gs clippath 7727 -9053 m 7668 -9065 l 7639 -8916 l 7692 -9028 l 7697 -8904 l cp eoclip n 7470 -8895 m 7473 -8894 l 7479 -8892 l 7488 -8889 l 7500 -8885 l 7515 -8881 l 7530 -8878 l 7546 -8876 l 7564 -8876 l 7582 -8879 l 7601 -8885 l 7620 -8895 l 7637 -8909 l 7652 -8925 l 7663 -8942 l 7671 -8959 l 7678 -8976 l 7683 -8993 l 7688 -9010 l 7695 -9045 l gs col0 s gr gr % arrowhead 0 slj n 7697 -8904 m 7692 -9028 l 7639 -8916 l 7697 -8904 l cp gs 0.00 setgray ef gr col0 s % Polyline 2 slj gs clippath 7727 -9201 m 7670 -9217 l 7629 -9070 l 7691 -9178 l 7687 -9054 l cp eoclip n 7470 -8895 m 7472 -8896 l 7476 -8900 l 7482 -8905 l 7491 -8912 l 7502 -8922 l 7515 -8933 l 7528 -8944 l 7542 -8957 l 7556 -8971 l 7571 -8987 l 7587 -9004 l 7603 -9024 l 7620 -9045 l 7637 -9069 l 7652 -9092 l 7663 -9111 l 7671 -9128 l 7678 -9143 l 7683 -9158 l 7688 -9170 l 7695 -9195 l gs col0 s gr gr % arrowhead 0 slj n 7687 -9054 m 7691 -9178 l 7629 -9070 l 7687 -9054 l cp gs 0.00 setgray ef gr col0 s % Polyline 2 slj gs clippath 7653 -9422 m 7597 -9445 l 7540 -9304 l 7614 -9404 l 7596 -9281 l cp eoclip n 7470 -8895 m 7471 -8897 l 7472 -8902 l 7473 -8911 l 7476 -8923 l 7480 -8938 l 7484 -8957 l 7489 -8977 l 7494 -8999 l 7500 -9022 l 7506 -9047 l 7512 -9073 l 7519 -9100 l 7527 -9130 l 7536 -9162 l 7545 -9195 l 7556 -9231 l 7565 -9263 l 7574 -9291 l 7582 -9315 l 7589 -9336 l 7595 -9354 l 7601 -9371 l 7607 -9385 l 7611 -9398 l 7620 -9420 l gs col0 s gr gr % arrowhead 0 slj n 7596 -9281 m 7614 -9404 l 7540 -9304 l 7596 -9281 l cp gs 0.00 setgray ef gr col0 s % Polyline 2 slj gs clippath 1908 -8908 m 1952 -8949 l 1848 -9058 l 1909 -8951 l 1804 -9017 l cp eoclip n 1770 -9390 m 1769 -9388 l 1768 -9383 l 1766 -9375 l 1763 -9364 l 1759 -9350 l 1756 -9334 l 1753 -9316 l 1751 -9296 l 1751 -9275 l 1752 -9252 l 1755 -9226 l 1761 -9197 l 1770 -9165 l 1780 -9137 l 1792 -9111 l 1804 -9088 l 1817 -9066 l 1830 -9047 l 1843 -9029 l 1856 -9012 l 1868 -8996 l 1881 -8982 l 1892 -8969 l 1902 -8959 l 1920 -8940 l gs col0 s gr gr % arrowhead 0 slj n 1804 -9017 m 1909 -8951 l 1848 -9058 l 1804 -9017 l cp gs 0.00 setgray ef gr col0 s % Polyline 2 slj gs clippath 1904 -8910 m 1953 -8945 l 1865 -9066 l 1911 -8952 l 1816 -9031 l cp eoclip n 1845 -9240 m 1844 -9238 l 1843 -9233 l 1842 -9225 l 1840 -9215 l 1838 -9202 l 1836 -9188 l 1835 -9173 l 1835 -9156 l 1837 -9137 l 1840 -9114 l 1845 -9090 l 1852 -9066 l 1860 -9043 l 1868 -9024 l 1877 -9007 l 1886 -8992 l 1894 -8977 l 1902 -8965 l 1920 -8940 l gs col0 s gr gr % arrowhead 0 slj n 1816 -9031 m 1911 -8952 l 1865 -9066 l 1816 -9031 l cp gs 0.00 setgray ef gr col0 s % Polyline 2 slj gs clippath 1929 -8907 m 1940 -8966 l 1791 -8993 l 1904 -8942 l 1780 -8934 l cp eoclip n 1545 -9465 m 1545 -9463 l 1546 -9460 l 1548 -9453 l 1550 -9443 l 1554 -9429 l 1558 -9413 l 1563 -9394 l 1569 -9373 l 1575 -9350 l 1583 -9327 l 1591 -9302 l 1599 -9277 l 1609 -9252 l 1620 -9226 l 1631 -9200 l 1645 -9173 l 1660 -9145 l 1677 -9117 l 1695 -9090 l 1719 -9059 l 1742 -9033 l 1764 -9012 l 1784 -8995 l 1804 -8982 l 1822 -8971 l 1840 -8963 l 1857 -8956 l 1872 -8951 l 1887 -8947 l 1899 -8944 l 1920 -8940 l gs col0 s gr gr % arrowhead 0 slj n 1780 -8934 m 1904 -8942 l 1791 -8993 l 1780 -8934 l cp gs 0.00 setgray ef gr col0 s /Symbol ff 240.00 scf sf 7725 -9225 m gs 1 -1 sc (b) col0 sh gr /Times-Roman ff 135.00 scf sf 7875 -9150 m gs 1 -1 sc (k,i) col0 sh gr /Symbol ff 240.00 scf sf 1650 -9525 m gs 1 -1 sc (b) col0 sh gr /Times-Roman ff 135.00 scf sf 1800 -9450 m gs 1 -1 sc (i,k) col0 sh gr /Times-Roman ff 135.00 scf sf 7275 -8100 m gs 1 -1 sc (k,0) col0 sh gr /Times-Roman ff 180.00 scf sf 6600 -8700 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 180.00 scf sf 6600 -9300 m gs 1 -1 sc (1) col0 sh gr % Arc gs clippath 5018 -7157 m 5002 -7099 l 5149 -7059 l 5041 -7120 l 5164 -7117 l cp eoclip n 5725.3 -9446.1 2424.5 -45.5 106.8 arc gs col0 s gr gr % arrowhead n 5164 -7117 m 5041 -7120 l 5149 -7059 l 5164 -7117 l cp gs 0.00 setgray ef gr col0 s % Arc gs clippath 1976 -8870 m 1917 -8859 l 1944 -8709 l 1953 -8833 l 2003 -8720 l cp eoclip n 3943.7 -9135.7 2014.1 171.8 74.0 arcn gs col0 s gr gr % arrowhead n 2003 -8720 m 1953 -8833 l 1944 -8709 l 2003 -8720 l cp gs 0.00 setgray ef gr col0 s % Arc gs clippath 1982 -11167 m 1936 -11205 l 1839 -11089 l 1940 -11162 l 1886 -11050 l cp eoclip n 3820.6 -9525.0 2494.3 74.2 -138.6 arc gs col0 s gr gr % arrowhead n 1886 -11050 m 1940 -11162 l 1839 -11089 l 1886 -11050 l cp gs 0.00 setgray ef gr col0 s % Polyline 2 slj gs clippath 5016 -7232 m 5004 -7173 l 5152 -7141 l 5041 -7196 l 5164 -7200 l cp eoclip n 7425 -8775 m 7426 -8774 l 7427 -8773 l 7430 -8771 l 7435 -8767 l 7441 -8762 l 7449 -8755 l 7459 -8747 l 7471 -8736 l 7484 -8724 l 7499 -8711 l 7515 -8695 l 7531 -8678 l 7548 -8660 l 7565 -8641 l 7582 -8620 l 7598 -8599 l 7613 -8576 l 7628 -8552 l 7640 -8528 l 7651 -8502 l 7660 -8475 l 7667 -8446 l 7671 -8416 l 7673 -8384 l 7671 -8350 l 7666 -8314 l 7657 -8275 l 7644 -8234 l 7626 -8191 l 7603 -8146 l 7575 -8100 l 7546 -8058 l 7515 -8017 l 7482 -7977 l 7449 -7939 l 7417 -7903 l 7386 -7869 l 7356 -7839 l 7328 -7811 l 7303 -7785 l 7279 -7762 l 7257 -7741 l 7238 -7722 l 7220 -7705 l 7203 -7690 l 7187 -7675 l 7172 -7662 l 7158 -7650 l 7144 -7637 l 7129 -7625 l 7114 -7613 l 7097 -7601 l 7079 -7588 l 7058 -7574 l 7035 -7558 l 7009 -7542 l 6980 -7524 l 6947 -7505 l 6909 -7484 l 6867 -7461 l 6821 -7436 l 6769 -7411 l 6713 -7384 l 6653 -7356 l 6588 -7328 l 6520 -7301 l 6450 -7275 l 6379 -7251 l 6308 -7230 l 6238 -7211 l 6170 -7195 l 6104 -7181 l 6041 -7169 l 5979 -7160 l 5919 -7152 l 5862 -7147 l 5806 -7142 l 5752 -7139 l 5699 -7138 l 5648 -7137 l 5598 -7138 l 5549 -7140 l 5501 -7142 l 5455 -7145 l 5409 -7148 l 5366 -7152 l 5324 -7157 l 5283 -7161 l 5246 -7166 l 5210 -7171 l 5177 -7175 l 5147 -7180 l 5121 -7184 l 5098 -7188 l 5078 -7191 l 5062 -7193 l 5049 -7196 l 5039 -7197 l 5025 -7200 l gs col0 s gr gr % arrowhead 0 slj n 5164 -7200 m 5041 -7196 l 5152 -7141 l 5164 -7200 l cp gs 0.00 setgray ef gr col0 s /Times-Bold ff 675.00 scf sf 4950 -9900 m gs 1 -1 sc 90.0 rot (...) col0 sh gr F2psBegin10setmiterlimit0.060000.06000scF2psEnd rs %%EndDocument @endspecial -83 4195 a Fw(Figure)46 b(3.)g FH(The)30 b(global)j(HMM)d(\(unlabeled)k(circles)e(are)g(dummy)-83 4270 y(states\).)-83 4473 y FJ(Let)46 b FC(x)g FJ(be)f(the)g(indicator) f(v)n(ariable)g(sequence)g(specifying)-182 4568 y(whether)17 b(each)i FC(y)317 4580 y Fz(t)365 4568 y FJ(in)h(a)f(DN)m(A)g(sequence) f(is)i(in)f(the)g(background)c(or)-182 4662 y(in)24 b(a)g(motif,)h(and) e(if)i(in)f(a)g(motif,)h(which)e(motif)h(and)f(where)h(in)g(the)-182 4757 y(motif:)g FC(x)f FB(=)g(\()p FC(x)283 4769 y FA(1)321 4757 y FC(;)14 b(:)g(:)g(:)f(;)h(x)552 4769 y Fz(T)605 4757 y FB(\))p FJ(,)20 b(where)e FC(x)947 4769 y Fz(t)1000 4757 y Fy(2)24 b Fn(S)m FJ(.)19 b(The)f(indicator)g(state)-182 4852 y(space)25 b Fn(S)17 b FJ(includes)25 b(all)h(possible)f(identity) g(labels)h(of)f(a)h(monomer)-182 4946 y(\(nt\))e(in)g(a)h(sequence:)33 b Fm(S)19 b Fl(=)28 b Fm(M)45 b Fk([)20 b Fm(M)862 4915 y FI(0)910 4946 y Fk([)g(f)p Fj(b)1052 4915 y Fu(0)1085 4946 y Fj(;)13 b(b)1152 4915 y Fu(1)1184 4946 y Fj(;)h(:)f(:)g(:)g(;)g (b)1388 4915 y Ft(k)1424 4946 y Fj(;)g(d)p Fk(g)p FJ(,)27 b(where)-182 5041 y Fm(M)46 b Fl(=)21 b Fk(f)p Fl(1)67 5009 y Fu(\(1\))158 5041 y Fj(:)13 b(:)g(:)g(L)312 5005 y Fu(\(1\))312 5060 y Fi(1)390 5041 y Fj(;)g Fl(1)462 5009 y Fu(\(2\))552 5041 y Fj(:)g(:)h(:)f(L)707 5005 y Fu(\(2\))707 5060 y Fi(2)784 5041 y Fj(;)g(:)h(:)f(:)g(;)g Fl(1)993 5009 y Fu(\()p Ft(K)s Fu(\))1105 5041 y Fj(:)g(:)h(:)f(L)1260 5005 y Fu(\()p Ft(K)s Fu(\))1260 5063 y Fh(k)1359 5041 y Fk(g)18 b FJ(is)g(the)f(set)h(of)-182 5136 y(all)23 b(possible)g(sites)i(within)e(a)g(motif)g(on)g(the)g(forw)o(ard)f (strand)g(\(i.e.,)-182 5230 y(states)h Fl(1)63 5199 y Fu(\(1\))164 5230 y FJ(to)g Fj(L)304 5194 y Fu(\(1\))304 5249 y Fi(1)405 5230 y FJ(correspond)e(to)h(the)h(sites)h(in)f(motif)f (type)h(1)f(on)-182 5325 y(the)h(forw)o(ard)f(strand,)h(and)g(so)g (on\);)h Fm(M)942 5293 y FI(0)994 5325 y FJ(is)g(the)f(set)h(of)f(all)h (possible)1974 83 y(sites)18 b(within)f(a)h(motif)e(on)h(the)g(re)n(v)o (erse)g(complementary)d(strand;)k FC(b)3911 53 y Fu(0)1974 178 y FJ(corresponds)g(to)j(the)f(inter)n(-cluster)g(background)d (state;)k FC(b)3670 148 y Ft(k)3706 178 y FC(;)14 b(k)27 b Fy(6)p FB(=)c(0)1974 272 y FJ(corresponds)30 b(to)j(the)f (intra-cluster)g(background)d(states;)39 b(and)32 b FC(d)1974 367 y FJ(represents)c(dummy)f(states.)52 b(W)-7 b(e)30 b(model)e(the)h(distrib)n(ution)f(of)g FC(x)1974 462 y FJ(with)20 b(the)g(\002rst-order)f(Mark)o(o)o(v)g(process)g(depicted) g(in)i(Figure)e(3.)2073 556 y(The)k(moti)n(v)n(ation)d(for)i(this)h (Mark)o(o)o(v)e(model)g(is)j(that)e(we)h(e)o(xpect)1974 651 y(to)k(see)h(occasional)e(motif)h(clusters)g(in)h(a)f(lar)o(ge)g (ocean)f(of)h(global)1974 746 y(background)e(sequences)j(\(represented) e(by)i(state)i FC(b)3530 715 y Fu(0)3562 746 y FJ(\),)g(and)f(each)1974 840 y(motif)23 b(instance)h(in)g(a)g(cluster)g(is)h(embedded)d(in)i(a)h (corresponding)1974 935 y(sea)g(of)f(intra-cluster)f(background)e (sequences)j(\()p FC(b)3468 905 y Ft(i)3494 935 y FJ(\).)38 b(The)24 b(model)1974 1029 y(assumes)d(that)g(the)h(distance)e(between) h(clusters)g(is)h(geometrically)1974 1124 y(distrib)n(uted)16 b(with)i(mean)d Fl(1)p Fj(=)p Fl(\(1)7 b Fk(\000)g Fj(\014)2968 1132 y Fu(0)p Ft(;)p Fu(0)3050 1124 y Fl(\))p FJ(,)18 b(and)f(the)g(distance)g(between)1974 1219 y(motif)28 b(instances)h(within)f(cluster)h FC(k)j FJ(is)e(also)f(geometrically)e (dis-)1974 1313 y(trib)n(uted)32 b(with)i(mean)29 b Fl(1)p Fj(=)p Fl(\(1)f Fk(\000)d Fj(\014)2956 1321 y Ft(k)q(;)p Fu(0)3040 1313 y Fl(\))p FJ(.)65 b(As)34 b(sho)n(wn)f(in)h(Figure)e(3,) 1974 1408 y(with)24 b(equal)f(probability)f Fj(\014)2782 1417 y Fh(k)q(;k)2873 1408 y Fj(=)p Fl(2)p FJ(,)j(an)f (intra-background)19 b(state)25 b FC(b)3907 1378 y Ft(k)1974 1503 y FJ(reaches)e(the)h(start)g(states)h Fl(1)2787 1471 y Fu(\()p Ft(k)q Fu(\))2893 1503 y FJ(and)f Fj(L)3090 1467 y Fu(\()p Ft(k)3144 1450 y Fg(0)3167 1467 y Fu(\))3090 1524 y Fh(k)3218 1503 y FJ(of)g(motif)f FC(k)k FJ(on)d(the)g(for)n(-) 1974 1597 y(w)o(ard)e(or)h(re)n(v)o(erse)e(strand,)i(deterministically) e(passes)i(through)e(all)1974 1692 y(internal)i(sites)i(of)f(motif)g FC(k)j FJ(\(thus)d(a)n(v)n(oiding)f(motif)g(o)o(v)o(erlapping\),)1974 1787 y(and)h(transits)h(back)g(to)g(the)f(same)h(background)d(state)j FC(b)3610 1756 y Ft(k)3646 1787 y FJ(,)i(thereby)1974 1881 y(stochastically)f(generating)g(a)h(cluster)g(of)g(occurrences)e (of)i(motif)1974 1976 y FC(k)s FJ(;)d FC(b)2103 1946 y Ft(k)2162 1976 y FJ(also)f(has)f(a)h(small)g(probability)d Fj(\014)3145 1985 y Fh(k)q(;i)3225 1976 y Fj(=)p Fl(2)k FJ(of)e(transiting)g(to)g(the)1974 2071 y(start)d(state)g(of)f(another) f(motif)h FC(i)p FJ(,)h(which)f(terminates)g(cluster)g FC(k)k FJ(and)1974 2165 y(leads)32 b(into)g(cluster)h FC(i)p FJ(;)38 b(all)33 b(intra-background)28 b(states)33 b(also)g(ha)n(v)o(e)1974 2260 y(probability)17 b Fj(\013)2407 2269 y Fh(k)q(;)p Fi(0)2514 2260 y FJ(of)h(returning)f(to)i(the)g (global)f(background)e(state.)1974 2354 y(These)22 b(parameters)f(can)i (in)f(principle)f(be)i(\002tted)g(using)e(a)i(training)1974 2449 y(set,)17 b(or)e(just)h(speci\002ed)f(empirically)f(based)h(on)g (a)h(rough)e(estimation)1974 2544 y(of)i(the)h(motif)f(or)h FL(cis)p FJ(-module)e(frequencies)3249 2514 y FG(7)3283 2544 y FJ(.)24 b(Note)17 b(that)g(these)g(pa-)1974 2638 y(rameters)24 b(do)h(not)g(impose)f(rigid)g(constraints)h(on)f(the)h (number)e(of)1974 2733 y(motif)f(instances)g(or)g(modules;)g(the)h (actual)f(number)e(of)i(instances)1974 2828 y(is)27 b(determined)d(by)i (the)g(posterior)f(distrib)n(ution)g(of)g(the)h(indicator)1974 2922 y(sequence)19 b FC(p)p FB(\()p FC(x)p Fy(j)p FC(y)s FB(\))p FJ(.)2073 3017 y(In)26 b(accordance)f(with)h(the)g(abo)o(v)o(e) f(frame)n(w)o(ork,)g(we)i(introduce)1974 3112 y(multinomial)53 b(parameters)h FC(\022)2894 3124 y Fz(b)2923 3132 y Fu(0)3047 3112 y FB(=)86 b([)p FC(\022)3260 3124 y Fz(b)3289 3132 y Fu(0)3322 3124 y Fz(;)p FA(1)3379 3112 y FC(;)14 b(:)g(:)g(:)g(;)g (\022)3603 3124 y Fz(b)3632 3132 y Fu(0)3664 3124 y Fz(;)p FA(4)3721 3112 y FB(])3744 3082 y Fs(0)3823 3112 y FJ(and)1974 3206 y FC(\022)2013 3218 y Fz(b)2042 3226 y Fu(1)2141 3206 y FB(=)61 b([)p FC(\022)2329 3218 y Fz(b)2358 3226 y Fu(1)2391 3218 y Fz(;)p FA(1)2448 3206 y FC(;)14 b(:)g(:)g(:)f(;)h (\022)2671 3218 y Fz(b)2700 3226 y Fu(1)2733 3218 y Fz(;)p FA(4)2790 3206 y FB(])2813 3176 y Fs(0)2878 3206 y FJ(for)41 b(the)g(inter)n(-)g(and)f(intra-cluster)1974 3301 y(background)46 b(nt)j(distrib)n(utions,)55 b(respecti)n(v)o(ely)48 b(\(assuming)g(all) 1974 3396 y(intra-cluster)69 b(backgrounds)e(use)k(the)f(same)h (multinomial)1974 3490 y(model\).)91 b(Thus,)48 b(gi)n(v)o(en)41 b(the)i(PWMs)h FB(\002)f FJ(of)f(motifs)h(and)f(the)1974 3585 y(background)35 b(parameters)i FB(\002)2873 3597 y Fz(bk)2999 3585 y FB(=)56 b Fy(f)p FC(\022)3201 3597 y Fz(b)3230 3605 y Fu(0)3266 3585 y FC(;)14 b(\022)3342 3597 y Fz(b)3371 3605 y Fu(1)3407 3585 y Fy(g)p FJ(,)43 b(we)c(ha)n(v)o(e)e(the)1974 3680 y(usual)27 b(joint)g(probability)e (for)h(a)h(conditional)f(HMM)h(model)f(of)h(a)1974 3774 y(motif-containing)17 b(sequence:)2152 4004 y FC(p)p FB(\()p FC(x;)d(y)s Fy(j)p FB(\002)p FC(;)g FB(\002)2544 4016 y Fz(bk)2613 4004 y FC(;)g FB(\002)2715 4016 y Fz(g)2754 4004 y FC(;)g Fy(M)2891 4016 y Fz(g)2929 4004 y FB(\))2235 4213 y(=)83 b FC(p)p FB(\()p FC(x)2504 4225 y FA(1)2542 4213 y FB(\))2618 4109 y Fz(T)2589 4134 y Fp(Y)2588 4310 y Fz(t)p FA(=2)2711 4213 y FC(p)p FB(\()p FC(x)2832 4225 y Fz(t)2861 4213 y Fy(j)p FC(x)2931 4225 y Fz(t)p Fs(\000)p FA(1)3046 4213 y FB(\))3123 4109 y Fz(T)3094 4134 y Fp(Y)3092 4310 y Fz(t)p FA(=1)3215 4213 y FC(p)p FB(\()p FC(y)3330 4225 y Fz(t)3359 4213 y Fy(j)p FC(x)3429 4225 y Fz(t)3459 4213 y FC(;)14 b FB(\002)p FC(;)g FB(\002)3663 4225 y Fz(bk)3732 4213 y FB(\))82 b FJ(\(5\))1974 4424 y(where)165 b FC(p)p FB(\()p FC(y)2458 4436 y Fz(t)2487 4424 y Fy(j)p FC(x)2557 4436 y Fz(t)2586 4424 y FC(;)14 b FB(\002)p FC(;)g FB(\002)2790 4436 y Fz(bk)2859 4424 y FB(\))84 b(=)3122 4345 y Fp(Y)3125 4523 y Fz(i)p Fs(2)p Ff(S)3283 4320 y FA(4)3247 4345 y Fp(Y)3242 4522 y Fz(j)s FA(=1)3371 4357 y Fp(\002)3406 4424 y FC(\022)3445 4436 y Fz(ij)3503 4357 y Fp(\003)3538 4374 y Fz(\016)r FA(\()p Fz(y)3630 4382 y Ft(t)3657 4374 y Fz(;j)s FA(\))p Fz(\016)r FA(\()p Fz(x)3829 4382 y Ft(t)3857 4374 y Fz(;i)p FA(\))3930 4424 y FC(:)2073 4639 y FJ(The)22 b(locations)f(of)g(all)h(motif)f (instances)h(encoded)d(in)j FC(x)h FJ(can)e(be)1974 4734 y(inferred)d(from)i(the)g(global)f(model)g(using)h(Bayes)h(rule.)p 1974 4797 788 4 v 2064 4852 a FF(7)2093 4875 y FH(When)e(no)f(strong)h (kno)n(wledge)i(about)f(modular)f(dependencies)j(is)c(a)o(v)n(ailable,) 1974 4950 y(it)j(is)g(better)i(to)e(just)h(set)f(all)h(bk-to-mt)g (transitions)i Fj(\014)3232 4958 y Fh(i;j)3306 4950 y Fj(;)13 b(i;)g(j)35 b Fk(6)p Fl(=)29 b(0)p FH(,)22 b(to)f(the)h(same) 1974 5025 y(small)17 b(constant)h(re\003ecting)h(motif)d(frequenc)o(y)l (,)i(and)f(similarly)h(for)f Fj(\014)3591 5034 y Fi(0)p Fh(;k)3694 5025 y FH(and)g Fj(\013)3855 5034 y Fh(k)q(;)p Fi(0)1974 5100 y FH(re\003ecting)27 b(cluster)f(frequenc)o(y)l(,)i(to)d (a)o(v)o(oid)g(o)o(v)o(er\002tting.)46 b(In)24 b(our)h(e)o(xperiment,)j (we)1974 5175 y(parametrize)f(our)e(HMM)f(model)h(in)f(such)h(a)f(f)o (ashion.)44 b(This)24 b(reduced)i(model)f(is)1974 5250 y(v)o(ery)18 b(similar)h(to)f(the)g(one)g(used)g(in)g(Cister)h([7],)e (b)o(ut)h(with)g(unkno)n(wn)h(PWMs)d(in)i(our)1974 5325 y(case.)p eop %%Page: 6 6 6 5 bop -83 83 a FJ(The)27 b(HMM)h(model)e(we)i(proposed)d(is)j(not)f (meant)g(to)g(capture)-182 178 y(\002ne)20 b(details)g(of)f(the)h (global)f(motif)g(dependencies,)f(because)h(with-)-182 272 y(out)j(a)g(suf)n(\002ciently)g(lar)o(ge)f(and)h (well-characterized)e(training)h(data)-182 367 y(set,)j(we)f(could)f (risk)h(o)o(v)o(er\002tting)e(to)j(hypothetical)c(structures)i(and)-182 462 y(f)o(ail)c(to)h(generalize)e(to)h(sequences)f(bearing)g(unkno)n (wn)f(\(and)h(possi-)-182 556 y(bly)f(simpler\))h(structures.)23 b(But)18 b(within)f(the)g FK(LOGOS)g FJ(frame)n(w)o(ork,)-182 651 y(if)32 b(so)h(desired,)h(we)e(can)g(easily)h(generalize)d(to)j (more)e(elaborate)-182 746 y(models,)k(such)d(as)i(one)e(that)h(models) f(higher)f(order)h(dependen-)-182 840 y(cies,)26 b(or)f(one)g(which)f (uses)i(a)f(more)f(comple)o(x)g(background)d(\(e.g.,)-182 935 y(a)g(higher)n(-order)d(Mark)o(o)o(v)h(model\))h(in)h(a)h (principled)d(w)o(ay)-5 b(.)27 b(All)22 b(that)-182 1029 y(is)j(needed)f(is)h(to)g(simply)g(e)o(xpand)e(the)h(state)i(space)f Fn(S)m FJ(,)20 b(and)k(either)-182 1124 y(train)32 b(or)g(empirically)f (parametrize)g(a)h(more)g(e)o(xpressi)n(v)o(e)f(initial)-182 1219 y(and)19 b(transition)h(model)f(in)h(the)h(global)e(HMM.)-182 1448 y FM(3)99 b(Infer)n(ence)27 b(and)f(Lear)o(ning)f(Algorithm)-182 1662 y FD(3.1)90 b(V)-8 b(ariational)22 b(Bay)o(esian)f(lear)o(ning)-83 1868 y FJ(In)15 b(order)g(to)g(do)g(Bayesian)h(estimation)f(of)g(the)g (motif)g(parameter)-182 1963 y FC(\022)r FJ(,)22 b(and)f(to)g(predict)g (the)g(locations)g(of)g(motif)g(instances)g(via)h(the)f(in-)-182 2057 y(dicator)f(sequence)f FC(x)p FJ(,)j(we)f(need)g(to)g(be)f(able)h (to)g(compute)e(the)i(pos-)-182 2152 y(terior)d(distrib)n(ution)f FC(p)p FB(\()p FC(\022)r Fy(j)p FC(y)s FB(\))p FJ(,)j(which)e(is)h (infeasible)f(in)h(closed)f(form)-182 2247 y(for)25 b(a)h(comple)o(x)e (motif)h(model)g(\(because)f(we)i(ha)n(v)o(e)f(to)h(mar)o(ginal-)-182 2341 y(ize)j(out)h FC(q)j FJ(and)c FC(x)h FJ(in)g(the)f(joint)h (posterior)e FC(p)p FB(\()p FC(\022)r(;)14 b(q)s(;)g(x)p Fy(j)p FC(y)s(;)g Fy(M)p FB(\))p FJ(\).)53 b(A)-182 2436 y(possible)28 b(approach)f(is)j(to)f(use)g(a)g(Mark)o(o)o(v)e(Chain)i (Monte)f(Carlo)-182 2531 y(\(MCMC\))17 b(method,)g(such)g(as)h(a)g (Gibbs)g(sampler)m(,)f(which)g(performs)-182 2625 y(\223asymptotically) 24 b(e)o(xact)i(inference.)-6 b(\224)41 b(Ho)n(we)n(v)o(er)m(,)26 b(concerns)e(o)o(v)o(er)-182 2720 y(lik)o(ely)18 b(slo)n(w)h(mixing)f (and)g(dif)n(\002culties)g(in)h(detecting)f(con)m(v)o(er)o(gence)-182 2815 y(moti)n(v)n(ate)31 b(us)h(to)g(use)g FL(variational)f(Bayesian)f (infer)m(ence)p FJ(,)k(which)-182 2909 y(has)21 b(a)g(more)g (deterministic)f(\003a)n(v)n(or)h(similar)g(to)g(that)g(of)g(EM)g(and)g (is)-182 3004 y(computationally)c(more)i(ef)n(\002cient.)-83 3098 y(The)37 b(v)n(ariational)e(Bayesian)i(inference)e(method)g(de)n (v)o(eloped)-182 3193 y(in)29 b([22)o(])g(for)g(the)g(HMDM)g(model)f (is)i(a)g(special)f(instance)g(of)g(the)-182 3288 y FL(g)o(ener)o (alized)c(mean)g(\002eld)h FJ(\(GMF\))g(algorithm)52 b([23)n(].)43 b(Brie\003y)-5 b(,)28 b(in)-182 3382 y(the)g(GMF)h(frame) n(w)o(ork,)f(a)h(comple)o(x)d(joint)i(distrib)n(ution)g FC(p)p FJ(,)i(such)-182 3477 y(as)22 b(the)g(joint)g(posterior)f FC(p)p FB(\()p FC(\022)r(;)14 b(q)s(;)g(x)p Fy(j)p FC(y)s(;)g Fy(M)p FB(\))p FJ(,)23 b(is)g(approximated)c(with)-182 3572 y(a)33 b(simpler)h(distrib)n(ution)e FC(Q)h FJ(de\002ned)g(by)g (the)g(product)f(of)h(inter)n(-)-182 3666 y(dependent)27 b(local)j(mar)o(ginals)e(o)o(v)o(er)h(disjoint)g(subsets)i(of)e(all)i (do-)-182 3761 y(main)23 b(v)n(ariables,)h(e.g.,)g FC(Q)p FB(\()p FC(\022)r(;)14 b(q)s(;)g(x)p FB(\))30 b(=)g FC(Q)1041 3773 y Fz(l)1066 3761 y FB(\()p FC(\022)r(;)14 b(q)s FB(\))p FC(Q)1314 3773 y Fz(g)1353 3761 y FB(\()p FC(x)p FB(\))p FJ(.)37 b(The)24 b(op-)-182 3856 y(timal)e(form)e(of)i(each)f (local)h(mar)o(ginal)e(can)h(be)h(obtained)e(via)i(min-)-182 3950 y(imizing)28 b(the)g(K)o(ullback-Leibler)e(\(KL\))i(di)n(v)o(er)o (gence)e(between)i FC(Q)-182 4045 y FJ(and)33 b FC(p)h FJ(with)g(respect)f(to)h(free)f(distrib)n(utions)g FC(Q)1275 4057 y Fz(l)1335 4045 y FJ(and)g FC(Q)1555 4057 y Fz(g)1627 4045 y FJ([23)o(].)-182 4140 y(Omitting)25 b(mathematical)h(details,)i (this)e(optimization)f(results)i(in)-182 4234 y(the)20 b(follo)n(wing)e(coupled)h(updates:)132 4415 y FC(Q)198 4427 y Fz(g)236 4415 y FB(\()p FC(x)p FB(\))84 b(=)f FC(p)p FB(\()p FC(x)p Fy(jM)823 4427 y Fz(g)862 4415 y FB(\))p FC(p)p FB(\()p FC(y)s Fy(j)p FC(x;)1130 4393 y FB(\026)1119 4415 y FC(\036)q FB(\()p FC(\022)r FB(\))p FC(;)14 b Fy(M)1411 4427 y Fz(g)1450 4415 y FB(\))208 b FJ(\(6\))74 4534 y FC(Q)140 4546 y Fz(l)165 4534 y FB(\()p FC(\022)r(;)14 b(q)s FB(\))84 b(=)f FC(p)p FB(\()p FC(q)s Fy(jM)816 4546 y Fz(l)841 4534 y FB(\))p FC(p)p FB(\()p FC(\022)r Fy(j)p FC(q)s(;)14 b(\013;)1180 4513 y FB(\026)1178 4534 y FC(h)q FB(\()p FC(y)s FB(\))p FC(;)g Fy(M)1472 4546 y Fz(l)1497 4534 y FB(\))161 b FJ(\(7\))-182 4715 y(where,)30 b FC(E)134 4727 y Fz(D)225 4715 y FJ(denotes)e(e)o (xpectation)g(with)h(respect)g(to)h(the)f(distri-)-182 4810 y(b)n(ution)22 b FC(D)r FJ(,)i(and)312 4788 y FB(\026)311 4810 y FC(h)p FB(\()p FC(y)s FB(\))29 b(=)f FC(E)650 4822 y Fz(Q)702 4830 y Ft(g)741 4810 y FB([)p FC(h)p FB(\()p FC(x;)14 b(y)s FB(\)])p FJ(,)1084 4788 y FB(\026)1073 4810 y FC(\036)p FB(\()p FC(\022)r FB(\))29 b(=)f FC(E)1410 4822 y Fz(Q)1462 4831 y Ft(l)1491 4810 y FB([ln)14 b FC(\022)r FB(])1709 4780 y FG(8)1766 4810 y FJ(,)-182 4905 y(which)h(are)g(referred)f(to)i(as)h(the)e FL(g)o(ener)o(alized)g (mean)g(\002eld)g(messa)o(g)o(es)-182 4999 y FJ(e)o(xchanged)j(between) i(submodels)f(conducting)g(probabilistic)g(in-)-182 5094 y(\003uences)g(of)h(the)h(respecti)n(v)o(e)e(submodel.)p -182 5171 788 4 v -92 5227 a FF(8)-63 5250 y Fe(ln)12 b Fq(\022)r FH(,)19 b(where)i Fe(ln\()p FO(\001)p Fe(\))e FH(is)h(a)g(componentwise)i(operation,)h(is)c(called)j(the)f FE(natur)o(al)-182 5325 y(par)o(ameterization)f FH(of)d(a)g (multinomial.)2073 83 y FJ(A)30 b(k)o(e)o(y)f(property)e(re)n(v)o (ealed)g(in)j(Eqs.)f(\(6\))f(and)h(\(7\))g(is)h(the)f(iso-)1974 178 y(morphism)36 b(of)h(their)g(right-hand)e(sides)j(to)g(those)f(of)h (the)f(Eqs.)1974 272 y(\(2\))31 b(and)g(\(5\).)60 b(Essentially)-5 b(,)34 b(the)e(v)n(ariational)e(mar)o(ginals)g FC(Q)3792 284 y Fz(g)3831 272 y FB(\()p FC(x)p FB(\))1974 367 y FJ(and)24 b FC(Q)2185 379 y Fz(l)2210 367 y FB(\()p FC(\022)r(;)14 b(q)s FB(\))26 b FJ(reco)o(v)o(er)d(e)o(xactly)h(the)h(same)f(form)g (of)h(the)f(original)1974 462 y(global)h(and)g(local)g(submodels,)h(e)o (xcept)e(that)i(the)g(motif)f(parame-)1974 556 y(ters)g FC(\022)i FJ(on)d(which)f(the)i(global)e(submodel)g(is)i(conditioned)d (are)i(re-)1974 651 y(placed)17 b(by)g(their)h(Bayesian)g(estimates)g (\(in)g(the)g(natural)f(parameter)1974 746 y(form\),)33 b(and)f(the)g(suf)n(\002cient)g(statistics)i FC(h)f FJ(propagated)c (from)i(the)1974 840 y(global)17 b(submodel)g(to)i(the)f(local)g (submodel)f(are)h(replaced)f(by)h(their)1974 935 y(posterior)e(e)o (xpectations.)23 b(This)17 b(means)h(that)g(the)f(locality)g(of)h (infer)n(-)1974 1029 y(ence)23 b(and)g(mar)o(ginalization)d(in)j(the)h (composite)e FK(LOGOS)h FJ(model)1974 1124 y(is)30 b(preserv)o(ed)d(in) j(both)e(local)h(and)g(global)f(submodels.)51 b(W)-7 b(e)30 b(can)1974 1219 y(easily)20 b(obtain)e(the)i(optimal)f (approximate)e(posterior)h(distrib)n(ution)1974 1313 y(of)26 b FC(\022)j FJ(by)c(mar)o(ginalizing)f FC(Q)2800 1325 y Fz(l)2825 1313 y FB(\()p FC(\022)r(;)14 b(q)s FB(\))27 b FJ(o)o(v)o(er)e FC(q)s FJ(,)j(and)e(that)g(of)g FC(x)h FJ(using)1974 1408 y FC(Q)2040 1420 y Fz(g)2078 1408 y FB(\()p FC(x)p FB(\))p FJ(.)f(It)18 b(can)g(be)h(further)d(pro)o (v)o(ed)g(that)j(the)f(coupled)e(updates)i(\(6\))1974 1503 y(and)28 b(\(7\))f(actually)h(optimize)g(a)h(lo)n(wer)f(bound)e (of)i(the)h(lik)o(elihood)1974 1597 y FC(p)p FB(\()p FC(y)s Fy(j)p FB(\002)p FC(;)14 b Fy(M)p FB(\))23 b FJ(and)f(are)h (guaranteed)e(to)i(con)m(v)o(er)o(ge)d(to)j(a)h(local)f(max-)1974 1692 y(imum)29 b(\(as)h(in)f(standard)g(EM\))g([13)o(].)53 b(In)29 b(the)h(follo)n(wing)d(section)1974 1787 y(we)c(summarize)e (the)i(computation)d(procedure)h(in)m(v)n(olv)o(ed)f(in)j FK(LO-)1974 1881 y(GOS)p FJ(,)17 b(which)h(we)g(call)g(a)g FL(\223variational)f(EM\224)h(algorithm)f FJ(\(VEM\),)1974 1976 y(after)j(its)h(operational)d(resemblance)h(to)h(a)h(con)m(v)o (entional)c(EM.)1974 2191 y FD(3.2)90 b(The)22 b(v)o(ariational)h(EM)f (algorithm)2073 2406 y FJ(Due)37 b(to)g(the)f(locality)g(of)g(v)n (ariational)g(Bayesian)g(inference,)1974 2500 y(we)j(can)f(perform)f (inference)g(in)i(the)f(local)h(alignment)e(model)1974 2595 y(HMDM)32 b(as)i(if)e(we)h(ha)n(v)o(e)f(\223observ)n(ations\224) 3302 2573 y FB(\026)3301 2595 y FC(h)h FJ(\(to)g(obtain)e(a)i(dis-)1974 2690 y(trib)n(ution)24 b FC(Q)2350 2702 y Fz(l)2376 2690 y FB(\()p FC(\022)r(;)14 b(q)s FB(\))27 b FJ(that)e(approximates)f(the) i(mar)o(ginalized)d(con-)1974 2784 y(ditional)g FC(p)p FB(\()p FC(\022)r(;)14 b(q)s Fy(j)p FC(y)s FB(\))p FJ(\),)25 b(and)e(in)h(the)g(global)f(HMM)h(model)f(as)i(if)f(the)1974 2879 y(position-speci\002c)17 b(multinomial)h(distrib)n(ution)f(of)i(a) g(motif)3723 2857 y FB(\026)3712 2879 y FC(\036)q FB(\()p FC(\022)r FB(\))h FJ(is)1974 2974 y(gi)n(v)o(en)25 b(\(to)i(obtain)f FC(Q)2603 2986 y Fz(g)2641 2974 y FB(\()p FC(x)p FB(\))i FJ(that)f(approximates)e FC(p)p FB(\()p FC(x)p Fy(j)p FC(y)s FB(\))p FJ(\).)45 b(There-)1974 3068 y(fore,)19 b(Bayesian)h(estimates)h(of)f(the)g(multinomial)e(parameters)h(can)1974 3163 y(be)25 b(obtained)f(via)i(\002x)o(ed-point)d(iteration)i(through) e(the)j(follo)n(wing)1974 3258 y(EM-lik)o(e)19 b(procedure:)1974 3501 y FK(V)-8 b(ariational)19 b(E)i(step:)1974 3650 y FJ(Compute)f(the)h(e)o(xpected)f(suf)n(\002cient)h(statistics,)h(the) g(count)e(matrix)1975 3723 y FB(\026)1974 3745 y FC(h)46 b FB(=)g FC(E)2240 3760 y Fz(Q)2292 3768 y Ft(g)2327 3760 y FA(\()p Fz(x)p FA(\))2421 3745 y FB([)p FC(h)p FB(])p FJ(,)36 b(via)c(inference)g(in)g(the)h(global)f(motif)g(model) 1974 3854 y(gi)n(v)o(en)2187 3832 y FB(\026)2176 3854 y FC(\036)p FB(\()p FC(\022)r FB(\))22 b FJ(and)d(sequence)h(set)g Fx(y)q FJ(:)2023 4090 y Fl(\026)2023 4109 y Fj(h)h Fl(=)2200 4016 y Fh(N)2171 4038 y Fd(X)2169 4196 y Fh(n)p Fi(=1)2297 4014 y Fh(T)2333 4022 y Ft(n)2375 4014 y FI(\000)p Fh(L)p Fi(+1)2364 4038 y Fd(X)2369 4196 y Fh(t)p Fi(=1)2555 4109 y Fj(h)p Fl(\()p Fj(y)2670 4073 y Fu(\()p Ft(n)p Fu(\))2667 4130 y Fh(t)p Fi(:)p Fh(t)p Fi(+)p Fh(L)p FI(\000)p Fi(1)2903 4109 y Fl(\))p Fj(p)p Fl(\()p Fj(x)3046 4073 y Fu(\()p Ft(n)p Fu(\))3046 4127 y Fh(t)3152 4109 y Fl(=)g(1)p Fk(j)p Fj(y)3333 4074 y Fu(\()p Ft(n)p Fu(\))3419 4109 y Fj(;)3463 4090 y Fl(\026)3453 4109 y Fj(\036)o Fl(\()p Fj(\022)r Fl(\))p Fj(;)13 b Fl(\002)3690 4118 y Fh(bk)3755 4109 y Fl(\))p Fj(;)49 b Fc(\(8\))1974 4364 y FJ(where)f(superscript)g FC(n)h FJ(indicates)f(the)h FC(n)3284 4334 y FH(th)3389 4364 y FJ(DN)m(A)g(sequence;)1974 4459 y FC(p)p FB(\()p FC(x)2095 4420 y Fu(\()p Ft(n)p Fu(\))2095 4479 y Fz(t)2219 4459 y FB(=)38 b(1)p Fy(j)p FC(y)2431 4429 y Fu(\()p Ft(n)p Fu(\))2516 4459 y FC(;)2564 4437 y FB(\026)2553 4459 y FC(\036)q FB(\()p FC(\022)r FB(\))p FC(;)14 b FB(\002)2810 4471 y Fz(bk)2880 4459 y FB(\))29 b FJ(is)h(the)e(posterior)f(probability)f(of)1974 4554 y(position)19 b FC(t)h FJ(in)f(sequence)g FC(n)h FJ(being)e(the)i(start)g(site)g(of)f(a)h(motif)f(gi)n(v)o(en)1974 4648 y(sequence)24 b FC(y)2348 4618 y Fu(\()p Ft(n)p Fu(\))2434 4648 y FJ(,)j(Bayesian)e(estimate)h(of)f(motif)g(PWMs,)j (and)d(the)1974 4743 y(background,)38 b(which)f(can)g(be)g(computed)e (using)i(the)g(standard)1974 4837 y(forw)o(ard-backw)o(ard)16 b(algorithm)j(for)g(HMMs)i(on)f FC(Q)3498 4849 y Fz(g)3536 4837 y FB(\()p FC(x)p FB(\))p FJ(.)1974 5081 y FK(V)-8 b(ariational)19 b(M)i(step:)1974 5230 y FJ(Compute)46 b(the)i(posterior)e(mean)h(of)h(the)f(natural)g(parameter)m(,)1985 5303 y FB(\026)1974 5325 y FC(\036)p FB(\()p FC(\022)r FB(\))54 b(=)e FC(E)2360 5340 y Fz(Q)2412 5349 y Ft(l)2437 5340 y FA(\()p Fz(\022)r(;q)r FA(\))2578 5325 y FB([)p FC(\036)p FB(\()p FC(\022)r FB(\)])p FJ(,)42 b(via)36 b(inference)f(in)h(the)h(local)f(motif)p eop %%Page: 7 7 7 6 bop -182 83 a FJ(alignment)18 b(model)i(gi)n(v)o(en)602 61 y FB(\026)601 83 y FC(h)o FJ(:)-172 303 y Fl(\026)-182 323 y Fj(\036)o Fl(\()p Fj(\022)-71 332 y Fh(l;j)1 323 y Fl(\))h(=)173 229 y Fh(I)133 252 y Fd(X)139 409 y Fh(i)p Fi(=1)257 323 y Fj(p)p Fl(\()p Fj(q)360 332 y Fh(l)405 323 y Fl(=)g Fj(i)p Fk(j)534 303 y Fl(\026)533 323 y Fj(h)q Fl(\))608 262 y Fd(\000)643 323 y Fl(\011\()p Fj(\013)782 331 y Fh(ij)853 323 y Fl(+)931 303 y(\026)930 323 y Fj(h)974 332 y Fh(lj)1027 323 y Fl(\))c Fk(\000)g Fl(\011\()p Fk(j)p Fj(\013)1311 331 y Fh(i)1337 323 y Fk(j)h Fl(+)e Fk(j)1474 303 y Fl(\026)1473 323 y Fj(h)1517 332 y Fh(l)1542 323 y Fk(j)p Fl(\))1593 262 y Fd(\001)1628 323 y Fj(;)80 b Fc(\(9\))-182 593 y FJ(where)21 b FB(\011\()p FC(x)p FB(\))28 b(=)348 553 y Fz(@)16 b FA(log)c(\000\()p Fz(x)p FA(\))p 348 574 279 4 v 449 622 a Fz(@)t(x)663 593 y FB(=)765 553 y FA(\000)806 511 y Fg(0)833 553 y FA(\()p Fz(x)p FA(\))p 765 574 158 4 v 778 622 a(\000\()p Fz(x)p FA(\))955 593 y FJ(is)23 b(the)f(digamma)f(function,)-182 714 y FC(p)p FB(\()p FC(q)-71 726 y Fz(l)-4 714 y FB(=)42 b FC(i)p Fy(j)156 692 y FB(\026)155 714 y FC(h)o FB(\))32 b FJ(is)f(the)f(posterior)g(probability)e(of)i(hidden)f(state)i FC(q)-182 808 y FJ(gi)n(v)o(en)e(\223observ)n(ation\224)522 786 y FB(\026)521 808 y FC(h)p FJ(,)34 b(which)c(can)h(be)g(computed)d (using)j(the)-182 903 y(forw)o(ard-backw)o(ard)16 b(algorithm)i(on)i FC(Q)963 915 y Fz(l)988 903 y FB(\()p FC(\022)r(;)14 b(q)s FB(\))p FJ(.)-83 998 y(This)20 b FL(modular)e(infer)m(ence)h FJ(procedure)e(pro)o(vides)g(a)j(frame)n(w)o(ork)-182 1092 y(that)25 b(scales)h(readily)e(to)h(more)f(comple)o(x)g(models.)39 b(F)o(or)25 b(e)o(xample,)-182 1187 y(the)17 b(motif)g(distrib)n(ution) f(model)g FC(p)p FB(\()p FC(x)p FB(\))j FJ(can)e(be)g(made)g(more)g (sophis-)-182 1282 y(ticated)f(so)i(as)f(to)g(model)g(comple)o(x)e (properties)g(of)i(multiple)f(motifs)-182 1376 y(such)g(as)h(motif-le)n (v)o(el)e(dependencies)f(\(e.g.,)j(co-occurrence,)c(o)o(v)o(er)n(-)-182 1471 y(laps)24 b(and)g(concentration)d(within)j(re)o(gulatory)e (modules\))h(without)-182 1566 y(complicating)31 b(the)i(inference)f (in)i(the)f(local)g(alignment)f(model.)-182 1660 y(Similarly)-5 b(,)23 b(the)h(motif)g(alignment)e(model)h(can)h(also)g(be)g(more)f(e)o (x-)-182 1755 y(pressi)n(v)o(e)32 b(\(e.g.,)i(a)f(mixture)f(of)g (HMDMs\))h(without)f(interfering)-182 1849 y(with)20 b(inference)f(in)h(the)g(motif)g(distrib)n(ution)f(model.)-83 1944 y(The)i(Dirichlet)g(parameters)g(and)f(HMM)i(transition)e(matrix)h (of)-182 2039 y(the)j(HMDM)h(are)f(\002tted)h(from)e(a)i(training)f (dataset)g(via)h(empirical)-182 2133 y(Bayes)20 b(estimation)g([5)o(].) -182 2365 y FM(4)99 b(Experiments)-83 2580 y FJ(In)22 b([22)n(],)h(we)f(systematically)f(e)o(xamined)f(the)i(performance)d (of)-182 2675 y(the)25 b(HMDM)g(model)g(by)g(implementing)e(a)i (prototype)f(motif)g(de-)-182 2770 y(tector)31 b(using)g(HMDM)h(as)g (the)g(local)f(model)g(and)g(testing)h(it)g(on)-182 2864 y(semi-realistic)23 b(datasets)i(in)f(which)f(biologically)f (identi\002ed)i(mo-)-182 2959 y(tifs)33 b(are)g(planted)f(in)i(a)f (random)f(background,)g(possibly)h(in)g(the)-182 3054 y(presence)26 b(of)i(arti\002cially)f(produced)e(\223f)o(alse)j (motifs\224)g(as)g(deco)o(ys.)-182 3148 y(The)21 b(major)h(adv)n (antage)e(of)i(using)g(such)g(a)h(test)g(system)f(is)h(that)g(we)-182 3243 y(kno)n(w)18 b(the)h(ground)f(truth,)g(i.e.,)i(the)f(true)g (locations)g(and)g(PWMs)h(of)-182 3337 y(the)26 b(motifs)h(to)f(be)h (detected,)g(and)f(hence)g(can)h(reliably)f(compare)-182 3432 y(performance)21 b(of)i(dif)n(ferent)f(models.)36 b(W)-7 b(e)25 b(sho)n(wed)e(that)h(HMDM)-182 3527 y(has)29 b(a)h(notably)f(higher)f(speci\002city)i(\(than)e(PM\))i(to)g(the)g (genuine)-182 3621 y(motifs)j(in)g(the)g(presence)g(of)g(an)g (arti\002cial)g(deco)o(y)-5 b(,)35 b(and)e(signi\002-)-182 3716 y(cantly)21 b(out-performs)e(the)i(PM-based)g(MEME)h(algorithm)e (in)i(the)-182 3811 y(one-motif-per)n(-sequence)15 b(scenario.)-83 3905 y(The)20 b FK(LOGOS)f FJ(model)g(de)n(v)o(eloped)e(in)j(the)f (current)g(paper)f(inte-)-182 4000 y(grates)i(HMDM)g(as)h(a)g (subcomponent,)c(which)j(models)g(the)g(motif)-182 4095 y(alignments,)h(accompanied)f(with)j(an)f(e)o(xpressi)n(v)o(e)f(HMM)h (model,)-182 4189 y(which)34 b(models)g(the)h(global)f(distrib)n(ution) g(of)h(motifs)f(in)h(a)h(bio-)-182 4284 y(logically)g(more)g(realistic) h(w)o(ay)g(than)g(the)g(UI)g(model.)74 b(In)37 b(the)-182 4379 y(follo)n(wing)32 b(sections,)37 b(we)d(e)o(xamine)f(the)h (performance)d(of)j FK(LO-)-182 4473 y(GOS)d FJ(using)g(both)g (semi-realistic)h(datasets)g(and)f(real)g(genomic)-182 4568 y(sequences)e(from)h(yeast.)56 b(All)31 b(yeast)g(motif)f (sequences)f(are)i(ob-)-182 4662 y(tained)17 b(from)f(the)i FL(Pr)l(omoter)f(Database)g(of)g(Sacc)o(har)l(omyces)f(cer)m(e-)-182 4757 y(visiae)22 b FJ(\(SCPD\),)g(15)f(of)h(which)f(are)h(used)f(to)h (\002t)h(the)f(hyperparam-)-182 4852 y(eters)27 b(of)f(the)h(HMDM,)g (and)f(others)g(\(independent)e(of)j(the)g(train-)-182 4946 y(ing)32 b(set\))h(are)g(used)f(for)g(testing.)62 b(W)-7 b(e)34 b(compare)d(three)i(v)n(ariants)-182 5041 y(of)17 b FK(LOGOS)p FJ(,)h(ordered)d(with)j(decreasing)f(model)g(e)o (xpressi)n(v)o(eness,)-182 5136 y(HMDM+HMM)f(\()p FK(LOGOS)680 5148 y Fz(hh)762 5136 y FJ(\),)i(PM+HMM)f(\()p FK(LOGOS)1544 5148 y Fz(ph)1621 5136 y FJ(\))g(and)-182 5230 y(PM+UI)41 b(\()p FK(LOGOS)437 5242 y Fz(pu)514 5230 y FJ(\),)46 b(as)c(well)g(as)g(the)f(MEME)g(and)f(Alig-)-182 5325 y(nA)m(CE)e(program)e(\(both)h(of)i(which)e(are)i(essentially)f(the)h (same)1974 83 y(as)28 b FK(LOGOS)2367 95 y Fz(pu)2473 83 y FJ(in)g(terms)g(of)f(model)g(assumptions,)i(b)n(ut)f(are)g(en-) 1974 178 y(hanced)19 b(by)i(additional)e(pattern-dri)n(v)o(en)f (submodels,)h(i.e.)27 b(gapped)1974 272 y(motifs,)20 b(and)f(a)i(more)e(sophisticated)g(implementation\).)1974 482 y FD(4.1)90 b(Lear)o(ning)21 b(the)i(HMDM)g(parameters)2073 691 y FJ(W)-7 b(e)37 b(learn)d(our)g(HMDM)i(model)e(using)g(a)i(motif)e (collection)1974 786 y(from)26 b(the)h FL(Pr)l(omoter)g(Database)e(of)i (Sacc)o(har)l(omyces)e(cer)m(e)o(visiae)1974 881 y FJ(\(SCPD\).)d(Our)f (dataset)h(contains)e(twenty)i(motifs.)28 b(Each)22 b(has)f(6)h(to)1974 975 y(32)c(instances)g(all)g(of)g(which)g(ha)n(v)o(e)f(been)h (identi\002ed)f(via)i(biological)1974 1070 y(e)o(xperiments.)1974 1804 y @beginspecial 52 @llx 341 @lly 543 @urx 600 @ury 1440 @rwi @setspecial %%BeginDocument: newplots/f3a.eps %!PS-Adobe-2.0 EPSF-1.2 %%Creator: MATLAB, The Mathworks, Inc. %%Title: /.automount/coeus/vol/vol0/eecs/epxing/work/Projects/GeneNet/results/newplots/f3a.eps %%CreationDate: 06/30/2002 02:51:09 %%DocumentNeededFonts: Helvetica %%DocumentProcessColors: Cyan Magenta Yellow Black %%Extensions: CMYK %%Pages: 1 %%BoundingBox: 52 341 543 600 %%EndComments %%BeginProlog % MathWorks dictionary /MathWorks 160 dict begin % definition operators /bdef {bind def} bind def /ldef {load def} bind def /xdef {exch def} bdef /xstore {exch store} bdef % operator abbreviations /c /clip ldef /cc /concat ldef /cp /closepath ldef /gr /grestore ldef /gs /gsave ldef /mt /moveto ldef /np /newpath ldef /cm /currentmatrix ldef /sm /setmatrix ldef /rm /rmoveto ldef /rl /rlineto ldef /s /show ldef /sc {setcmykcolor} bdef /sr /setrgbcolor ldef /sg /setgray ldef /w /setlinewidth ldef /j /setlinejoin ldef /cap /setlinecap ldef /rc {rectclip} bdef /rf {rectfill} bdef % page state control /pgsv () def /bpage {/pgsv save def} bdef /epage {pgsv restore} bdef /bplot /gsave ldef /eplot {stroke grestore} bdef % orientation switch /portraitMode 0 def /landscapeMode 1 def /rotateMode 2 def % coordinate system mappings /dpi2point 0 def % font control /FontSize 0 def /FMS {/FontSize xstore findfont [FontSize 0 0 FontSize neg 0 0] makefont setfont} bdef /reencode {exch dup where {pop load} {pop StandardEncoding} ifelse exch dup 3 1 roll findfont dup length dict begin { 1 index /FID ne {def}{pop pop} ifelse } forall /Encoding exch def currentdict end definefont pop} bdef /isroman {findfont /CharStrings get /Agrave known} bdef /FMSR {3 1 roll 1 index dup isroman {reencode} {pop pop} ifelse exch FMS} bdef /csm {1 dpi2point div -1 dpi2point div scale neg translate dup landscapeMode eq {pop -90 rotate} {rotateMode eq {90 rotate} if} ifelse} bdef % line types: solid, dotted, dashed, dotdash /SO { [] 0 setdash } bdef /DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef /DA { [6 dpi2point mul] 0 setdash } bdef /DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4 dpi2point mul] 0 setdash } bdef % macros for lines and objects /L {lineto stroke} bdef /MP {3 1 roll moveto 1 sub {rlineto} repeat} bdef /AP {{rlineto} repeat} bdef /PDlw -1 def /W {/PDlw currentlinewidth def setlinewidth} def /PP {closepath eofill} bdef /DP {closepath stroke} bdef /MR {4 -2 roll moveto dup 0 exch rlineto exch 0 rlineto neg 0 exch rlineto closepath} bdef /FR {MR stroke} bdef /PR {MR fill} bdef /L1i {{currentfile picstr readhexstring pop} image} bdef /tMatrix matrix def /MakeOval {newpath tMatrix currentmatrix pop translate scale 0 0 1 0 360 arc tMatrix setmatrix} bdef /FO {MakeOval stroke} bdef /PO {MakeOval fill} bdef /PD {currentlinewidth 2 div 0 360 arc fill PDlw -1 eq not {PDlw w /PDlw -1 def} if} def /FA {newpath tMatrix currentmatrix pop translate scale 0 0 1 5 -2 roll arc tMatrix setmatrix stroke} bdef /PA {newpath tMatrix currentmatrix pop translate 0 0 moveto scale 0 0 1 5 -2 roll arc closepath tMatrix setmatrix fill} bdef /FAn {newpath tMatrix currentmatrix pop translate scale 0 0 1 5 -2 roll arcn tMatrix setmatrix stroke} bdef /PAn {newpath tMatrix currentmatrix pop translate 0 0 moveto scale 0 0 1 5 -2 roll arcn closepath tMatrix setmatrix fill} bdef /vradius 0 def /hradius 0 def /lry 0 def /lrx 0 def /uly 0 def /ulx 0 def /rad 0 def /MRR {/vradius xdef /hradius xdef /lry xdef /lrx xdef /uly xdef /ulx xdef newpath tMatrix currentmatrix pop ulx hradius add uly vradius add translate hradius vradius scale 0 0 1 180 270 arc tMatrix setmatrix lrx hradius sub uly vradius add translate hradius vradius scale 0 0 1 270 360 arc tMatrix setmatrix lrx hradius sub lry vradius sub translate hradius vradius scale 0 0 1 0 90 arc tMatrix setmatrix ulx hradius add lry vradius sub translate hradius vradius scale 0 0 1 90 180 arc tMatrix setmatrix closepath} bdef /FRR {MRR stroke } bdef /PRR {MRR fill } bdef /MlrRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lry uly sub 2 div def newpath tMatrix currentmatrix pop ulx rad add uly rad add translate rad rad scale 0 0 1 90 270 arc tMatrix setmatrix lrx rad sub lry rad sub translate rad rad scale 0 0 1 270 90 arc tMatrix setmatrix closepath} bdef /FlrRR {MlrRR stroke } bdef /PlrRR {MlrRR fill } bdef /MtbRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lrx ulx sub 2 div def newpath tMatrix currentmatrix pop ulx rad add uly rad add translate rad rad scale 0 0 1 180 360 arc tMatrix setmatrix lrx rad sub lry rad sub translate rad rad scale 0 0 1 0 180 arc tMatrix setmatrix closepath} bdef /FtbRR {MtbRR stroke } bdef /PtbRR {MtbRR fill } bdef /stri 6 array def /dtri 6 array def /smat 6 array def /dmat 6 array def /tmat1 6 array def /tmat2 6 array def /dif 3 array def /asub {/ind2 exch def /ind1 exch def dup dup ind1 get exch ind2 get sub exch } bdef /tri_to_matrix { 2 0 asub 3 1 asub 4 0 asub 5 1 asub dup 0 get exch 1 get 7 -1 roll astore } bdef /compute_transform { dmat dtri tri_to_matrix tmat1 invertmatrix smat stri tri_to_matrix tmat2 concatmatrix } bdef /ds {stri astore pop} bdef /dt {dtri astore pop} bdef /db {2 copy /cols xdef /rows xdef mul dup 3 mul string currentfile exch readhexstring pop dup 0 3 index getinterval /rbmap xdef dup 2 index dup getinterval /gbmap xdef 1 index dup 2 mul exch getinterval /bbmap xdef pop pop}bdef /it {gs np dtri aload pop moveto lineto lineto cp c cols rows 8 compute_transform rbmap gbmap bbmap true 3 colorimage gr}bdef /il {newpath moveto lineto stroke}bdef currentdict end def %%EndProlog %%BeginSetup MathWorks begin 0 cap end %%EndSetup %%Page: 1 1 %%BeginPageSetup %%PageBoundingBox: 52 341 543 600 MathWorks begin bpage %%EndPageSetup %%BeginObject: obj1 bplot /dpi2point 12 def portraitMode 0216 7344 csm 418 144 5892 3105 MR c np 92 dict begin %Colortable dictionary /c0 { 0 0 0 sr} bdef /c1 { 1 1 1 sr} bdef /c2 { 1 0 0 sr} bdef /c3 { 0 1 0 sr} bdef /c4 { 0 0 1 sr} bdef /c5 { 1 1 0 sr} bdef /c6 { 1 0 1 sr} bdef /c7 { 0 1 1 sr} bdef c0 1 j 1 sg 0 0 6918 3457 PR 6 w 0 1190 1080 0 0 -1190 899 1448 4 MP PP -1080 0 0 1190 1080 0 0 -1190 899 1448 5 MP stroke 4 w DO SO 6 w 0 sg 899 1448 mt 1979 1448 L 899 258 mt 1979 258 L 899 1448 mt 899 258 L 1979 1448 mt 1979 258 L 899 1448 mt 1979 1448 L 899 1448 mt 899 258 L 1034 1448 mt 1034 1436 L 1034 259 mt 1034 270 L %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 994 1593 mt (A) s 1304 1448 mt 1304 1436 L 1304 259 mt 1304 270 L 1268 1593 mt (T) s 1574 1448 mt 1574 1436 L 1574 259 mt 1574 270 L 1528 1593 mt (G) s 1844 1448 mt 1844 1436 L 1844 259 mt 1844 270 L 1801 1593 mt (C) s 899 1448 mt 910 1448 L 1979 1448 mt 1967 1448 L 798 1492 mt (0) s 899 853 mt 910 853 L 1979 853 mt 1967 853 L 798 897 mt (5) s 899 259 mt 910 259 L 1979 259 mt 1967 259 L 731 303 mt (10) s 899 1448 mt 1979 1448 L 899 258 mt 1979 258 L 899 1448 mt 899 258 L 1979 1448 mt 1979 258 L gs 899 259 1081 1190 MR c np /c8 { 0.000000 0.000000 0.562500 sr} bdef c8 0 23 216 0 0 -23 926 1448 4 MP PP 0 sg -216 0 0 23 216 0 0 -23 926 1448 5 MP stroke c8 0 22 216 0 0 -22 1196 1448 4 MP PP 0 sg -216 0 0 22 216 0 0 -22 1196 1448 5 MP stroke c8 0 15 216 0 0 -15 1466 1448 4 MP PP 0 sg -216 0 0 15 216 0 0 -15 1466 1448 5 MP stroke c8 0 1089 216 0 0 -1089 1736 1448 4 MP PP 0 sg -216 0 0 1089 216 0 0 -1089 1736 1448 5 MP stroke gr 1 sg 0 1190 1080 0 0 -1190 2326 1448 4 MP PP -1080 0 0 1190 1080 0 0 -1190 2326 1448 5 MP stroke 4 w DO SO 6 w 0 sg 2326 1448 mt 3406 1448 L 2326 258 mt 3406 258 L 2326 1448 mt 2326 258 L 3406 1448 mt 3406 258 L 2326 1448 mt 3406 1448 L 2326 1448 mt 2326 258 L 2461 1448 mt 2461 1436 L 2461 259 mt 2461 270 L 2421 1593 mt (A) s 2731 1448 mt 2731 1436 L 2731 259 mt 2731 270 L 2695 1593 mt (T) s 3001 1448 mt 3001 1436 L 3001 259 mt 3001 270 L 2955 1593 mt (G) s 3271 1448 mt 3271 1436 L 3271 259 mt 3271 270 L 3228 1593 mt (C) s 2326 1448 mt 2337 1448 L 3406 1448 mt 3394 1448 L 2225 1492 mt (0) s 2326 853 mt 2337 853 L 3406 853 mt 3394 853 L 2225 897 mt (5) s 2326 259 mt 2337 259 L 3406 259 mt 3394 259 L 2158 303 mt (10) s 2326 1448 mt 3406 1448 L 2326 258 mt 3406 258 L 2326 1448 mt 2326 258 L 3406 1448 mt 3406 258 L gs 2326 259 1081 1190 MR c np c8 0 28 216 0 0 -28 2353 1448 4 MP PP 0 sg -216 0 0 28 216 0 0 -28 2353 1448 5 MP stroke c8 0 19 216 0 0 -19 2623 1448 4 MP PP 0 sg -216 0 0 19 216 0 0 -19 2623 1448 5 MP stroke c8 0 480 216 0 0 -480 2893 1448 4 MP PP 0 sg -216 0 0 480 216 0 0 -480 2893 1448 5 MP stroke c8 0 10 216 0 0 -10 3163 1448 4 MP PP 0 sg -216 0 0 10 216 0 0 -10 3163 1448 5 MP stroke gr 1 sg 0 1190 1080 0 0 -1190 3753 1448 4 MP PP -1080 0 0 1190 1080 0 0 -1190 3753 1448 5 MP stroke 4 w DO SO 6 w 0 sg 3753 1448 mt 4833 1448 L 3753 258 mt 4833 258 L 3753 1448 mt 3753 258 L 4833 1448 mt 4833 258 L 3753 1448 mt 4833 1448 L 3753 1448 mt 3753 258 L 3888 1448 mt 3888 1436 L 3888 259 mt 3888 270 L 3848 1593 mt (A) s 4158 1448 mt 4158 1436 L 4158 259 mt 4158 270 L 4122 1593 mt (T) s 4428 1448 mt 4428 1436 L 4428 259 mt 4428 270 L 4382 1593 mt (G) s 4698 1448 mt 4698 1436 L 4698 259 mt 4698 270 L 4655 1593 mt (C) s 3753 1448 mt 3764 1448 L 4833 1448 mt 4821 1448 L 3652 1492 mt (0) s 3753 853 mt 3764 853 L 4833 853 mt 4821 853 L 3652 897 mt (5) s 3753 259 mt 3764 259 L 4833 259 mt 4821 259 L 3585 303 mt (10) s 3753 1448 mt 4833 1448 L 3753 258 mt 4833 258 L 3753 1448 mt 3753 258 L 4833 1448 mt 4833 258 L gs 3753 259 1081 1190 MR c np c8 0 67 216 0 0 -67 3780 1448 4 MP PP 0 sg -216 0 0 67 216 0 0 -67 3780 1448 5 MP stroke c8 0 526 216 0 0 -526 4050 1448 4 MP PP 0 sg -216 0 0 526 216 0 0 -526 4050 1448 5 MP stroke c8 0 13 216 0 0 -13 4320 1448 4 MP PP 0 sg -216 0 0 13 216 0 0 -13 4320 1448 5 MP stroke c8 0 21 216 0 0 -21 4590 1448 4 MP PP 0 sg -216 0 0 21 216 0 0 -21 4590 1448 5 MP stroke gr 1 sg 0 1190 1080 0 0 -1190 5180 1448 4 MP PP -1080 0 0 1190 1080 0 0 -1190 5180 1448 5 MP stroke 4 w DO SO 6 w 0 sg 5180 1448 mt 6260 1448 L 5180 258 mt 6260 258 L 5180 1448 mt 5180 258 L 6260 1448 mt 6260 258 L 5180 1448 mt 6260 1448 L 5180 1448 mt 5180 258 L 5315 1448 mt 5315 1436 L 5315 259 mt 5315 270 L 5275 1593 mt (A) s 5585 1448 mt 5585 1436 L 5585 259 mt 5585 270 L 5549 1593 mt (T) s 5855 1448 mt 5855 1436 L 5855 259 mt 5855 270 L 5809 1593 mt (G) s 6125 1448 mt 6125 1436 L 6125 259 mt 6125 270 L 6082 1593 mt (C) s 5180 1448 mt 5191 1448 L 6260 1448 mt 6248 1448 L 5079 1492 mt (0) s 5180 853 mt 5191 853 L 6260 853 mt 6248 853 L 5079 897 mt (5) s 5180 259 mt 5191 259 L 6260 259 mt 6248 259 L 5012 303 mt (10) s 5180 1448 mt 6260 1448 L 5180 258 mt 6260 258 L 5180 1448 mt 5180 258 L 6260 1448 mt 6260 258 L gs 5180 259 1081 1190 MR c np c8 0 752 216 0 0 -752 5207 1448 4 MP PP 0 sg -216 0 0 752 216 0 0 -752 5207 1448 5 MP stroke c8 0 103 216 0 0 -103 5477 1448 4 MP PP 0 sg -216 0 0 103 216 0 0 -103 5477 1448 5 MP stroke c8 0 61 216 0 0 -61 5747 1448 4 MP PP 0 sg -216 0 0 61 216 0 0 -61 5747 1448 5 MP stroke c8 0 58 216 0 0 -58 6017 1448 4 MP PP 0 sg -216 0 0 58 216 0 0 -58 6017 1448 5 MP stroke gr 1 sg 0 1189 1080 0 0 -1189 899 3076 4 MP PP -1080 0 0 1189 1080 0 0 -1189 899 3076 5 MP stroke 4 w DO SO 6 w 0 sg 899 3076 mt 1979 3076 L 899 1887 mt 1979 1887 L 899 3076 mt 899 1887 L 1979 3076 mt 1979 1887 L 899 3076 mt 1979 3076 L 899 3076 mt 899 1887 L 1034 3076 mt 1034 3064 L 1034 1887 mt 1034 1898 L 994 3221 mt (A) s 1304 3076 mt 1304 3064 L 1304 1887 mt 1304 1898 L 1268 3221 mt (T) s 1574 3076 mt 1574 3064 L 1574 1887 mt 1574 1898 L 1528 3221 mt (G) s 1844 3076 mt 1844 3064 L 1844 1887 mt 1844 1898 L 1801 3221 mt (C) s 899 3076 mt 910 3076 L 1979 3076 mt 1967 3076 L 798 3120 mt (0) s 899 2481 mt 910 2481 L 1979 2481 mt 1967 2481 L 798 2525 mt (5) s 899 1887 mt 910 1887 L 1979 1887 mt 1967 1887 L 731 1931 mt (10) s 899 3076 mt 1979 3076 L 899 1887 mt 1979 1887 L 899 3076 mt 899 1887 L 1979 3076 mt 1979 1887 L gs 899 1887 1081 1190 MR c np c8 0 451 216 0 0 -451 926 3076 4 MP PP 0 sg -216 0 0 451 216 0 0 -451 926 3076 5 MP stroke c8 0 87 216 0 0 -87 1196 3076 4 MP PP 0 sg -216 0 0 87 216 0 0 -87 1196 3076 5 MP stroke c8 0 82 216 0 0 -82 1466 3076 4 MP PP 0 sg -216 0 0 82 216 0 0 -82 1466 3076 5 MP stroke c8 0 53 216 0 0 -53 1736 3076 4 MP PP 0 sg -216 0 0 53 216 0 0 -53 1736 3076 5 MP stroke gr 1 sg 0 1189 1080 0 0 -1189 2326 3076 4 MP PP -1080 0 0 1189 1080 0 0 -1189 2326 3076 5 MP stroke 4 w DO SO 6 w 0 sg 2326 3076 mt 3406 3076 L 2326 1887 mt 3406 1887 L 2326 3076 mt 2326 1887 L 3406 3076 mt 3406 1887 L 2326 3076 mt 3406 3076 L 2326 3076 mt 2326 1887 L 2461 3076 mt 2461 3064 L 2461 1887 mt 2461 1898 L 2421 3221 mt (A) s 2731 3076 mt 2731 3064 L 2731 1887 mt 2731 1898 L 2695 3221 mt (T) s 3001 3076 mt 3001 3064 L 3001 1887 mt 3001 1898 L 2955 3221 mt (G) s 3271 3076 mt 3271 3064 L 3271 1887 mt 3271 1898 L 3228 3221 mt (C) s 2326 3076 mt 2337 3076 L 3406 3076 mt 3394 3076 L 2225 3120 mt (0) s 2326 2481 mt 2337 2481 L 3406 2481 mt 3394 2481 L 2225 2525 mt (5) s 2326 1887 mt 2337 1887 L 3406 1887 mt 3394 1887 L 2158 1931 mt (10) s 2326 3076 mt 3406 3076 L 2326 1887 mt 3406 1887 L 2326 3076 mt 2326 1887 L 3406 3076 mt 3406 1887 L gs 2326 1887 1081 1190 MR c np c8 0 95 216 0 0 -95 2353 3076 4 MP PP 0 sg -216 0 0 95 216 0 0 -95 2353 3076 5 MP stroke c8 0 101 216 0 0 -101 2623 3076 4 MP PP 0 sg -216 0 0 101 216 0 0 -101 2623 3076 5 MP stroke c8 0 61 216 0 0 -61 2893 3076 4 MP PP 0 sg -216 0 0 61 216 0 0 -61 2893 3076 5 MP stroke c8 0 215 216 0 0 -215 3163 3076 4 MP PP 0 sg -216 0 0 215 216 0 0 -215 3163 3076 5 MP stroke gr 1 sg 0 1189 1080 0 0 -1189 3753 3076 4 MP PP -1080 0 0 1189 1080 0 0 -1189 3753 3076 5 MP stroke 4 w DO SO 6 w 0 sg 3753 3076 mt 4833 3076 L 3753 1887 mt 4833 1887 L 3753 3076 mt 3753 1887 L 4833 3076 mt 4833 1887 L 3753 3076 mt 4833 3076 L 3753 3076 mt 3753 1887 L 3888 3076 mt 3888 3064 L 3888 1887 mt 3888 1898 L 3848 3221 mt (A) s 4158 3076 mt 4158 3064 L 4158 1887 mt 4158 1898 L 4122 3221 mt (T) s 4428 3076 mt 4428 3064 L 4428 1887 mt 4428 1898 L 4382 3221 mt (G) s 4698 3076 mt 4698 3064 L 4698 1887 mt 4698 1898 L 4655 3221 mt (C) s 3753 3076 mt 3764 3076 L 4833 3076 mt 4821 3076 L 3652 3120 mt (0) s 3753 2481 mt 3764 2481 L 4833 2481 mt 4821 2481 L 3652 2525 mt (5) s 3753 1887 mt 3764 1887 L 4833 1887 mt 4821 1887 L 3585 1931 mt (10) s 3753 3076 mt 4833 3076 L 3753 1887 mt 4833 1887 L 3753 3076 mt 3753 1887 L 4833 3076 mt 4833 1887 L gs 3753 1887 1081 1190 MR c np c8 0 179 216 0 0 -179 3780 3076 4 MP PP 0 sg -216 0 0 179 216 0 0 -179 3780 3076 5 MP stroke c8 0 238 216 0 0 -238 4050 3076 4 MP PP 0 sg -216 0 0 238 216 0 0 -238 4050 3076 5 MP stroke c8 0 117 216 0 0 -117 4320 3076 4 MP PP 0 sg -216 0 0 117 216 0 0 -117 4320 3076 5 MP stroke c8 0 136 216 0 0 -136 4590 3076 4 MP PP 0 sg -216 0 0 136 216 0 0 -136 4590 3076 5 MP stroke gr 1 sg 0 1189 1080 0 0 -1189 5180 3076 4 MP PP -1080 0 0 1189 1080 0 0 -1189 5180 3076 5 MP stroke 4 w DO SO 6 w 0 sg 5180 3076 mt 6260 3076 L 5180 1887 mt 6260 1887 L 5180 3076 mt 5180 1887 L 6260 3076 mt 6260 1887 L 5180 3076 mt 6260 3076 L 5180 3076 mt 5180 1887 L 5315 3076 mt 5315 3064 L 5315 1887 mt 5315 1898 L 5275 3221 mt (A) s 5585 3076 mt 5585 3064 L 5585 1887 mt 5585 1898 L 5549 3221 mt (T) s 5855 3076 mt 5855 3064 L 5855 1887 mt 5855 1898 L 5809 3221 mt (G) s 6125 3076 mt 6125 3064 L 6125 1887 mt 6125 1898 L 6082 3221 mt (C) s 5180 3076 mt 5191 3076 L 6260 3076 mt 6248 3076 L 5079 3120 mt (0) s 5180 2481 mt 5191 2481 L 6260 2481 mt 6248 2481 L 5079 2525 mt (5) s 5180 1887 mt 5191 1887 L 6260 1887 mt 6248 1887 L 5012 1931 mt (10) s 5180 3076 mt 6260 3076 L 5180 1887 mt 6260 1887 L 5180 3076 mt 5180 1887 L 6260 3076 mt 6260 1887 L gs 5180 1887 1081 1190 MR c np c8 0 150 216 0 0 -150 5207 3076 4 MP PP 0 sg -216 0 0 150 216 0 0 -150 5207 3076 5 MP stroke c8 0 143 216 0 0 -143 5477 3076 4 MP PP 0 sg -216 0 0 143 216 0 0 -143 5477 3076 5 MP stroke c8 0 176 216 0 0 -176 5747 3076 4 MP PP 0 sg -216 0 0 176 216 0 0 -176 5747 3076 5 MP stroke c8 0 238 216 0 0 -238 6017 3076 4 MP PP 0 sg -216 0 0 238 216 0 0 -238 6017 3076 5 MP stroke gr %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 192 FMSR 601 2866 mt -90 rotate (Posterior Dirichlet parameters ) s 90 rotate end eplot %%EndObject epage end showpage %%Trailer %%EOF %%EndDocument @endspecial 1403 w @beginspecial 84 @llx 476 @lly 187 @urx 594 @ury 648 @rwi @setspecial %%BeginDocument: newplots/fig_trans.eps %!PS-Adobe-2.0 EPSF-1.2 %%Creator: MATLAB, The Mathworks, Inc. %%Title: /.automount/coeus/vol/vol0/eecs/epxing/work/Projects/GeneNet/results/fig_trans.eps %%CreationDate: 06/25/2002 19:42:48 %%DocumentNeededFonts: Helvetica %%DocumentProcessColors: Cyan Magenta Yellow Black %%Extensions: CMYK %%Pages: 1 %%BoundingBox: 84 476 187 594 %%EndComments %%BeginProlog % MathWorks dictionary /MathWorks 160 dict begin % definition operators /bdef {bind def} bind def /ldef {load def} bind def /xdef {exch def} bdef /xstore {exch store} bdef % operator abbreviations /c /clip ldef /cc /concat ldef /cp /closepath ldef /gr /grestore ldef /gs /gsave ldef /mt /moveto ldef /np /newpath ldef /cm /currentmatrix ldef /sm /setmatrix ldef /rm /rmoveto ldef /rl /rlineto ldef /s /show ldef /sc {setcmykcolor} bdef /sr /setrgbcolor ldef /sg /setgray ldef /w /setlinewidth ldef /j /setlinejoin ldef /cap /setlinecap ldef /rc {rectclip} bdef /rf {rectfill} bdef % page state control /pgsv () def /bpage {/pgsv save def} bdef /epage {pgsv restore} bdef /bplot /gsave ldef /eplot {stroke grestore} bdef % orientation switch /portraitMode 0 def /landscapeMode 1 def /rotateMode 2 def % coordinate system mappings /dpi2point 0 def % font control /FontSize 0 def /FMS {/FontSize xstore findfont [FontSize 0 0 FontSize neg 0 0] makefont setfont} bdef /reencode {exch dup where {pop load} {pop StandardEncoding} ifelse exch dup 3 1 roll findfont dup length dict begin { 1 index /FID ne {def}{pop pop} ifelse } forall /Encoding exch def currentdict end definefont pop} bdef /isroman {findfont /CharStrings get /Agrave known} bdef /FMSR {3 1 roll 1 index dup isroman {reencode} {pop pop} ifelse exch FMS} bdef /csm {1 dpi2point div -1 dpi2point div scale neg translate dup landscapeMode eq {pop -90 rotate} {rotateMode eq {90 rotate} if} ifelse} bdef % line types: solid, dotted, dashed, dotdash /SO { [] 0 setdash } bdef /DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef /DA { [6 dpi2point mul] 0 setdash } bdef /DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4 dpi2point mul] 0 setdash } bdef % macros for lines and objects /L {lineto stroke} bdef /MP {3 1 roll moveto 1 sub {rlineto} repeat} bdef /AP {{rlineto} repeat} bdef /PDlw -1 def /W {/PDlw currentlinewidth def setlinewidth} def /PP {closepath eofill} bdef /DP {closepath stroke} bdef /MR {4 -2 roll moveto dup 0 exch rlineto exch 0 rlineto neg 0 exch rlineto closepath} bdef /FR {MR stroke} bdef /PR {MR fill} bdef /L1i {{currentfile picstr readhexstring pop} image} bdef /tMatrix matrix def /MakeOval {newpath tMatrix currentmatrix pop translate scale 0 0 1 0 360 arc tMatrix setmatrix} bdef /FO {MakeOval stroke} bdef /PO {MakeOval fill} bdef /PD {currentlinewidth 2 div 0 360 arc fill PDlw -1 eq not {PDlw w /PDlw -1 def} if} def /FA {newpath tMatrix currentmatrix pop translate scale 0 0 1 5 -2 roll arc tMatrix setmatrix stroke} bdef /PA {newpath tMatrix currentmatrix pop translate 0 0 moveto scale 0 0 1 5 -2 roll arc closepath tMatrix setmatrix fill} bdef /FAn {newpath tMatrix currentmatrix pop translate scale 0 0 1 5 -2 roll arcn tMatrix setmatrix stroke} bdef /PAn {newpath tMatrix currentmatrix pop translate 0 0 moveto scale 0 0 1 5 -2 roll arcn closepath tMatrix setmatrix fill} bdef /vradius 0 def /hradius 0 def /lry 0 def /lrx 0 def /uly 0 def /ulx 0 def /rad 0 def /MRR {/vradius xdef /hradius xdef /lry xdef /lrx xdef /uly xdef /ulx xdef newpath tMatrix currentmatrix pop ulx hradius add uly vradius add translate hradius vradius scale 0 0 1 180 270 arc tMatrix setmatrix lrx hradius sub uly vradius add translate hradius vradius scale 0 0 1 270 360 arc tMatrix setmatrix lrx hradius sub lry vradius sub translate hradius vradius scale 0 0 1 0 90 arc tMatrix setmatrix ulx hradius add lry vradius sub translate hradius vradius scale 0 0 1 90 180 arc tMatrix setmatrix closepath} bdef /FRR {MRR stroke } bdef /PRR {MRR fill } bdef /MlrRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lry uly sub 2 div def newpath tMatrix currentmatrix pop ulx rad add uly rad add translate rad rad scale 0 0 1 90 270 arc tMatrix setmatrix lrx rad sub lry rad sub translate rad rad scale 0 0 1 270 90 arc tMatrix setmatrix closepath} bdef /FlrRR {MlrRR stroke } bdef /PlrRR {MlrRR fill } bdef /MtbRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lrx ulx sub 2 div def newpath tMatrix currentmatrix pop ulx rad add uly rad add translate rad rad scale 0 0 1 180 360 arc tMatrix setmatrix lrx rad sub lry rad sub translate rad rad scale 0 0 1 0 180 arc tMatrix setmatrix closepath} bdef /FtbRR {MtbRR stroke } bdef /PtbRR {MtbRR fill } bdef /stri 6 array def /dtri 6 array def /smat 6 array def /dmat 6 array def /tmat1 6 array def /tmat2 6 array def /dif 3 array def /asub {/ind2 exch def /ind1 exch def dup dup ind1 get exch ind2 get sub exch } bdef /tri_to_matrix { 2 0 asub 3 1 asub 4 0 asub 5 1 asub dup 0 get exch 1 get 7 -1 roll astore } bdef /compute_transform { dmat dtri tri_to_matrix tmat1 invertmatrix smat stri tri_to_matrix tmat2 concatmatrix } bdef /ds {stri astore pop} bdef /dt {dtri astore pop} bdef /db {2 copy /cols xdef /rows xdef mul dup 3 mul string currentfile exch readhexstring pop dup 0 3 index getinterval /rbmap xdef dup 2 index dup getinterval /gbmap xdef 1 index dup 2 mul exch getinterval /bbmap xdef pop pop}bdef /it {gs np dtri aload pop moveto lineto lineto cp c cols rows 8 compute_transform rbmap gbmap bbmap true 3 colorimage gr}bdef /il {newpath moveto lineto stroke}bdef currentdict end def %%EndProlog %%BeginSetup MathWorks begin 0 cap end %%EndSetup %%Page: 1 1 %%BeginPageSetup %%PageBoundingBox: 84 476 187 594 MathWorks begin bpage %%EndPageSetup %%BeginObject: obj1 bplot /dpi2point 12 def portraitMode 0216 7344 csm 798 211 1231 1410 MR c np 92 dict begin %Colortable dictionary /c0 { 0 0 0 sr} bdef /c1 { 1 1 1 sr} bdef /c2 { 1 0 0 sr} bdef /c3 { 0 1 0 sr} bdef /c4 { 0 0 1 sr} bdef /c5 { 1 1 0 sr} bdef /c6 { 1 0 1 sr} bdef /c7 { 0 1 1 sr} bdef c0 1 j 1 sg 0 0 6917 3457 PR 6 w 0 -1189 1080 0 0 1189 899 259 4 MP PP -1080 0 0 -1189 1080 0 0 1189 899 259 5 MP stroke gs 899 259 1081 1190 MR c np gs np 899 259 mt 0 1189 rl 1080 0 rl 0 -1189 rl cp c np [1080 0 0 1189 899 259] cc /picstr 24 string def 8 8 8 [8.000000 0 0 8.000000 0 0] {currentfile picstr readhexstring pop} false 3 colorimage 0FFFFF4FFFBF0000AF00008F0000AF00008F00008F0000EF0000DF00DFFF0000DF5FFFAF00008F00 008F00008F0000AF0000FF007FFF00DFFF000FFF00008F00008F00008F002FFF00008F009FFF004F FF6FFF9F00008F0000AF00008F00008F3FFFCF00008FCFFF3F00008F00008F00008F00008F00008F 00008F00008F8F000000008F00008F00008F00008F00008F00AFFF00008F00008F00008F0000EF00 008F00008FEFFF1F00008F00008F00008F00008F00008F00008FFFCF0000CFFF gr gr 4 w DO SO 6 w 0 sg 899 259 mt 1979 259 L 899 1448 mt 1979 1448 L 899 259 mt 899 1448 L 1979 259 mt 1979 1448 L 899 1448 mt 1979 1448 L 899 259 mt 899 1448 L 1101 1448 mt 1101 1436 L 1101 259 mt 1101 270 L %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 1068 1593 mt (2) s 1371 1448 mt 1371 1436 L 1371 259 mt 1371 270 L 1338 1593 mt (4) s 1641 1448 mt 1641 1436 L 1641 259 mt 1641 270 L 1608 1593 mt (6) s 1911 1448 mt 1911 1436 L 1911 259 mt 1911 270 L 1878 1593 mt (8) s 899 481 mt 910 481 L 1979 481 mt 1967 481 L 798 525 mt (2) s 899 779 mt 910 779 L 1979 779 mt 1967 779 L 798 823 mt (4) s 899 1076 mt 910 1076 L 1979 1076 mt 1967 1076 L 798 1120 mt (6) s 899 1373 mt 910 1373 L 1979 1373 mt 1967 1373 L 798 1417 mt (8) s 899 259 mt 1979 259 L 899 1448 mt 1979 1448 L 899 259 mt 899 1448 L 1979 259 mt 1979 1448 L end eplot %%EndObject epage end showpage %%Trailer %%EOF %%EndDocument @endspecial 2624 1899 a FH(\(a\))901 b(\(b\))2073 1912 y Fw(Figure)39 b(4.)g FH(\(a\))27 b(Dirichlet)i(hyperparameters)g(\(of) d(components)i(1-8)2073 1987 y(from)17 b(left)h(to)g(right,)f(top)h(to) f(bottom\).)22 b(\(b\))17 b(Mark)o(o)o(v)h(transition)h(matrix.)2073 2197 y FJ(W)-7 b(e)23 b(be)o(gin)d(with)i(an)f(e)o(xperiment)f(sho)n (wing)g(ho)n(w)h(HMDM)g(can)1974 2291 y(capture)16 b(intrinsic)g (properties)g(of)g(the)h(motifs.)24 b(The)16 b(prior)g(distrib)n(u-) 1974 2386 y(tion)27 b(of)g(the)g(position-speci\002c)e(multinomial)h (parameters)g FC(\022)r FJ(,)j(re-)1974 2481 y(\003ected)d(in)h(the)f (parameters)g(of)g(the)g(Dirichlet)h(mixtures)e(learned)1974 2575 y(from)19 b(data,)i(can)f(re)n(v)o(eal)g(the)h(nt-distrib)n(ution) e(patterns)h(of)g(the)h(mo-)1974 2670 y(tifs.)71 b(Examining)33 b(the)j(transition)e(probabilities)g(between)h(dif-)1974 2764 y(ferent)30 b(Dirichlet)g(components)e(further)h(tells)j(us)e(the) h(about)f(de-)1974 2859 y(pendences)19 b(between)h(adjacent)g (positions)h(\(which)f(indirectly)f(re-)1974 2954 y(v)o(eals)k(the)g (\223shape\224)f(information\).)30 b(W)-7 b(e)24 b(set)g(the)f(total)g (number)e(of)1974 3048 y(Dirichlet)g(components)e(to)i(be)g(8)g(based)g (on)g(an)g(intelligent)f(guess,)1974 3143 y(and)31 b(Figure)f(4a)i(sho) n(ws)f(the)g(Dirichlet)g(parameters)g(\002tted)g(from)1974 3238 y(the)e(dataset)g(via)g(empirical)g(Bayes)g(estimation.)51 b(Among)28 b(the)h(8)1974 3332 y(Dirichlet)g(components,)g(nos.)53 b(1-4)29 b(f)o(a)n(v)n(or)g(pure)f(distrib)n(ution)g(of)1974 3427 y(single)34 b(nucleotides)e(A,)j(T)-6 b(,)33 b(G,)i(and)e(C,)i (respecti)n(v)o(ely)-5 b(,)35 b(suggest-)1974 3522 y(ing)17 b(the)o(y)g(correspond)e(to)j(\223homogeneous\224)c(prototypes,)i (whereas)1974 3616 y(nos.)44 b(7)27 b(and)f(8)h(f)o(a)n(v)n(or)f(a)h (near)f(uniform)f(distrib)n(ution)g(of)h(all)i(4)e(nt-)1974 3711 y(types,)34 b(hence)d(\223heterogeneous\224)e(prototypes.)58 b(Components)30 b(5)1974 3806 y(and)25 b(6)i(are)f(some)n(what)f(in)i (between.)42 b(Such)26 b(patterns)f(agree)h(well)1974 3900 y(with)c(the)h(biological)e(de\002nition)g(of)h(motifs.)32 b(Interestingly)-5 b(,)20 b(from)1974 3995 y(the)e(learned)f (transition)g(model)g(of)h(the)g(HMM)g(\(Figure)f(4b\),)h(it)g(can)1974 4089 y(be)k(seen)g(that)g(the)f(transition)h(probability)d(from)i(a)h (homogeneous)1974 4184 y(prototype)e(to)j(a)f(heterogeneous)e (prototype)g(is)k(signi\002cantly)d(less)1974 4279 y(than)i(that)g (between)g(tw)o(o)g(homogeneous)d(or)j(tw)o(o)h(heterogeneous)1974 4373 y(prototypes,)e(con\002rming)f(an)j(empirical)e(speculation)g(in)i (biology)1974 4468 y(that)c(motifs)g(ha)n(v)o(e)g(the)g(so-called)f FL(site)i(clustering)f FJ(property)-5 b(.)1974 4678 y FD(4.2)90 b(P)n(erf)n(ormance)20 b(on)i FL(semi-r)m(ealistic)h FD(sequence)d(data)1974 4887 y FK(4.2.1)81 b(Single)17 b(motif)o(,)g(and)g(multiple)g(instances)g(per)g(sequence)1974 5041 y FJ(Under)25 b(a)i(realistic)g(motif)f(detection)g(condition,)g (the)h(number)d(of)1974 5136 y(motif)d(instances)g(is)i(unkno)n(wn.)j (Rather)21 b(than)g(trying)f(all)i(possible)1974 5230 y(numbers)28 b(of)h(occurrences)e(suggested)i(by)g(the)g(user)g(or)g (decided)1974 5325 y(by)h(the)g(algorithm)f(and)h(reporting)e(a)j (heuristically)e(determined)p eop %%Page: 8 8 8 7 bop -182 83 a FJ(plausible)20 b(number)m(,)e FK(LOGOS)j FJ(uses)g(the)g(global)f(HMM)h(model)f(to)-182 178 y(describe)27 b(a)h(posterior)f(distrib)n(ution)g(of)g(motif)h(instances,)h(which) -182 272 y(depends)e(on)h(both)f(the)h(prespeci\002ed)g(indicator)f (state)i(transition)-182 367 y(probabilities)16 b(\(which)g(can)h(by)g (empirically)f(supplied)g(by)h(the)g(user)-182 462 y(to)25 b(re\003ect)g(her)g(rough)e(estimation)i(of)g(motif)f(frequencies,)h (or)g(es-)-182 556 y(timated)g(from)g(a)h(training)f(dataset\))g(and)h (the)f(actual)h(sequence)f FC(y)-182 651 y FJ(to)f(be)g(analyzed.)36 b(Due)24 b(to)h(modularity)d(of)i(v)n(ariational)f(inference)-182 746 y(in)f FK(LOGOS)p FJ(,)g(the)h(locations)e(of)h(all)h(instances,)g (which)f(are)g(speci-)-182 840 y(\002ed)f(by)h(the)g(indicator)e (sequence)h FC(x)p FJ(,)h(can)g(be)g(ef)n(\002ciently)f(inferred)-182 935 y(from)g(the)h(v)n(ariational)f(mar)o(ginal)g(distrib)n(ution)g FC(Q)p FB(\()p FC(x)p FB(\))p FJ(,)j(a)f(standard)-182 1029 y(HMM,)f(using)h FL(posterior)g(decoding)p FJ(,)e(which)i (computes)e(the)i(pos-)-182 1124 y(terior)c(e)o(xpectation)f(of)i FC(x)p FJ(.)-83 1330 y Fw(T)-7 b(ab)o(le)37 b(1.)f FH(Performance)27 b(of)e Fv(LOGOS)f FH(for)h(single)h(motif)g(detection,)-83 1405 y(with)18 b(unkno)n(wn)g(number)g(of)f(instances)i(per)e (sequence.)p -155 1514 1879 4 v -157 1577 4 64 v 132 1577 V -157 1595 4 66 v -105 1574 a FG(motif)p 132 1595 V 239 w Fb(LOGOS)466 1583 y Ft(hh)p 662 1595 V 791 1574 a Fb(LOGOS)997 1583 y Ft(ph)p 1192 1595 V 1320 1574 a Fb(LOGOS)1527 1582 y Ft(pu)p 1722 1595 V -157 1658 4 64 v -105 1639 a FG(name)p 132 1658 V 163 w(FP)200 b(FN)p 662 1658 V 191 w(FP)h(FN)p 1192 1658 V 191 w(FP)g(FN)p 1722 1658 V -155 1661 1879 4 v -157 1725 4 64 v 132 1725 V -157 1788 V -105 1769 a(abf1)p 132 1788 V 186 w Fb(0.3115)104 b(0.2116)p 662 1788 V 105 w FG(0.6774)h(0.1957)p 1192 1788 V 105 w(0.7917)g(0.9123)p 1722 1788 V -157 1851 V -105 1832 a(gal4)p 132 1851 V 189 w Fb(0.1569)f(0.1569)p 662 1851 V 105 w FG(0.1895)h(0.1534)p 1192 1851 V 105 w(0.2917)g(0.7939)p 1722 1851 V -157 1914 V -105 1895 a(gcn4)p 132 1914 V 176 w Fb(0.1820)f(0.2355)p 662 1914 V 105 w FG(0.6142)h(0.2821)p 1192 1914 V 105 w(0)236 b(0.9594)p 1722 1914 V -157 1977 V -105 1958 a(gcr1)p 132 1977 V 186 w Fb(0.1962)104 b(0.2134)p 662 1977 V 105 w FG(0.3371)h(0.2038)p 1192 1977 V 105 w(0.3333)g(0.9437)p 1722 1977 V -157 2040 V -105 2021 a(mat)p 132 2040 V 202 w Fb(0.0723)f(0.0337)p 662 2040 V 105 w FG(0.3563)h(0)p 1192 2040 V 236 w(0.5000)g(0.9643)p 1722 2040 V -157 2103 V -105 2084 a(mcb)p 132 2103 V 189 w(0.3734)f(0.0910)p 662 2103 V 105 w Fb(0.3628)h(0.0792)p 1192 2103 V 105 w FG(0.3333)g(0.9431)p 1722 2103 V -157 2166 V -105 2147 a(mig1)p 132 2166 V 170 w Fb(0.0774)f(0)p 662 2166 V 236 w FG(0.0854)h(0)p 1192 2166 V 236 w(0.9764)g(0.1000)p 1722 2166 V -157 2229 V -105 2210 a(crp)p 132 2229 V 215 w Fb(0.3768)f(0.3398)p 662 2229 V 105 w FG(0.2727)h(0.5294)p 1192 2229 V 105 w(0)236 b(0.9487)p 1722 2229 V -155 2233 1879 4 v -83 2405 a FJ(T)-7 b(able)20 b(1)g(summarizes)f(the)g (performance)e(of)j(three)f(v)n(ariants)g(of)-182 2499 y FK(LOGOS)h FJ(for)f(single)h(motif)f(detection,)g(with)i(an)f(unkno)n (wn)d(num-)-182 2594 y(ber)k(of)g(instances)h(per)f(sequence.)28 b(W)-7 b(e)23 b(present)e(the)h(median)e(f)o(alse)-182 2689 y(positi)n(v)o(e)d(\(FP\))i(and)e(f)o(alse)i(ne)o(gati)n(v)o(e)d (\(FN\))i(rates)h(\(in)f(terms)h(of)f(\002nd-)-182 2783 y(ing)25 b(each)g(instance)g(of)h(the)f(motifs)h(within)f(an)g(of)n (fset)h(of)f(3bp\))f(of)-182 2878 y(motif)19 b(detection)h(e)o (xperiments)e(o)o(v)o(er)h(20)h(test)h(datasets.)k(Each)20 b(test)-182 2973 y(dataset)c(consists)h(of)f(20)g(sequences,)g(each)g (generated)e(by)i(planting)-182 3067 y(0-7)f(instances)i(of)f(a)h (motif,)g(together)e(with)h(its)i(permuted)d(\223deco)o(y)-5 b(,)f(\224)-182 3162 y(in)23 b(a)g(300-400)d(bp)i(random)f(background)f (sequence.)31 b(As)24 b(T)-7 b(able)23 b(1)-182 3257 y(sho)n(ws,)k FK(LOGOS)367 3269 y Fz(pu)471 3257 y FJ(yields)f(the)g (weak)o(est)g(results,)i(losing)d(in)h(all)-182 3351 y(8)21 b(motif)f(detections)g(\(in)h(terms)g(of)f(\(FP+FN\)/2\),)g (suggesting)g(that)-182 3446 y(the)26 b(con)m(v)o(entional)d(PM+UI)j (model,)h(which)e(is)i(used)f(in)h(MEME,)-182 3540 y(and)c(with)i (slight)f(v)n(ariation,)f(in)i(AlignA)m(CE)e(and)h(BioProspector)m(,) -182 3635 y(is)c(not)f(po)n(werful)f(enough)f(to)j(handle)e(non-tri)n (vial)g(detection)g(tasks)-182 3730 y(as)25 b(posed)g(by)f(our)h (testset.)40 b FK(LOGOS)941 3742 y Fz(ph)1044 3730 y FJ(impro)o(v)o(es)23 b(signi\002cantly)-182 3824 y(o)o(v)o(er)18 b FK(LOGOS)279 3836 y Fz(pu)356 3824 y FJ(,)j(e)n(v)o(en)e(yielding)g (the)h(best)g(performance)d(in)j(one)-182 3919 y(case)j(\(for)f FL(mcb)p FJ(\),)i(suggesting)d(that)j(the)f(HMM)g(global)f(model)h(we) -182 4014 y(introduced)14 b(indeed)i(strengthens)f(the)i(motif)f (detector)-5 b(.)24 b(Finally)-5 b(,)16 b(as)-182 4108 y(hoped,)24 b FK(LOGOS)364 4120 y Fz(hh)471 4108 y FJ(yields)h(the)h (strongest)e(results,)j(performing)-182 4203 y(best)19 b(on)g(7)g(of)g(the)g(8)h(motifs,)f(con)m(vincingly)d(sho)n(wing)i (that)h(captur)n(-)-182 4298 y(ing)f(the)h(internal)f(structures)g(of)g (motifs)h(and)f(making)f(use)i(of)g(prior)-182 4392 y(kno)n(wledge)26 b(from)h(kno)n(wn)f(motifs,)k(combined)c(with)j(the)f(use)g(of)-182 4487 y(the)g(HMM)h(global)f(model,)i(can)e(yield)h(substantially)f (impro)o(v)o(ed)-182 4582 y(performance.)40 b(Our)27 b(results)f(are)h(reasonably)d(rob)n(ust)i(under)f(dif-)-182 4676 y(ferent)j(choices)g(of)g(the)h(global)f(HMM)h(parameters,)h(b)n (ut)e(due)h(to)-182 4771 y(space)20 b(limitations,)f(we)i(omit)f (details.)-182 4985 y FK(4.2.2)81 b(Simultaneous)20 b(detection)g(of)g (multiple)h(motifs)-182 5136 y FJ(Detecting)e(multiple)g(motifs)h (simultaneously)e(is)j(ar)o(guably)d(a)i(bet-)-182 5230 y(ter)j(strate)o(gy)g(than)h(detecting)e(one)h(at)i(a)f(time)g(follo)n (wed)e(by)h(delet-)-182 5325 y(ing)i(or)g(masking)f(the)i(detected)e (motifs,)j(especially)e(when)f(motif)1974 83 y(concentrations)d(are)j (high,)f(because)g(the)g(latter)h(strate)o(gy)f(mistak-)1974 178 y(enly)i(treats)i(the)f(other)f(motifs)h(as)h(background,)c (causing)i(poten-)1974 272 y(tially)f(suboptimal)f(estimation)h(of)g (both)g(motif)g(and)g(background)1974 367 y(parameters.)54 b(The)30 b(global)g(HMM)g(model)g(we)g(propose)f(readily)1974 462 y(handles)36 b(simultaneous)g(multiple)h(motif)f(detection:)58 b(we)38 b(only)1974 556 y(need)33 b(to)i(encode)e(all)h(motif)g(states) h(into)f(the)g(state)h(space)g Fn(S)25 b FJ(of)1974 651 y(the)32 b(motif)g(indicator)f FC(x)p FJ(,)36 b(and)31 b(perform)g(standard)g(HMM)h(infer)n(-)1974 746 y(ence.)51 b(The)28 b(locations)h(of)f(all)i(motifs)f(can)f(be)h(directly)f(read)h (of)n(f)1974 840 y(from)24 b(the)i(state)g(con\002guration)d(of)j FC(x)p FJ(.)42 b(T)-7 b(able)26 b(2)f(summarizes)g(the)1974 935 y(results)d(on)g(20)g(testsets)h(each)f(containing)e(20)i (sequences)f(harbor)n(-)1974 1029 y(ing)31 b(motifs)h FL(abf1)p FJ(,)i FL(gal4)d FJ(and)h FL(mig1)p FJ(.)60 b(The)31 b(upper)g(panels)g(sho)n(w)1974 1124 y(the)26 b(predicti)n(v)o(e)f(performance)e(based)j(on)g(the)g(optimal)g(\(in)g (terms)1974 1219 y(of)i(maximal)g(log-lik)o(elihood)e(of)i FC(y)k FJ(from)27 b(50)i(independent)d(runs)1974 1313 y(of)33 b(the)h(VEM\))f(posterior)f(e)o(xpectation)g(of)h FC(x)p FJ(.)66 b(Note)33 b(that)h(with)1974 1408 y(a)c(HMDM)h(local)f (model,)i FK(LOGOS)3089 1420 y Fz(hh)3202 1408 y FJ(e)o(xhibits)d (better)h(perfor)n(-)1974 1503 y(mance.)23 b(In)18 b(the)g(lo)n(wer)g (panels,)g(we)g(sho)n(w)g(the)g(best)g(FP-FN)h(results)1974 1597 y(in)j(the)h(top)f(three)g(predictions)f(made)h(by)g FK(LOGOS)g FJ(\(note)g(the)g(`)p FC(k)s FJ(-)1974 1692 y(at-a-time')c(prediction)f(yields)i(a)g(total)h(of)e FB(3)p FC(k)k FJ(possibly)d(redundant)1974 1787 y(motif)30 b(patterns\).)55 b(This)30 b(is)i(close)e(to)h(the)f(stochastic)h (dictionary)1974 1881 y(scenario)24 b(where)f(the)i(predicted)e(motif)h (is)h(to)g(be)f(identi\002ed)g(from)1974 1976 y(optimal)g(dictionary)g (of)h(patterns)g(resulting)f(from)g(the)i(motif)f(de-)1974 2071 y(tection)i(program)e([9)o(].)47 b(It)28 b(is)h(e)o(xpected)c (that)j(a)g(human)e(observ)o(er)1974 2165 y(could)18 b(easily)i(pick)f(out)g(the)h(biologically)e(more)h(plausible)f(motifs) 1974 2260 y(when)25 b(gi)n(v)o(en)f(a)i(visual)f(presentation)f(of)h (the)h(most)f(lik)o(ely)g(motifs)1974 2354 y(suggested)19 b(by)h(a)g(motif)g(\002nder)-5 b(.)2073 2577 y Fw(T)e(ab)o(le)22 b(2.)g FH(Simultaneous)c(multiple)h(motif)d(detection)k(\(median)d (FP-FN)2073 2652 y(rate)i(o)o(v)o(er)e(20)g(testsets)i(containing)h (three)e(motifs.\))p 2266 2690 1349 4 v 2264 2753 4 64 v 2553 2753 V 2264 2769 V 2553 2769 V 2680 2750 a Fb(LOGOS)2887 2759 y Ft(hh)p 3083 2769 V 3212 2750 a Fb(LOGOS)3419 2759 y Ft(ph)p 3613 2769 V 2264 2832 V 2553 2832 V 2605 2813 a FG(FP)201 b(FN)p 3083 2832 V 191 w(FP)g(FN)p 3613 2832 V 2266 2835 1349 4 v 2264 2898 4 64 v 2553 2898 V 2264 2914 V 2316 2895 a(abf1)p 2553 2914 V 186 w(0.3591)105 b(0.3274)p 3083 2914 V 105 w(0.7778)g(0.7434)p 3613 2914 V 2264 2977 V 2316 2958 a(gal4)p 2553 2977 V 189 w(0.1259)g(0.1714)p 3083 2977 V 105 w(0.3751)g(0.1491)p 3613 2977 V 2264 3040 V 2316 3022 a(mig1)p 2553 3040 V 170 w(0.3849)g(0.2243)p 3083 3040 V 105 w(0.3481)g(0)p 3613 3040 V 2266 3044 1349 4 v 2264 3107 4 64 v 2553 3107 V 2264 3123 V 2316 3104 a(abf1)p 2553 3123 V 186 w(0.3841)g(0.2400)p 3083 3123 V 105 w(0.4721)g(0.3972)p 3613 3123 V 2264 3186 V 2316 3167 a(gal4)p 2553 3186 V 189 w(0.0926)g(0.0986)p 3083 3186 V 105 w(0.2609)g(0.1255)p 3613 3186 V 2264 3249 V 2316 3230 a(mig1)p 2553 3249 V 170 w(0.1250)g(0.0333)p 3083 3249 V 105 w(0.2318)g(0)p 3613 3249 V 2266 3252 1349 4 v 1974 3481 a FK(4.2.3)81 b(Detecting)19 b(motifs)h(of)g (uncertain)g(lengths)1974 3632 y FJ(A)27 b(useful)f(property)e(of)j (the)f(HMDM)h(submodel)e(is)j(that)e(it)i(actu-)1974 3727 y(ally)k(does)g(not)h(need)e(to)i(kno)n(w)e(the)i(e)o(xact)e (lengths)h(of)g(the)h(mo-)1974 3821 y(tifs)h(to)g(be)f(detected,)j (since)e(HMDM)g(allo)n(ws)g(a)g(motif)f(to)h(start)1974 3916 y(\(and)e(end\))f(with)i(consecuti)n(v)o(e)e(heterogeneous)f (sites.)64 b(Thus,)35 b(a)1974 4011 y(blurred)25 b(motif)h(boundary)e (is)k(permissible,)f(and)f(as)i(a)f(result,)h(we)1974 4105 y(do)j(not)g(ha)n(v)o(e)f(to)i(kno)n(w)e(the)h(e)o(xact)g(length)f (of)h(the)g(motif.)58 b(This)1974 4200 y(is)39 b(another)e(appealing)f (feature)h(of)h FK(LOGOS)p FJ(,)g(which)f(e)o(xtends)1974 4294 y(its)29 b(\003e)o(xibility)-5 b(.)48 b(As)28 b(sho)n(wn)g(in)g(T) -7 b(able)28 b(3,)i(e)n(v)o(en)d(in)h(simultaneous)1974 4389 y(multiple)j(motif)g(detection,)i(with)e(improperly)e(speci\002ed) j(motif)1974 4484 y(lengths,)g(HMDM+HMM)d(performs)g(nearly)g(as)i (well)g(as)g(when)1974 4578 y(motif)17 b(lengths)h(are)g(precisely)f (speci\002ed,)h(whereas)f(PM+HMM)h(is)1974 4673 y(not)i(as)h(good.)1974 4876 y FD(4.3)90 b(P)n(erf)n(ormance)20 b(on)i(r)n(eal)h(genomic)e (sequence)f(data)1974 5079 y FK(4.3.1)81 b(Motif)20 b(detection)f(in)i (y)o(east)f(pr)o(omoter)f(r)o(egions)1974 5230 y FJ(In)h(this)h (section)f(we)h(report)e(a)i(performance)c(comparison)i(of)h FK(LO-)1974 5325 y(GOS)34 b FJ(\(HMM+HMDM\))e(with)i(tw)o(o)h(popular)d (motif)h(detection)p eop %%Page: 9 9 9 8 bop -83 81 a Fw(T)-7 b(ab)o(le)33 b(3.)g FH(Simultaneous)25 b(detection)h(of)d(three)h(motifs,)g(with)g(lengths)-83 155 y(improperly)29 b(speci\002ed)f(\(18,)h(22,)f(20)f(bp,)i(respecti)n (v)o(ely)l(,)j(instead)c(of)f(the)-83 230 y(actual)19 b(13,)e(17,)g(11)g(bp\).)p 110 339 1349 4 v 108 402 4 64 v 397 402 V 108 418 V 397 418 V 524 399 a Fb(LOGOS)731 408 y Ft(hh)p 927 418 V 1056 399 a Fb(LOGOS)1262 408 y Ft(ph)p 1457 418 V 108 481 V 397 481 V 448 463 a FG(FP)201 b(FN)p 927 481 V 191 w(FP)g(FN)p 1457 481 V 110 485 1349 4 v 108 548 4 64 v 397 548 V 108 564 V 160 545 a(abf1)p 397 564 V 185 w(0.7295)105 b(0.6667)p 927 564 V 105 w(0.8021)g(0.7680)p 1457 564 V 108 627 V 160 608 a(gal4)p 397 627 V 188 w(0.1167)g(0.2042)p 927 627 V 105 w(0.2357)g(0.1325)p 1457 627 V 108 690 V 160 671 a(mig1)p 397 690 V 169 w(0.4183)g(0.2128)p 927 690 V 105 w(0.8150)g(0.8381)p 1457 690 V 110 693 1349 4 v 108 756 4 64 v 397 756 V 108 772 V 160 753 a(abf1)p 397 772 V 185 w(0.3310)g(0.2804)p 927 772 V 105 w(0.5742)g(0.4821)p 1457 772 V 108 835 V 160 816 a(gal4)p 397 835 V 188 w(0.0955)g(0.1222)p 927 835 V 105 w(0.1882)g(0.1250)p 1457 835 V 108 898 V 160 879 a(mig1)p 397 898 V 169 w(0.2124)g(0.1327)p 927 898 V 105 w(0.3218)g(0.1623)p 1457 898 V 110 902 1349 4 v -182 1069 a FJ(programs,)19 b(MEME)i(and)f(AlignA)m(CE,)g(on)h (12)g(yeast)g(genomic)f(se-)-182 1164 y(quence)c(sets)i(gathered)d (from)i(the)g(SCPD)h(database)f(\(the)g(selection)-182 1259 y(is)30 b(based)f(on)g(ha)n(ving)g(at)h(least)g(a)g(total)g(of)f (5)g(motif)g(instances)h(in)-182 1353 y(all)22 b(sequences)e(and)h(the) h(motif)e(being)h(independent)e(of)i(our)g(train-)-182 1448 y(ing)j(set\).)39 b(Each)24 b(sequence)g(set)h(consists)h(of)e (multiple)g(yeast)h(pro-)-182 1542 y(moter)30 b(re)o(gions)g(each)h (about)f(500)h(bp)g(long)f(and)h(containing)e(on)-182 1637 y(both)c(strands)h(an)g(unkno)n(wn)e(number)h(of)h(occurrences)e (of)i(a)h(pre-)-182 1732 y(dominant)i(motif)i(\(b)n(ut)g(also)g (possibly)g(other)f(minor)h(motifs\))f(as)-182 1826 y(speci\002ed)i(by) f(the)i(name)e(of)h(the)h(dataset)f(\(T)-7 b(able)32 b(4,)j(where)d(the)-182 1921 y(rightmost)d(column)h(gi)n(v)o(es)g(the)h (number)e(of)i(sequences)f(in)h(each)-182 2016 y(dataset\).)67 b(Note)34 b(that)h(both)e(the)i(relati)n(v)o(ely)e(lar)o(ge)g(sizes)j (of)e(the)-182 2110 y(input)26 b(sequences)h(and)g(the)h(possible)f (presence)g(of)g(motifs)h(other)-182 2205 y(than)e(what)g(has)h(been)f (annotated)f(mak)o(e)h(the)h(motif)f(\002nding)g(task)-182 2300 y(signi\002cantly)20 b(more)h(dif)n(\002cult)g(than)g(a)h (semi-realistic)f(test)i(data)e(or)-182 2394 y(a)28 b(small,)h(well)g (curated)d(real)i(test)g(data.)47 b(W)-7 b(e)29 b(use)f(the)g(follo)n (wing)-182 2489 y(command)j(to)i(run)f(MEME:)h(\223)g(meme)g($e\002le)g (-p)g(2)g(-dna)f(-mod)-182 2584 y(tcm)h(-re)n(vcomp)e(-nmotifs)h(1)h (\224.)65 b(In)33 b(practice,)i(this)f(means)f(that)-182 2678 y(we)23 b(search)g(for)f(a)i(DN)m(A)g(sequence)e(on)g(both)h (strands)g(for)f(at)i(most)-182 2773 y(one)18 b(motif,)h(which)g(can)g (occur)f(zero)h(or)g(more)f(times)i(in)g(an)o(y)e(gi)n(v)o(en)-182 2867 y(sequence.)33 b(AlignA)m(CE)22 b(is)j(run)d(with)i(def)o(ault)e (command-line)f(ar)n(-)-182 2962 y(guments)e(nearly)h(identical)g(to)h (those)f(for)g(MEME,)g(with)h(the)g(only)-182 3057 y(dif)n(ference)15 b(that)i(AlignA)m(CE)g(can)g(return)f(multiple)h(predicted)f(mo-)-182 3151 y(tifs)31 b(\(of)g(which)g(we)g(select)h(the)f(best)g(match)g (from)f(the)h(top)g(\002)n(v)o(e)-182 3246 y(MAP)21 b(predictions\).)j FK(LOGOS)c FJ(is)i(set)f(in)g(the)g(multiple-detection)-182 3341 y(mode)28 b(and)h(is)h(used)f(to)g(mak)o(e)g(tw)o(o)h(motif)e (predictions)g(simulta-)-182 3435 y(neously)-5 b(.)38 b(As)26 b(sho)n(wn)f(in)g(T)-7 b(able)25 b(4,)i(for)d(this)i(non-tri)n (vial)e FL(de)h(no)o(vo)-182 3530 y FJ(motif)31 b(detection)h(task,)j FK(LOGOS)d FJ(outperforms)e(the)i(other)g(tw)o(o)-182 3625 y(programs)18 b(by)i(a)g(signi\002cant)g(mar)o(gin.)-83 3794 y Fw(T)-7 b(ab)o(le)30 b(4.)g FH(Comparison)22 b(of)f(motif)h (detectors)h(on)e(yeast)h(promoter)g(se-)-83 3869 y(quences.)p -182 3978 2009 4 v -184 4041 4 64 v 57 4041 V -184 4057 V -133 4038 a FG(set)p 57 4057 V 289 w Fb(LOGOS)p 587 4057 V 340 w FG(MEME)p 1117 4057 V 318 w(AlignA)n(CE)p 1647 4057 V 191 w(seq)p 1824 4057 V -184 4120 V -133 4101 a(name)p 57 4120 V 116 w(FP)201 b(FN)p 587 4120 V 191 w(FP)g(FN)p 1117 4120 V 191 w(FP)g(FN)p 1647 4120 V 191 w(no.)p 1824 4120 V -182 4123 2009 4 v -184 4186 4 64 v 57 4186 V -184 4202 V -133 4183 a(abf1)p 57 4202 V 139 w(0.7949)105 b(0.6522)p 587 4202 V 105 w(1.0000)g(1.0000)p 1117 4202 V 105 w Fb(0.5294)g(0.6087)p 1647 4202 V 105 w FG(20)p 1824 4202 V -184 4265 V -133 4246 a(csre)p 57 4265 V 148 w Fb(0.4444)g(0.1667)p 587 4265 V 105 w FG(0.7778)g(0.5000)p 1117 4265 V 105 w(0.8000)g(0.5000)p 1647 4265 V 105 w(4)p 1824 4265 V -184 4328 V -133 4309 a(gal4)p 57 4328 V 142 w Fb(0.1333)g(0.0714)p 587 4328 V 105 w FG(0.1667)g(0.2857)p 1117 4328 V 105 w(0.3333)g(0.1429)p 1647 4328 V 105 w(6)p 1824 4328 V -184 4391 V -133 4372 a(gcn4)p 57 4391 V 129 w Fb(0.3529)g(0.1852)p 587 4391 V 105 w FG(1.0000)g(1.0000)p 1117 4391 V 105 w(0.3333)g(0.5556)p 1647 4391 V 105 w(9)p 1824 4391 V -184 4454 V -133 4436 a(gcr1)p 57 4454 V 139 w Fb(0.2859)g(0.6154)p 587 4454 V 105 w FG(1.0000)g(1.0000)p 1117 4454 V 105 w(0.4545)g(0.4615)p 1647 4454 V 105 w(6)p 1824 4454 V -184 4518 V -133 4499 a(hstf)p 57 4518 V 155 w(0.8571)g(0.5556)p 587 4518 V 105 w Fb(0.6000)g(0.5556)p 1117 4518 V 105 w FG(0.8500)g(0.6667)p 1647 4518 V 105 w(6)p 1824 4518 V -184 4581 V -133 4562 a(mat)p 57 4581 V 155 w Fb(0.4194)g(0)p 587 4581 V 236 w FG(0.3750)g(0.5625)p 1117 4581 V 105 w(0.2500)g(0.2500)p 1647 4581 V 105 w(7)p 1824 4581 V -184 4644 V -133 4625 a(mcb)p 57 4644 V 142 w(0.4706)g(0.2500)p 587 4644 V 105 w(0.2000)g(0.3333)p 1117 4644 V 105 w Fb(0.2500)g(0.2500)p 1647 4644 V 105 w FG(6)p 1824 4644 V -184 4707 V -133 4688 a(mig1)p 57 4707 V 123 w Fb(0.8077)g(0.2857)p 587 4707 V 105 w FG(1.0000)g(1.0000)p 1117 4707 V 105 w(0.8333)g(0.7857)p 1647 4707 V 105 w(22)p 1824 4707 V -184 4770 V -133 4751 a(pho2)p 57 4770 V 126 w Fb(0.9024)g(0.5000)p 587 4770 V 105 w FG(1.0000)g(1.0000)p 1117 4770 V 105 w(1.0000)g(1.0000)p 1647 4770 V 105 w(3)p 1824 4770 V -184 4833 V -133 4814 a(swi5)p 57 4833 V 132 w Fb(0.7647)g(0.5000)p 587 4833 V 105 w FG(1.0000)g(1.0000)p 1117 4833 V 105 w(0.9412)g(0.7500)p 1647 4833 V 105 w(2)p 1824 4833 V -184 4896 V -133 4877 a(uash)p 57 4896 V 135 w Fb(0.8250)g(0.6818)p 587 4896 V 105 w FG(1.0000)g(1.0000)p 1117 4896 V 105 w(0.9231)g(0.9545)p 1647 4896 V 105 w(18)p 1824 4896 V -182 4899 2009 4 v -182 5080 a FK(4.3.2)81 b(Motif)20 b(detection)f(in)i(Dr)o(osophila)f (r)o(egulatory)d(DN)n(As)-182 5230 y FJ(In)g(this)h(section)f(we)h (report)e(on)h(a)h(preliminary)e FL(de)h(no)o(vo)g FJ(motif)g(dis-)-182 5325 y(co)o(v)o(ery)c(analysis)i(of)g(the)h(re)o(gulatory)d(re)o(gions) h(of)h(the)g(9)g(Drosophila)1974 83 y(genes)24 b(in)m(v)n(olv)o(ed)f (in)i(body)e(se)o(gmentation.)37 b(The)24 b(input)g(data)h(con-)1974 178 y(sists)30 b(of)d(19)h(DN)m(A)g(sequences)g(ranging)e(from)h(512)g (to)h(5218)f(bp,)1974 272 y(as)h(described)f(in)h([2)o(].)48 b(Biologically)27 b(identi\002ed)g(motifs)g(include)1974 367 y FL(bcd)p FJ(,)h FL(cad)p FJ(,)f FL(hb)p FJ(,)h FL(kni)f FJ(and)g FL(kr)p FJ(.)45 b(F)o(or)27 b(comparison,)f(we)h(pro) o(vide)e(the)1974 462 y(PWMs)30 b(postulated)e(by)h(Berman)f(et)h(al.) 52 b(for)29 b(these)g(\002)n(v)o(e)g(motifs,)1974 556 y(which)16 b(were)h(used)g(in)g(their)f FL(motif)h(scan)g FJ(analysis)g(\(Figure)f(5\).)24 b(The)1974 651 y(sources)30 b(of)h(all)h(PWMs)g(are)f(biologically)e(identi\002ed)h(sequence)1974 746 y(se)o(gments)22 b(from)g(the)h(literature)f(\(which)g(are)h (unaligned,)e(ranging)1974 840 y(from)h(5)h(to)g(93)f(instances)h(per)g (motif,)g(and)f(about)g FB(20)27 b Fy(\030)h FB(40)23 b FJ(bases)1974 935 y(in)e(length\).)k(The)20 b(PWMs)i(are)e(deri)n(v)o (ed)f(from)g(an)i(alignment)e(of)i(all)1974 1029 y(these)f (identi\002ed)g(motif)f(sequences.)1926 1316 y @beginspecial 0 @llx 0 @lly 510 @urx 141 @ury 720 @rwi @setspecial %%BeginDocument: figure/factor_bcd.fasta.eps %!PS-Adobe-3.0 EPSF-3.0 %%Title: Sequence Logo: %%Creator: seqlogo (1.0) %%CreationDate: %%BoundingBox: 0 0 510 141 %%Pages: 0 %%DocumentFonts: %%EndComments % * seq_1 % * seq_2 % * seq_3 % * seq_4 % * seq_5 % * seq_6 % * seq_7 % * seq_8 % * seq_9 % * seq_10 % * seq_11 % * seq_12 % * seq_13 % * seq_14 % * seq_15 % * seq_16 % * seq_17 % * seq_18 % * seq_19 % * seq_20 % * seq_21 % * seq_22 % * seq_23 % * seq_24 % * seq_25 % * seq_26 % * seq_27 % * seq_28 % * seq_29 % * seq_30 % * seq_31 % * seq_32 % * seq_33 % * seq_34 % * seq_35 % * seq_36 % * seq_37 % * seq_38 % * seq_39 % * seq_40 % * seq_41 % * seq_42 % * seq_43 % * seq_44 % * seq_45 % * seq_46 % * seq_47 % * seq_48 % * seq_49 % * seq_50 % * seq_51 % * NUCLEOTIDE ALIGNMENT % ---- CONSTANTS ---- /cmfactor 72 2.54 div def % defines points -> cm conversion /cm {cmfactor mul} bind def % defines centimeters % ---- VARIABLES ---- /black [0 0 0] def /red [0.8 0 0] def /green [0 0.8 0] def /blue [0 0 0.8] def /yellow [1 0.71 .0] def /purple [0.8 0 0.8] def /orange [1 0.7 0] def /logoWidth 18 cm def /logoHeight 5 cm def /logoTitle () def /yaxis true def /yaxisLabel (bits) def /yaxisBits 2 def % bits /xaxis true def /xaxisLabel ( ) def /showEnds (d) def % d: DNA, p: PROTEIN, -: none /showFineprint true def /fineprint () def /charsPerLine 8 def /logoLines 1 def /showingBox (n) def %n s f /shrinking false def /shrink 1 def /outline false def /IbeamFraction 1 def /IbeamGray 0.75 def /IbeamLineWidth 0.5 def /fontsize 12 def /titleFontsize 14 def /smallFontsize 6 def /defaultColor black def % Standard DNA/RNA color scheme /colorDict << (G) orange (T) red (C) blue (A) green (U) red >> def % Standard DNA/RNA color scheme % /colorDict << % (G) orange % (T) red % (C) blue % (A) green % (U) red % >> def % Standard Amino Acid colors %/colorDict << % (G) green % (S) green % (T) green % (Y) green % (C) green % (N) purple % (Q) purple % (K) blue % (R) blue % (H) blue % (D) red % (E) red % (P) black % (A) black % (W) black % (F) black % (L) black % (I) black % (M) black % (V) black %>> def % ---- DERIVED PARAMETERS ---- /leftMargin fontsize 2.5 mul def /bottomMargin fontsize 0.75 mul % Add extra room for axis xaxis {fontsize 1.75 mul add } if xaxisLabel () eq {} {fontsize 0.75 mul add} ifelse def /topMargin logoTitle () eq { 10 }{titleFontsize 4 add} ifelse def /rightMargin %Add extra room if showing ends showEnds (-) eq { fontsize}{fontsize 1.5 mul} ifelse def /yaxisHeight logoHeight bottomMargin sub topMargin sub def /ticWidth fontsize 2 div def /pointsPerBit yaxisHeight yaxisBits div def /isBoxed showingBox (s) eq showingBox (f) eq or { true } { false } ifelse def /stackMargin 1 def % Do not add space aroung characters if characters are boxed /charRightMargin isBoxed { 0.0 } {stackMargin} ifelse def /charTopMargin isBoxed { 0.0 } {stackMargin} ifelse def /charWidth logoWidth leftMargin sub rightMargin sub charsPerLine div charRightMargin sub def /charWidth4 charWidth 4 div def /charWidth2 charWidth 2 div def /stackWidth charWidth charRightMargin add def /numberFontsize fontsize charWidth lt {fontsize}{charWidth} ifelse def % movements to place 5'/N and 3'/C symbols /leftEndDeltaX fontsize neg def /leftEndDeltaY fontsize 1.5 mul neg def /rightEndDeltaX fontsize 0.25 mul def /rightEndDeltaY leftEndDeltaY def % Outline width is proporional to charWidth, % but no less that 1 point /outlinewidth charWidth 32 div dup 1 gt {}{pop 1} ifelse def % ---- PROCEDURES ---- /StartLogo { % Save state save gsave % Print Logo Title, top center gsave SetTitleFont logoWidth 2 div logoTitle stringwidth pop 2 div sub logoHeight logoLines mul titleFontsize sub moveto logoTitle show grestore % Print X-axis label, bottom center gsave SetStringFont logoWidth 2 div xaxisLabel stringwidth pop 2 div sub fontsize 3 div moveto xaxisLabel show grestore % Show Fine Print showFineprint { gsave SetSmallFont logoWidth fineprint stringwidth pop sub smallFontsize sub smallFontsize 3 div moveto fineprint show grestore } if % Move to lower left corner of last line, first stack leftMargin bottomMargin translate % Move above first line ready for StartLine 0 logoLines logoHeight mul translate SetLogoFont } bind def /EndLogo { grestore showpage restore } bind def /StartLine{ % move down to the bottom of the line: 0 logoHeight neg translate gsave yaxis { MakeYaxis } if xaxis { ShowLeftEnd } if } bind def /EndLine{ xaxis { ShowRightEnd } if grestore } bind def /MakeYaxis { gsave stackMargin neg 0 translate ShowYaxisBar ShowYaxisLabel grestore } bind def /ShowYaxisBar { gsave SetStringFont /str 10 string def % string to hold number /smallgap stackMargin 2 div def % Draw first tic and bar gsave ticWidth neg 0 moveto ticWidth 0 rlineto 0 yaxisHeight rlineto stroke grestore % Draw the tics % initial increment limit proc for 0 1 yaxisBits abs cvi {/loopnumber exch def % convert the number coming from the loop to a string % and find its width loopnumber 10 str cvrs /stringnumber exch def % string representing the number stringnumber stringwidth pop /numberwidth exch def % width of number to show /halfnumberheight stringnumber CharBoxHeight 2 div def numberwidth % move back width of number neg loopnumber pointsPerBit mul % shift on y axis halfnumberheight sub % down half the digit moveto % move back the width of the string ticWidth neg smallgap sub % Move back a bit more 0 rmoveto % move back the width of the tic stringnumber show smallgap 0 rmoveto % Make a small gap % now show the tic mark 0 halfnumberheight rmoveto % shift up again ticWidth 0 rlineto stroke } for grestore } bind def /ShowYaxisLabel { gsave SetStringFont ticWidth neg 2.75 mul yaxisHeight yaxisLabel stringwidth pop sub 2 div translate 90 rotate 0 0 moveto yaxisLabel show grestore } bind def /StartStack { % startstack xaxis {MakeNumber}{pop} ifelse gsave } bind def /EndStack { grestore stackWidth 0 translate } bind def % Draw a character whose height is proportional to symbol bits /MakeSymbol{ % charbits character MakeSymbol gsave /char exch def /bits exch def /bitsHeight bits pointsPerBit mul def /charHeight bitsHeight charTopMargin sub dup 0.0 gt {}{pop 0.0} ifelse % if neg replace with zero def charHeight 0.0 gt { char SetColor charWidth charHeight char ShowChar showingBox (s) eq { % Unfilled box 0 0 charWidth charHeight false ShowBox } if showingBox (f) eq { % Filled box 0 0 charWidth charHeight true ShowBox } if } if grestore 0 bitsHeight translate } bind def /ShowChar { % ShowChar gsave /tc exch def % The character /ysize exch def % the y size of the character /xsize exch def % the x size of the character /xmulfactor 1 def /ymulfactor 1 def % if ysize is negative, make everything upside down! ysize 0 lt { % put ysize normal in this orientation /ysize ysize abs def xsize ysize translate 180 rotate } if shrinking { xsize 1 shrink sub 2 div mul ysize 1 shrink sub 2 div mul translate shrink shrink scale } if % Calculate the font scaling factors % Loop twice to catch small correction due to first scaling 2 { gsave xmulfactor ymulfactor scale ysize % desired size of character in points tc CharBoxHeight dup 0.0 ne { div % factor by which to scale up the character /ymulfactor exch def } % end if {pop pop} ifelse xsize % desired size of character in points tc CharBoxWidth dup 0.0 ne { div % factor by which to scale up the character /xmulfactor exch def } % end if {pop pop} ifelse grestore } repeat % Adjust horizontal position if the symbol is an I tc (I) eq { charWidth 2 div % half of requested character width tc CharBoxWidth 2 div % half of the actual character sub 0 translate % Avoid x scaling for I /xmulfactor 1 def } if % ---- Finally, draw the character newpath xmulfactor ymulfactor scale % Move lower left corner of character to start point tc CharBox pop pop % llx lly : Lower left corner exch neg exch neg moveto outline { % outline characters: outlinewidth setlinewidth tc true charpath gsave 1 setgray fill grestore clip stroke } { % regular characters tc show } ifelse grestore } bind def /ShowBox { % x1 y1 x2 y2 filled ShowBox gsave /filled exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath clip filled { fill }{ 0 setgray stroke } ifelse grestore } bind def /MakeNumber { % number MakeNumber gsave SetNumberFont stackWidth 0 translate 90 rotate % rotate so the number fits dup stringwidth pop % find the length of the number neg % prepare for move stackMargin sub % Move back a bit charWidth (0) CharBoxHeight % height of numbers sub 2 div % moveto % move back to provide space show grestore } bind def /Ibeam{ % heightInBits Ibeam gsave % Make an Ibeam of twice the given height in bits /height exch pointsPerBit mul def /heightDRAW height IbeamFraction mul def IbeamLineWidth setlinewidth IbeamGray setgray charWidth2 height neg translate ShowIbar newpath 0 0 moveto 0 heightDRAW rlineto stroke newpath 0 height moveto 0 height rmoveto currentpoint translate ShowIbar newpath 0 0 moveto 0 heightDRAW neg rlineto currentpoint translate stroke grestore } bind def /ShowIbar { % make a horizontal bar gsave newpath charWidth4 neg 0 moveto charWidth4 0 lineto stroke grestore } bind def /ShowLeftEnd { gsave SetStringFont leftEndDeltaX leftEndDeltaY moveto showEnds (d) eq {(5) show ShowPrime} if showEnds (p) eq {(N) show} if grestore } bind def /ShowRightEnd { gsave SetStringFont rightEndDeltaX rightEndDeltaY moveto showEnds (d) eq {(3) show ShowPrime} if showEnds (p) eq {(C) show} if grestore } bind def /ShowPrime { gsave SetPrimeFont (\242) show grestore } bind def /SetColor{ % SetColor dup colorDict exch known { colorDict exch get aload pop setrgbcolor } { pop defaultColor aload pop setrgbcolor } ifelse } bind def % define fonts /SetTitleFont {/Times-Bold findfont titleFontsize scalefont setfont} bind def /SetLogoFont {/Helvetica-Narrow-Bold findfont charWidth scalefont setfont} bind def /SetStringFont{/Helvetica-Bold findfont fontsize scalefont setfont} bind def /SetPrimeFont {/Symbol findfont fontsize scalefont setfont} bind def /SetSmallFont {/Helvetica findfont smallFontsize scalefont setfont} bind def /SetNumberFont { /Helvetica-Bold findfont numberFontsize scalefont setfont } bind def %Take a single character and return the bounding box /CharBox { % CharBox gsave newpath 0 0 moveto % take the character off the stack and use it here: true charpath flattenpath pathbbox % compute bounding box of 1 pt. char => lx ly ux uy % the path is here, but toss it away ... grestore } bind def % The height of a characters bounding box /CharBoxHeight { % CharBoxHeight CharBox exch pop sub neg exch pop } bind def % The width of a characters bounding box /CharBoxWidth { % CharBoxHeight CharBox pop exch pop sub neg } bind def % Deprecated names /startstack {StartStack} bind def /endstack {EndStack} bind def /makenumber {MakeNumber} bind def /numchar { MakeSymbol } bind def %%EndProlog %%Page: 1 1 StartLogo StartLine % line number 1 (1) startstack 0.016560065029337 (G) numchar 0.0298081170528065 (A) numchar 0.0596162341056131 (T) numchar 0.0629282471114805 (C) numchar endstack (2) startstack 0.0160062448744909 (G) numchar 0.0480187346234726 (C) numchar 0.176068693619399 (A) numchar 0.576224815481671 (T) numchar endstack (3) startstack 0.0690711956332941 (G) numchar 1.6922442930157 (A) numchar endstack (4) startstack 2 (A) numchar endstack (5) startstack 0.36056805531517 (G) numchar 0.72113611063034 (T) numchar endstack (6) startstack 0.027469949007584 (A) numchar 0.13734974503792 (T) numchar 1.23614770534128 (C) numchar endstack (7) startstack 0.0111654664291333 (A) numchar 0.0446618657165333 (G) numchar 0.2344747950118 (T) numchar 0.279136660728333 (C) numchar endstack (8) startstack 0.0156313024016629 (A) numchar 0.0390782560041573 (T) numchar 0.0625252096066517 (C) numchar 0.0820643376087304 (G) numchar endstack EndLine EndLogo %%EOF %%EndDocument @endspecial 700 w @beginspecial 0 @llx 0 @lly 510 @urx 141 @ury 720 @rwi @setspecial %%BeginDocument: figure/factor_cad.fasta.eps %!PS-Adobe-3.0 EPSF-3.0 %%Title: Sequence Logo: %%Creator: seqlogo (1.0) %%CreationDate: %%BoundingBox: 0 0 510 141 %%Pages: 0 %%DocumentFonts: %%EndComments % * seq_1 % * seq_2 % * seq_3 % * seq_4 % * seq_5 % * seq_6 % * seq_7 % * seq_8 % * seq_9 % * seq_10 % * seq_11 % * seq_12 % * seq_13 % * seq_14 % * seq_15 % * seq_16 % * seq_17 % * seq_18 % * seq_19 % * seq_20 % * seq_21 % * seq_22 % * seq_23 % * seq_24 % * seq_25 % * seq_26 % * seq_27 % * seq_28 % * seq_29 % * seq_30 % * seq_31 % * seq_32 % * seq_33 % * seq_34 % * seq_35 % * seq_36 % * seq_37 % * seq_38 % * seq_39 % * seq_40 % * seq_41 % * seq_42 % * seq_43 % * seq_44 % * seq_45 % * seq_46 % * seq_47 % * seq_48 % * seq_49 % * seq_50 % * seq_51 % * seq_52 % * seq_53 % * seq_54 % * seq_55 % * seq_56 % * seq_57 % * seq_58 % * seq_59 % * seq_60 % * seq_61 % * seq_62 % * seq_63 % * seq_64 % * seq_65 % * seq_66 % * seq_67 % * seq_68 % * seq_69 % * seq_70 % * seq_71 % * seq_72 % * seq_73 % * seq_74 % * seq_75 % * seq_76 % * seq_77 % * seq_78 % * seq_79 % * seq_80 % * seq_81 % * seq_82 % * seq_83 % * seq_84 % * seq_85 % * seq_86 % * seq_87 % * seq_88 % * seq_89 % * seq_90 % * seq_91 % * seq_92 % * seq_93 % * seq_94 % * seq_95 % * seq_96 % * seq_97 % * seq_98 % * seq_99 % * seq_100 % * seq_101 % * seq_102 % * seq_103 % * seq_104 % * seq_105 % * seq_106 % * seq_107 % * seq_108 % * seq_109 % * seq_110 % * seq_111 % * seq_112 % * seq_113 % * seq_114 % * seq_115 % * seq_116 % * seq_117 % * seq_118 % * seq_119 % * seq_120 % * seq_121 % * seq_122 % * seq_123 % * seq_124 % * seq_125 % * seq_126 % * seq_127 % * seq_128 % * seq_129 % * seq_130 % * seq_131 % * seq_132 % * seq_133 % * seq_134 % * seq_135 % * seq_136 % * seq_137 % * seq_138 % * seq_139 % * seq_140 % * seq_141 % * seq_142 % * seq_143 % * seq_144 % * seq_145 % * seq_146 % * seq_147 % * seq_148 % * seq_149 % * seq_150 % * seq_151 % * seq_152 % * seq_153 % * seq_154 % * seq_155 % * seq_156 % * seq_157 % * seq_158 % * seq_159 % * seq_160 % * seq_161 % * seq_162 % * seq_163 % * seq_164 % * seq_165 % * seq_166 % * seq_167 % * seq_168 % * seq_169 % * seq_170 % * seq_171 % * seq_172 % * seq_173 % * seq_174 % * seq_175 % * seq_176 % * seq_177 % * seq_178 % * seq_179 % * seq_180 % * seq_181 % * seq_182 % * seq_183 % * seq_184 % * seq_185 % * seq_186 % * seq_187 % * seq_188 % * seq_189 % * seq_190 % * seq_191 % * seq_192 % * seq_193 % * seq_194 % * seq_195 % * seq_196 % * seq_197 % * seq_198 % * seq_199 % * seq_200 % * seq_201 % * seq_202 % * seq_203 % * seq_204 % * seq_205 % * seq_206 % * seq_207 % * seq_208 % * seq_209 % * seq_210 % * seq_211 % * seq_212 % * seq_213 % * seq_214 % * seq_215 % * seq_216 % * seq_217 % * seq_218 % * seq_219 % * seq_220 % * seq_221 % * seq_222 % * seq_223 % * seq_224 % * seq_225 % * seq_226 % * seq_227 % * seq_228 % * seq_229 % * seq_230 % * seq_231 % * seq_232 % * seq_233 % * seq_234 % * seq_235 % * seq_236 % * seq_237 % * seq_238 % * seq_239 % * seq_240 % * seq_241 % * seq_242 % * seq_243 % * seq_244 % * seq_245 % * seq_246 % * seq_247 % * seq_248 % * seq_249 % * seq_250 % * seq_251 % * seq_252 % * seq_253 % * seq_254 % * seq_255 % * seq_256 % * seq_257 % * seq_258 % * seq_259 % * seq_260 % * seq_261 % * seq_262 % * seq_263 % * seq_264 % * seq_265 % * seq_266 % * seq_267 % * seq_268 % * seq_269 % * seq_270 % * seq_271 % * seq_272 % * seq_273 % * seq_274 % * seq_275 % * seq_276 % * seq_277 % * seq_278 % * seq_279 % * seq_280 % * seq_281 % * seq_282 % * seq_283 % * seq_284 % * seq_285 % * seq_286 % * seq_287 % * seq_288 % * seq_289 % * seq_290 % * seq_291 % * seq_292 % * seq_293 % * seq_294 % * seq_295 % * seq_296 % * seq_297 % * seq_298 % * seq_299 % * seq_300 % * NUCLEOTIDE ALIGNMENT % ---- CONSTANTS ---- /cmfactor 72 2.54 div def % defines points -> cm conversion /cm {cmfactor mul} bind def % defines centimeters % ---- VARIABLES ---- /black [0 0 0] def /red [0.8 0 0] def /green [0 0.8 0] def /blue [0 0 0.8] def /yellow [1 0.71 .0] def /purple [0.8 0 0.8] def /orange [1 0.7 0] def /logoWidth 18 cm def /logoHeight 5 cm def /logoTitle () def /yaxis true def /yaxisLabel (bits) def /yaxisBits 2 def % bits /xaxis true def /xaxisLabel ( ) def /showEnds (d) def % d: DNA, p: PROTEIN, -: none /showFineprint true def /fineprint () def /charsPerLine 10 def /logoLines 1 def /showingBox (n) def %n s f /shrinking false def /shrink 1 def /outline false def /IbeamFraction 1 def /IbeamGray 0.75 def /IbeamLineWidth 0.5 def /fontsize 12 def /titleFontsize 14 def /smallFontsize 6 def /defaultColor black def % Standard DNA/RNA color scheme /colorDict << (G) orange (T) red (C) blue (A) green (U) red >> def % Standard DNA/RNA color scheme % /colorDict << % (G) orange % (T) red % (C) blue % (A) green % (U) red % >> def % Standard Amino Acid colors %/colorDict << % (G) green % (S) green % (T) green % (Y) green % (C) green % (N) purple % (Q) purple % (K) blue % (R) blue % (H) blue % (D) red % (E) red % (P) black % (A) black % (W) black % (F) black % (L) black % (I) black % (M) black % (V) black %>> def % ---- DERIVED PARAMETERS ---- /leftMargin fontsize 2.5 mul def /bottomMargin fontsize 0.75 mul % Add extra room for axis xaxis {fontsize 1.75 mul add } if xaxisLabel () eq {} {fontsize 0.75 mul add} ifelse def /topMargin logoTitle () eq { 10 }{titleFontsize 4 add} ifelse def /rightMargin %Add extra room if showing ends showEnds (-) eq { fontsize}{fontsize 1.5 mul} ifelse def /yaxisHeight logoHeight bottomMargin sub topMargin sub def /ticWidth fontsize 2 div def /pointsPerBit yaxisHeight yaxisBits div def /isBoxed showingBox (s) eq showingBox (f) eq or { true } { false } ifelse def /stackMargin 1 def % Do not add space aroung characters if characters are boxed /charRightMargin isBoxed { 0.0 } {stackMargin} ifelse def /charTopMargin isBoxed { 0.0 } {stackMargin} ifelse def /charWidth logoWidth leftMargin sub rightMargin sub charsPerLine div charRightMargin sub def /charWidth4 charWidth 4 div def /charWidth2 charWidth 2 div def /stackWidth charWidth charRightMargin add def /numberFontsize fontsize charWidth lt {fontsize}{charWidth} ifelse def % movements to place 5'/N and 3'/C symbols /leftEndDeltaX fontsize neg def /leftEndDeltaY fontsize 1.5 mul neg def /rightEndDeltaX fontsize 0.25 mul def /rightEndDeltaY leftEndDeltaY def % Outline width is proporional to charWidth, % but no less that 1 point /outlinewidth charWidth 32 div dup 1 gt {}{pop 1} ifelse def % ---- PROCEDURES ---- /StartLogo { % Save state save gsave % Print Logo Title, top center gsave SetTitleFont logoWidth 2 div logoTitle stringwidth pop 2 div sub logoHeight logoLines mul titleFontsize sub moveto logoTitle show grestore % Print X-axis label, bottom center gsave SetStringFont logoWidth 2 div xaxisLabel stringwidth pop 2 div sub fontsize 3 div moveto xaxisLabel show grestore % Show Fine Print showFineprint { gsave SetSmallFont logoWidth fineprint stringwidth pop sub smallFontsize sub smallFontsize 3 div moveto fineprint show grestore } if % Move to lower left corner of last line, first stack leftMargin bottomMargin translate % Move above first line ready for StartLine 0 logoLines logoHeight mul translate SetLogoFont } bind def /EndLogo { grestore showpage restore } bind def /StartLine{ % move down to the bottom of the line: 0 logoHeight neg translate gsave yaxis { MakeYaxis } if xaxis { ShowLeftEnd } if } bind def /EndLine{ xaxis { ShowRightEnd } if grestore } bind def /MakeYaxis { gsave stackMargin neg 0 translate ShowYaxisBar ShowYaxisLabel grestore } bind def /ShowYaxisBar { gsave SetStringFont /str 10 string def % string to hold number /smallgap stackMargin 2 div def % Draw first tic and bar gsave ticWidth neg 0 moveto ticWidth 0 rlineto 0 yaxisHeight rlineto stroke grestore % Draw the tics % initial increment limit proc for 0 1 yaxisBits abs cvi {/loopnumber exch def % convert the number coming from the loop to a string % and find its width loopnumber 10 str cvrs /stringnumber exch def % string representing the number stringnumber stringwidth pop /numberwidth exch def % width of number to show /halfnumberheight stringnumber CharBoxHeight 2 div def numberwidth % move back width of number neg loopnumber pointsPerBit mul % shift on y axis halfnumberheight sub % down half the digit moveto % move back the width of the string ticWidth neg smallgap sub % Move back a bit more 0 rmoveto % move back the width of the tic stringnumber show smallgap 0 rmoveto % Make a small gap % now show the tic mark 0 halfnumberheight rmoveto % shift up again ticWidth 0 rlineto stroke } for grestore } bind def /ShowYaxisLabel { gsave SetStringFont ticWidth neg 2.75 mul yaxisHeight yaxisLabel stringwidth pop sub 2 div translate 90 rotate 0 0 moveto yaxisLabel show grestore } bind def /StartStack { % startstack xaxis {MakeNumber}{pop} ifelse gsave } bind def /EndStack { grestore stackWidth 0 translate } bind def % Draw a character whose height is proportional to symbol bits /MakeSymbol{ % charbits character MakeSymbol gsave /char exch def /bits exch def /bitsHeight bits pointsPerBit mul def /charHeight bitsHeight charTopMargin sub dup 0.0 gt {}{pop 0.0} ifelse % if neg replace with zero def charHeight 0.0 gt { char SetColor charWidth charHeight char ShowChar showingBox (s) eq { % Unfilled box 0 0 charWidth charHeight false ShowBox } if showingBox (f) eq { % Filled box 0 0 charWidth charHeight true ShowBox } if } if grestore 0 bitsHeight translate } bind def /ShowChar { % ShowChar gsave /tc exch def % The character /ysize exch def % the y size of the character /xsize exch def % the x size of the character /xmulfactor 1 def /ymulfactor 1 def % if ysize is negative, make everything upside down! ysize 0 lt { % put ysize normal in this orientation /ysize ysize abs def xsize ysize translate 180 rotate } if shrinking { xsize 1 shrink sub 2 div mul ysize 1 shrink sub 2 div mul translate shrink shrink scale } if % Calculate the font scaling factors % Loop twice to catch small correction due to first scaling 2 { gsave xmulfactor ymulfactor scale ysize % desired size of character in points tc CharBoxHeight dup 0.0 ne { div % factor by which to scale up the character /ymulfactor exch def } % end if {pop pop} ifelse xsize % desired size of character in points tc CharBoxWidth dup 0.0 ne { div % factor by which to scale up the character /xmulfactor exch def } % end if {pop pop} ifelse grestore } repeat % Adjust horizontal position if the symbol is an I tc (I) eq { charWidth 2 div % half of requested character width tc CharBoxWidth 2 div % half of the actual character sub 0 translate % Avoid x scaling for I /xmulfactor 1 def } if % ---- Finally, draw the character newpath xmulfactor ymulfactor scale % Move lower left corner of character to start point tc CharBox pop pop % llx lly : Lower left corner exch neg exch neg moveto outline { % outline characters: outlinewidth setlinewidth tc true charpath gsave 1 setgray fill grestore clip stroke } { % regular characters tc show } ifelse grestore } bind def /ShowBox { % x1 y1 x2 y2 filled ShowBox gsave /filled exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath clip filled { fill }{ 0 setgray stroke } ifelse grestore } bind def /MakeNumber { % number MakeNumber gsave SetNumberFont stackWidth 0 translate 90 rotate % rotate so the number fits dup stringwidth pop % find the length of the number neg % prepare for move stackMargin sub % Move back a bit charWidth (0) CharBoxHeight % height of numbers sub 2 div % moveto % move back to provide space show grestore } bind def /Ibeam{ % heightInBits Ibeam gsave % Make an Ibeam of twice the given height in bits /height exch pointsPerBit mul def /heightDRAW height IbeamFraction mul def IbeamLineWidth setlinewidth IbeamGray setgray charWidth2 height neg translate ShowIbar newpath 0 0 moveto 0 heightDRAW rlineto stroke newpath 0 height moveto 0 height rmoveto currentpoint translate ShowIbar newpath 0 0 moveto 0 heightDRAW neg rlineto currentpoint translate stroke grestore } bind def /ShowIbar { % make a horizontal bar gsave newpath charWidth4 neg 0 moveto charWidth4 0 lineto stroke grestore } bind def /ShowLeftEnd { gsave SetStringFont leftEndDeltaX leftEndDeltaY moveto showEnds (d) eq {(5) show ShowPrime} if showEnds (p) eq {(N) show} if grestore } bind def /ShowRightEnd { gsave SetStringFont rightEndDeltaX rightEndDeltaY moveto showEnds (d) eq {(3) show ShowPrime} if showEnds (p) eq {(C) show} if grestore } bind def /ShowPrime { gsave SetPrimeFont (\242) show grestore } bind def /SetColor{ % SetColor dup colorDict exch known { colorDict exch get aload pop setrgbcolor } { pop defaultColor aload pop setrgbcolor } ifelse } bind def % define fonts /SetTitleFont {/Times-Bold findfont titleFontsize scalefont setfont} bind def /SetLogoFont {/Helvetica-Narrow-Bold findfont charWidth scalefont setfont} bind def /SetStringFont{/Helvetica-Bold findfont fontsize scalefont setfont} bind def /SetPrimeFont {/Symbol findfont fontsize scalefont setfont} bind def /SetSmallFont {/Helvetica findfont smallFontsize scalefont setfont} bind def /SetNumberFont { /Helvetica-Bold findfont numberFontsize scalefont setfont } bind def %Take a single character and return the bounding box /CharBox { % CharBox gsave newpath 0 0 moveto % take the character off the stack and use it here: true charpath flattenpath pathbbox % compute bounding box of 1 pt. char => lx ly ux uy % the path is here, but toss it away ... grestore } bind def % The height of a characters bounding box /CharBoxHeight { % CharBoxHeight CharBox exch pop sub neg exch pop } bind def % The width of a characters bounding box /CharBoxWidth { % CharBoxHeight CharBox pop exch pop sub neg } bind def % Deprecated names /startstack {StartStack} bind def /endstack {EndStack} bind def /makenumber {MakeNumber} bind def /numchar { MakeSymbol } bind def %%EndProlog %%Page: 1 1 StartLogo StartLine % line number 1 (1) startstack 0.0183455572482361 (C) numchar 0.0366911144964723 (T) numchar 0.0372470404736915 (G) numchar 0.0744940809473831 (A) numchar endstack (2) startstack 0.00916621168189109 (C) numchar 0.018802485501315 (T) numchar 0.0190375165700815 (A) numchar 0.0235031068766438 (G) numchar endstack (3) startstack 0.00818833862956073 (C) numchar 0.00832257368906173 (G) numchar 0.00953068922457069 (A) numchar 0.0142289163071055 (T) numchar endstack (4) startstack 0.0321509672165251 (G) numchar 0.0401887090206563 (A) numchar 0.0544780277835563 (T) numchar 0.141107022783638 (C) numchar endstack (5) startstack 0.016600582423535 (T) numchar 0.0191063307138799 (C) numchar 0.019419549250173 (G) numchar 0.0388390985003459 (A) numchar endstack (6) startstack 0.0779491408105151 (G) numchar 0.17610731812746 (C) numchar 0.612045105623304 (T) numchar endstack (7) startstack 2 (A) numchar endstack (8) startstack 2 (A) numchar endstack (9) startstack 2 (A) numchar endstack (10) startstack 0.0225623547280353 (C) numchar 0.0459924923302257 (T) numchar 0.0616125840650194 (G) numchar 0.13016743112328 (A) numchar endstack EndLine EndLogo %%EOF %%EndDocument @endspecial 2233 1339 a FG(bcd)569 b(cad)1926 1534 y @beginspecial 0 @llx 0 @lly 510 @urx 141 @ury 720 @rwi @setspecial %%BeginDocument: figure/factor_hb.fasta.eps %!PS-Adobe-3.0 EPSF-3.0 %%Title: Sequence Logo: %%Creator: seqlogo (1.0) %%CreationDate: %%BoundingBox: 0 0 510 141 %%Pages: 0 %%DocumentFonts: %%EndComments % * seq_1 % * seq_2 % * seq_3 % * seq_4 % * seq_5 % * seq_6 % * seq_7 % * seq_8 % * seq_9 % * seq_10 % * seq_11 % * seq_12 % * seq_13 % * seq_14 % * seq_15 % * seq_16 % * seq_17 % * seq_18 % * seq_19 % * seq_20 % * seq_21 % * seq_22 % * seq_23 % * seq_24 % * seq_25 % * seq_26 % * seq_27 % * seq_28 % * seq_29 % * seq_30 % * seq_31 % * seq_32 % * seq_33 % * seq_34 % * seq_35 % * seq_36 % * seq_37 % * seq_38 % * seq_39 % * seq_40 % * seq_41 % * seq_42 % * seq_43 % * seq_44 % * seq_45 % * seq_46 % * seq_47 % * seq_48 % * seq_49 % * seq_50 % * seq_51 % * seq_52 % * seq_53 % * seq_54 % * seq_55 % * seq_56 % * seq_57 % * seq_58 % * seq_59 % * seq_60 % * seq_61 % * seq_62 % * seq_63 % * seq_64 % * seq_65 % * seq_66 % * seq_67 % * seq_68 % * seq_69 % * seq_70 % * seq_71 % * seq_72 % * seq_73 % * seq_74 % * seq_75 % * seq_76 % * seq_77 % * seq_78 % * seq_79 % * seq_80 % * seq_81 % * seq_82 % * seq_83 % * seq_84 % * seq_85 % * seq_86 % * seq_87 % * seq_88 % * seq_89 % * seq_90 % * seq_91 % * seq_92 % * seq_93 % * NUCLEOTIDE ALIGNMENT % ---- CONSTANTS ---- /cmfactor 72 2.54 div def % defines points -> cm conversion /cm {cmfactor mul} bind def % defines centimeters % ---- VARIABLES ---- /black [0 0 0] def /red [0.8 0 0] def /green [0 0.8 0] def /blue [0 0 0.8] def /yellow [1 0.71 .0] def /purple [0.8 0 0.8] def /orange [1 0.7 0] def /logoWidth 18 cm def /logoHeight 5 cm def /logoTitle () def /yaxis true def /yaxisLabel (bits) def /yaxisBits 2 def % bits /xaxis true def /xaxisLabel ( ) def /showEnds (d) def % d: DNA, p: PROTEIN, -: none /showFineprint true def /fineprint () def /charsPerLine 11 def /logoLines 1 def /showingBox (n) def %n s f /shrinking false def /shrink 1 def /outline false def /IbeamFraction 1 def /IbeamGray 0.75 def /IbeamLineWidth 0.5 def /fontsize 12 def /titleFontsize 14 def /smallFontsize 6 def /defaultColor black def % Standard DNA/RNA color scheme /colorDict << (G) orange (T) red (C) blue (A) green (U) red >> def % Standard DNA/RNA color scheme % /colorDict << % (G) orange % (T) red % (C) blue % (A) green % (U) red % >> def % Standard Amino Acid colors %/colorDict << % (G) green % (S) green % (T) green % (Y) green % (C) green % (N) purple % (Q) purple % (K) blue % (R) blue % (H) blue % (D) red % (E) red % (P) black % (A) black % (W) black % (F) black % (L) black % (I) black % (M) black % (V) black %>> def % ---- DERIVED PARAMETERS ---- /leftMargin fontsize 2.5 mul def /bottomMargin fontsize 0.75 mul % Add extra room for axis xaxis {fontsize 1.75 mul add } if xaxisLabel () eq {} {fontsize 0.75 mul add} ifelse def /topMargin logoTitle () eq { 10 }{titleFontsize 4 add} ifelse def /rightMargin %Add extra room if showing ends showEnds (-) eq { fontsize}{fontsize 1.5 mul} ifelse def /yaxisHeight logoHeight bottomMargin sub topMargin sub def /ticWidth fontsize 2 div def /pointsPerBit yaxisHeight yaxisBits div def /isBoxed showingBox (s) eq showingBox (f) eq or { true } { false } ifelse def /stackMargin 1 def % Do not add space aroung characters if characters are boxed /charRightMargin isBoxed { 0.0 } {stackMargin} ifelse def /charTopMargin isBoxed { 0.0 } {stackMargin} ifelse def /charWidth logoWidth leftMargin sub rightMargin sub charsPerLine div charRightMargin sub def /charWidth4 charWidth 4 div def /charWidth2 charWidth 2 div def /stackWidth charWidth charRightMargin add def /numberFontsize fontsize charWidth lt {fontsize}{charWidth} ifelse def % movements to place 5'/N and 3'/C symbols /leftEndDeltaX fontsize neg def /leftEndDeltaY fontsize 1.5 mul neg def /rightEndDeltaX fontsize 0.25 mul def /rightEndDeltaY leftEndDeltaY def % Outline width is proporional to charWidth, % but no less that 1 point /outlinewidth charWidth 32 div dup 1 gt {}{pop 1} ifelse def % ---- PROCEDURES ---- /StartLogo { % Save state save gsave % Print Logo Title, top center gsave SetTitleFont logoWidth 2 div logoTitle stringwidth pop 2 div sub logoHeight logoLines mul titleFontsize sub moveto logoTitle show grestore % Print X-axis label, bottom center gsave SetStringFont logoWidth 2 div xaxisLabel stringwidth pop 2 div sub fontsize 3 div moveto xaxisLabel show grestore % Show Fine Print showFineprint { gsave SetSmallFont logoWidth fineprint stringwidth pop sub smallFontsize sub smallFontsize 3 div moveto fineprint show grestore } if % Move to lower left corner of last line, first stack leftMargin bottomMargin translate % Move above first line ready for StartLine 0 logoLines logoHeight mul translate SetLogoFont } bind def /EndLogo { grestore showpage restore } bind def /StartLine{ % move down to the bottom of the line: 0 logoHeight neg translate gsave yaxis { MakeYaxis } if xaxis { ShowLeftEnd } if } bind def /EndLine{ xaxis { ShowRightEnd } if grestore } bind def /MakeYaxis { gsave stackMargin neg 0 translate ShowYaxisBar ShowYaxisLabel grestore } bind def /ShowYaxisBar { gsave SetStringFont /str 10 string def % string to hold number /smallgap stackMargin 2 div def % Draw first tic and bar gsave ticWidth neg 0 moveto ticWidth 0 rlineto 0 yaxisHeight rlineto stroke grestore % Draw the tics % initial increment limit proc for 0 1 yaxisBits abs cvi {/loopnumber exch def % convert the number coming from the loop to a string % and find its width loopnumber 10 str cvrs /stringnumber exch def % string representing the number stringnumber stringwidth pop /numberwidth exch def % width of number to show /halfnumberheight stringnumber CharBoxHeight 2 div def numberwidth % move back width of number neg loopnumber pointsPerBit mul % shift on y axis halfnumberheight sub % down half the digit moveto % move back the width of the string ticWidth neg smallgap sub % Move back a bit more 0 rmoveto % move back the width of the tic stringnumber show smallgap 0 rmoveto % Make a small gap % now show the tic mark 0 halfnumberheight rmoveto % shift up again ticWidth 0 rlineto stroke } for grestore } bind def /ShowYaxisLabel { gsave SetStringFont ticWidth neg 2.75 mul yaxisHeight yaxisLabel stringwidth pop sub 2 div translate 90 rotate 0 0 moveto yaxisLabel show grestore } bind def /StartStack { % startstack xaxis {MakeNumber}{pop} ifelse gsave } bind def /EndStack { grestore stackWidth 0 translate } bind def % Draw a character whose height is proportional to symbol bits /MakeSymbol{ % charbits character MakeSymbol gsave /char exch def /bits exch def /bitsHeight bits pointsPerBit mul def /charHeight bitsHeight charTopMargin sub dup 0.0 gt {}{pop 0.0} ifelse % if neg replace with zero def charHeight 0.0 gt { char SetColor charWidth charHeight char ShowChar showingBox (s) eq { % Unfilled box 0 0 charWidth charHeight false ShowBox } if showingBox (f) eq { % Filled box 0 0 charWidth charHeight true ShowBox } if } if grestore 0 bitsHeight translate } bind def /ShowChar { % ShowChar gsave /tc exch def % The character /ysize exch def % the y size of the character /xsize exch def % the x size of the character /xmulfactor 1 def /ymulfactor 1 def % if ysize is negative, make everything upside down! ysize 0 lt { % put ysize normal in this orientation /ysize ysize abs def xsize ysize translate 180 rotate } if shrinking { xsize 1 shrink sub 2 div mul ysize 1 shrink sub 2 div mul translate shrink shrink scale } if % Calculate the font scaling factors % Loop twice to catch small correction due to first scaling 2 { gsave xmulfactor ymulfactor scale ysize % desired size of character in points tc CharBoxHeight dup 0.0 ne { div % factor by which to scale up the character /ymulfactor exch def } % end if {pop pop} ifelse xsize % desired size of character in points tc CharBoxWidth dup 0.0 ne { div % factor by which to scale up the character /xmulfactor exch def } % end if {pop pop} ifelse grestore } repeat % Adjust horizontal position if the symbol is an I tc (I) eq { charWidth 2 div % half of requested character width tc CharBoxWidth 2 div % half of the actual character sub 0 translate % Avoid x scaling for I /xmulfactor 1 def } if % ---- Finally, draw the character newpath xmulfactor ymulfactor scale % Move lower left corner of character to start point tc CharBox pop pop % llx lly : Lower left corner exch neg exch neg moveto outline { % outline characters: outlinewidth setlinewidth tc true charpath gsave 1 setgray fill grestore clip stroke } { % regular characters tc show } ifelse grestore } bind def /ShowBox { % x1 y1 x2 y2 filled ShowBox gsave /filled exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath clip filled { fill }{ 0 setgray stroke } ifelse grestore } bind def /MakeNumber { % number MakeNumber gsave SetNumberFont stackWidth 0 translate 90 rotate % rotate so the number fits dup stringwidth pop % find the length of the number neg % prepare for move stackMargin sub % Move back a bit charWidth (0) CharBoxHeight % height of numbers sub 2 div % moveto % move back to provide space show grestore } bind def /Ibeam{ % heightInBits Ibeam gsave % Make an Ibeam of twice the given height in bits /height exch pointsPerBit mul def /heightDRAW height IbeamFraction mul def IbeamLineWidth setlinewidth IbeamGray setgray charWidth2 height neg translate ShowIbar newpath 0 0 moveto 0 heightDRAW rlineto stroke newpath 0 height moveto 0 height rmoveto currentpoint translate ShowIbar newpath 0 0 moveto 0 heightDRAW neg rlineto currentpoint translate stroke grestore } bind def /ShowIbar { % make a horizontal bar gsave newpath charWidth4 neg 0 moveto charWidth4 0 lineto stroke grestore } bind def /ShowLeftEnd { gsave SetStringFont leftEndDeltaX leftEndDeltaY moveto showEnds (d) eq {(5) show ShowPrime} if showEnds (p) eq {(N) show} if grestore } bind def /ShowRightEnd { gsave SetStringFont rightEndDeltaX rightEndDeltaY moveto showEnds (d) eq {(3) show ShowPrime} if showEnds (p) eq {(C) show} if grestore } bind def /ShowPrime { gsave SetPrimeFont (\242) show grestore } bind def /SetColor{ % SetColor dup colorDict exch known { colorDict exch get aload pop setrgbcolor } { pop defaultColor aload pop setrgbcolor } ifelse } bind def % define fonts /SetTitleFont {/Times-Bold findfont titleFontsize scalefont setfont} bind def /SetLogoFont {/Helvetica-Narrow-Bold findfont charWidth scalefont setfont} bind def /SetStringFont{/Helvetica-Bold findfont fontsize scalefont setfont} bind def /SetPrimeFont {/Symbol findfont fontsize scalefont setfont} bind def /SetSmallFont {/Helvetica findfont smallFontsize scalefont setfont} bind def /SetNumberFont { /Helvetica-Bold findfont numberFontsize scalefont setfont } bind def %Take a single character and return the bounding box /CharBox { % CharBox gsave newpath 0 0 moveto % take the character off the stack and use it here: true charpath flattenpath pathbbox % compute bounding box of 1 pt. char => lx ly ux uy % the path is here, but toss it away ... grestore } bind def % The height of a characters bounding box /CharBoxHeight { % CharBoxHeight CharBox exch pop sub neg exch pop } bind def % The width of a characters bounding box /CharBoxWidth { % CharBoxHeight CharBox pop exch pop sub neg } bind def % Deprecated names /startstack {StartStack} bind def /endstack {EndStack} bind def /makenumber {MakeNumber} bind def /numchar { MakeSymbol } bind def %%EndProlog %%Page: 1 1 StartLogo StartLine % line number 1 (1) startstack 0.0510955618516396 (G) numchar 0.0613146742219675 (C) numchar 0.0613146742219675 (A) numchar 0.301463814924674 (T) numchar endstack (2) startstack 2 (T) numchar endstack (3) startstack 0.0162466180450149 (A) numchar 0.0324932360900297 (G) numchar 0.0649864721800594 (C) numchar 1.39720915187128 (T) numchar endstack (4) startstack 2 (T) numchar endstack (5) startstack 2 (T) numchar endstack (6) startstack 0.0205834120157473 (C) numchar 1.89367390544875 (T) numchar endstack (7) startstack 0.0335578518483125 (T) numchar 0.0335578518483125 (C) numchar 0.0969449053395694 (G) numchar 0.182703860063035 (A) numchar endstack (8) startstack 0.0290214265792125 (G) numchar 0.0411136876538844 (C) numchar 0.0411136876538844 (A) numchar 0.113667254101916 (T) numchar endstack (9) startstack 0.0084764036872154 (A) numchar 0.0762876331849386 (C) numchar 0.118669651621016 (T) numchar 0.190719082962346 (G) numchar endstack (10) startstack 0.00366095793745781 (T) numchar 0.00516841120582279 (G) numchar 0.00538376167273208 (C) numchar 0.00581446260655064 (A) numchar endstack (11) startstack 0.0108341768339966 (A) numchar 0.0312987330759902 (C) numchar 0.0337063279279895 (G) numchar 0.0361139227799887 (T) numchar endstack EndLine EndLogo %%EOF %%EndDocument @endspecial 700 w @beginspecial 0 @llx 0 @lly 510 @urx 141 @ury 720 @rwi @setspecial %%BeginDocument: figure/factor_kni.fasta.eps %!PS-Adobe-3.0 EPSF-3.0 %%Title: Sequence Logo: %%Creator: seqlogo (1.0) %%CreationDate: %%BoundingBox: 0 0 510 141 %%Pages: 0 %%DocumentFonts: %%EndComments % * seq_1 % * seq_2 % * seq_3 % * seq_4 % * seq_5 % * NUCLEOTIDE ALIGNMENT % ---- CONSTANTS ---- /cmfactor 72 2.54 div def % defines points -> cm conversion /cm {cmfactor mul} bind def % defines centimeters % ---- VARIABLES ---- /black [0 0 0] def /red [0.8 0 0] def /green [0 0.8 0] def /blue [0 0 0.8] def /yellow [1 0.71 .0] def /purple [0.8 0 0.8] def /orange [1 0.7 0] def /logoWidth 18 cm def /logoHeight 5 cm def /logoTitle () def /yaxis true def /yaxisLabel (bits) def /yaxisBits 2 def % bits /xaxis true def /xaxisLabel ( ) def /showEnds (d) def % d: DNA, p: PROTEIN, -: none /showFineprint true def /fineprint () def /charsPerLine 10 def /logoLines 1 def /showingBox (n) def %n s f /shrinking false def /shrink 1 def /outline false def /IbeamFraction 1 def /IbeamGray 0.75 def /IbeamLineWidth 0.5 def /fontsize 12 def /titleFontsize 14 def /smallFontsize 6 def /defaultColor black def % Standard DNA/RNA color scheme /colorDict << (G) orange (T) red (C) blue (A) green (U) red >> def % Standard DNA/RNA color scheme % /colorDict << % (G) orange % (T) red % (C) blue % (A) green % (U) red % >> def % Standard Amino Acid colors %/colorDict << % (G) green % (S) green % (T) green % (Y) green % (C) green % (N) purple % (Q) purple % (K) blue % (R) blue % (H) blue % (D) red % (E) red % (P) black % (A) black % (W) black % (F) black % (L) black % (I) black % (M) black % (V) black %>> def % ---- DERIVED PARAMETERS ---- /leftMargin fontsize 2.5 mul def /bottomMargin fontsize 0.75 mul % Add extra room for axis xaxis {fontsize 1.75 mul add } if xaxisLabel () eq {} {fontsize 0.75 mul add} ifelse def /topMargin logoTitle () eq { 10 }{titleFontsize 4 add} ifelse def /rightMargin %Add extra room if showing ends showEnds (-) eq { fontsize}{fontsize 1.5 mul} ifelse def /yaxisHeight logoHeight bottomMargin sub topMargin sub def /ticWidth fontsize 2 div def /pointsPerBit yaxisHeight yaxisBits div def /isBoxed showingBox (s) eq showingBox (f) eq or { true } { false } ifelse def /stackMargin 1 def % Do not add space aroung characters if characters are boxed /charRightMargin isBoxed { 0.0 } {stackMargin} ifelse def /charTopMargin isBoxed { 0.0 } {stackMargin} ifelse def /charWidth logoWidth leftMargin sub rightMargin sub charsPerLine div charRightMargin sub def /charWidth4 charWidth 4 div def /charWidth2 charWidth 2 div def /stackWidth charWidth charRightMargin add def /numberFontsize fontsize charWidth lt {fontsize}{charWidth} ifelse def % movements to place 5'/N and 3'/C symbols /leftEndDeltaX fontsize neg def /leftEndDeltaY fontsize 1.5 mul neg def /rightEndDeltaX fontsize 0.25 mul def /rightEndDeltaY leftEndDeltaY def % Outline width is proporional to charWidth, % but no less that 1 point /outlinewidth charWidth 32 div dup 1 gt {}{pop 1} ifelse def % ---- PROCEDURES ---- /StartLogo { % Save state save gsave % Print Logo Title, top center gsave SetTitleFont logoWidth 2 div logoTitle stringwidth pop 2 div sub logoHeight logoLines mul titleFontsize sub moveto logoTitle show grestore % Print X-axis label, bottom center gsave SetStringFont logoWidth 2 div xaxisLabel stringwidth pop 2 div sub fontsize 3 div moveto xaxisLabel show grestore % Show Fine Print showFineprint { gsave SetSmallFont logoWidth fineprint stringwidth pop sub smallFontsize sub smallFontsize 3 div moveto fineprint show grestore } if % Move to lower left corner of last line, first stack leftMargin bottomMargin translate % Move above first line ready for StartLine 0 logoLines logoHeight mul translate SetLogoFont } bind def /EndLogo { grestore showpage restore } bind def /StartLine{ % move down to the bottom of the line: 0 logoHeight neg translate gsave yaxis { MakeYaxis } if xaxis { ShowLeftEnd } if } bind def /EndLine{ xaxis { ShowRightEnd } if grestore } bind def /MakeYaxis { gsave stackMargin neg 0 translate ShowYaxisBar ShowYaxisLabel grestore } bind def /ShowYaxisBar { gsave SetStringFont /str 10 string def % string to hold number /smallgap stackMargin 2 div def % Draw first tic and bar gsave ticWidth neg 0 moveto ticWidth 0 rlineto 0 yaxisHeight rlineto stroke grestore % Draw the tics % initial increment limit proc for 0 1 yaxisBits abs cvi {/loopnumber exch def % convert the number coming from the loop to a string % and find its width loopnumber 10 str cvrs /stringnumber exch def % string representing the number stringnumber stringwidth pop /numberwidth exch def % width of number to show /halfnumberheight stringnumber CharBoxHeight 2 div def numberwidth % move back width of number neg loopnumber pointsPerBit mul % shift on y axis halfnumberheight sub % down half the digit moveto % move back the width of the string ticWidth neg smallgap sub % Move back a bit more 0 rmoveto % move back the width of the tic stringnumber show smallgap 0 rmoveto % Make a small gap % now show the tic mark 0 halfnumberheight rmoveto % shift up again ticWidth 0 rlineto stroke } for grestore } bind def /ShowYaxisLabel { gsave SetStringFont ticWidth neg 2.75 mul yaxisHeight yaxisLabel stringwidth pop sub 2 div translate 90 rotate 0 0 moveto yaxisLabel show grestore } bind def /StartStack { % startstack xaxis {MakeNumber}{pop} ifelse gsave } bind def /EndStack { grestore stackWidth 0 translate } bind def % Draw a character whose height is proportional to symbol bits /MakeSymbol{ % charbits character MakeSymbol gsave /char exch def /bits exch def /bitsHeight bits pointsPerBit mul def /charHeight bitsHeight charTopMargin sub dup 0.0 gt {}{pop 0.0} ifelse % if neg replace with zero def charHeight 0.0 gt { char SetColor charWidth charHeight char ShowChar showingBox (s) eq { % Unfilled box 0 0 charWidth charHeight false ShowBox } if showingBox (f) eq { % Filled box 0 0 charWidth charHeight true ShowBox } if } if grestore 0 bitsHeight translate } bind def /ShowChar { % ShowChar gsave /tc exch def % The character /ysize exch def % the y size of the character /xsize exch def % the x size of the character /xmulfactor 1 def /ymulfactor 1 def % if ysize is negative, make everything upside down! ysize 0 lt { % put ysize normal in this orientation /ysize ysize abs def xsize ysize translate 180 rotate } if shrinking { xsize 1 shrink sub 2 div mul ysize 1 shrink sub 2 div mul translate shrink shrink scale } if % Calculate the font scaling factors % Loop twice to catch small correction due to first scaling 2 { gsave xmulfactor ymulfactor scale ysize % desired size of character in points tc CharBoxHeight dup 0.0 ne { div % factor by which to scale up the character /ymulfactor exch def } % end if {pop pop} ifelse xsize % desired size of character in points tc CharBoxWidth dup 0.0 ne { div % factor by which to scale up the character /xmulfactor exch def } % end if {pop pop} ifelse grestore } repeat % Adjust horizontal position if the symbol is an I tc (I) eq { charWidth 2 div % half of requested character width tc CharBoxWidth 2 div % half of the actual character sub 0 translate % Avoid x scaling for I /xmulfactor 1 def } if % ---- Finally, draw the character newpath xmulfactor ymulfactor scale % Move lower left corner of character to start point tc CharBox pop pop % llx lly : Lower left corner exch neg exch neg moveto outline { % outline characters: outlinewidth setlinewidth tc true charpath gsave 1 setgray fill grestore clip stroke } { % regular characters tc show } ifelse grestore } bind def /ShowBox { % x1 y1 x2 y2 filled ShowBox gsave /filled exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath clip filled { fill }{ 0 setgray stroke } ifelse grestore } bind def /MakeNumber { % number MakeNumber gsave SetNumberFont stackWidth 0 translate 90 rotate % rotate so the number fits dup stringwidth pop % find the length of the number neg % prepare for move stackMargin sub % Move back a bit charWidth (0) CharBoxHeight % height of numbers sub 2 div % moveto % move back to provide space show grestore } bind def /Ibeam{ % heightInBits Ibeam gsave % Make an Ibeam of twice the given height in bits /height exch pointsPerBit mul def /heightDRAW height IbeamFraction mul def IbeamLineWidth setlinewidth IbeamGray setgray charWidth2 height neg translate ShowIbar newpath 0 0 moveto 0 heightDRAW rlineto stroke newpath 0 height moveto 0 height rmoveto currentpoint translate ShowIbar newpath 0 0 moveto 0 heightDRAW neg rlineto currentpoint translate stroke grestore } bind def /ShowIbar { % make a horizontal bar gsave newpath charWidth4 neg 0 moveto charWidth4 0 lineto stroke grestore } bind def /ShowLeftEnd { gsave SetStringFont leftEndDeltaX leftEndDeltaY moveto showEnds (d) eq {(5) show ShowPrime} if showEnds (p) eq {(N) show} if grestore } bind def /ShowRightEnd { gsave SetStringFont rightEndDeltaX rightEndDeltaY moveto showEnds (d) eq {(3) show ShowPrime} if showEnds (p) eq {(C) show} if grestore } bind def /ShowPrime { gsave SetPrimeFont (\242) show grestore } bind def /SetColor{ % SetColor dup colorDict exch known { colorDict exch get aload pop setrgbcolor } { pop defaultColor aload pop setrgbcolor } ifelse } bind def % define fonts /SetTitleFont {/Times-Bold findfont titleFontsize scalefont setfont} bind def /SetLogoFont {/Helvetica-Narrow-Bold findfont charWidth scalefont setfont} bind def /SetStringFont{/Helvetica-Bold findfont fontsize scalefont setfont} bind def /SetPrimeFont {/Symbol findfont fontsize scalefont setfont} bind def /SetSmallFont {/Helvetica findfont smallFontsize scalefont setfont} bind def /SetNumberFont { /Helvetica-Bold findfont numberFontsize scalefont setfont } bind def %Take a single character and return the bounding box /CharBox { % CharBox gsave newpath 0 0 moveto % take the character off the stack and use it here: true charpath flattenpath pathbbox % compute bounding box of 1 pt. char => lx ly ux uy % the path is here, but toss it away ... grestore } bind def % The height of a characters bounding box /CharBoxHeight { % CharBoxHeight CharBox exch pop sub neg exch pop } bind def % The width of a characters bounding box /CharBoxWidth { % CharBoxHeight CharBox pop exch pop sub neg } bind def % Deprecated names /startstack {StartStack} bind def /endstack {EndStack} bind def /makenumber {MakeNumber} bind def /numchar { MakeSymbol } bind def %%EndProlog %%Page: 1 1 StartLogo StartLine % line number 1 (1) startstack 2 (A) numchar endstack (2) startstack 2 (A) numchar endstack (3) startstack 0.125809881109066 (G) numchar 0.125809881109066 (A) numchar 0.377429643327199 (C) numchar endstack (4) startstack 0.411619762218133 (G) numchar 0.617429643327199 (T) numchar endstack (5) startstack 0.255614381022528 (C) numchar 1.02245752409011 (A) numchar endstack (6) startstack 2 (G) numchar endstack (7) startstack 0.125809881109066 (G) numchar 0.125809881109066 (C) numchar 0.377429643327199 (A) numchar endstack (8) startstack 0.0956143810225276 (C) numchar 0.191228762045055 (T) numchar 0.191228762045055 (G) numchar endstack (9) startstack 2 (C) numchar endstack (10) startstack 2 (A) numchar endstack EndLine EndLogo %%EOF %%EndDocument @endspecial 700 w @beginspecial 0 @llx 0 @lly 510 @urx 141 @ury 720 @rwi @setspecial %%BeginDocument: figure/factor_kr.fasta.eps %!PS-Adobe-3.0 EPSF-3.0 %%Title: Sequence Logo: %%Creator: seqlogo (1.0) %%CreationDate: %%BoundingBox: 0 0 510 141 %%Pages: 0 %%DocumentFonts: %%EndComments % * seq_1 % * seq_2 % * seq_3 % * seq_4 % * seq_5 % * seq_6 % * seq_7 % * seq_8 % * seq_9 % * seq_10 % * seq_11 % * seq_12 % * seq_13 % * seq_14 % * seq_15 % * seq_16 % * seq_17 % * seq_18 % * seq_19 % * seq_20 % * seq_21 % * seq_22 % * seq_23 % * seq_24 % * seq_25 % * seq_26 % * seq_27 % * seq_28 % * seq_29 % * NUCLEOTIDE ALIGNMENT % ---- CONSTANTS ---- /cmfactor 72 2.54 div def % defines points -> cm conversion /cm {cmfactor mul} bind def % defines centimeters % ---- VARIABLES ---- /black [0 0 0] def /red [0.8 0 0] def /green [0 0.8 0] def /blue [0 0 0.8] def /yellow [1 0.71 .0] def /purple [0.8 0 0.8] def /orange [1 0.7 0] def /logoWidth 18 cm def /logoHeight 5 cm def /logoTitle () def /yaxis true def /yaxisLabel (bits) def /yaxisBits 2 def % bits /xaxis true def /xaxisLabel ( ) def /showEnds (d) def % d: DNA, p: PROTEIN, -: none /showFineprint true def /fineprint () def /charsPerLine 10 def /logoLines 1 def /showingBox (n) def %n s f /shrinking false def /shrink 1 def /outline false def /IbeamFraction 1 def /IbeamGray 0.75 def /IbeamLineWidth 0.5 def /fontsize 12 def /titleFontsize 14 def /smallFontsize 6 def /defaultColor black def % Standard DNA/RNA color scheme /colorDict << (G) orange (T) red (C) blue (A) green (U) red >> def % Standard DNA/RNA color scheme % /colorDict << % (G) orange % (T) red % (C) blue % (A) green % (U) red % >> def % Standard Amino Acid colors %/colorDict << % (G) green % (S) green % (T) green % (Y) green % (C) green % (N) purple % (Q) purple % (K) blue % (R) blue % (H) blue % (D) red % (E) red % (P) black % (A) black % (W) black % (F) black % (L) black % (I) black % (M) black % (V) black %>> def % ---- DERIVED PARAMETERS ---- /leftMargin fontsize 2.5 mul def /bottomMargin fontsize 0.75 mul % Add extra room for axis xaxis {fontsize 1.75 mul add } if xaxisLabel () eq {} {fontsize 0.75 mul add} ifelse def /topMargin logoTitle () eq { 10 }{titleFontsize 4 add} ifelse def /rightMargin %Add extra room if showing ends showEnds (-) eq { fontsize}{fontsize 1.5 mul} ifelse def /yaxisHeight logoHeight bottomMargin sub topMargin sub def /ticWidth fontsize 2 div def /pointsPerBit yaxisHeight yaxisBits div def /isBoxed showingBox (s) eq showingBox (f) eq or { true } { false } ifelse def /stackMargin 1 def % Do not add space aroung characters if characters are boxed /charRightMargin isBoxed { 0.0 } {stackMargin} ifelse def /charTopMargin isBoxed { 0.0 } {stackMargin} ifelse def /charWidth logoWidth leftMargin sub rightMargin sub charsPerLine div charRightMargin sub def /charWidth4 charWidth 4 div def /charWidth2 charWidth 2 div def /stackWidth charWidth charRightMargin add def /numberFontsize fontsize charWidth lt {fontsize}{charWidth} ifelse def % movements to place 5'/N and 3'/C symbols /leftEndDeltaX fontsize neg def /leftEndDeltaY fontsize 1.5 mul neg def /rightEndDeltaX fontsize 0.25 mul def /rightEndDeltaY leftEndDeltaY def % Outline width is proporional to charWidth, % but no less that 1 point /outlinewidth charWidth 32 div dup 1 gt {}{pop 1} ifelse def % ---- PROCEDURES ---- /StartLogo { % Save state save gsave % Print Logo Title, top center gsave SetTitleFont logoWidth 2 div logoTitle stringwidth pop 2 div sub logoHeight logoLines mul titleFontsize sub moveto logoTitle show grestore % Print X-axis label, bottom center gsave SetStringFont logoWidth 2 div xaxisLabel stringwidth pop 2 div sub fontsize 3 div moveto xaxisLabel show grestore % Show Fine Print showFineprint { gsave SetSmallFont logoWidth fineprint stringwidth pop sub smallFontsize sub smallFontsize 3 div moveto fineprint show grestore } if % Move to lower left corner of last line, first stack leftMargin bottomMargin translate % Move above first line ready for StartLine 0 logoLines logoHeight mul translate SetLogoFont } bind def /EndLogo { grestore showpage restore } bind def /StartLine{ % move down to the bottom of the line: 0 logoHeight neg translate gsave yaxis { MakeYaxis } if xaxis { ShowLeftEnd } if } bind def /EndLine{ xaxis { ShowRightEnd } if grestore } bind def /MakeYaxis { gsave stackMargin neg 0 translate ShowYaxisBar ShowYaxisLabel grestore } bind def /ShowYaxisBar { gsave SetStringFont /str 10 string def % string to hold number /smallgap stackMargin 2 div def % Draw first tic and bar gsave ticWidth neg 0 moveto ticWidth 0 rlineto 0 yaxisHeight rlineto stroke grestore % Draw the tics % initial increment limit proc for 0 1 yaxisBits abs cvi {/loopnumber exch def % convert the number coming from the loop to a string % and find its width loopnumber 10 str cvrs /stringnumber exch def % string representing the number stringnumber stringwidth pop /numberwidth exch def % width of number to show /halfnumberheight stringnumber CharBoxHeight 2 div def numberwidth % move back width of number neg loopnumber pointsPerBit mul % shift on y axis halfnumberheight sub % down half the digit moveto % move back the width of the string ticWidth neg smallgap sub % Move back a bit more 0 rmoveto % move back the width of the tic stringnumber show smallgap 0 rmoveto % Make a small gap % now show the tic mark 0 halfnumberheight rmoveto % shift up again ticWidth 0 rlineto stroke } for grestore } bind def /ShowYaxisLabel { gsave SetStringFont ticWidth neg 2.75 mul yaxisHeight yaxisLabel stringwidth pop sub 2 div translate 90 rotate 0 0 moveto yaxisLabel show grestore } bind def /StartStack { % startstack xaxis {MakeNumber}{pop} ifelse gsave } bind def /EndStack { grestore stackWidth 0 translate } bind def % Draw a character whose height is proportional to symbol bits /MakeSymbol{ % charbits character MakeSymbol gsave /char exch def /bits exch def /bitsHeight bits pointsPerBit mul def /charHeight bitsHeight charTopMargin sub dup 0.0 gt {}{pop 0.0} ifelse % if neg replace with zero def charHeight 0.0 gt { char SetColor charWidth charHeight char ShowChar showingBox (s) eq { % Unfilled box 0 0 charWidth charHeight false ShowBox } if showingBox (f) eq { % Filled box 0 0 charWidth charHeight true ShowBox } if } if grestore 0 bitsHeight translate } bind def /ShowChar { % ShowChar gsave /tc exch def % The character /ysize exch def % the y size of the character /xsize exch def % the x size of the character /xmulfactor 1 def /ymulfactor 1 def % if ysize is negative, make everything upside down! ysize 0 lt { % put ysize normal in this orientation /ysize ysize abs def xsize ysize translate 180 rotate } if shrinking { xsize 1 shrink sub 2 div mul ysize 1 shrink sub 2 div mul translate shrink shrink scale } if % Calculate the font scaling factors % Loop twice to catch small correction due to first scaling 2 { gsave xmulfactor ymulfactor scale ysize % desired size of character in points tc CharBoxHeight dup 0.0 ne { div % factor by which to scale up the character /ymulfactor exch def } % end if {pop pop} ifelse xsize % desired size of character in points tc CharBoxWidth dup 0.0 ne { div % factor by which to scale up the character /xmulfactor exch def } % end if {pop pop} ifelse grestore } repeat % Adjust horizontal position if the symbol is an I tc (I) eq { charWidth 2 div % half of requested character width tc CharBoxWidth 2 div % half of the actual character sub 0 translate % Avoid x scaling for I /xmulfactor 1 def } if % ---- Finally, draw the character newpath xmulfactor ymulfactor scale % Move lower left corner of character to start point tc CharBox pop pop % llx lly : Lower left corner exch neg exch neg moveto outline { % outline characters: outlinewidth setlinewidth tc true charpath gsave 1 setgray fill grestore clip stroke } { % regular characters tc show } ifelse grestore } bind def /ShowBox { % x1 y1 x2 y2 filled ShowBox gsave /filled exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath clip filled { fill }{ 0 setgray stroke } ifelse grestore } bind def /MakeNumber { % number MakeNumber gsave SetNumberFont stackWidth 0 translate 90 rotate % rotate so the number fits dup stringwidth pop % find the length of the number neg % prepare for move stackMargin sub % Move back a bit charWidth (0) CharBoxHeight % height of numbers sub 2 div % moveto % move back to provide space show grestore } bind def /Ibeam{ % heightInBits Ibeam gsave % Make an Ibeam of twice the given height in bits /height exch pointsPerBit mul def /heightDRAW height IbeamFraction mul def IbeamLineWidth setlinewidth IbeamGray setgray charWidth2 height neg translate ShowIbar newpath 0 0 moveto 0 heightDRAW rlineto stroke newpath 0 height moveto 0 height rmoveto currentpoint translate ShowIbar newpath 0 0 moveto 0 heightDRAW neg rlineto currentpoint translate stroke grestore } bind def /ShowIbar { % make a horizontal bar gsave newpath charWidth4 neg 0 moveto charWidth4 0 lineto stroke grestore } bind def /ShowLeftEnd { gsave SetStringFont leftEndDeltaX leftEndDeltaY moveto showEnds (d) eq {(5) show ShowPrime} if showEnds (p) eq {(N) show} if grestore } bind def /ShowRightEnd { gsave SetStringFont rightEndDeltaX rightEndDeltaY moveto showEnds (d) eq {(3) show ShowPrime} if showEnds (p) eq {(C) show} if grestore } bind def /ShowPrime { gsave SetPrimeFont (\242) show grestore } bind def /SetColor{ % SetColor dup colorDict exch known { colorDict exch get aload pop setrgbcolor } { pop defaultColor aload pop setrgbcolor } ifelse } bind def % define fonts /SetTitleFont {/Times-Bold findfont titleFontsize scalefont setfont} bind def /SetLogoFont {/Helvetica-Narrow-Bold findfont charWidth scalefont setfont} bind def /SetStringFont{/Helvetica-Bold findfont fontsize scalefont setfont} bind def /SetPrimeFont {/Symbol findfont fontsize scalefont setfont} bind def /SetSmallFont {/Helvetica findfont smallFontsize scalefont setfont} bind def /SetNumberFont { /Helvetica-Bold findfont numberFontsize scalefont setfont } bind def %Take a single character and return the bounding box /CharBox { % CharBox gsave newpath 0 0 moveto % take the character off the stack and use it here: true charpath flattenpath pathbbox % compute bounding box of 1 pt. char => lx ly ux uy % the path is here, but toss it away ... grestore } bind def % The height of a characters bounding box /CharBoxHeight { % CharBoxHeight CharBox exch pop sub neg exch pop } bind def % The width of a characters bounding box /CharBoxWidth { % CharBoxHeight CharBox pop exch pop sub neg } bind def % Deprecated names /startstack {StartStack} bind def /endstack {EndStack} bind def /makenumber {MakeNumber} bind def /numchar { MakeSymbol } bind def %%EndProlog %%Page: 1 1 StartLogo StartLine % line number 1 (1) startstack 0.0256124508815782 (T) numchar 0.0512249017631564 (C) numchar 0.0896435780855237 (G) numchar 0.204899607052626 (A) numchar endstack (2) startstack 0.0541028700353318 (G) numchar 0.0541028700353318 (C) numchar 1.46077749095396 (A) numchar endstack (3) startstack 0.0451484463588965 (T) numchar 0.13544533907669 (C) numchar 1.12871115897241 (A) numchar endstack (4) startstack 0.0289950607562243 (G) numchar 0.0386600810082991 (T) numchar 0.0676551417645234 (C) numchar 0.144975303781122 (A) numchar endstack (5) startstack 0.0615035540534047 (T) numchar 1.72209951349533 (G) numchar endstack (6) startstack 0.157258756177642 (A) numchar 1.36290922020623 (G) numchar endstack (7) startstack 0.0685747615356903 (C) numchar 0.171436903839226 (A) numchar 0.754322376892593 (G) numchar endstack (8) startstack 0.0615035540534047 (G) numchar 1.72209951349533 (T) numchar endstack (9) startstack 0.0262926332007347 (A) numchar 0.078877899602204 (C) numchar 0.105170532802939 (G) numchar 0.552145297215428 (T) numchar endstack (10) startstack 0.0294123920994624 (C) numchar 0.0882371762983872 (T) numchar 0.0882371762983872 (G) numchar 0.647072626188173 (A) numchar endstack EndLine EndLogo %%EOF %%EndDocument @endspecial 2246 1558 a(hb)585 b(kni)628 b(kr)2073 1677 y Fw(Figure)22 b(5.)g FH(Berman)c(et)f(al.)f([2]')l(s)h(Drosophila)h (motif)f(patterns)h(deri)n(v)o(ed)2073 1752 y(from)f(multi-alignments)k (of)c(biologically)k(identi\002ed)e(motif)f(instances.)2024 2152 y @beginspecial 0 @llx 0 @lly 510 @urx 141 @ury 1008 @rwi @setspecial %%BeginDocument: figure/theta_motifdataII_m2_theta3_sepall.eps %!PS-Adobe-3.0 EPSF-3.0 %%Title: Sequence Logo: %%Creator: seqlogo (1.0) %%CreationDate: %%BoundingBox: 0 0 510 141 %%Pages: 0 %%DocumentFonts: %%EndComments % * seq_1 % * seq_2 % * seq_3 % * seq_4 % * seq_5 % * seq_6 % * seq_7 % * seq_8 % * seq_9 % * seq_10 % * seq_11 % * seq_12 % * seq_13 % * seq_14 % * seq_15 % * seq_16 % * seq_17 % * seq_18 % * seq_19 % * seq_20 % * seq_21 % * seq_22 % * seq_23 % * seq_24 % * seq_25 % * seq_26 % * seq_27 % * seq_28 % * seq_29 % * seq_30 % * seq_31 % * seq_32 % * seq_33 % * seq_34 % * seq_35 % * seq_36 % * seq_37 % * seq_38 % * seq_39 % * seq_40 % * seq_41 % * seq_42 % * seq_43 % * seq_44 % * seq_45 % * seq_46 % * seq_47 % * seq_48 % * seq_49 % * seq_50 % * seq_51 % * seq_52 % * seq_53 % * seq_54 % * seq_55 % * seq_56 % * seq_57 % * seq_58 % * seq_59 % * seq_60 % * seq_61 % * seq_62 % * seq_63 % * seq_64 % * seq_65 % * seq_66 % * seq_67 % * seq_68 % * seq_69 % * seq_70 % * seq_71 % * seq_72 % * seq_73 % * seq_74 % * seq_75 % * seq_76 % * seq_77 % * seq_78 % * seq_79 % * seq_80 % * seq_81 % * seq_82 % * seq_83 % * seq_84 % * seq_85 % * seq_86 % * seq_87 % * seq_88 % * seq_89 % * seq_90 % * seq_91 % * seq_92 % * seq_93 % * seq_94 % * seq_95 % * seq_96 % * seq_97 % * seq_98 % * seq_99 % * seq_100 % * seq_101 % * seq_102 % * seq_103 % * seq_104 % * seq_105 % * seq_106 % * seq_107 % * seq_108 % * seq_109 % * seq_110 % * seq_111 % * seq_112 % * seq_113 % * seq_114 % * seq_115 % * seq_116 % * seq_117 % * seq_118 % * seq_119 % * seq_120 % * seq_121 % * seq_122 % * seq_123 % * seq_124 % * seq_125 % * seq_126 % * seq_127 % * seq_128 % * seq_129 % * seq_130 % * seq_131 % * seq_132 % * seq_133 % * seq_134 % * seq_135 % * seq_136 % * seq_137 % * seq_138 % * seq_139 % * seq_140 % * seq_141 % * seq_142 % * seq_143 % * seq_144 % * seq_145 % * seq_146 % * seq_147 % * seq_148 % * seq_149 % * seq_150 % * seq_151 % * seq_152 % * seq_153 % * seq_154 % * seq_155 % * seq_156 % * seq_157 % * seq_158 % * seq_159 % * seq_160 % * seq_161 % * seq_162 % * seq_163 % * seq_164 % * seq_165 % * seq_166 % * seq_167 % * seq_168 % * seq_169 % * seq_170 % * seq_171 % * seq_172 % * seq_173 % * seq_174 % * seq_175 % * seq_176 % * seq_177 % * seq_178 % * seq_179 % * seq_180 % * seq_181 % * seq_182 % * seq_183 % * seq_184 % * seq_185 % * seq_186 % * seq_187 % * seq_188 % * seq_189 % * seq_190 % * seq_191 % * seq_192 % * seq_193 % * seq_194 % * seq_195 % * seq_196 % * seq_197 % * seq_198 % * seq_199 % * seq_200 % * seq_201 % * seq_202 % * seq_203 % * seq_204 % * seq_205 % * seq_206 % * seq_207 % * seq_208 % * seq_209 % * seq_210 % * seq_211 % * seq_212 % * seq_213 % * seq_214 % * seq_215 % * seq_216 % * seq_217 % * seq_218 % * seq_219 % * seq_220 % * seq_221 % * seq_222 % * seq_223 % * seq_224 % * seq_225 % * seq_226 % * seq_227 % * seq_228 % * seq_229 % * seq_230 % * seq_231 % * seq_232 % * seq_233 % * seq_234 % * seq_235 % * seq_236 % * seq_237 % * seq_238 % * seq_239 % * seq_240 % * seq_241 % * seq_242 % * seq_243 % * seq_244 % * seq_245 % * seq_246 % * seq_247 % * seq_248 % * seq_249 % * seq_250 % * seq_251 % * seq_252 % * seq_253 % * seq_254 % * seq_255 % * seq_256 % * seq_257 % * seq_258 % * seq_259 % * seq_260 % * seq_261 % * seq_262 % * seq_263 % * seq_264 % * seq_265 % * seq_266 % * seq_267 % * seq_268 % * seq_269 % * seq_270 % * seq_271 % * seq_272 % * seq_273 % * seq_274 % * seq_275 % * seq_276 % * seq_277 % * seq_278 % * seq_279 % * seq_280 % * seq_281 % * seq_282 % * seq_283 % * seq_284 % * seq_285 % * seq_286 % * seq_287 % * seq_288 % * seq_289 % * seq_290 % * seq_291 % * seq_292 % * seq_293 % * seq_294 % * seq_295 % * seq_296 % * seq_297 % * seq_298 % * seq_299 % * seq_300 % * NUCLEOTIDE ALIGNMENT % ---- CONSTANTS ---- /cmfactor 72 2.54 div def % defines points -> cm conversion /cm {cmfactor mul} bind def % defines centimeters % ---- VARIABLES ---- /black [0 0 0] def /red [0.8 0 0] def /green [0 0.8 0] def /blue [0 0 0.8] def /yellow [1 0.71 .0] def /purple [0.8 0 0.8] def /orange [1 0.7 0] def /logoWidth 18 cm def /logoHeight 5 cm def /logoTitle () def /yaxis true def /yaxisLabel (bits) def /yaxisBits 2 def % bits /xaxis true def /xaxisLabel ( ) def /showEnds (d) def % d: DNA, p: PROTEIN, -: none /showFineprint true def /fineprint () def /charsPerLine 15 def /logoLines 1 def /showingBox (n) def %n s f /shrinking false def /shrink 1 def /outline false def /IbeamFraction 1 def /IbeamGray 0.75 def /IbeamLineWidth 0.5 def /fontsize 12 def /titleFontsize 14 def /smallFontsize 6 def /defaultColor black def % Standard DNA/RNA color scheme /colorDict << (G) orange (T) red (C) blue (A) green (U) red >> def % Standard DNA/RNA color scheme % /colorDict << % (G) orange % (T) red % (C) blue % (A) green % (U) red % >> def % Standard Amino Acid colors %/colorDict << % (G) green % (S) green % (T) green % (Y) green % (C) green % (N) purple % (Q) purple % (K) blue % (R) blue % (H) blue % (D) red % (E) red % (P) black % (A) black % (W) black % (F) black % (L) black % (I) black % (M) black % (V) black %>> def % ---- DERIVED PARAMETERS ---- /leftMargin fontsize 2.5 mul def /bottomMargin fontsize 0.75 mul % Add extra room for axis xaxis {fontsize 1.75 mul add } if xaxisLabel () eq {} {fontsize 0.75 mul add} ifelse def /topMargin logoTitle () eq { 10 }{titleFontsize 4 add} ifelse def /rightMargin %Add extra room if showing ends showEnds (-) eq { fontsize}{fontsize 1.5 mul} ifelse def /yaxisHeight logoHeight bottomMargin sub topMargin sub def /ticWidth fontsize 2 div def /pointsPerBit yaxisHeight yaxisBits div def /isBoxed showingBox (s) eq showingBox (f) eq or { true } { false } ifelse def /stackMargin 1 def % Do not add space aroung characters if characters are boxed /charRightMargin isBoxed { 0.0 } {stackMargin} ifelse def /charTopMargin isBoxed { 0.0 } {stackMargin} ifelse def /charWidth logoWidth leftMargin sub rightMargin sub charsPerLine div charRightMargin sub def /charWidth4 charWidth 4 div def /charWidth2 charWidth 2 div def /stackWidth charWidth charRightMargin add def /numberFontsize fontsize charWidth lt {fontsize}{charWidth} ifelse def % movements to place 5'/N and 3'/C symbols /leftEndDeltaX fontsize neg def /leftEndDeltaY fontsize 1.5 mul neg def /rightEndDeltaX fontsize 0.25 mul def /rightEndDeltaY leftEndDeltaY def % Outline width is proporional to charWidth, % but no less that 1 point /outlinewidth charWidth 32 div dup 1 gt {}{pop 1} ifelse def % ---- PROCEDURES ---- /StartLogo { % Save state save gsave % Print Logo Title, top center gsave SetTitleFont logoWidth 2 div logoTitle stringwidth pop 2 div sub logoHeight logoLines mul titleFontsize sub moveto logoTitle show grestore % Print X-axis label, bottom center gsave SetStringFont logoWidth 2 div xaxisLabel stringwidth pop 2 div sub fontsize 3 div moveto xaxisLabel show grestore % Show Fine Print showFineprint { gsave SetSmallFont logoWidth fineprint stringwidth pop sub smallFontsize sub smallFontsize 3 div moveto fineprint show grestore } if % Move to lower left corner of last line, first stack leftMargin bottomMargin translate % Move above first line ready for StartLine 0 logoLines logoHeight mul translate SetLogoFont } bind def /EndLogo { grestore showpage restore } bind def /StartLine{ % move down to the bottom of the line: 0 logoHeight neg translate gsave yaxis { MakeYaxis } if xaxis { ShowLeftEnd } if } bind def /EndLine{ xaxis { ShowRightEnd } if grestore } bind def /MakeYaxis { gsave stackMargin neg 0 translate ShowYaxisBar ShowYaxisLabel grestore } bind def /ShowYaxisBar { gsave SetStringFont /str 10 string def % string to hold number /smallgap stackMargin 2 div def % Draw first tic and bar gsave ticWidth neg 0 moveto ticWidth 0 rlineto 0 yaxisHeight rlineto stroke grestore % Draw the tics % initial increment limit proc for 0 1 yaxisBits abs cvi {/loopnumber exch def % convert the number coming from the loop to a string % and find its width loopnumber 10 str cvrs /stringnumber exch def % string representing the number stringnumber stringwidth pop /numberwidth exch def % width of number to show /halfnumberheight stringnumber CharBoxHeight 2 div def numberwidth % move back width of number neg loopnumber pointsPerBit mul % shift on y axis halfnumberheight sub % down half the digit moveto % move back the width of the string ticWidth neg smallgap sub % Move back a bit more 0 rmoveto % move back the width of the tic stringnumber show smallgap 0 rmoveto % Make a small gap % now show the tic mark 0 halfnumberheight rmoveto % shift up again ticWidth 0 rlineto stroke } for grestore } bind def /ShowYaxisLabel { gsave SetStringFont ticWidth neg 2.75 mul yaxisHeight yaxisLabel stringwidth pop sub 2 div translate 90 rotate 0 0 moveto yaxisLabel show grestore } bind def /StartStack { % startstack xaxis {MakeNumber}{pop} ifelse gsave } bind def /EndStack { grestore stackWidth 0 translate } bind def % Draw a character whose height is proportional to symbol bits /MakeSymbol{ % charbits character MakeSymbol gsave /char exch def /bits exch def /bitsHeight bits pointsPerBit mul def /charHeight bitsHeight charTopMargin sub dup 0.0 gt {}{pop 0.0} ifelse % if neg replace with zero def charHeight 0.0 gt { char SetColor charWidth charHeight char ShowChar showingBox (s) eq { % Unfilled box 0 0 charWidth charHeight false ShowBox } if showingBox (f) eq { % Filled box 0 0 charWidth charHeight true ShowBox } if } if grestore 0 bitsHeight translate } bind def /ShowChar { % ShowChar gsave /tc exch def % The character /ysize exch def % the y size of the character /xsize exch def % the x size of the character /xmulfactor 1 def /ymulfactor 1 def % if ysize is negative, make everything upside down! ysize 0 lt { % put ysize normal in this orientation /ysize ysize abs def xsize ysize translate 180 rotate } if shrinking { xsize 1 shrink sub 2 div mul ysize 1 shrink sub 2 div mul translate shrink shrink scale } if % Calculate the font scaling factors % Loop twice to catch small correction due to first scaling 2 { gsave xmulfactor ymulfactor scale ysize % desired size of character in points tc CharBoxHeight dup 0.0 ne { div % factor by which to scale up the character /ymulfactor exch def } % end if {pop pop} ifelse xsize % desired size of character in points tc CharBoxWidth dup 0.0 ne { div % factor by which to scale up the character /xmulfactor exch def } % end if {pop pop} ifelse grestore } repeat % Adjust horizontal position if the symbol is an I tc (I) eq { charWidth 2 div % half of requested character width tc CharBoxWidth 2 div % half of the actual character sub 0 translate % Avoid x scaling for I /xmulfactor 1 def } if % ---- Finally, draw the character newpath xmulfactor ymulfactor scale % Move lower left corner of character to start point tc CharBox pop pop % llx lly : Lower left corner exch neg exch neg moveto outline { % outline characters: outlinewidth setlinewidth tc true charpath gsave 1 setgray fill grestore clip stroke } { % regular characters tc show } ifelse grestore } bind def /ShowBox { % x1 y1 x2 y2 filled ShowBox gsave /filled exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath clip filled { fill }{ 0 setgray stroke } ifelse grestore } bind def /MakeNumber { % number MakeNumber gsave SetNumberFont stackWidth 0 translate 90 rotate % rotate so the number fits dup stringwidth pop % find the length of the number neg % prepare for move stackMargin sub % Move back a bit charWidth (0) CharBoxHeight % height of numbers sub 2 div % moveto % move back to provide space show grestore } bind def /Ibeam{ % heightInBits Ibeam gsave % Make an Ibeam of twice the given height in bits /height exch pointsPerBit mul def /heightDRAW height IbeamFraction mul def IbeamLineWidth setlinewidth IbeamGray setgray charWidth2 height neg translate ShowIbar newpath 0 0 moveto 0 heightDRAW rlineto stroke newpath 0 height moveto 0 height rmoveto currentpoint translate ShowIbar newpath 0 0 moveto 0 heightDRAW neg rlineto currentpoint translate stroke grestore } bind def /ShowIbar { % make a horizontal bar gsave newpath charWidth4 neg 0 moveto charWidth4 0 lineto stroke grestore } bind def /ShowLeftEnd { gsave SetStringFont leftEndDeltaX leftEndDeltaY moveto showEnds (d) eq {(5) show ShowPrime} if showEnds (p) eq {(N) show} if grestore } bind def /ShowRightEnd { gsave SetStringFont rightEndDeltaX rightEndDeltaY moveto showEnds (d) eq {(3) show ShowPrime} if showEnds (p) eq {(C) show} if grestore } bind def /ShowPrime { gsave SetPrimeFont (\242) show grestore } bind def /SetColor{ % SetColor dup colorDict exch known { colorDict exch get aload pop setrgbcolor } { pop defaultColor aload pop setrgbcolor } ifelse } bind def % define fonts /SetTitleFont {/Times-Bold findfont titleFontsize scalefont setfont} bind def /SetLogoFont {/Helvetica-Narrow-Bold findfont charWidth scalefont setfont} bind def /SetStringFont{/Helvetica-Bold findfont fontsize scalefont setfont} bind def /SetPrimeFont {/Symbol findfont fontsize scalefont setfont} bind def /SetSmallFont {/Helvetica findfont smallFontsize scalefont setfont} bind def /SetNumberFont { /Helvetica-Bold findfont numberFontsize scalefont setfont } bind def %Take a single character and return the bounding box /CharBox { % CharBox gsave newpath 0 0 moveto % take the character off the stack and use it here: true charpath flattenpath pathbbox % compute bounding box of 1 pt. char => lx ly ux uy % the path is here, but toss it away ... grestore } bind def % The height of a characters bounding box /CharBoxHeight { % CharBoxHeight CharBox exch pop sub neg exch pop } bind def % The width of a characters bounding box /CharBoxWidth { % CharBoxHeight CharBox pop exch pop sub neg } bind def % Deprecated names /startstack {StartStack} bind def /endstack {EndStack} bind def /makenumber {MakeNumber} bind def /numchar { MakeSymbol } bind def %%EndProlog %%Page: 1 1 StartLogo StartLine % line number 1 (1) startstack 0.00865708208196707 (C) numchar 0.0107805173096194 (G) numchar 0.0120872466804823 (A) numchar 0.017477505335292 (T) numchar endstack (2) startstack 0.020938389341083 (C) numchar 0.0608210357050507 (A) numchar 0.0628151680232491 (G) numchar 0.154545254660375 (T) numchar endstack (3) startstack 0.0506477103088545 (C) numchar 0.0709067944323963 (A) numchar 1.39787680452438 (T) numchar endstack (4) startstack 0.0327490922247079 (A) numchar 0.0833613256628927 (G) numchar 0.0863385158651389 (C) numchar 0.690708126921111 (T) numchar endstack (5) startstack 0.0231603924523273 (A) numchar 0.0386006540872121 (C) numchar 0.1273821584878 (G) numchar 0.968876417589024 (T) numchar endstack (6) startstack 0.0297556108330001 (A) numchar 0.0661235796288892 (C) numchar 0.102491548424778 (G) numchar 0.79348295554667 (T) numchar endstack (7) startstack 0.0512052959841203 (G) numchar 0.0512052959841203 (C) numchar 0.0669607716715419 (A) numchar 1.01228931291684 (T) numchar endstack (8) startstack 0.0113579485805784 (C) numchar 0.0552753497588148 (G) numchar 0.0795056400640487 (T) numchar 0.0810200332081259 (A) numchar endstack (9) startstack 0.0439908653680271 (C) numchar 0.0707679138529132 (G) numchar 0.0745932064936112 (A) numchar 0.38444191039015 (T) numchar endstack (10) startstack 0.00324476101946053 (A) numchar 0.457511303743935 (T) numchar 0.512672241074764 (G) numchar endstack (11) startstack 0.0139984985614882 (C) numchar 0.0179980695790563 (A) numchar 0.0326631633101392 (T) numchar 0.035329543988518 (G) numchar endstack (12) startstack 0.0141492005127018 (A) numchar 0.0400894014526552 (G) numchar 0.0512908518585441 (C) numchar 0.0713355525848717 (T) numchar endstack (13) startstack 0.0348231150760989 (G) numchar 0.0370697676616537 (A) numchar 0.0820028193727491 (C) numchar 0.183102185722714 (T) numchar endstack (14) startstack 0.0213934432219025 (A) numchar 0.0228196727700294 (G) numchar 0.0361311485525465 (C) numchar 0.0622786902682052 (T) numchar endstack (15) startstack 0.0292942475305566 (A) numchar 0.0335812105838088 (G) numchar 0.045013112059148 (C) numchar 0.106459582489096 (T) numchar endstack EndLine EndLogo %%EOF %%EndDocument @endspecial 939 w @beginspecial 0 @llx 0 @lly 510 @urx 141 @ury 1008 @rwi @setspecial %%BeginDocument: figure/theta_motifdataI_m3_theta4_sepall.eps %!PS-Adobe-3.0 EPSF-3.0 %%Title: Sequence Logo: %%Creator: seqlogo (1.0) %%CreationDate: %%BoundingBox: 0 0 510 141 %%Pages: 0 %%DocumentFonts: %%EndComments % * seq_1 % * seq_2 % * seq_3 % * seq_4 % * seq_5 % * seq_6 % * seq_7 % * seq_8 % * seq_9 % * seq_10 % * seq_11 % * seq_12 % * seq_13 % * seq_14 % * seq_15 % * seq_16 % * seq_17 % * seq_18 % * seq_19 % * seq_20 % * seq_21 % * seq_22 % * seq_23 % * seq_24 % * seq_25 % * seq_26 % * seq_27 % * seq_28 % * seq_29 % * seq_30 % * seq_31 % * seq_32 % * seq_33 % * seq_34 % * seq_35 % * seq_36 % * seq_37 % * seq_38 % * seq_39 % * seq_40 % * seq_41 % * seq_42 % * seq_43 % * seq_44 % * seq_45 % * seq_46 % * seq_47 % * seq_48 % * seq_49 % * seq_50 % * seq_51 % * seq_52 % * seq_53 % * seq_54 % * seq_55 % * seq_56 % * seq_57 % * seq_58 % * seq_59 % * seq_60 % * seq_61 % * seq_62 % * seq_63 % * seq_64 % * seq_65 % * seq_66 % * seq_67 % * seq_68 % * seq_69 % * seq_70 % * seq_71 % * seq_72 % * seq_73 % * seq_74 % * seq_75 % * seq_76 % * seq_77 % * seq_78 % * seq_79 % * seq_80 % * seq_81 % * seq_82 % * seq_83 % * seq_84 % * seq_85 % * seq_86 % * seq_87 % * seq_88 % * seq_89 % * seq_90 % * seq_91 % * seq_92 % * seq_93 % * seq_94 % * seq_95 % * seq_96 % * seq_97 % * seq_98 % * seq_99 % * seq_100 % * seq_101 % * seq_102 % * seq_103 % * seq_104 % * seq_105 % * seq_106 % * seq_107 % * seq_108 % * seq_109 % * seq_110 % * seq_111 % * seq_112 % * seq_113 % * seq_114 % * seq_115 % * seq_116 % * seq_117 % * seq_118 % * seq_119 % * seq_120 % * seq_121 % * seq_122 % * seq_123 % * seq_124 % * seq_125 % * seq_126 % * seq_127 % * seq_128 % * seq_129 % * seq_130 % * seq_131 % * seq_132 % * seq_133 % * seq_134 % * seq_135 % * seq_136 % * seq_137 % * seq_138 % * seq_139 % * seq_140 % * seq_141 % * seq_142 % * seq_143 % * seq_144 % * seq_145 % * seq_146 % * seq_147 % * seq_148 % * seq_149 % * seq_150 % * seq_151 % * seq_152 % * seq_153 % * seq_154 % * seq_155 % * seq_156 % * seq_157 % * seq_158 % * seq_159 % * seq_160 % * seq_161 % * seq_162 % * seq_163 % * seq_164 % * seq_165 % * seq_166 % * seq_167 % * seq_168 % * seq_169 % * seq_170 % * seq_171 % * seq_172 % * seq_173 % * seq_174 % * seq_175 % * seq_176 % * seq_177 % * seq_178 % * seq_179 % * seq_180 % * seq_181 % * seq_182 % * seq_183 % * seq_184 % * seq_185 % * seq_186 % * seq_187 % * seq_188 % * seq_189 % * seq_190 % * seq_191 % * seq_192 % * seq_193 % * seq_194 % * seq_195 % * seq_196 % * seq_197 % * seq_198 % * seq_199 % * seq_200 % * seq_201 % * seq_202 % * seq_203 % * seq_204 % * seq_205 % * seq_206 % * seq_207 % * seq_208 % * seq_209 % * seq_210 % * seq_211 % * seq_212 % * seq_213 % * seq_214 % * seq_215 % * seq_216 % * seq_217 % * seq_218 % * seq_219 % * seq_220 % * seq_221 % * seq_222 % * seq_223 % * seq_224 % * seq_225 % * seq_226 % * seq_227 % * seq_228 % * seq_229 % * seq_230 % * seq_231 % * seq_232 % * seq_233 % * seq_234 % * seq_235 % * seq_236 % * seq_237 % * seq_238 % * seq_239 % * seq_240 % * seq_241 % * seq_242 % * seq_243 % * seq_244 % * seq_245 % * seq_246 % * seq_247 % * seq_248 % * seq_249 % * seq_250 % * seq_251 % * seq_252 % * seq_253 % * seq_254 % * seq_255 % * seq_256 % * seq_257 % * seq_258 % * seq_259 % * seq_260 % * seq_261 % * seq_262 % * seq_263 % * seq_264 % * seq_265 % * seq_266 % * seq_267 % * seq_268 % * seq_269 % * seq_270 % * seq_271 % * seq_272 % * seq_273 % * seq_274 % * seq_275 % * seq_276 % * seq_277 % * seq_278 % * seq_279 % * seq_280 % * seq_281 % * seq_282 % * seq_283 % * seq_284 % * seq_285 % * seq_286 % * seq_287 % * seq_288 % * seq_289 % * seq_290 % * seq_291 % * seq_292 % * seq_293 % * seq_294 % * seq_295 % * seq_296 % * seq_297 % * seq_298 % * seq_299 % * seq_300 % * NUCLEOTIDE ALIGNMENT % ---- CONSTANTS ---- /cmfactor 72 2.54 div def % defines points -> cm conversion /cm {cmfactor mul} bind def % defines centimeters % ---- VARIABLES ---- /black [0 0 0] def /red [0.8 0 0] def /green [0 0.8 0] def /blue [0 0 0.8] def /yellow [1 0.71 .0] def /purple [0.8 0 0.8] def /orange [1 0.7 0] def /logoWidth 18 cm def /logoHeight 5 cm def /logoTitle () def /yaxis true def /yaxisLabel (bits) def /yaxisBits 2 def % bits /xaxis true def /xaxisLabel ( ) def /showEnds (d) def % d: DNA, p: PROTEIN, -: none /showFineprint true def /fineprint () def /charsPerLine 18 def /logoLines 1 def /showingBox (n) def %n s f /shrinking false def /shrink 1 def /outline false def /IbeamFraction 1 def /IbeamGray 0.75 def /IbeamLineWidth 0.5 def /fontsize 12 def /titleFontsize 14 def /smallFontsize 6 def /defaultColor black def % Standard DNA/RNA color scheme /colorDict << (G) orange (T) red (C) blue (A) green (U) red >> def % Standard DNA/RNA color scheme % /colorDict << % (G) orange % (T) red % (C) blue % (A) green % (U) red % >> def % Standard Amino Acid colors %/colorDict << % (G) green % (S) green % (T) green % (Y) green % (C) green % (N) purple % (Q) purple % (K) blue % (R) blue % (H) blue % (D) red % (E) red % (P) black % (A) black % (W) black % (F) black % (L) black % (I) black % (M) black % (V) black %>> def % ---- DERIVED PARAMETERS ---- /leftMargin fontsize 2.5 mul def /bottomMargin fontsize 0.75 mul % Add extra room for axis xaxis {fontsize 1.75 mul add } if xaxisLabel () eq {} {fontsize 0.75 mul add} ifelse def /topMargin logoTitle () eq { 10 }{titleFontsize 4 add} ifelse def /rightMargin %Add extra room if showing ends showEnds (-) eq { fontsize}{fontsize 1.5 mul} ifelse def /yaxisHeight logoHeight bottomMargin sub topMargin sub def /ticWidth fontsize 2 div def /pointsPerBit yaxisHeight yaxisBits div def /isBoxed showingBox (s) eq showingBox (f) eq or { true } { false } ifelse def /stackMargin 1 def % Do not add space aroung characters if characters are boxed /charRightMargin isBoxed { 0.0 } {stackMargin} ifelse def /charTopMargin isBoxed { 0.0 } {stackMargin} ifelse def /charWidth logoWidth leftMargin sub rightMargin sub charsPerLine div charRightMargin sub def /charWidth4 charWidth 4 div def /charWidth2 charWidth 2 div def /stackWidth charWidth charRightMargin add def /numberFontsize fontsize charWidth lt {fontsize}{charWidth} ifelse def % movements to place 5'/N and 3'/C symbols /leftEndDeltaX fontsize neg def /leftEndDeltaY fontsize 1.5 mul neg def /rightEndDeltaX fontsize 0.25 mul def /rightEndDeltaY leftEndDeltaY def % Outline width is proporional to charWidth, % but no less that 1 point /outlinewidth charWidth 32 div dup 1 gt {}{pop 1} ifelse def % ---- PROCEDURES ---- /StartLogo { % Save state save gsave % Print Logo Title, top center gsave SetTitleFont logoWidth 2 div logoTitle stringwidth pop 2 div sub logoHeight logoLines mul titleFontsize sub moveto logoTitle show grestore % Print X-axis label, bottom center gsave SetStringFont logoWidth 2 div xaxisLabel stringwidth pop 2 div sub fontsize 3 div moveto xaxisLabel show grestore % Show Fine Print showFineprint { gsave SetSmallFont logoWidth fineprint stringwidth pop sub smallFontsize sub smallFontsize 3 div moveto fineprint show grestore } if % Move to lower left corner of last line, first stack leftMargin bottomMargin translate % Move above first line ready for StartLine 0 logoLines logoHeight mul translate SetLogoFont } bind def /EndLogo { grestore showpage restore } bind def /StartLine{ % move down to the bottom of the line: 0 logoHeight neg translate gsave yaxis { MakeYaxis } if xaxis { ShowLeftEnd } if } bind def /EndLine{ xaxis { ShowRightEnd } if grestore } bind def /MakeYaxis { gsave stackMargin neg 0 translate ShowYaxisBar ShowYaxisLabel grestore } bind def /ShowYaxisBar { gsave SetStringFont /str 10 string def % string to hold number /smallgap stackMargin 2 div def % Draw first tic and bar gsave ticWidth neg 0 moveto ticWidth 0 rlineto 0 yaxisHeight rlineto stroke grestore % Draw the tics % initial increment limit proc for 0 1 yaxisBits abs cvi {/loopnumber exch def % convert the number coming from the loop to a string % and find its width loopnumber 10 str cvrs /stringnumber exch def % string representing the number stringnumber stringwidth pop /numberwidth exch def % width of number to show /halfnumberheight stringnumber CharBoxHeight 2 div def numberwidth % move back width of number neg loopnumber pointsPerBit mul % shift on y axis halfnumberheight sub % down half the digit moveto % move back the width of the string ticWidth neg smallgap sub % Move back a bit more 0 rmoveto % move back the width of the tic stringnumber show smallgap 0 rmoveto % Make a small gap % now show the tic mark 0 halfnumberheight rmoveto % shift up again ticWidth 0 rlineto stroke } for grestore } bind def /ShowYaxisLabel { gsave SetStringFont ticWidth neg 2.75 mul yaxisHeight yaxisLabel stringwidth pop sub 2 div translate 90 rotate 0 0 moveto yaxisLabel show grestore } bind def /StartStack { % startstack xaxis {MakeNumber}{pop} ifelse gsave } bind def /EndStack { grestore stackWidth 0 translate } bind def % Draw a character whose height is proportional to symbol bits /MakeSymbol{ % charbits character MakeSymbol gsave /char exch def /bits exch def /bitsHeight bits pointsPerBit mul def /charHeight bitsHeight charTopMargin sub dup 0.0 gt {}{pop 0.0} ifelse % if neg replace with zero def charHeight 0.0 gt { char SetColor charWidth charHeight char ShowChar showingBox (s) eq { % Unfilled box 0 0 charWidth charHeight false ShowBox } if showingBox (f) eq { % Filled box 0 0 charWidth charHeight true ShowBox } if } if grestore 0 bitsHeight translate } bind def /ShowChar { % ShowChar gsave /tc exch def % The character /ysize exch def % the y size of the character /xsize exch def % the x size of the character /xmulfactor 1 def /ymulfactor 1 def % if ysize is negative, make everything upside down! ysize 0 lt { % put ysize normal in this orientation /ysize ysize abs def xsize ysize translate 180 rotate } if shrinking { xsize 1 shrink sub 2 div mul ysize 1 shrink sub 2 div mul translate shrink shrink scale } if % Calculate the font scaling factors % Loop twice to catch small correction due to first scaling 2 { gsave xmulfactor ymulfactor scale ysize % desired size of character in points tc CharBoxHeight dup 0.0 ne { div % factor by which to scale up the character /ymulfactor exch def } % end if {pop pop} ifelse xsize % desired size of character in points tc CharBoxWidth dup 0.0 ne { div % factor by which to scale up the character /xmulfactor exch def } % end if {pop pop} ifelse grestore } repeat % Adjust horizontal position if the symbol is an I tc (I) eq { charWidth 2 div % half of requested character width tc CharBoxWidth 2 div % half of the actual character sub 0 translate % Avoid x scaling for I /xmulfactor 1 def } if % ---- Finally, draw the character newpath xmulfactor ymulfactor scale % Move lower left corner of character to start point tc CharBox pop pop % llx lly : Lower left corner exch neg exch neg moveto outline { % outline characters: outlinewidth setlinewidth tc true charpath gsave 1 setgray fill grestore clip stroke } { % regular characters tc show } ifelse grestore } bind def /ShowBox { % x1 y1 x2 y2 filled ShowBox gsave /filled exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath clip filled { fill }{ 0 setgray stroke } ifelse grestore } bind def /MakeNumber { % number MakeNumber gsave SetNumberFont stackWidth 0 translate 90 rotate % rotate so the number fits dup stringwidth pop % find the length of the number neg % prepare for move stackMargin sub % Move back a bit charWidth (0) CharBoxHeight % height of numbers sub 2 div % moveto % move back to provide space show grestore } bind def /Ibeam{ % heightInBits Ibeam gsave % Make an Ibeam of twice the given height in bits /height exch pointsPerBit mul def /heightDRAW height IbeamFraction mul def IbeamLineWidth setlinewidth IbeamGray setgray charWidth2 height neg translate ShowIbar newpath 0 0 moveto 0 heightDRAW rlineto stroke newpath 0 height moveto 0 height rmoveto currentpoint translate ShowIbar newpath 0 0 moveto 0 heightDRAW neg rlineto currentpoint translate stroke grestore } bind def /ShowIbar { % make a horizontal bar gsave newpath charWidth4 neg 0 moveto charWidth4 0 lineto stroke grestore } bind def /ShowLeftEnd { gsave SetStringFont leftEndDeltaX leftEndDeltaY moveto showEnds (d) eq {(5) show ShowPrime} if showEnds (p) eq {(N) show} if grestore } bind def /ShowRightEnd { gsave SetStringFont rightEndDeltaX rightEndDeltaY moveto showEnds (d) eq {(3) show ShowPrime} if showEnds (p) eq {(C) show} if grestore } bind def /ShowPrime { gsave SetPrimeFont (\242) show grestore } bind def /SetColor{ % SetColor dup colorDict exch known { colorDict exch get aload pop setrgbcolor } { pop defaultColor aload pop setrgbcolor } ifelse } bind def % define fonts /SetTitleFont {/Times-Bold findfont titleFontsize scalefont setfont} bind def /SetLogoFont {/Helvetica-Narrow-Bold findfont charWidth scalefont setfont} bind def /SetStringFont{/Helvetica-Bold findfont fontsize scalefont setfont} bind def /SetPrimeFont {/Symbol findfont fontsize scalefont setfont} bind def /SetSmallFont {/Helvetica findfont smallFontsize scalefont setfont} bind def /SetNumberFont { /Helvetica-Bold findfont numberFontsize scalefont setfont } bind def %Take a single character and return the bounding box /CharBox { % CharBox gsave newpath 0 0 moveto % take the character off the stack and use it here: true charpath flattenpath pathbbox % compute bounding box of 1 pt. char => lx ly ux uy % the path is here, but toss it away ... grestore } bind def % The height of a characters bounding box /CharBoxHeight { % CharBoxHeight CharBox exch pop sub neg exch pop } bind def % The width of a characters bounding box /CharBoxWidth { % CharBoxHeight CharBox pop exch pop sub neg } bind def % Deprecated names /startstack {StartStack} bind def /endstack {EndStack} bind def /makenumber {MakeNumber} bind def /numchar { MakeSymbol } bind def %%EndProlog %%Page: 1 1 StartLogo StartLine % line number 1 (1) startstack 0.0207660735176299 (C) numchar 0.0276880980235065 (A) numchar 0.0281495663238983 (G) numchar 0.0618367522524979 (T) numchar endstack (2) startstack 0.0134915268210166 (A) numchar 0.313677998588636 (G) numchar 0.684694986166592 (T) numchar endstack (3) startstack 0.00525943408790358 (A) numchar 0.120966984021782 (G) numchar 1.45160380826139 (C) numchar endstack (4) startstack 0.00352730386112768 (A) numchar 0.345675778390512 (G) numchar 0.708988076086663 (C) numchar endstack (5) startstack 0.0417531824370347 (G) numchar 0.0588340297976398 (C) numchar 0.0910978525898939 (T) numchar 0.377676513862268 (A) numchar endstack (6) startstack 0.0268141117196469 (T) numchar 0.0319215615710082 (C) numchar 0.158330945392201 (A) numchar 0.165992120169243 (G) numchar endstack (7) startstack 0.0233910230767246 (A) numchar 0.342093712497097 (C) numchar 0.51167862980335 (G) numchar endstack (8) startstack 0.0152783412606763 (G) numchar 0.0254639021011272 (C) numchar 0.0352250645732259 (A) numchar 0.0513522025706065 (T) numchar endstack (9) startstack 0.00571922728814999 (A) numchar 0.00898735716709284 (G) numchar 0.00957095178833264 (C) numchar 0.0107381410308122 (T) numchar endstack (10) startstack 0.0236348124385361 (C) numchar 0.0302000381159072 (G) numchar 0.051865282851232 (T) numchar 0.0912566369154588 (A) numchar endstack (11) startstack 0.00976232853474198 (G) numchar 0.0121052873830801 (A) numchar 0.015814972226282 (C) numchar 0.0208913830643478 (T) numchar endstack (12) startstack 0.00785636438175591 (A) numchar 0.263188206788823 (G) numchar 0.907410086092807 (C) numchar endstack (13) startstack 0.00495105198349608 (A) numchar 0.11387419562041 (G) numchar 0.116349721612158 (T) numchar 0.507482828308348 (C) numchar endstack (14) startstack 0.101365814513827 (G) numchar 0.15594740694435 (A) numchar 0.327489554583134 (C) numchar endstack (15) startstack 0.0109103429143417 (C) numchar 0.0323548100218408 (T) numchar 0.0323548100218408 (G) numchar 0.0372456533972353 (A) numchar endstack (16) startstack 0.176476696165516 (A) numchar 1.29416243854712 (T) numchar endstack (17) startstack 0.0442377834127337 (G) numchar 0.0565260565829375 (A) numchar 0.103221494629712 (C) numchar 0.533311055586845 (T) numchar endstack (18) startstack 0.0178196957054652 (T) numchar 0.0201732404212813 (G) numchar 0.0205094610949693 (A) numchar 0.0423638048846908 (C) numchar endstack EndLine EndLogo %%EOF %%EndDocument @endspecial 2429 2187 a FG(1)911 b(2)2024 2448 y @beginspecial 0 @llx 0 @lly 510 @urx 141 @ury 1008 @rwi @setspecial %%BeginDocument: figure/theta_motifdataI_m2_theta1_sepall.eps %!PS-Adobe-3.0 EPSF-3.0 %%Title: Sequence Logo: %%Creator: seqlogo (1.0) %%CreationDate: %%BoundingBox: 0 0 510 141 %%Pages: 0 %%DocumentFonts: %%EndComments % * seq_1 % * seq_2 % * seq_3 % * seq_4 % * seq_5 % * seq_6 % * seq_7 % * seq_8 % * seq_9 % * seq_10 % * seq_11 % * seq_12 % * seq_13 % * seq_14 % * seq_15 % * seq_16 % * seq_17 % * seq_18 % * seq_19 % * seq_20 % * seq_21 % * seq_22 % * seq_23 % * seq_24 % * seq_25 % * seq_26 % * seq_27 % * seq_28 % * seq_29 % * seq_30 % * seq_31 % * seq_32 % * seq_33 % * seq_34 % * seq_35 % * seq_36 % * seq_37 % * seq_38 % * seq_39 % * seq_40 % * seq_41 % * seq_42 % * seq_43 % * seq_44 % * seq_45 % * seq_46 % * seq_47 % * seq_48 % * seq_49 % * seq_50 % * seq_51 % * seq_52 % * seq_53 % * seq_54 % * seq_55 % * seq_56 % * seq_57 % * seq_58 % * seq_59 % * seq_60 % * seq_61 % * seq_62 % * seq_63 % * seq_64 % * seq_65 % * seq_66 % * seq_67 % * seq_68 % * seq_69 % * seq_70 % * seq_71 % * seq_72 % * seq_73 % * seq_74 % * seq_75 % * seq_76 % * seq_77 % * seq_78 % * seq_79 % * seq_80 % * seq_81 % * seq_82 % * seq_83 % * seq_84 % * seq_85 % * seq_86 % * seq_87 % * seq_88 % * seq_89 % * seq_90 % * seq_91 % * seq_92 % * seq_93 % * seq_94 % * seq_95 % * seq_96 % * seq_97 % * seq_98 % * seq_99 % * seq_100 % * seq_101 % * seq_102 % * seq_103 % * seq_104 % * seq_105 % * seq_106 % * seq_107 % * seq_108 % * seq_109 % * seq_110 % * seq_111 % * seq_112 % * seq_113 % * seq_114 % * seq_115 % * seq_116 % * seq_117 % * seq_118 % * seq_119 % * seq_120 % * seq_121 % * seq_122 % * seq_123 % * seq_124 % * seq_125 % * seq_126 % * seq_127 % * seq_128 % * seq_129 % * seq_130 % * seq_131 % * seq_132 % * seq_133 % * seq_134 % * seq_135 % * seq_136 % * seq_137 % * seq_138 % * seq_139 % * seq_140 % * seq_141 % * seq_142 % * seq_143 % * seq_144 % * seq_145 % * seq_146 % * seq_147 % * seq_148 % * seq_149 % * seq_150 % * seq_151 % * seq_152 % * seq_153 % * seq_154 % * seq_155 % * seq_156 % * seq_157 % * seq_158 % * seq_159 % * seq_160 % * seq_161 % * seq_162 % * seq_163 % * seq_164 % * seq_165 % * seq_166 % * seq_167 % * seq_168 % * seq_169 % * seq_170 % * seq_171 % * seq_172 % * seq_173 % * seq_174 % * seq_175 % * seq_176 % * seq_177 % * seq_178 % * seq_179 % * seq_180 % * seq_181 % * seq_182 % * seq_183 % * seq_184 % * seq_185 % * seq_186 % * seq_187 % * seq_188 % * seq_189 % * seq_190 % * seq_191 % * seq_192 % * seq_193 % * seq_194 % * seq_195 % * seq_196 % * seq_197 % * seq_198 % * seq_199 % * seq_200 % * seq_201 % * seq_202 % * seq_203 % * seq_204 % * seq_205 % * seq_206 % * seq_207 % * seq_208 % * seq_209 % * seq_210 % * seq_211 % * seq_212 % * seq_213 % * seq_214 % * seq_215 % * seq_216 % * seq_217 % * seq_218 % * seq_219 % * seq_220 % * seq_221 % * seq_222 % * seq_223 % * seq_224 % * seq_225 % * seq_226 % * seq_227 % * seq_228 % * seq_229 % * seq_230 % * seq_231 % * seq_232 % * seq_233 % * seq_234 % * seq_235 % * seq_236 % * seq_237 % * seq_238 % * seq_239 % * seq_240 % * seq_241 % * seq_242 % * seq_243 % * seq_244 % * seq_245 % * seq_246 % * seq_247 % * seq_248 % * seq_249 % * seq_250 % * seq_251 % * seq_252 % * seq_253 % * seq_254 % * seq_255 % * seq_256 % * seq_257 % * seq_258 % * seq_259 % * seq_260 % * seq_261 % * seq_262 % * seq_263 % * seq_264 % * seq_265 % * seq_266 % * seq_267 % * seq_268 % * seq_269 % * seq_270 % * seq_271 % * seq_272 % * seq_273 % * seq_274 % * seq_275 % * seq_276 % * seq_277 % * seq_278 % * seq_279 % * seq_280 % * seq_281 % * seq_282 % * seq_283 % * seq_284 % * seq_285 % * seq_286 % * seq_287 % * seq_288 % * seq_289 % * seq_290 % * seq_291 % * seq_292 % * seq_293 % * seq_294 % * seq_295 % * seq_296 % * seq_297 % * seq_298 % * seq_299 % * seq_300 % * NUCLEOTIDE ALIGNMENT % ---- CONSTANTS ---- /cmfactor 72 2.54 div def % defines points -> cm conversion /cm {cmfactor mul} bind def % defines centimeters % ---- VARIABLES ---- /black [0 0 0] def /red [0.8 0 0] def /green [0 0.8 0] def /blue [0 0 0.8] def /yellow [1 0.71 .0] def /purple [0.8 0 0.8] def /orange [1 0.7 0] def /logoWidth 18 cm def /logoHeight 5 cm def /logoTitle () def /yaxis true def /yaxisLabel (bits) def /yaxisBits 2 def % bits /xaxis true def /xaxisLabel ( ) def /showEnds (d) def % d: DNA, p: PROTEIN, -: none /showFineprint true def /fineprint () def /charsPerLine 10 def /logoLines 1 def /showingBox (n) def %n s f /shrinking false def /shrink 1 def /outline false def /IbeamFraction 1 def /IbeamGray 0.75 def /IbeamLineWidth 0.5 def /fontsize 12 def /titleFontsize 14 def /smallFontsize 6 def /defaultColor black def % Standard DNA/RNA color scheme /colorDict << (G) orange (T) red (C) blue (A) green (U) red >> def % Standard DNA/RNA color scheme % /colorDict << % (G) orange % (T) red % (C) blue % (A) green % (U) red % >> def % Standard Amino Acid colors %/colorDict << % (G) green % (S) green % (T) green % (Y) green % (C) green % (N) purple % (Q) purple % (K) blue % (R) blue % (H) blue % (D) red % (E) red % (P) black % (A) black % (W) black % (F) black % (L) black % (I) black % (M) black % (V) black %>> def % ---- DERIVED PARAMETERS ---- /leftMargin fontsize 2.5 mul def /bottomMargin fontsize 0.75 mul % Add extra room for axis xaxis {fontsize 1.75 mul add } if xaxisLabel () eq {} {fontsize 0.75 mul add} ifelse def /topMargin logoTitle () eq { 10 }{titleFontsize 4 add} ifelse def /rightMargin %Add extra room if showing ends showEnds (-) eq { fontsize}{fontsize 1.5 mul} ifelse def /yaxisHeight logoHeight bottomMargin sub topMargin sub def /ticWidth fontsize 2 div def /pointsPerBit yaxisHeight yaxisBits div def /isBoxed showingBox (s) eq showingBox (f) eq or { true } { false } ifelse def /stackMargin 1 def % Do not add space aroung characters if characters are boxed /charRightMargin isBoxed { 0.0 } {stackMargin} ifelse def /charTopMargin isBoxed { 0.0 } {stackMargin} ifelse def /charWidth logoWidth leftMargin sub rightMargin sub charsPerLine div charRightMargin sub def /charWidth4 charWidth 4 div def /charWidth2 charWidth 2 div def /stackWidth charWidth charRightMargin add def /numberFontsize fontsize charWidth lt {fontsize}{charWidth} ifelse def % movements to place 5'/N and 3'/C symbols /leftEndDeltaX fontsize neg def /leftEndDeltaY fontsize 1.5 mul neg def /rightEndDeltaX fontsize 0.25 mul def /rightEndDeltaY leftEndDeltaY def % Outline width is proporional to charWidth, % but no less that 1 point /outlinewidth charWidth 32 div dup 1 gt {}{pop 1} ifelse def % ---- PROCEDURES ---- /StartLogo { % Save state save gsave % Print Logo Title, top center gsave SetTitleFont logoWidth 2 div logoTitle stringwidth pop 2 div sub logoHeight logoLines mul titleFontsize sub moveto logoTitle show grestore % Print X-axis label, bottom center gsave SetStringFont logoWidth 2 div xaxisLabel stringwidth pop 2 div sub fontsize 3 div moveto xaxisLabel show grestore % Show Fine Print showFineprint { gsave SetSmallFont logoWidth fineprint stringwidth pop sub smallFontsize sub smallFontsize 3 div moveto fineprint show grestore } if % Move to lower left corner of last line, first stack leftMargin bottomMargin translate % Move above first line ready for StartLine 0 logoLines logoHeight mul translate SetLogoFont } bind def /EndLogo { grestore showpage restore } bind def /StartLine{ % move down to the bottom of the line: 0 logoHeight neg translate gsave yaxis { MakeYaxis } if xaxis { ShowLeftEnd } if } bind def /EndLine{ xaxis { ShowRightEnd } if grestore } bind def /MakeYaxis { gsave stackMargin neg 0 translate ShowYaxisBar ShowYaxisLabel grestore } bind def /ShowYaxisBar { gsave SetStringFont /str 10 string def % string to hold number /smallgap stackMargin 2 div def % Draw first tic and bar gsave ticWidth neg 0 moveto ticWidth 0 rlineto 0 yaxisHeight rlineto stroke grestore % Draw the tics % initial increment limit proc for 0 1 yaxisBits abs cvi {/loopnumber exch def % convert the number coming from the loop to a string % and find its width loopnumber 10 str cvrs /stringnumber exch def % string representing the number stringnumber stringwidth pop /numberwidth exch def % width of number to show /halfnumberheight stringnumber CharBoxHeight 2 div def numberwidth % move back width of number neg loopnumber pointsPerBit mul % shift on y axis halfnumberheight sub % down half the digit moveto % move back the width of the string ticWidth neg smallgap sub % Move back a bit more 0 rmoveto % move back the width of the tic stringnumber show smallgap 0 rmoveto % Make a small gap % now show the tic mark 0 halfnumberheight rmoveto % shift up again ticWidth 0 rlineto stroke } for grestore } bind def /ShowYaxisLabel { gsave SetStringFont ticWidth neg 2.75 mul yaxisHeight yaxisLabel stringwidth pop sub 2 div translate 90 rotate 0 0 moveto yaxisLabel show grestore } bind def /StartStack { % startstack xaxis {MakeNumber}{pop} ifelse gsave } bind def /EndStack { grestore stackWidth 0 translate } bind def % Draw a character whose height is proportional to symbol bits /MakeSymbol{ % charbits character MakeSymbol gsave /char exch def /bits exch def /bitsHeight bits pointsPerBit mul def /charHeight bitsHeight charTopMargin sub dup 0.0 gt {}{pop 0.0} ifelse % if neg replace with zero def charHeight 0.0 gt { char SetColor charWidth charHeight char ShowChar showingBox (s) eq { % Unfilled box 0 0 charWidth charHeight false ShowBox } if showingBox (f) eq { % Filled box 0 0 charWidth charHeight true ShowBox } if } if grestore 0 bitsHeight translate } bind def /ShowChar { % ShowChar gsave /tc exch def % The character /ysize exch def % the y size of the character /xsize exch def % the x size of the character /xmulfactor 1 def /ymulfactor 1 def % if ysize is negative, make everything upside down! ysize 0 lt { % put ysize normal in this orientation /ysize ysize abs def xsize ysize translate 180 rotate } if shrinking { xsize 1 shrink sub 2 div mul ysize 1 shrink sub 2 div mul translate shrink shrink scale } if % Calculate the font scaling factors % Loop twice to catch small correction due to first scaling 2 { gsave xmulfactor ymulfactor scale ysize % desired size of character in points tc CharBoxHeight dup 0.0 ne { div % factor by which to scale up the character /ymulfactor exch def } % end if {pop pop} ifelse xsize % desired size of character in points tc CharBoxWidth dup 0.0 ne { div % factor by which to scale up the character /xmulfactor exch def } % end if {pop pop} ifelse grestore } repeat % Adjust horizontal position if the symbol is an I tc (I) eq { charWidth 2 div % half of requested character width tc CharBoxWidth 2 div % half of the actual character sub 0 translate % Avoid x scaling for I /xmulfactor 1 def } if % ---- Finally, draw the character newpath xmulfactor ymulfactor scale % Move lower left corner of character to start point tc CharBox pop pop % llx lly : Lower left corner exch neg exch neg moveto outline { % outline characters: outlinewidth setlinewidth tc true charpath gsave 1 setgray fill grestore clip stroke } { % regular characters tc show } ifelse grestore } bind def /ShowBox { % x1 y1 x2 y2 filled ShowBox gsave /filled exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath clip filled { fill }{ 0 setgray stroke } ifelse grestore } bind def /MakeNumber { % number MakeNumber gsave SetNumberFont stackWidth 0 translate 90 rotate % rotate so the number fits dup stringwidth pop % find the length of the number neg % prepare for move stackMargin sub % Move back a bit charWidth (0) CharBoxHeight % height of numbers sub 2 div % moveto % move back to provide space show grestore } bind def /Ibeam{ % heightInBits Ibeam gsave % Make an Ibeam of twice the given height in bits /height exch pointsPerBit mul def /heightDRAW height IbeamFraction mul def IbeamLineWidth setlinewidth IbeamGray setgray charWidth2 height neg translate ShowIbar newpath 0 0 moveto 0 heightDRAW rlineto stroke newpath 0 height moveto 0 height rmoveto currentpoint translate ShowIbar newpath 0 0 moveto 0 heightDRAW neg rlineto currentpoint translate stroke grestore } bind def /ShowIbar { % make a horizontal bar gsave newpath charWidth4 neg 0 moveto charWidth4 0 lineto stroke grestore } bind def /ShowLeftEnd { gsave SetStringFont leftEndDeltaX leftEndDeltaY moveto showEnds (d) eq {(5) show ShowPrime} if showEnds (p) eq {(N) show} if grestore } bind def /ShowRightEnd { gsave SetStringFont rightEndDeltaX rightEndDeltaY moveto showEnds (d) eq {(3) show ShowPrime} if showEnds (p) eq {(C) show} if grestore } bind def /ShowPrime { gsave SetPrimeFont (\242) show grestore } bind def /SetColor{ % SetColor dup colorDict exch known { colorDict exch get aload pop setrgbcolor } { pop defaultColor aload pop setrgbcolor } ifelse } bind def % define fonts /SetTitleFont {/Times-Bold findfont titleFontsize scalefont setfont} bind def /SetLogoFont {/Helvetica-Narrow-Bold findfont charWidth scalefont setfont} bind def /SetStringFont{/Helvetica-Bold findfont fontsize scalefont setfont} bind def /SetPrimeFont {/Symbol findfont fontsize scalefont setfont} bind def /SetSmallFont {/Helvetica findfont smallFontsize scalefont setfont} bind def /SetNumberFont { /Helvetica-Bold findfont numberFontsize scalefont setfont } bind def %Take a single character and return the bounding box /CharBox { % CharBox gsave newpath 0 0 moveto % take the character off the stack and use it here: true charpath flattenpath pathbbox % compute bounding box of 1 pt. char => lx ly ux uy % the path is here, but toss it away ... grestore } bind def % The height of a characters bounding box /CharBoxHeight { % CharBoxHeight CharBox exch pop sub neg exch pop } bind def % The width of a characters bounding box /CharBoxWidth { % CharBoxHeight CharBox pop exch pop sub neg } bind def % Deprecated names /startstack {StartStack} bind def /endstack {EndStack} bind def /makenumber {MakeNumber} bind def /numchar { MakeSymbol } bind def %%EndProlog %%Page: 1 1 StartLogo StartLine % line number 1 (1) startstack 0.00295814437372306 (G) numchar 0.0118325774948923 (A) numchar 0.399349490452614 (C) numchar 0.47330309979569 (T) numchar endstack (2) startstack 0.0177942262869832 (A) numchar 0.0444855657174579 (G) numchar 0.18461509772745 (T) numchar 0.420388596029977 (C) numchar endstack (3) startstack 0.0191920686410409 (A) numchar 1.90001479546305 (T) numchar endstack (4) startstack 0.00470334123082513 (A) numchar 0.18343030800218 (T) numchar 1.22286872001453 (C) numchar endstack (5) startstack 0.04293874943955 (A) numchar 1.79729336939831 (G) numchar endstack (6) startstack 0.106049379088351 (A) numchar 0.150100659632743 (T) numchar 0.233308633994373 (C) numchar endstack (7) startstack 0.0573090787890128 (G) numchar 0.0590999875011694 (A) numchar 0.066263622349796 (C) numchar 0.354599925007017 (T) numchar endstack (8) startstack 0.0175031013241342 (A) numchar 0.0525093039724026 (C) numchar 0.154027291652381 (G) numchar 0.301053342775108 (T) numchar endstack (9) startstack 0.0211294740166442 (G) numchar 0.0456396638759514 (A) numchar 0.0625432430892668 (C) numchar 0.124241307217868 (T) numchar endstack (10) startstack 0.00547000114197467 (G) numchar 0.00772235455337601 (C) numchar 0.00943843334301512 (T) numchar 0.00954568826736757 (A) numchar endstack EndLine EndLogo %%EOF %%EndDocument @endspecial 939 w @beginspecial 0 @llx 0 @lly 510 @urx 141 @ury 1008 @rwi @setspecial %%BeginDocument: figure/thetaI1.fake.fasta.eps %!PS-Adobe-3.0 EPSF-3.0 %%Title: Sequence Logo: %%Creator: seqlogo (1.0) %%CreationDate: %%BoundingBox: 0 0 510 141 %%Pages: 0 %%DocumentFonts: %%EndComments % * seq_1 % * seq_2 % * seq_3 % * seq_4 % * seq_5 % * seq_6 % * seq_7 % * seq_8 % * seq_9 % * seq_10 % * seq_11 % * seq_12 % * seq_13 % * seq_14 % * seq_15 % * seq_16 % * seq_17 % * seq_18 % * seq_19 % * seq_20 % * seq_21 % * seq_22 % * seq_23 % * seq_24 % * seq_25 % * seq_26 % * seq_27 % * seq_28 % * seq_29 % * seq_30 % * seq_31 % * seq_32 % * seq_33 % * seq_34 % * seq_35 % * seq_36 % * seq_37 % * seq_38 % * seq_39 % * seq_40 % * seq_41 % * seq_42 % * seq_43 % * seq_44 % * seq_45 % * seq_46 % * seq_47 % * seq_48 % * seq_49 % * seq_50 % * seq_51 % * seq_52 % * seq_53 % * seq_54 % * seq_55 % * seq_56 % * seq_57 % * seq_58 % * seq_59 % * seq_60 % * seq_61 % * seq_62 % * seq_63 % * seq_64 % * seq_65 % * seq_66 % * seq_67 % * seq_68 % * seq_69 % * seq_70 % * seq_71 % * seq_72 % * seq_73 % * seq_74 % * seq_75 % * seq_76 % * seq_77 % * seq_78 % * seq_79 % * seq_80 % * seq_81 % * seq_82 % * seq_83 % * seq_84 % * seq_85 % * seq_86 % * seq_87 % * seq_88 % * seq_89 % * seq_90 % * seq_91 % * seq_92 % * seq_93 % * seq_94 % * seq_95 % * seq_96 % * seq_97 % * seq_98 % * seq_99 % * seq_100 % * seq_101 % * seq_102 % * seq_103 % * seq_104 % * seq_105 % * seq_106 % * seq_107 % * seq_108 % * seq_109 % * seq_110 % * seq_111 % * seq_112 % * seq_113 % * seq_114 % * seq_115 % * seq_116 % * seq_117 % * seq_118 % * seq_119 % * seq_120 % * seq_121 % * seq_122 % * seq_123 % * seq_124 % * seq_125 % * seq_126 % * seq_127 % * seq_128 % * seq_129 % * seq_130 % * seq_131 % * seq_132 % * seq_133 % * seq_134 % * seq_135 % * seq_136 % * seq_137 % * seq_138 % * seq_139 % * seq_140 % * seq_141 % * seq_142 % * seq_143 % * seq_144 % * seq_145 % * seq_146 % * seq_147 % * seq_148 % * seq_149 % * seq_150 % * seq_151 % * seq_152 % * seq_153 % * seq_154 % * seq_155 % * seq_156 % * seq_157 % * seq_158 % * seq_159 % * seq_160 % * seq_161 % * seq_162 % * seq_163 % * seq_164 % * seq_165 % * seq_166 % * seq_167 % * seq_168 % * seq_169 % * seq_170 % * seq_171 % * seq_172 % * seq_173 % * seq_174 % * seq_175 % * seq_176 % * seq_177 % * seq_178 % * seq_179 % * seq_180 % * seq_181 % * seq_182 % * seq_183 % * seq_184 % * seq_185 % * seq_186 % * seq_187 % * seq_188 % * seq_189 % * seq_190 % * seq_191 % * seq_192 % * seq_193 % * seq_194 % * seq_195 % * seq_196 % * seq_197 % * seq_198 % * seq_199 % * seq_200 % * seq_201 % * seq_202 % * seq_203 % * seq_204 % * seq_205 % * seq_206 % * seq_207 % * seq_208 % * seq_209 % * seq_210 % * seq_211 % * seq_212 % * seq_213 % * seq_214 % * seq_215 % * seq_216 % * seq_217 % * seq_218 % * seq_219 % * seq_220 % * seq_221 % * seq_222 % * seq_223 % * seq_224 % * seq_225 % * seq_226 % * seq_227 % * seq_228 % * seq_229 % * seq_230 % * seq_231 % * seq_232 % * seq_233 % * seq_234 % * seq_235 % * seq_236 % * seq_237 % * seq_238 % * seq_239 % * seq_240 % * seq_241 % * seq_242 % * seq_243 % * seq_244 % * seq_245 % * seq_246 % * seq_247 % * seq_248 % * seq_249 % * seq_250 % * seq_251 % * seq_252 % * seq_253 % * seq_254 % * seq_255 % * seq_256 % * seq_257 % * seq_258 % * seq_259 % * seq_260 % * seq_261 % * seq_262 % * seq_263 % * seq_264 % * seq_265 % * seq_266 % * seq_267 % * seq_268 % * seq_269 % * seq_270 % * seq_271 % * seq_272 % * seq_273 % * seq_274 % * seq_275 % * seq_276 % * seq_277 % * seq_278 % * seq_279 % * seq_280 % * seq_281 % * seq_282 % * seq_283 % * seq_284 % * seq_285 % * seq_286 % * seq_287 % * seq_288 % * seq_289 % * seq_290 % * seq_291 % * seq_292 % * seq_293 % * seq_294 % * seq_295 % * seq_296 % * seq_297 % * seq_298 % * seq_299 % * seq_300 % * NUCLEOTIDE ALIGNMENT % ---- CONSTANTS ---- /cmfactor 72 2.54 div def % defines points -> cm conversion /cm {cmfactor mul} bind def % defines centimeters % ---- VARIABLES ---- /black [0 0 0] def /red [0.8 0 0] def /green [0 0.8 0] def /blue [0 0 0.8] def /yellow [1 0.71 .0] def /purple [0.8 0 0.8] def /orange [1 0.7 0] def /logoWidth 18 cm def /logoHeight 5 cm def /logoTitle () def /yaxis true def /yaxisLabel (bits) def /yaxisBits 2 def % bits /xaxis true def /xaxisLabel ( ) def /showEnds (d) def % d: DNA, p: PROTEIN, -: none /showFineprint true def /fineprint () def /charsPerLine 15 def /logoLines 1 def /showingBox (n) def %n s f /shrinking false def /shrink 1 def /outline false def /IbeamFraction 1 def /IbeamGray 0.75 def /IbeamLineWidth 0.5 def /fontsize 12 def /titleFontsize 14 def /smallFontsize 6 def /defaultColor black def % Standard DNA/RNA color scheme /colorDict << (G) orange (T) red (C) blue (A) green (U) red >> def % Standard DNA/RNA color scheme % /colorDict << % (G) orange % (T) red % (C) blue % (A) green % (U) red % >> def % Standard Amino Acid colors %/colorDict << % (G) green % (S) green % (T) green % (Y) green % (C) green % (N) purple % (Q) purple % (K) blue % (R) blue % (H) blue % (D) red % (E) red % (P) black % (A) black % (W) black % (F) black % (L) black % (I) black % (M) black % (V) black %>> def % ---- DERIVED PARAMETERS ---- /leftMargin fontsize 2.5 mul def /bottomMargin fontsize 0.75 mul % Add extra room for axis xaxis {fontsize 1.75 mul add } if xaxisLabel () eq {} {fontsize 0.75 mul add} ifelse def /topMargin logoTitle () eq { 10 }{titleFontsize 4 add} ifelse def /rightMargin %Add extra room if showing ends showEnds (-) eq { fontsize}{fontsize 1.5 mul} ifelse def /yaxisHeight logoHeight bottomMargin sub topMargin sub def /ticWidth fontsize 2 div def /pointsPerBit yaxisHeight yaxisBits div def /isBoxed showingBox (s) eq showingBox (f) eq or { true } { false } ifelse def /stackMargin 1 def % Do not add space aroung characters if characters are boxed /charRightMargin isBoxed { 0.0 } {stackMargin} ifelse def /charTopMargin isBoxed { 0.0 } {stackMargin} ifelse def /charWidth logoWidth leftMargin sub rightMargin sub charsPerLine div charRightMargin sub def /charWidth4 charWidth 4 div def /charWidth2 charWidth 2 div def /stackWidth charWidth charRightMargin add def /numberFontsize fontsize charWidth lt {fontsize}{charWidth} ifelse def % movements to place 5'/N and 3'/C symbols /leftEndDeltaX fontsize neg def /leftEndDeltaY fontsize 1.5 mul neg def /rightEndDeltaX fontsize 0.25 mul def /rightEndDeltaY leftEndDeltaY def % Outline width is proporional to charWidth, % but no less that 1 point /outlinewidth charWidth 32 div dup 1 gt {}{pop 1} ifelse def % ---- PROCEDURES ---- /StartLogo { % Save state save gsave % Print Logo Title, top center gsave SetTitleFont logoWidth 2 div logoTitle stringwidth pop 2 div sub logoHeight logoLines mul titleFontsize sub moveto logoTitle show grestore % Print X-axis label, bottom center gsave SetStringFont logoWidth 2 div xaxisLabel stringwidth pop 2 div sub fontsize 3 div moveto xaxisLabel show grestore % Show Fine Print showFineprint { gsave SetSmallFont logoWidth fineprint stringwidth pop sub smallFontsize sub smallFontsize 3 div moveto fineprint show grestore } if % Move to lower left corner of last line, first stack leftMargin bottomMargin translate % Move above first line ready for StartLine 0 logoLines logoHeight mul translate SetLogoFont } bind def /EndLogo { grestore showpage restore } bind def /StartLine{ % move down to the bottom of the line: 0 logoHeight neg translate gsave yaxis { MakeYaxis } if xaxis { ShowLeftEnd } if } bind def /EndLine{ xaxis { ShowRightEnd } if grestore } bind def /MakeYaxis { gsave stackMargin neg 0 translate ShowYaxisBar ShowYaxisLabel grestore } bind def /ShowYaxisBar { gsave SetStringFont /str 10 string def % string to hold number /smallgap stackMargin 2 div def % Draw first tic and bar gsave ticWidth neg 0 moveto ticWidth 0 rlineto 0 yaxisHeight rlineto stroke grestore % Draw the tics % initial increment limit proc for 0 1 yaxisBits abs cvi {/loopnumber exch def % convert the number coming from the loop to a string % and find its width loopnumber 10 str cvrs /stringnumber exch def % string representing the number stringnumber stringwidth pop /numberwidth exch def % width of number to show /halfnumberheight stringnumber CharBoxHeight 2 div def numberwidth % move back width of number neg loopnumber pointsPerBit mul % shift on y axis halfnumberheight sub % down half the digit moveto % move back the width of the string ticWidth neg smallgap sub % Move back a bit more 0 rmoveto % move back the width of the tic stringnumber show smallgap 0 rmoveto % Make a small gap % now show the tic mark 0 halfnumberheight rmoveto % shift up again ticWidth 0 rlineto stroke } for grestore } bind def /ShowYaxisLabel { gsave SetStringFont ticWidth neg 2.75 mul yaxisHeight yaxisLabel stringwidth pop sub 2 div translate 90 rotate 0 0 moveto yaxisLabel show grestore } bind def /StartStack { % startstack xaxis {MakeNumber}{pop} ifelse gsave } bind def /EndStack { grestore stackWidth 0 translate } bind def % Draw a character whose height is proportional to symbol bits /MakeSymbol{ % charbits character MakeSymbol gsave /char exch def /bits exch def /bitsHeight bits pointsPerBit mul def /charHeight bitsHeight charTopMargin sub dup 0.0 gt {}{pop 0.0} ifelse % if neg replace with zero def charHeight 0.0 gt { char SetColor charWidth charHeight char ShowChar showingBox (s) eq { % Unfilled box 0 0 charWidth charHeight false ShowBox } if showingBox (f) eq { % Filled box 0 0 charWidth charHeight true ShowBox } if } if grestore 0 bitsHeight translate } bind def /ShowChar { % ShowChar gsave /tc exch def % The character /ysize exch def % the y size of the character /xsize exch def % the x size of the character /xmulfactor 1 def /ymulfactor 1 def % if ysize is negative, make everything upside down! ysize 0 lt { % put ysize normal in this orientation /ysize ysize abs def xsize ysize translate 180 rotate } if shrinking { xsize 1 shrink sub 2 div mul ysize 1 shrink sub 2 div mul translate shrink shrink scale } if % Calculate the font scaling factors % Loop twice to catch small correction due to first scaling 2 { gsave xmulfactor ymulfactor scale ysize % desired size of character in points tc CharBoxHeight dup 0.0 ne { div % factor by which to scale up the character /ymulfactor exch def } % end if {pop pop} ifelse xsize % desired size of character in points tc CharBoxWidth dup 0.0 ne { div % factor by which to scale up the character /xmulfactor exch def } % end if {pop pop} ifelse grestore } repeat % Adjust horizontal position if the symbol is an I tc (I) eq { charWidth 2 div % half of requested character width tc CharBoxWidth 2 div % half of the actual character sub 0 translate % Avoid x scaling for I /xmulfactor 1 def } if % ---- Finally, draw the character newpath xmulfactor ymulfactor scale % Move lower left corner of character to start point tc CharBox pop pop % llx lly : Lower left corner exch neg exch neg moveto outline { % outline characters: outlinewidth setlinewidth tc true charpath gsave 1 setgray fill grestore clip stroke } { % regular characters tc show } ifelse grestore } bind def /ShowBox { % x1 y1 x2 y2 filled ShowBox gsave /filled exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath clip filled { fill }{ 0 setgray stroke } ifelse grestore } bind def /MakeNumber { % number MakeNumber gsave SetNumberFont stackWidth 0 translate 90 rotate % rotate so the number fits dup stringwidth pop % find the length of the number neg % prepare for move stackMargin sub % Move back a bit charWidth (0) CharBoxHeight % height of numbers sub 2 div % moveto % move back to provide space show grestore } bind def /Ibeam{ % heightInBits Ibeam gsave % Make an Ibeam of twice the given height in bits /height exch pointsPerBit mul def /heightDRAW height IbeamFraction mul def IbeamLineWidth setlinewidth IbeamGray setgray charWidth2 height neg translate ShowIbar newpath 0 0 moveto 0 heightDRAW rlineto stroke newpath 0 height moveto 0 height rmoveto currentpoint translate ShowIbar newpath 0 0 moveto 0 heightDRAW neg rlineto currentpoint translate stroke grestore } bind def /ShowIbar { % make a horizontal bar gsave newpath charWidth4 neg 0 moveto charWidth4 0 lineto stroke grestore } bind def /ShowLeftEnd { gsave SetStringFont leftEndDeltaX leftEndDeltaY moveto showEnds (d) eq {(5) show ShowPrime} if showEnds (p) eq {(N) show} if grestore } bind def /ShowRightEnd { gsave SetStringFont rightEndDeltaX rightEndDeltaY moveto showEnds (d) eq {(3) show ShowPrime} if showEnds (p) eq {(C) show} if grestore } bind def /ShowPrime { gsave SetPrimeFont (\242) show grestore } bind def /SetColor{ % SetColor dup colorDict exch known { colorDict exch get aload pop setrgbcolor } { pop defaultColor aload pop setrgbcolor } ifelse } bind def % define fonts /SetTitleFont {/Times-Bold findfont titleFontsize scalefont setfont} bind def /SetLogoFont {/Helvetica-Narrow-Bold findfont charWidth scalefont setfont} bind def /SetStringFont{/Helvetica-Bold findfont fontsize scalefont setfont} bind def /SetPrimeFont {/Symbol findfont fontsize scalefont setfont} bind def /SetSmallFont {/Helvetica findfont smallFontsize scalefont setfont} bind def /SetNumberFont { /Helvetica-Bold findfont numberFontsize scalefont setfont } bind def %Take a single character and return the bounding box /CharBox { % CharBox gsave newpath 0 0 moveto % take the character off the stack and use it here: true charpath flattenpath pathbbox % compute bounding box of 1 pt. char => lx ly ux uy % the path is here, but toss it away ... grestore } bind def % The height of a characters bounding box /CharBoxHeight { % CharBoxHeight CharBox exch pop sub neg exch pop } bind def % The width of a characters bounding box /CharBoxWidth { % CharBoxHeight CharBox pop exch pop sub neg } bind def % Deprecated names /startstack {StartStack} bind def /endstack {EndStack} bind def /makenumber {MakeNumber} bind def /numchar { MakeSymbol } bind def %%EndProlog %%Page: 1 1 StartLogo StartLine % line number 1 (1) startstack 0.0253045595145513 (A) numchar 1.8725374040768 (T) numchar endstack (2) startstack 0.0245913634857315 (T) numchar 0.0302662935209003 (A) numchar 0.206189124611133 (G) numchar 0.306446221899115 (C) numchar endstack (3) startstack 0.00873899111550603 (A) numchar 0.0129264243583527 (G) numchar 0.0136546736179782 (T) numchar 0.0192986053800758 (C) numchar endstack (4) startstack 0.0441773358950848 (A) numchar 0.132532007685254 (G) numchar 1.1486107332722 (C) numchar endstack (5) startstack 0.00514320583326693 (A) numchar 0.13372335166494 (C) numchar 1.40409519248187 (G) numchar endstack (6) startstack 0.0065592321492941 (A) numchar 1.96121041263894 (G) numchar endstack (7) startstack 0.00452904102918001 (T) numchar 0.203806846313101 (A) numchar 1.15037642141172 (C) numchar endstack (8) startstack 0.00791414026498682 (C) numchar 0.00832349234765856 (T) numchar 0.0105067034552411 (A) numchar 0.0141908721992867 (G) numchar endstack (9) startstack 0.00945376796134786 (G) numchar 0.0740545156972249 (C) numchar 0.0756301436907829 (T) numchar 0.0772057716843409 (A) numchar endstack (10) startstack 0.0333267307964339 (A) numchar 0.0343366317296592 (C) numchar 0.0767524709251205 (G) numchar 0.158554446516367 (T) numchar endstack (11) startstack 0.0157293442783987 (A) numchar 0.059968125061395 (T) numchar 0.0766805533571936 (C) numchar 0.142547182522988 (G) numchar endstack (12) startstack 0.0149211936854775 (T) numchar 0.0516502858343451 (A) numchar 0.122812901872776 (G) numchar 0.154950857503035 (C) numchar endstack (13) startstack 0.0224244316868369 (G) numchar 0.0229459300981586 (C) numchar 0.0432843681397083 (T) numchar 0.0677947934718323 (A) numchar endstack (14) startstack 0.0471935950578739 (T) numchar 0.0510201027652691 (C) numchar 0.0573976156109278 (G) numchar 0.227039457305448 (A) numchar endstack (15) startstack 0.00366049437823247 (C) numchar 0.0512469212952545 (G) numchar 0.164722247020461 (A) numchar 0.878518650775792 (T) numchar endstack EndLine EndLogo %%EOF %%EndDocument @endspecial 2429 2484 a(3)921 b(4)2024 2744 y @beginspecial 0 @llx 0 @lly 510 @urx 141 @ury 1008 @rwi @setspecial %%BeginDocument: figure/thetaII1.fake.fasta.eps %!PS-Adobe-3.0 EPSF-3.0 %%Title: Sequence Logo: %%Creator: seqlogo (1.0) %%CreationDate: %%BoundingBox: 0 0 510 141 %%Pages: 0 %%DocumentFonts: %%EndComments % * seq_1 % * seq_2 % * seq_3 % * seq_4 % * seq_5 % * seq_6 % * seq_7 % * seq_8 % * seq_9 % * seq_10 % * seq_11 % * seq_12 % * seq_13 % * seq_14 % * seq_15 % * seq_16 % * seq_17 % * seq_18 % * seq_19 % * seq_20 % * seq_21 % * seq_22 % * seq_23 % * seq_24 % * seq_25 % * seq_26 % * seq_27 % * seq_28 % * seq_29 % * seq_30 % * seq_31 % * seq_32 % * seq_33 % * seq_34 % * seq_35 % * seq_36 % * seq_37 % * seq_38 % * seq_39 % * seq_40 % * seq_41 % * seq_42 % * seq_43 % * seq_44 % * seq_45 % * seq_46 % * seq_47 % * seq_48 % * seq_49 % * seq_50 % * seq_51 % * seq_52 % * seq_53 % * seq_54 % * seq_55 % * seq_56 % * seq_57 % * seq_58 % * seq_59 % * seq_60 % * seq_61 % * seq_62 % * seq_63 % * seq_64 % * seq_65 % * seq_66 % * seq_67 % * seq_68 % * seq_69 % * seq_70 % * seq_71 % * seq_72 % * seq_73 % * seq_74 % * seq_75 % * seq_76 % * seq_77 % * seq_78 % * seq_79 % * seq_80 % * seq_81 % * seq_82 % * seq_83 % * seq_84 % * seq_85 % * seq_86 % * seq_87 % * seq_88 % * seq_89 % * seq_90 % * seq_91 % * seq_92 % * seq_93 % * seq_94 % * seq_95 % * seq_96 % * seq_97 % * seq_98 % * seq_99 % * seq_100 % * seq_101 % * seq_102 % * seq_103 % * seq_104 % * seq_105 % * seq_106 % * seq_107 % * seq_108 % * seq_109 % * seq_110 % * seq_111 % * seq_112 % * seq_113 % * seq_114 % * seq_115 % * seq_116 % * seq_117 % * seq_118 % * seq_119 % * seq_120 % * seq_121 % * seq_122 % * seq_123 % * seq_124 % * seq_125 % * seq_126 % * seq_127 % * seq_128 % * seq_129 % * seq_130 % * seq_131 % * seq_132 % * seq_133 % * seq_134 % * seq_135 % * seq_136 % * seq_137 % * seq_138 % * seq_139 % * seq_140 % * seq_141 % * seq_142 % * seq_143 % * seq_144 % * seq_145 % * seq_146 % * seq_147 % * seq_148 % * seq_149 % * seq_150 % * seq_151 % * seq_152 % * seq_153 % * seq_154 % * seq_155 % * seq_156 % * seq_157 % * seq_158 % * seq_159 % * seq_160 % * seq_161 % * seq_162 % * seq_163 % * seq_164 % * seq_165 % * seq_166 % * seq_167 % * seq_168 % * seq_169 % * seq_170 % * seq_171 % * seq_172 % * seq_173 % * seq_174 % * seq_175 % * seq_176 % * seq_177 % * seq_178 % * seq_179 % * seq_180 % * seq_181 % * seq_182 % * seq_183 % * seq_184 % * seq_185 % * seq_186 % * seq_187 % * seq_188 % * seq_189 % * seq_190 % * seq_191 % * seq_192 % * seq_193 % * seq_194 % * seq_195 % * seq_196 % * seq_197 % * seq_198 % * seq_199 % * seq_200 % * seq_201 % * seq_202 % * seq_203 % * seq_204 % * seq_205 % * seq_206 % * seq_207 % * seq_208 % * seq_209 % * seq_210 % * seq_211 % * seq_212 % * seq_213 % * seq_214 % * seq_215 % * seq_216 % * seq_217 % * seq_218 % * seq_219 % * seq_220 % * seq_221 % * seq_222 % * seq_223 % * seq_224 % * seq_225 % * seq_226 % * seq_227 % * seq_228 % * seq_229 % * seq_230 % * seq_231 % * seq_232 % * seq_233 % * seq_234 % * seq_235 % * seq_236 % * seq_237 % * seq_238 % * seq_239 % * seq_240 % * seq_241 % * seq_242 % * seq_243 % * seq_244 % * seq_245 % * seq_246 % * seq_247 % * seq_248 % * seq_249 % * seq_250 % * seq_251 % * seq_252 % * seq_253 % * seq_254 % * seq_255 % * seq_256 % * seq_257 % * seq_258 % * seq_259 % * seq_260 % * seq_261 % * seq_262 % * seq_263 % * seq_264 % * seq_265 % * seq_266 % * seq_267 % * seq_268 % * seq_269 % * seq_270 % * seq_271 % * seq_272 % * seq_273 % * seq_274 % * seq_275 % * seq_276 % * seq_277 % * seq_278 % * seq_279 % * seq_280 % * seq_281 % * seq_282 % * seq_283 % * seq_284 % * seq_285 % * seq_286 % * seq_287 % * seq_288 % * seq_289 % * seq_290 % * seq_291 % * seq_292 % * seq_293 % * seq_294 % * seq_295 % * seq_296 % * seq_297 % * seq_298 % * seq_299 % * seq_300 % * NUCLEOTIDE ALIGNMENT % ---- CONSTANTS ---- /cmfactor 72 2.54 div def % defines points -> cm conversion /cm {cmfactor mul} bind def % defines centimeters % ---- VARIABLES ---- /black [0 0 0] def /red [0.8 0 0] def /green [0 0.8 0] def /blue [0 0 0.8] def /yellow [1 0.71 .0] def /purple [0.8 0 0.8] def /orange [1 0.7 0] def /logoWidth 18 cm def /logoHeight 5 cm def /logoTitle () def /yaxis true def /yaxisLabel (bits) def /yaxisBits 2 def % bits /xaxis true def /xaxisLabel ( ) def /showEnds (d) def % d: DNA, p: PROTEIN, -: none /showFineprint true def /fineprint () def /charsPerLine 20 def /logoLines 1 def /showingBox (n) def %n s f /shrinking false def /shrink 1 def /outline false def /IbeamFraction 1 def /IbeamGray 0.75 def /IbeamLineWidth 0.5 def /fontsize 12 def /titleFontsize 14 def /smallFontsize 6 def /defaultColor black def % Standard DNA/RNA color scheme /colorDict << (G) orange (T) red (C) blue (A) green (U) red >> def % Standard DNA/RNA color scheme % /colorDict << % (G) orange % (T) red % (C) blue % (A) green % (U) red % >> def % Standard Amino Acid colors %/colorDict << % (G) green % (S) green % (T) green % (Y) green % (C) green % (N) purple % (Q) purple % (K) blue % (R) blue % (H) blue % (D) red % (E) red % (P) black % (A) black % (W) black % (F) black % (L) black % (I) black % (M) black % (V) black %>> def % ---- DERIVED PARAMETERS ---- /leftMargin fontsize 2.5 mul def /bottomMargin fontsize 0.75 mul % Add extra room for axis xaxis {fontsize 1.75 mul add } if xaxisLabel () eq {} {fontsize 0.75 mul add} ifelse def /topMargin logoTitle () eq { 10 }{titleFontsize 4 add} ifelse def /rightMargin %Add extra room if showing ends showEnds (-) eq { fontsize}{fontsize 1.5 mul} ifelse def /yaxisHeight logoHeight bottomMargin sub topMargin sub def /ticWidth fontsize 2 div def /pointsPerBit yaxisHeight yaxisBits div def /isBoxed showingBox (s) eq showingBox (f) eq or { true } { false } ifelse def /stackMargin 1 def % Do not add space aroung characters if characters are boxed /charRightMargin isBoxed { 0.0 } {stackMargin} ifelse def /charTopMargin isBoxed { 0.0 } {stackMargin} ifelse def /charWidth logoWidth leftMargin sub rightMargin sub charsPerLine div charRightMargin sub def /charWidth4 charWidth 4 div def /charWidth2 charWidth 2 div def /stackWidth charWidth charRightMargin add def /numberFontsize fontsize charWidth lt {fontsize}{charWidth} ifelse def % movements to place 5'/N and 3'/C symbols /leftEndDeltaX fontsize neg def /leftEndDeltaY fontsize 1.5 mul neg def /rightEndDeltaX fontsize 0.25 mul def /rightEndDeltaY leftEndDeltaY def % Outline width is proporional to charWidth, % but no less that 1 point /outlinewidth charWidth 32 div dup 1 gt {}{pop 1} ifelse def % ---- PROCEDURES ---- /StartLogo { % Save state save gsave % Print Logo Title, top center gsave SetTitleFont logoWidth 2 div logoTitle stringwidth pop 2 div sub logoHeight logoLines mul titleFontsize sub moveto logoTitle show grestore % Print X-axis label, bottom center gsave SetStringFont logoWidth 2 div xaxisLabel stringwidth pop 2 div sub fontsize 3 div moveto xaxisLabel show grestore % Show Fine Print showFineprint { gsave SetSmallFont logoWidth fineprint stringwidth pop sub smallFontsize sub smallFontsize 3 div moveto fineprint show grestore } if % Move to lower left corner of last line, first stack leftMargin bottomMargin translate % Move above first line ready for StartLine 0 logoLines logoHeight mul translate SetLogoFont } bind def /EndLogo { grestore showpage restore } bind def /StartLine{ % move down to the bottom of the line: 0 logoHeight neg translate gsave yaxis { MakeYaxis } if xaxis { ShowLeftEnd } if } bind def /EndLine{ xaxis { ShowRightEnd } if grestore } bind def /MakeYaxis { gsave stackMargin neg 0 translate ShowYaxisBar ShowYaxisLabel grestore } bind def /ShowYaxisBar { gsave SetStringFont /str 10 string def % string to hold number /smallgap stackMargin 2 div def % Draw first tic and bar gsave ticWidth neg 0 moveto ticWidth 0 rlineto 0 yaxisHeight rlineto stroke grestore % Draw the tics % initial increment limit proc for 0 1 yaxisBits abs cvi {/loopnumber exch def % convert the number coming from the loop to a string % and find its width loopnumber 10 str cvrs /stringnumber exch def % string representing the number stringnumber stringwidth pop /numberwidth exch def % width of number to show /halfnumberheight stringnumber CharBoxHeight 2 div def numberwidth % move back width of number neg loopnumber pointsPerBit mul % shift on y axis halfnumberheight sub % down half the digit moveto % move back the width of the string ticWidth neg smallgap sub % Move back a bit more 0 rmoveto % move back the width of the tic stringnumber show smallgap 0 rmoveto % Make a small gap % now show the tic mark 0 halfnumberheight rmoveto % shift up again ticWidth 0 rlineto stroke } for grestore } bind def /ShowYaxisLabel { gsave SetStringFont ticWidth neg 2.75 mul yaxisHeight yaxisLabel stringwidth pop sub 2 div translate 90 rotate 0 0 moveto yaxisLabel show grestore } bind def /StartStack { % startstack xaxis {MakeNumber}{pop} ifelse gsave } bind def /EndStack { grestore stackWidth 0 translate } bind def % Draw a character whose height is proportional to symbol bits /MakeSymbol{ % charbits character MakeSymbol gsave /char exch def /bits exch def /bitsHeight bits pointsPerBit mul def /charHeight bitsHeight charTopMargin sub dup 0.0 gt {}{pop 0.0} ifelse % if neg replace with zero def charHeight 0.0 gt { char SetColor charWidth charHeight char ShowChar showingBox (s) eq { % Unfilled box 0 0 charWidth charHeight false ShowBox } if showingBox (f) eq { % Filled box 0 0 charWidth charHeight true ShowBox } if } if grestore 0 bitsHeight translate } bind def /ShowChar { % ShowChar gsave /tc exch def % The character /ysize exch def % the y size of the character /xsize exch def % the x size of the character /xmulfactor 1 def /ymulfactor 1 def % if ysize is negative, make everything upside down! ysize 0 lt { % put ysize normal in this orientation /ysize ysize abs def xsize ysize translate 180 rotate } if shrinking { xsize 1 shrink sub 2 div mul ysize 1 shrink sub 2 div mul translate shrink shrink scale } if % Calculate the font scaling factors % Loop twice to catch small correction due to first scaling 2 { gsave xmulfactor ymulfactor scale ysize % desired size of character in points tc CharBoxHeight dup 0.0 ne { div % factor by which to scale up the character /ymulfactor exch def } % end if {pop pop} ifelse xsize % desired size of character in points tc CharBoxWidth dup 0.0 ne { div % factor by which to scale up the character /xmulfactor exch def } % end if {pop pop} ifelse grestore } repeat % Adjust horizontal position if the symbol is an I tc (I) eq { charWidth 2 div % half of requested character width tc CharBoxWidth 2 div % half of the actual character sub 0 translate % Avoid x scaling for I /xmulfactor 1 def } if % ---- Finally, draw the character newpath xmulfactor ymulfactor scale % Move lower left corner of character to start point tc CharBox pop pop % llx lly : Lower left corner exch neg exch neg moveto outline { % outline characters: outlinewidth setlinewidth tc true charpath gsave 1 setgray fill grestore clip stroke } { % regular characters tc show } ifelse grestore } bind def /ShowBox { % x1 y1 x2 y2 filled ShowBox gsave /filled exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath clip filled { fill }{ 0 setgray stroke } ifelse grestore } bind def /MakeNumber { % number MakeNumber gsave SetNumberFont stackWidth 0 translate 90 rotate % rotate so the number fits dup stringwidth pop % find the length of the number neg % prepare for move stackMargin sub % Move back a bit charWidth (0) CharBoxHeight % height of numbers sub 2 div % moveto % move back to provide space show grestore } bind def /Ibeam{ % heightInBits Ibeam gsave % Make an Ibeam of twice the given height in bits /height exch pointsPerBit mul def /heightDRAW height IbeamFraction mul def IbeamLineWidth setlinewidth IbeamGray setgray charWidth2 height neg translate ShowIbar newpath 0 0 moveto 0 heightDRAW rlineto stroke newpath 0 height moveto 0 height rmoveto currentpoint translate ShowIbar newpath 0 0 moveto 0 heightDRAW neg rlineto currentpoint translate stroke grestore } bind def /ShowIbar { % make a horizontal bar gsave newpath charWidth4 neg 0 moveto charWidth4 0 lineto stroke grestore } bind def /ShowLeftEnd { gsave SetStringFont leftEndDeltaX leftEndDeltaY moveto showEnds (d) eq {(5) show ShowPrime} if showEnds (p) eq {(N) show} if grestore } bind def /ShowRightEnd { gsave SetStringFont rightEndDeltaX rightEndDeltaY moveto showEnds (d) eq {(3) show ShowPrime} if showEnds (p) eq {(C) show} if grestore } bind def /ShowPrime { gsave SetPrimeFont (\242) show grestore } bind def /SetColor{ % SetColor dup colorDict exch known { colorDict exch get aload pop setrgbcolor } { pop defaultColor aload pop setrgbcolor } ifelse } bind def % define fonts /SetTitleFont {/Times-Bold findfont titleFontsize scalefont setfont} bind def /SetLogoFont {/Helvetica-Narrow-Bold findfont charWidth scalefont setfont} bind def /SetStringFont{/Helvetica-Bold findfont fontsize scalefont setfont} bind def /SetPrimeFont {/Symbol findfont fontsize scalefont setfont} bind def /SetSmallFont {/Helvetica findfont smallFontsize scalefont setfont} bind def /SetNumberFont { /Helvetica-Bold findfont numberFontsize scalefont setfont } bind def %Take a single character and return the bounding box /CharBox { % CharBox gsave newpath 0 0 moveto % take the character off the stack and use it here: true charpath flattenpath pathbbox % compute bounding box of 1 pt. char => lx ly ux uy % the path is here, but toss it away ... grestore } bind def % The height of a characters bounding box /CharBoxHeight { % CharBoxHeight CharBox exch pop sub neg exch pop } bind def % The width of a characters bounding box /CharBoxWidth { % CharBoxHeight CharBox pop exch pop sub neg } bind def % Deprecated names /startstack {StartStack} bind def /endstack {EndStack} bind def /makenumber {MakeNumber} bind def /numchar { MakeSymbol } bind def %%EndProlog %%Page: 1 1 StartLogo StartLine % line number 1 (1) startstack 0.00808263552463 (C) numchar 0.100224680505412 (T) numchar 0.10507426182019 (G) numchar 0.271576553627568 (A) numchar endstack (2) startstack 0.00131202363189303 (G) numchar 0.120706174134159 (A) numchar 0.124642245029838 (C) numchar 0.146946646772019 (T) numchar endstack (3) startstack 0.00535190785532696 (A) numchar 0.00678545460228953 (G) numchar 0.00716773373481289 (T) numchar 0.00936583874682217 (C) numchar endstack (4) startstack 0.0326273840483641 (G) numchar 0.0355935098709427 (T) numchar 0.154238542774085 (A) numchar 0.667378310080175 (C) numchar endstack (5) startstack 0.0461451988205085 (C) numchar 0.0678605865007478 (T) numchar 0.0868615507209572 (G) numchar 0.61345970196676 (A) numchar endstack (6) startstack 0.0264177031535996 (G) numchar 0.0458833791615152 (T) numchar 0.112622839760083 (C) numchar 0.232197706665849 (A) numchar endstack (7) startstack 0.0513639612035345 (G) numchar 0.0629622750236875 (C) numchar 0.0629622750236875 (A) numchar 0.31978208104136 (T) numchar endstack (8) startstack 0.0118395288048595 (G) numchar 0.0246938743644212 (A) numchar 0.0274000523769605 (C) numchar 0.0375482199239828 (T) numchar endstack (9) startstack 0.0192696896641949 (C) numchar 0.0545974540485523 (G) numchar 0.0835019885448448 (T) numchar 0.163792362145657 (A) numchar endstack (10) startstack 0.0214317733083169 (C) numchar 0.0385771919549705 (G) numchar 0.118946341861159 (A) numchar 0.142521292500308 (T) numchar endstack (11) startstack 0.0255350404819369 (A) numchar 0.0276629605220983 (C) numchar 0.0631282945247884 (G) numchar 0.0964657084873171 (T) numchar endstack (12) startstack 0.0189726309726411 (G) numchar 0.0591499671499988 (T) numchar 0.0825867465867908 (A) numchar 0.174101790101883 (C) numchar endstack (13) startstack 0.017165040814105 (C) numchar 0.0444271644600365 (T) numchar 0.114097035999639 (A) numchar 0.127223243681014 (G) numchar endstack (14) startstack 0.00681900182432641 (C) numchar 0.00960226787507188 (T) numchar 0.0122463706232801 (A) numchar 0.0130813504385037 (G) numchar endstack (15) startstack 0.0109953961840642 (G) numchar 0.0598638236687941 (T) numchar 0.13927501833148 (A) numchar 0.156378967951136 (C) numchar endstack (16) startstack 0.00395233287310926 (C) numchar 0.090903656081513 (T) numchar 0.0948559889546223 (G) numchar 0.995987884023534 (A) numchar endstack (17) startstack 0.299815259638364 (A) numchar 0.883666028407808 (T) numchar endstack (18) startstack 0.0321088676758175 (T) numchar 0.0682313438111122 (G) numchar 0.0682313438111122 (C) numchar 1.03551098254511 (A) numchar endstack (19) startstack 0.0113842842948138 (G) numchar 0.0113842842948138 (C) numchar 0.0455371371792553 (T) numchar 1.63933693845319 (A) numchar endstack (20) startstack 0.00725769822371516 (G) numchar 0.0580615857897213 (C) numchar 0.145153964474303 (T) numchar 0.878181485069534 (A) numchar endstack EndLine EndLogo %%EOF %%EndDocument @endspecial 939 w @beginspecial 0 @llx 0 @lly 510 @urx 141 @ury 1008 @rwi @setspecial %%BeginDocument: figure/thetaIII2.fake.fasta.eps %!PS-Adobe-3.0 EPSF-3.0 %%Title: Sequence Logo: %%Creator: seqlogo (1.0) %%CreationDate: %%BoundingBox: 0 0 510 141 %%Pages: 0 %%DocumentFonts: %%EndComments % * seq_1 % * seq_2 % * seq_3 % * seq_4 % * seq_5 % * seq_6 % * seq_7 % * seq_8 % * seq_9 % * seq_10 % * seq_11 % * seq_12 % * seq_13 % * seq_14 % * seq_15 % * seq_16 % * seq_17 % * seq_18 % * seq_19 % * seq_20 % * seq_21 % * seq_22 % * seq_23 % * seq_24 % * seq_25 % * seq_26 % * seq_27 % * seq_28 % * seq_29 % * seq_30 % * seq_31 % * seq_32 % * seq_33 % * seq_34 % * seq_35 % * seq_36 % * seq_37 % * seq_38 % * seq_39 % * seq_40 % * seq_41 % * seq_42 % * seq_43 % * seq_44 % * seq_45 % * seq_46 % * seq_47 % * seq_48 % * seq_49 % * seq_50 % * seq_51 % * seq_52 % * seq_53 % * seq_54 % * seq_55 % * seq_56 % * seq_57 % * seq_58 % * seq_59 % * seq_60 % * seq_61 % * seq_62 % * seq_63 % * seq_64 % * seq_65 % * seq_66 % * seq_67 % * seq_68 % * seq_69 % * seq_70 % * seq_71 % * seq_72 % * seq_73 % * seq_74 % * seq_75 % * seq_76 % * seq_77 % * seq_78 % * seq_79 % * seq_80 % * seq_81 % * seq_82 % * seq_83 % * seq_84 % * seq_85 % * seq_86 % * seq_87 % * seq_88 % * seq_89 % * seq_90 % * seq_91 % * seq_92 % * seq_93 % * seq_94 % * seq_95 % * seq_96 % * seq_97 % * seq_98 % * seq_99 % * seq_100 % * seq_101 % * seq_102 % * seq_103 % * seq_104 % * seq_105 % * seq_106 % * seq_107 % * seq_108 % * seq_109 % * seq_110 % * seq_111 % * seq_112 % * seq_113 % * seq_114 % * seq_115 % * seq_116 % * seq_117 % * seq_118 % * seq_119 % * seq_120 % * seq_121 % * seq_122 % * seq_123 % * seq_124 % * seq_125 % * seq_126 % * seq_127 % * seq_128 % * seq_129 % * seq_130 % * seq_131 % * seq_132 % * seq_133 % * seq_134 % * seq_135 % * seq_136 % * seq_137 % * seq_138 % * seq_139 % * seq_140 % * seq_141 % * seq_142 % * seq_143 % * seq_144 % * seq_145 % * seq_146 % * seq_147 % * seq_148 % * seq_149 % * seq_150 % * seq_151 % * seq_152 % * seq_153 % * seq_154 % * seq_155 % * seq_156 % * seq_157 % * seq_158 % * seq_159 % * seq_160 % * seq_161 % * seq_162 % * seq_163 % * seq_164 % * seq_165 % * seq_166 % * seq_167 % * seq_168 % * seq_169 % * seq_170 % * seq_171 % * seq_172 % * seq_173 % * seq_174 % * seq_175 % * seq_176 % * seq_177 % * seq_178 % * seq_179 % * seq_180 % * seq_181 % * seq_182 % * seq_183 % * seq_184 % * seq_185 % * seq_186 % * seq_187 % * seq_188 % * seq_189 % * seq_190 % * seq_191 % * seq_192 % * seq_193 % * seq_194 % * seq_195 % * seq_196 % * seq_197 % * seq_198 % * seq_199 % * seq_200 % * seq_201 % * seq_202 % * seq_203 % * seq_204 % * seq_205 % * seq_206 % * seq_207 % * seq_208 % * seq_209 % * seq_210 % * seq_211 % * seq_212 % * seq_213 % * seq_214 % * seq_215 % * seq_216 % * seq_217 % * seq_218 % * seq_219 % * seq_220 % * seq_221 % * seq_222 % * seq_223 % * seq_224 % * seq_225 % * seq_226 % * seq_227 % * seq_228 % * seq_229 % * seq_230 % * seq_231 % * seq_232 % * seq_233 % * seq_234 % * seq_235 % * seq_236 % * seq_237 % * seq_238 % * seq_239 % * seq_240 % * seq_241 % * seq_242 % * seq_243 % * seq_244 % * seq_245 % * seq_246 % * seq_247 % * seq_248 % * seq_249 % * seq_250 % * seq_251 % * seq_252 % * seq_253 % * seq_254 % * seq_255 % * seq_256 % * seq_257 % * seq_258 % * seq_259 % * seq_260 % * seq_261 % * seq_262 % * seq_263 % * seq_264 % * seq_265 % * seq_266 % * seq_267 % * seq_268 % * seq_269 % * seq_270 % * seq_271 % * seq_272 % * seq_273 % * seq_274 % * seq_275 % * seq_276 % * seq_277 % * seq_278 % * seq_279 % * seq_280 % * seq_281 % * seq_282 % * seq_283 % * seq_284 % * seq_285 % * seq_286 % * seq_287 % * seq_288 % * seq_289 % * seq_290 % * seq_291 % * seq_292 % * seq_293 % * seq_294 % * seq_295 % * seq_296 % * seq_297 % * seq_298 % * seq_299 % * seq_300 % * NUCLEOTIDE ALIGNMENT % ---- CONSTANTS ---- /cmfactor 72 2.54 div def % defines points -> cm conversion /cm {cmfactor mul} bind def % defines centimeters % ---- VARIABLES ---- /black [0 0 0] def /red [0.8 0 0] def /green [0 0.8 0] def /blue [0 0 0.8] def /yellow [1 0.71 .0] def /purple [0.8 0 0.8] def /orange [1 0.7 0] def /logoWidth 18 cm def /logoHeight 5 cm def /logoTitle () def /yaxis true def /yaxisLabel (bits) def /yaxisBits 2 def % bits /xaxis true def /xaxisLabel ( ) def /showEnds (d) def % d: DNA, p: PROTEIN, -: none /showFineprint true def /fineprint () def /charsPerLine 10 def /logoLines 1 def /showingBox (n) def %n s f /shrinking false def /shrink 1 def /outline false def /IbeamFraction 1 def /IbeamGray 0.75 def /IbeamLineWidth 0.5 def /fontsize 12 def /titleFontsize 14 def /smallFontsize 6 def /defaultColor black def % Standard DNA/RNA color scheme /colorDict << (G) orange (T) red (C) blue (A) green (U) red >> def % Standard DNA/RNA color scheme % /colorDict << % (G) orange % (T) red % (C) blue % (A) green % (U) red % >> def % Standard Amino Acid colors %/colorDict << % (G) green % (S) green % (T) green % (Y) green % (C) green % (N) purple % (Q) purple % (K) blue % (R) blue % (H) blue % (D) red % (E) red % (P) black % (A) black % (W) black % (F) black % (L) black % (I) black % (M) black % (V) black %>> def % ---- DERIVED PARAMETERS ---- /leftMargin fontsize 2.5 mul def /bottomMargin fontsize 0.75 mul % Add extra room for axis xaxis {fontsize 1.75 mul add } if xaxisLabel () eq {} {fontsize 0.75 mul add} ifelse def /topMargin logoTitle () eq { 10 }{titleFontsize 4 add} ifelse def /rightMargin %Add extra room if showing ends showEnds (-) eq { fontsize}{fontsize 1.5 mul} ifelse def /yaxisHeight logoHeight bottomMargin sub topMargin sub def /ticWidth fontsize 2 div def /pointsPerBit yaxisHeight yaxisBits div def /isBoxed showingBox (s) eq showingBox (f) eq or { true } { false } ifelse def /stackMargin 1 def % Do not add space aroung characters if characters are boxed /charRightMargin isBoxed { 0.0 } {stackMargin} ifelse def /charTopMargin isBoxed { 0.0 } {stackMargin} ifelse def /charWidth logoWidth leftMargin sub rightMargin sub charsPerLine div charRightMargin sub def /charWidth4 charWidth 4 div def /charWidth2 charWidth 2 div def /stackWidth charWidth charRightMargin add def /numberFontsize fontsize charWidth lt {fontsize}{charWidth} ifelse def % movements to place 5'/N and 3'/C symbols /leftEndDeltaX fontsize neg def /leftEndDeltaY fontsize 1.5 mul neg def /rightEndDeltaX fontsize 0.25 mul def /rightEndDeltaY leftEndDeltaY def % Outline width is proporional to charWidth, % but no less that 1 point /outlinewidth charWidth 32 div dup 1 gt {}{pop 1} ifelse def % ---- PROCEDURES ---- /StartLogo { % Save state save gsave % Print Logo Title, top center gsave SetTitleFont logoWidth 2 div logoTitle stringwidth pop 2 div sub logoHeight logoLines mul titleFontsize sub moveto logoTitle show grestore % Print X-axis label, bottom center gsave SetStringFont logoWidth 2 div xaxisLabel stringwidth pop 2 div sub fontsize 3 div moveto xaxisLabel show grestore % Show Fine Print showFineprint { gsave SetSmallFont logoWidth fineprint stringwidth pop sub smallFontsize sub smallFontsize 3 div moveto fineprint show grestore } if % Move to lower left corner of last line, first stack leftMargin bottomMargin translate % Move above first line ready for StartLine 0 logoLines logoHeight mul translate SetLogoFont } bind def /EndLogo { grestore showpage restore } bind def /StartLine{ % move down to the bottom of the line: 0 logoHeight neg translate gsave yaxis { MakeYaxis } if xaxis { ShowLeftEnd } if } bind def /EndLine{ xaxis { ShowRightEnd } if grestore } bind def /MakeYaxis { gsave stackMargin neg 0 translate ShowYaxisBar ShowYaxisLabel grestore } bind def /ShowYaxisBar { gsave SetStringFont /str 10 string def % string to hold number /smallgap stackMargin 2 div def % Draw first tic and bar gsave ticWidth neg 0 moveto ticWidth 0 rlineto 0 yaxisHeight rlineto stroke grestore % Draw the tics % initial increment limit proc for 0 1 yaxisBits abs cvi {/loopnumber exch def % convert the number coming from the loop to a string % and find its width loopnumber 10 str cvrs /stringnumber exch def % string representing the number stringnumber stringwidth pop /numberwidth exch def % width of number to show /halfnumberheight stringnumber CharBoxHeight 2 div def numberwidth % move back width of number neg loopnumber pointsPerBit mul % shift on y axis halfnumberheight sub % down half the digit moveto % move back the width of the string ticWidth neg smallgap sub % Move back a bit more 0 rmoveto % move back the width of the tic stringnumber show smallgap 0 rmoveto % Make a small gap % now show the tic mark 0 halfnumberheight rmoveto % shift up again ticWidth 0 rlineto stroke } for grestore } bind def /ShowYaxisLabel { gsave SetStringFont ticWidth neg 2.75 mul yaxisHeight yaxisLabel stringwidth pop sub 2 div translate 90 rotate 0 0 moveto yaxisLabel show grestore } bind def /StartStack { % startstack xaxis {MakeNumber}{pop} ifelse gsave } bind def /EndStack { grestore stackWidth 0 translate } bind def % Draw a character whose height is proportional to symbol bits /MakeSymbol{ % charbits character MakeSymbol gsave /char exch def /bits exch def /bitsHeight bits pointsPerBit mul def /charHeight bitsHeight charTopMargin sub dup 0.0 gt {}{pop 0.0} ifelse % if neg replace with zero def charHeight 0.0 gt { char SetColor charWidth charHeight char ShowChar showingBox (s) eq { % Unfilled box 0 0 charWidth charHeight false ShowBox } if showingBox (f) eq { % Filled box 0 0 charWidth charHeight true ShowBox } if } if grestore 0 bitsHeight translate } bind def /ShowChar { % ShowChar gsave /tc exch def % The character /ysize exch def % the y size of the character /xsize exch def % the x size of the character /xmulfactor 1 def /ymulfactor 1 def % if ysize is negative, make everything upside down! ysize 0 lt { % put ysize normal in this orientation /ysize ysize abs def xsize ysize translate 180 rotate } if shrinking { xsize 1 shrink sub 2 div mul ysize 1 shrink sub 2 div mul translate shrink shrink scale } if % Calculate the font scaling factors % Loop twice to catch small correction due to first scaling 2 { gsave xmulfactor ymulfactor scale ysize % desired size of character in points tc CharBoxHeight dup 0.0 ne { div % factor by which to scale up the character /ymulfactor exch def } % end if {pop pop} ifelse xsize % desired size of character in points tc CharBoxWidth dup 0.0 ne { div % factor by which to scale up the character /xmulfactor exch def } % end if {pop pop} ifelse grestore } repeat % Adjust horizontal position if the symbol is an I tc (I) eq { charWidth 2 div % half of requested character width tc CharBoxWidth 2 div % half of the actual character sub 0 translate % Avoid x scaling for I /xmulfactor 1 def } if % ---- Finally, draw the character newpath xmulfactor ymulfactor scale % Move lower left corner of character to start point tc CharBox pop pop % llx lly : Lower left corner exch neg exch neg moveto outline { % outline characters: outlinewidth setlinewidth tc true charpath gsave 1 setgray fill grestore clip stroke } { % regular characters tc show } ifelse grestore } bind def /ShowBox { % x1 y1 x2 y2 filled ShowBox gsave /filled exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath clip filled { fill }{ 0 setgray stroke } ifelse grestore } bind def /MakeNumber { % number MakeNumber gsave SetNumberFont stackWidth 0 translate 90 rotate % rotate so the number fits dup stringwidth pop % find the length of the number neg % prepare for move stackMargin sub % Move back a bit charWidth (0) CharBoxHeight % height of numbers sub 2 div % moveto % move back to provide space show grestore } bind def /Ibeam{ % heightInBits Ibeam gsave % Make an Ibeam of twice the given height in bits /height exch pointsPerBit mul def /heightDRAW height IbeamFraction mul def IbeamLineWidth setlinewidth IbeamGray setgray charWidth2 height neg translate ShowIbar newpath 0 0 moveto 0 heightDRAW rlineto stroke newpath 0 height moveto 0 height rmoveto currentpoint translate ShowIbar newpath 0 0 moveto 0 heightDRAW neg rlineto currentpoint translate stroke grestore } bind def /ShowIbar { % make a horizontal bar gsave newpath charWidth4 neg 0 moveto charWidth4 0 lineto stroke grestore } bind def /ShowLeftEnd { gsave SetStringFont leftEndDeltaX leftEndDeltaY moveto showEnds (d) eq {(5) show ShowPrime} if showEnds (p) eq {(N) show} if grestore } bind def /ShowRightEnd { gsave SetStringFont rightEndDeltaX rightEndDeltaY moveto showEnds (d) eq {(3) show ShowPrime} if showEnds (p) eq {(C) show} if grestore } bind def /ShowPrime { gsave SetPrimeFont (\242) show grestore } bind def /SetColor{ % SetColor dup colorDict exch known { colorDict exch get aload pop setrgbcolor } { pop defaultColor aload pop setrgbcolor } ifelse } bind def % define fonts /SetTitleFont {/Times-Bold findfont titleFontsize scalefont setfont} bind def /SetLogoFont {/Helvetica-Narrow-Bold findfont charWidth scalefont setfont} bind def /SetStringFont{/Helvetica-Bold findfont fontsize scalefont setfont} bind def /SetPrimeFont {/Symbol findfont fontsize scalefont setfont} bind def /SetSmallFont {/Helvetica findfont smallFontsize scalefont setfont} bind def /SetNumberFont { /Helvetica-Bold findfont numberFontsize scalefont setfont } bind def %Take a single character and return the bounding box /CharBox { % CharBox gsave newpath 0 0 moveto % take the character off the stack and use it here: true charpath flattenpath pathbbox % compute bounding box of 1 pt. char => lx ly ux uy % the path is here, but toss it away ... grestore } bind def % The height of a characters bounding box /CharBoxHeight { % CharBoxHeight CharBox exch pop sub neg exch pop } bind def % The width of a characters bounding box /CharBoxWidth { % CharBoxHeight CharBox pop exch pop sub neg } bind def % Deprecated names /startstack {StartStack} bind def /endstack {EndStack} bind def /makenumber {MakeNumber} bind def /numchar { MakeSymbol } bind def %%EndProlog %%Page: 1 1 StartLogo StartLine % line number 1 (1) startstack 0.353089839822243 (A) numchar 0.738940592617684 (T) numchar endstack (2) startstack 0.00751388344483204 (G) numchar 0.0676249510034883 (C) numchar 0.123979076839729 (T) numchar 0.927964605436757 (A) numchar endstack (3) startstack 0.00602439730206541 (C) numchar 0.051207377067556 (G) numchar 0.192780713666093 (T) numchar 0.653647107274097 (A) numchar endstack (4) startstack 0.0148536968481936 (G) numchar 0.0445610905445809 (T) numchar 0.0594147873927745 (C) numchar 1.36654011003381 (A) numchar endstack (5) startstack 0.0113842842948138 (G) numchar 0.0113842842948138 (C) numchar 0.0455371371792553 (T) numchar 1.63933693845319 (A) numchar endstack (6) startstack 0.010801491401855 (C) numchar 0.0162022371027825 (G) numchar 0.0648089484111301 (T) numchar 1.52841103336248 (A) numchar endstack (7) startstack 0.264288624614433 (A) numchar 0.994228635454294 (T) numchar endstack (8) startstack 0.0108761280235264 (A) numchar 0.0569397290643443 (C) numchar 0.0614181347210904 (G) numchar 0.0626976791944465 (T) numchar endstack (9) startstack 0.0187689034682062 (C) numchar 0.0693005666518384 (G) numchar 0.0981758027567711 (A) numchar 0.246883268697174 (T) numchar endstack (10) startstack 0.0118248719346669 (C) numchar 0.0325183978203339 (T) numchar 0.218760130791337 (G) numchar 0.623761994553677 (A) numchar endstack EndLine EndLogo %%EOF %%EndDocument @endspecial 2429 2780 a(5)911 b(6)2024 3040 y @beginspecial 0 @llx 0 @lly 510 @urx 141 @ury 1008 @rwi @setspecial %%BeginDocument: figure/thetaI3.fake.fasta.eps %!PS-Adobe-3.0 EPSF-3.0 %%Title: Sequence Logo: %%Creator: seqlogo (1.0) %%CreationDate: %%BoundingBox: 0 0 510 141 %%Pages: 0 %%DocumentFonts: %%EndComments % * seq_1 % * seq_2 % * seq_3 % * seq_4 % * seq_5 % * seq_6 % * seq_7 % * seq_8 % * seq_9 % * seq_10 % * seq_11 % * seq_12 % * seq_13 % * seq_14 % * seq_15 % * seq_16 % * seq_17 % * seq_18 % * seq_19 % * seq_20 % * seq_21 % * seq_22 % * seq_23 % * seq_24 % * seq_25 % * seq_26 % * seq_27 % * seq_28 % * seq_29 % * seq_30 % * seq_31 % * seq_32 % * seq_33 % * seq_34 % * seq_35 % * seq_36 % * seq_37 % * seq_38 % * seq_39 % * seq_40 % * seq_41 % * seq_42 % * seq_43 % * seq_44 % * seq_45 % * seq_46 % * seq_47 % * seq_48 % * seq_49 % * seq_50 % * seq_51 % * seq_52 % * seq_53 % * seq_54 % * seq_55 % * seq_56 % * seq_57 % * seq_58 % * seq_59 % * seq_60 % * seq_61 % * seq_62 % * seq_63 % * seq_64 % * seq_65 % * seq_66 % * seq_67 % * seq_68 % * seq_69 % * seq_70 % * seq_71 % * seq_72 % * seq_73 % * seq_74 % * seq_75 % * seq_76 % * seq_77 % * seq_78 % * seq_79 % * seq_80 % * seq_81 % * seq_82 % * seq_83 % * seq_84 % * seq_85 % * seq_86 % * seq_87 % * seq_88 % * seq_89 % * seq_90 % * seq_91 % * seq_92 % * seq_93 % * seq_94 % * seq_95 % * seq_96 % * seq_97 % * seq_98 % * seq_99 % * seq_100 % * seq_101 % * seq_102 % * seq_103 % * seq_104 % * seq_105 % * seq_106 % * seq_107 % * seq_108 % * seq_109 % * seq_110 % * seq_111 % * seq_112 % * seq_113 % * seq_114 % * seq_115 % * seq_116 % * seq_117 % * seq_118 % * seq_119 % * seq_120 % * seq_121 % * seq_122 % * seq_123 % * seq_124 % * seq_125 % * seq_126 % * seq_127 % * seq_128 % * seq_129 % * seq_130 % * seq_131 % * seq_132 % * seq_133 % * seq_134 % * seq_135 % * seq_136 % * seq_137 % * seq_138 % * seq_139 % * seq_140 % * seq_141 % * seq_142 % * seq_143 % * seq_144 % * seq_145 % * seq_146 % * seq_147 % * seq_148 % * seq_149 % * seq_150 % * seq_151 % * seq_152 % * seq_153 % * seq_154 % * seq_155 % * seq_156 % * seq_157 % * seq_158 % * seq_159 % * seq_160 % * seq_161 % * seq_162 % * seq_163 % * seq_164 % * seq_165 % * seq_166 % * seq_167 % * seq_168 % * seq_169 % * seq_170 % * seq_171 % * seq_172 % * seq_173 % * seq_174 % * seq_175 % * seq_176 % * seq_177 % * seq_178 % * seq_179 % * seq_180 % * seq_181 % * seq_182 % * seq_183 % * seq_184 % * seq_185 % * seq_186 % * seq_187 % * seq_188 % * seq_189 % * seq_190 % * seq_191 % * seq_192 % * seq_193 % * seq_194 % * seq_195 % * seq_196 % * seq_197 % * seq_198 % * seq_199 % * seq_200 % * seq_201 % * seq_202 % * seq_203 % * seq_204 % * seq_205 % * seq_206 % * seq_207 % * seq_208 % * seq_209 % * seq_210 % * seq_211 % * seq_212 % * seq_213 % * seq_214 % * seq_215 % * seq_216 % * seq_217 % * seq_218 % * seq_219 % * seq_220 % * seq_221 % * seq_222 % * seq_223 % * seq_224 % * seq_225 % * seq_226 % * seq_227 % * seq_228 % * seq_229 % * seq_230 % * seq_231 % * seq_232 % * seq_233 % * seq_234 % * seq_235 % * seq_236 % * seq_237 % * seq_238 % * seq_239 % * seq_240 % * seq_241 % * seq_242 % * seq_243 % * seq_244 % * seq_245 % * seq_246 % * seq_247 % * seq_248 % * seq_249 % * seq_250 % * seq_251 % * seq_252 % * seq_253 % * seq_254 % * seq_255 % * seq_256 % * seq_257 % * seq_258 % * seq_259 % * seq_260 % * seq_261 % * seq_262 % * seq_263 % * seq_264 % * seq_265 % * seq_266 % * seq_267 % * seq_268 % * seq_269 % * seq_270 % * seq_271 % * seq_272 % * seq_273 % * seq_274 % * seq_275 % * seq_276 % * seq_277 % * seq_278 % * seq_279 % * seq_280 % * seq_281 % * seq_282 % * seq_283 % * seq_284 % * seq_285 % * seq_286 % * seq_287 % * seq_288 % * seq_289 % * seq_290 % * seq_291 % * seq_292 % * seq_293 % * seq_294 % * seq_295 % * seq_296 % * seq_297 % * seq_298 % * seq_299 % * seq_300 % * NUCLEOTIDE ALIGNMENT % ---- CONSTANTS ---- /cmfactor 72 2.54 div def % defines points -> cm conversion /cm {cmfactor mul} bind def % defines centimeters % ---- VARIABLES ---- /black [0 0 0] def /red [0.8 0 0] def /green [0 0.8 0] def /blue [0 0 0.8] def /yellow [1 0.71 .0] def /purple [0.8 0 0.8] def /orange [1 0.7 0] def /logoWidth 18 cm def /logoHeight 5 cm def /logoTitle () def /yaxis true def /yaxisLabel (bits) def /yaxisBits 2 def % bits /xaxis true def /xaxisLabel ( ) def /showEnds (d) def % d: DNA, p: PROTEIN, -: none /showFineprint true def /fineprint () def /charsPerLine 15 def /logoLines 1 def /showingBox (n) def %n s f /shrinking false def /shrink 1 def /outline false def /IbeamFraction 1 def /IbeamGray 0.75 def /IbeamLineWidth 0.5 def /fontsize 12 def /titleFontsize 14 def /smallFontsize 6 def /defaultColor black def % Standard DNA/RNA color scheme /colorDict << (G) orange (T) red (C) blue (A) green (U) red >> def % Standard DNA/RNA color scheme % /colorDict << % (G) orange % (T) red % (C) blue % (A) green % (U) red % >> def % Standard Amino Acid colors %/colorDict << % (G) green % (S) green % (T) green % (Y) green % (C) green % (N) purple % (Q) purple % (K) blue % (R) blue % (H) blue % (D) red % (E) red % (P) black % (A) black % (W) black % (F) black % (L) black % (I) black % (M) black % (V) black %>> def % ---- DERIVED PARAMETERS ---- /leftMargin fontsize 2.5 mul def /bottomMargin fontsize 0.75 mul % Add extra room for axis xaxis {fontsize 1.75 mul add } if xaxisLabel () eq {} {fontsize 0.75 mul add} ifelse def /topMargin logoTitle () eq { 10 }{titleFontsize 4 add} ifelse def /rightMargin %Add extra room if showing ends showEnds (-) eq { fontsize}{fontsize 1.5 mul} ifelse def /yaxisHeight logoHeight bottomMargin sub topMargin sub def /ticWidth fontsize 2 div def /pointsPerBit yaxisHeight yaxisBits div def /isBoxed showingBox (s) eq showingBox (f) eq or { true } { false } ifelse def /stackMargin 1 def % Do not add space aroung characters if characters are boxed /charRightMargin isBoxed { 0.0 } {stackMargin} ifelse def /charTopMargin isBoxed { 0.0 } {stackMargin} ifelse def /charWidth logoWidth leftMargin sub rightMargin sub charsPerLine div charRightMargin sub def /charWidth4 charWidth 4 div def /charWidth2 charWidth 2 div def /stackWidth charWidth charRightMargin add def /numberFontsize fontsize charWidth lt {fontsize}{charWidth} ifelse def % movements to place 5'/N and 3'/C symbols /leftEndDeltaX fontsize neg def /leftEndDeltaY fontsize 1.5 mul neg def /rightEndDeltaX fontsize 0.25 mul def /rightEndDeltaY leftEndDeltaY def % Outline width is proporional to charWidth, % but no less that 1 point /outlinewidth charWidth 32 div dup 1 gt {}{pop 1} ifelse def % ---- PROCEDURES ---- /StartLogo { % Save state save gsave % Print Logo Title, top center gsave SetTitleFont logoWidth 2 div logoTitle stringwidth pop 2 div sub logoHeight logoLines mul titleFontsize sub moveto logoTitle show grestore % Print X-axis label, bottom center gsave SetStringFont logoWidth 2 div xaxisLabel stringwidth pop 2 div sub fontsize 3 div moveto xaxisLabel show grestore % Show Fine Print showFineprint { gsave SetSmallFont logoWidth fineprint stringwidth pop sub smallFontsize sub smallFontsize 3 div moveto fineprint show grestore } if % Move to lower left corner of last line, first stack leftMargin bottomMargin translate % Move above first line ready for StartLine 0 logoLines logoHeight mul translate SetLogoFont } bind def /EndLogo { grestore showpage restore } bind def /StartLine{ % move down to the bottom of the line: 0 logoHeight neg translate gsave yaxis { MakeYaxis } if xaxis { ShowLeftEnd } if } bind def /EndLine{ xaxis { ShowRightEnd } if grestore } bind def /MakeYaxis { gsave stackMargin neg 0 translate ShowYaxisBar ShowYaxisLabel grestore } bind def /ShowYaxisBar { gsave SetStringFont /str 10 string def % string to hold number /smallgap stackMargin 2 div def % Draw first tic and bar gsave ticWidth neg 0 moveto ticWidth 0 rlineto 0 yaxisHeight rlineto stroke grestore % Draw the tics % initial increment limit proc for 0 1 yaxisBits abs cvi {/loopnumber exch def % convert the number coming from the loop to a string % and find its width loopnumber 10 str cvrs /stringnumber exch def % string representing the number stringnumber stringwidth pop /numberwidth exch def % width of number to show /halfnumberheight stringnumber CharBoxHeight 2 div def numberwidth % move back width of number neg loopnumber pointsPerBit mul % shift on y axis halfnumberheight sub % down half the digit moveto % move back the width of the string ticWidth neg smallgap sub % Move back a bit more 0 rmoveto % move back the width of the tic stringnumber show smallgap 0 rmoveto % Make a small gap % now show the tic mark 0 halfnumberheight rmoveto % shift up again ticWidth 0 rlineto stroke } for grestore } bind def /ShowYaxisLabel { gsave SetStringFont ticWidth neg 2.75 mul yaxisHeight yaxisLabel stringwidth pop sub 2 div translate 90 rotate 0 0 moveto yaxisLabel show grestore } bind def /StartStack { % startstack xaxis {MakeNumber}{pop} ifelse gsave } bind def /EndStack { grestore stackWidth 0 translate } bind def % Draw a character whose height is proportional to symbol bits /MakeSymbol{ % charbits character MakeSymbol gsave /char exch def /bits exch def /bitsHeight bits pointsPerBit mul def /charHeight bitsHeight charTopMargin sub dup 0.0 gt {}{pop 0.0} ifelse % if neg replace with zero def charHeight 0.0 gt { char SetColor charWidth charHeight char ShowChar showingBox (s) eq { % Unfilled box 0 0 charWidth charHeight false ShowBox } if showingBox (f) eq { % Filled box 0 0 charWidth charHeight true ShowBox } if } if grestore 0 bitsHeight translate } bind def /ShowChar { % ShowChar gsave /tc exch def % The character /ysize exch def % the y size of the character /xsize exch def % the x size of the character /xmulfactor 1 def /ymulfactor 1 def % if ysize is negative, make everything upside down! ysize 0 lt { % put ysize normal in this orientation /ysize ysize abs def xsize ysize translate 180 rotate } if shrinking { xsize 1 shrink sub 2 div mul ysize 1 shrink sub 2 div mul translate shrink shrink scale } if % Calculate the font scaling factors % Loop twice to catch small correction due to first scaling 2 { gsave xmulfactor ymulfactor scale ysize % desired size of character in points tc CharBoxHeight dup 0.0 ne { div % factor by which to scale up the character /ymulfactor exch def } % end if {pop pop} ifelse xsize % desired size of character in points tc CharBoxWidth dup 0.0 ne { div % factor by which to scale up the character /xmulfactor exch def } % end if {pop pop} ifelse grestore } repeat % Adjust horizontal position if the symbol is an I tc (I) eq { charWidth 2 div % half of requested character width tc CharBoxWidth 2 div % half of the actual character sub 0 translate % Avoid x scaling for I /xmulfactor 1 def } if % ---- Finally, draw the character newpath xmulfactor ymulfactor scale % Move lower left corner of character to start point tc CharBox pop pop % llx lly : Lower left corner exch neg exch neg moveto outline { % outline characters: outlinewidth setlinewidth tc true charpath gsave 1 setgray fill grestore clip stroke } { % regular characters tc show } ifelse grestore } bind def /ShowBox { % x1 y1 x2 y2 filled ShowBox gsave /filled exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath clip filled { fill }{ 0 setgray stroke } ifelse grestore } bind def /MakeNumber { % number MakeNumber gsave SetNumberFont stackWidth 0 translate 90 rotate % rotate so the number fits dup stringwidth pop % find the length of the number neg % prepare for move stackMargin sub % Move back a bit charWidth (0) CharBoxHeight % height of numbers sub 2 div % moveto % move back to provide space show grestore } bind def /Ibeam{ % heightInBits Ibeam gsave % Make an Ibeam of twice the given height in bits /height exch pointsPerBit mul def /heightDRAW height IbeamFraction mul def IbeamLineWidth setlinewidth IbeamGray setgray charWidth2 height neg translate ShowIbar newpath 0 0 moveto 0 heightDRAW rlineto stroke newpath 0 height moveto 0 height rmoveto currentpoint translate ShowIbar newpath 0 0 moveto 0 heightDRAW neg rlineto currentpoint translate stroke grestore } bind def /ShowIbar { % make a horizontal bar gsave newpath charWidth4 neg 0 moveto charWidth4 0 lineto stroke grestore } bind def /ShowLeftEnd { gsave SetStringFont leftEndDeltaX leftEndDeltaY moveto showEnds (d) eq {(5) show ShowPrime} if showEnds (p) eq {(N) show} if grestore } bind def /ShowRightEnd { gsave SetStringFont rightEndDeltaX rightEndDeltaY moveto showEnds (d) eq {(3) show ShowPrime} if showEnds (p) eq {(C) show} if grestore } bind def /ShowPrime { gsave SetPrimeFont (\242) show grestore } bind def /SetColor{ % SetColor dup colorDict exch known { colorDict exch get aload pop setrgbcolor } { pop defaultColor aload pop setrgbcolor } ifelse } bind def % define fonts /SetTitleFont {/Times-Bold findfont titleFontsize scalefont setfont} bind def /SetLogoFont {/Helvetica-Narrow-Bold findfont charWidth scalefont setfont} bind def /SetStringFont{/Helvetica-Bold findfont fontsize scalefont setfont} bind def /SetPrimeFont {/Symbol findfont fontsize scalefont setfont} bind def /SetSmallFont {/Helvetica findfont smallFontsize scalefont setfont} bind def /SetNumberFont { /Helvetica-Bold findfont numberFontsize scalefont setfont } bind def %Take a single character and return the bounding box /CharBox { % CharBox gsave newpath 0 0 moveto % take the character off the stack and use it here: true charpath flattenpath pathbbox % compute bounding box of 1 pt. char => lx ly ux uy % the path is here, but toss it away ... grestore } bind def % The height of a characters bounding box /CharBoxHeight { % CharBoxHeight CharBox exch pop sub neg exch pop } bind def % The width of a characters bounding box /CharBoxWidth { % CharBoxHeight CharBox pop exch pop sub neg } bind def % Deprecated names /startstack {StartStack} bind def /endstack {EndStack} bind def /makenumber {MakeNumber} bind def /numchar { MakeSymbol } bind def %%EndProlog %%Page: 1 1 StartLogo StartLine % line number 1 (1) startstack 0.378108953766801 (A) numchar 0.682009608196192 (T) numchar endstack (2) startstack 0.013254780108625 (G) numchar 0.0747087606122502 (C) numchar 0.0891685207307502 (T) numchar 0.184361941510875 (A) numchar endstack (3) startstack 0.0137461194554066 (G) numchar 0.0528696902131021 (A) numchar 0.116313318468825 (T) numchar 0.134289013141279 (C) numchar endstack (4) startstack 0.0311340852095677 (A) numchar 0.075377258928427 (T) numchar 0.0770158949920885 (G) numchar 0.308063579968354 (C) numchar endstack (5) startstack 0.0262812694510521 (T) numchar 0.0431763712410142 (G) numchar 0.0666417903937393 (A) numchar 0.145485598746896 (C) numchar endstack (6) startstack 0.0452936070165252 (T) numchar 0.0452936070165252 (G) numchar 0.11117521722238 (C) numchar 0.415877664424458 (A) numchar endstack (7) startstack 0.0127608096959839 (C) numchar 0.0552968420159302 (G) numchar 0.154547584095805 (T) numchar 0.202755087391744 (A) numchar endstack (8) startstack 0.00570203679450766 (A) numchar 0.0741264783285996 (G) numchar 1.63078252322919 (C) numchar endstack (9) startstack 0.0065592321492941 (A) numchar 1.96121041263894 (C) numchar endstack (10) startstack 0.0065592321492941 (A) numchar 1.96121041263894 (C) numchar endstack (11) startstack 0.0728998888575946 (T) numchar 0.214411437816455 (G) numchar 0.355922986775315 (A) numchar endstack (12) startstack 0.00420734490072347 (G) numchar 0.0778358806633841 (C) numchar 0.168293796028939 (T) numchar 0.380764713515474 (A) numchar endstack (13) startstack 0.08999031472004 (C) numchar 0.139984934008951 (A) numchar 0.769917137049231 (T) numchar endstack (14) startstack 0.0065592321492941 (A) numchar 1.96121041263894 (C) numchar endstack (15) startstack 0.00575224700906458 (A) numchar 0.0690269641087749 (G) numchar 1.65089489160153 (C) numchar endstack EndLine EndLogo %%EOF %%EndDocument @endspecial 939 w @beginspecial 0 @llx 0 @lly 510 @urx 141 @ury 1008 @rwi @setspecial %%BeginDocument: figure/thetaIII3.fake.fasta.eps %!PS-Adobe-3.0 EPSF-3.0 %%Title: Sequence Logo: %%Creator: seqlogo (1.0) %%CreationDate: %%BoundingBox: 0 0 510 141 %%Pages: 0 %%DocumentFonts: %%EndComments % * seq_1 % * seq_2 % * seq_3 % * seq_4 % * seq_5 % * seq_6 % * seq_7 % * seq_8 % * seq_9 % * seq_10 % * seq_11 % * seq_12 % * seq_13 % * seq_14 % * seq_15 % * seq_16 % * seq_17 % * seq_18 % * seq_19 % * seq_20 % * seq_21 % * seq_22 % * seq_23 % * seq_24 % * seq_25 % * seq_26 % * seq_27 % * seq_28 % * seq_29 % * seq_30 % * seq_31 % * seq_32 % * seq_33 % * seq_34 % * seq_35 % * seq_36 % * seq_37 % * seq_38 % * seq_39 % * seq_40 % * seq_41 % * seq_42 % * seq_43 % * seq_44 % * seq_45 % * seq_46 % * seq_47 % * seq_48 % * seq_49 % * seq_50 % * seq_51 % * seq_52 % * seq_53 % * seq_54 % * seq_55 % * seq_56 % * seq_57 % * seq_58 % * seq_59 % * seq_60 % * seq_61 % * seq_62 % * seq_63 % * seq_64 % * seq_65 % * seq_66 % * seq_67 % * seq_68 % * seq_69 % * seq_70 % * seq_71 % * seq_72 % * seq_73 % * seq_74 % * seq_75 % * seq_76 % * seq_77 % * seq_78 % * seq_79 % * seq_80 % * seq_81 % * seq_82 % * seq_83 % * seq_84 % * seq_85 % * seq_86 % * seq_87 % * seq_88 % * seq_89 % * seq_90 % * seq_91 % * seq_92 % * seq_93 % * seq_94 % * seq_95 % * seq_96 % * seq_97 % * seq_98 % * seq_99 % * seq_100 % * seq_101 % * seq_102 % * seq_103 % * seq_104 % * seq_105 % * seq_106 % * seq_107 % * seq_108 % * seq_109 % * seq_110 % * seq_111 % * seq_112 % * seq_113 % * seq_114 % * seq_115 % * seq_116 % * seq_117 % * seq_118 % * seq_119 % * seq_120 % * seq_121 % * seq_122 % * seq_123 % * seq_124 % * seq_125 % * seq_126 % * seq_127 % * seq_128 % * seq_129 % * seq_130 % * seq_131 % * seq_132 % * seq_133 % * seq_134 % * seq_135 % * seq_136 % * seq_137 % * seq_138 % * seq_139 % * seq_140 % * seq_141 % * seq_142 % * seq_143 % * seq_144 % * seq_145 % * seq_146 % * seq_147 % * seq_148 % * seq_149 % * seq_150 % * seq_151 % * seq_152 % * seq_153 % * seq_154 % * seq_155 % * seq_156 % * seq_157 % * seq_158 % * seq_159 % * seq_160 % * seq_161 % * seq_162 % * seq_163 % * seq_164 % * seq_165 % * seq_166 % * seq_167 % * seq_168 % * seq_169 % * seq_170 % * seq_171 % * seq_172 % * seq_173 % * seq_174 % * seq_175 % * seq_176 % * seq_177 % * seq_178 % * seq_179 % * seq_180 % * seq_181 % * seq_182 % * seq_183 % * seq_184 % * seq_185 % * seq_186 % * seq_187 % * seq_188 % * seq_189 % * seq_190 % * seq_191 % * seq_192 % * seq_193 % * seq_194 % * seq_195 % * seq_196 % * seq_197 % * seq_198 % * seq_199 % * seq_200 % * seq_201 % * seq_202 % * seq_203 % * seq_204 % * seq_205 % * seq_206 % * seq_207 % * seq_208 % * seq_209 % * seq_210 % * seq_211 % * seq_212 % * seq_213 % * seq_214 % * seq_215 % * seq_216 % * seq_217 % * seq_218 % * seq_219 % * seq_220 % * seq_221 % * seq_222 % * seq_223 % * seq_224 % * seq_225 % * seq_226 % * seq_227 % * seq_228 % * seq_229 % * seq_230 % * seq_231 % * seq_232 % * seq_233 % * seq_234 % * seq_235 % * seq_236 % * seq_237 % * seq_238 % * seq_239 % * seq_240 % * seq_241 % * seq_242 % * seq_243 % * seq_244 % * seq_245 % * seq_246 % * seq_247 % * seq_248 % * seq_249 % * seq_250 % * seq_251 % * seq_252 % * seq_253 % * seq_254 % * seq_255 % * seq_256 % * seq_257 % * seq_258 % * seq_259 % * seq_260 % * seq_261 % * seq_262 % * seq_263 % * seq_264 % * seq_265 % * seq_266 % * seq_267 % * seq_268 % * seq_269 % * seq_270 % * seq_271 % * seq_272 % * seq_273 % * seq_274 % * seq_275 % * seq_276 % * seq_277 % * seq_278 % * seq_279 % * seq_280 % * seq_281 % * seq_282 % * seq_283 % * seq_284 % * seq_285 % * seq_286 % * seq_287 % * seq_288 % * seq_289 % * seq_290 % * seq_291 % * seq_292 % * seq_293 % * seq_294 % * seq_295 % * seq_296 % * seq_297 % * seq_298 % * seq_299 % * seq_300 % * NUCLEOTIDE ALIGNMENT % ---- CONSTANTS ---- /cmfactor 72 2.54 div def % defines points -> cm conversion /cm {cmfactor mul} bind def % defines centimeters % ---- VARIABLES ---- /black [0 0 0] def /red [0.8 0 0] def /green [0 0.8 0] def /blue [0 0 0.8] def /yellow [1 0.71 .0] def /purple [0.8 0 0.8] def /orange [1 0.7 0] def /logoWidth 18 cm def /logoHeight 5 cm def /logoTitle () def /yaxis true def /yaxisLabel (bits) def /yaxisBits 2 def % bits /xaxis true def /xaxisLabel ( ) def /showEnds (d) def % d: DNA, p: PROTEIN, -: none /showFineprint true def /fineprint () def /charsPerLine 10 def /logoLines 1 def /showingBox (n) def %n s f /shrinking false def /shrink 1 def /outline false def /IbeamFraction 1 def /IbeamGray 0.75 def /IbeamLineWidth 0.5 def /fontsize 12 def /titleFontsize 14 def /smallFontsize 6 def /defaultColor black def % Standard DNA/RNA color scheme /colorDict << (G) orange (T) red (C) blue (A) green (U) red >> def % Standard DNA/RNA color scheme % /colorDict << % (G) orange % (T) red % (C) blue % (A) green % (U) red % >> def % Standard Amino Acid colors %/colorDict << % (G) green % (S) green % (T) green % (Y) green % (C) green % (N) purple % (Q) purple % (K) blue % (R) blue % (H) blue % (D) red % (E) red % (P) black % (A) black % (W) black % (F) black % (L) black % (I) black % (M) black % (V) black %>> def % ---- DERIVED PARAMETERS ---- /leftMargin fontsize 2.5 mul def /bottomMargin fontsize 0.75 mul % Add extra room for axis xaxis {fontsize 1.75 mul add } if xaxisLabel () eq {} {fontsize 0.75 mul add} ifelse def /topMargin logoTitle () eq { 10 }{titleFontsize 4 add} ifelse def /rightMargin %Add extra room if showing ends showEnds (-) eq { fontsize}{fontsize 1.5 mul} ifelse def /yaxisHeight logoHeight bottomMargin sub topMargin sub def /ticWidth fontsize 2 div def /pointsPerBit yaxisHeight yaxisBits div def /isBoxed showingBox (s) eq showingBox (f) eq or { true } { false } ifelse def /stackMargin 1 def % Do not add space aroung characters if characters are boxed /charRightMargin isBoxed { 0.0 } {stackMargin} ifelse def /charTopMargin isBoxed { 0.0 } {stackMargin} ifelse def /charWidth logoWidth leftMargin sub rightMargin sub charsPerLine div charRightMargin sub def /charWidth4 charWidth 4 div def /charWidth2 charWidth 2 div def /stackWidth charWidth charRightMargin add def /numberFontsize fontsize charWidth lt {fontsize}{charWidth} ifelse def % movements to place 5'/N and 3'/C symbols /leftEndDeltaX fontsize neg def /leftEndDeltaY fontsize 1.5 mul neg def /rightEndDeltaX fontsize 0.25 mul def /rightEndDeltaY leftEndDeltaY def % Outline width is proporional to charWidth, % but no less that 1 point /outlinewidth charWidth 32 div dup 1 gt {}{pop 1} ifelse def % ---- PROCEDURES ---- /StartLogo { % Save state save gsave % Print Logo Title, top center gsave SetTitleFont logoWidth 2 div logoTitle stringwidth pop 2 div sub logoHeight logoLines mul titleFontsize sub moveto logoTitle show grestore % Print X-axis label, bottom center gsave SetStringFont logoWidth 2 div xaxisLabel stringwidth pop 2 div sub fontsize 3 div moveto xaxisLabel show grestore % Show Fine Print showFineprint { gsave SetSmallFont logoWidth fineprint stringwidth pop sub smallFontsize sub smallFontsize 3 div moveto fineprint show grestore } if % Move to lower left corner of last line, first stack leftMargin bottomMargin translate % Move above first line ready for StartLine 0 logoLines logoHeight mul translate SetLogoFont } bind def /EndLogo { grestore showpage restore } bind def /StartLine{ % move down to the bottom of the line: 0 logoHeight neg translate gsave yaxis { MakeYaxis } if xaxis { ShowLeftEnd } if } bind def /EndLine{ xaxis { ShowRightEnd } if grestore } bind def /MakeYaxis { gsave stackMargin neg 0 translate ShowYaxisBar ShowYaxisLabel grestore } bind def /ShowYaxisBar { gsave SetStringFont /str 10 string def % string to hold number /smallgap stackMargin 2 div def % Draw first tic and bar gsave ticWidth neg 0 moveto ticWidth 0 rlineto 0 yaxisHeight rlineto stroke grestore % Draw the tics % initial increment limit proc for 0 1 yaxisBits abs cvi {/loopnumber exch def % convert the number coming from the loop to a string % and find its width loopnumber 10 str cvrs /stringnumber exch def % string representing the number stringnumber stringwidth pop /numberwidth exch def % width of number to show /halfnumberheight stringnumber CharBoxHeight 2 div def numberwidth % move back width of number neg loopnumber pointsPerBit mul % shift on y axis halfnumberheight sub % down half the digit moveto % move back the width of the string ticWidth neg smallgap sub % Move back a bit more 0 rmoveto % move back the width of the tic stringnumber show smallgap 0 rmoveto % Make a small gap % now show the tic mark 0 halfnumberheight rmoveto % shift up again ticWidth 0 rlineto stroke } for grestore } bind def /ShowYaxisLabel { gsave SetStringFont ticWidth neg 2.75 mul yaxisHeight yaxisLabel stringwidth pop sub 2 div translate 90 rotate 0 0 moveto yaxisLabel show grestore } bind def /StartStack { % startstack xaxis {MakeNumber}{pop} ifelse gsave } bind def /EndStack { grestore stackWidth 0 translate } bind def % Draw a character whose height is proportional to symbol bits /MakeSymbol{ % charbits character MakeSymbol gsave /char exch def /bits exch def /bitsHeight bits pointsPerBit mul def /charHeight bitsHeight charTopMargin sub dup 0.0 gt {}{pop 0.0} ifelse % if neg replace with zero def charHeight 0.0 gt { char SetColor charWidth charHeight char ShowChar showingBox (s) eq { % Unfilled box 0 0 charWidth charHeight false ShowBox } if showingBox (f) eq { % Filled box 0 0 charWidth charHeight true ShowBox } if } if grestore 0 bitsHeight translate } bind def /ShowChar { % ShowChar gsave /tc exch def % The character /ysize exch def % the y size of the character /xsize exch def % the x size of the character /xmulfactor 1 def /ymulfactor 1 def % if ysize is negative, make everything upside down! ysize 0 lt { % put ysize normal in this orientation /ysize ysize abs def xsize ysize translate 180 rotate } if shrinking { xsize 1 shrink sub 2 div mul ysize 1 shrink sub 2 div mul translate shrink shrink scale } if % Calculate the font scaling factors % Loop twice to catch small correction due to first scaling 2 { gsave xmulfactor ymulfactor scale ysize % desired size of character in points tc CharBoxHeight dup 0.0 ne { div % factor by which to scale up the character /ymulfactor exch def } % end if {pop pop} ifelse xsize % desired size of character in points tc CharBoxWidth dup 0.0 ne { div % factor by which to scale up the character /xmulfactor exch def } % end if {pop pop} ifelse grestore } repeat % Adjust horizontal position if the symbol is an I tc (I) eq { charWidth 2 div % half of requested character width tc CharBoxWidth 2 div % half of the actual character sub 0 translate % Avoid x scaling for I /xmulfactor 1 def } if % ---- Finally, draw the character newpath xmulfactor ymulfactor scale % Move lower left corner of character to start point tc CharBox pop pop % llx lly : Lower left corner exch neg exch neg moveto outline { % outline characters: outlinewidth setlinewidth tc true charpath gsave 1 setgray fill grestore clip stroke } { % regular characters tc show } ifelse grestore } bind def /ShowBox { % x1 y1 x2 y2 filled ShowBox gsave /filled exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath clip filled { fill }{ 0 setgray stroke } ifelse grestore } bind def /MakeNumber { % number MakeNumber gsave SetNumberFont stackWidth 0 translate 90 rotate % rotate so the number fits dup stringwidth pop % find the length of the number neg % prepare for move stackMargin sub % Move back a bit charWidth (0) CharBoxHeight % height of numbers sub 2 div % moveto % move back to provide space show grestore } bind def /Ibeam{ % heightInBits Ibeam gsave % Make an Ibeam of twice the given height in bits /height exch pointsPerBit mul def /heightDRAW height IbeamFraction mul def IbeamLineWidth setlinewidth IbeamGray setgray charWidth2 height neg translate ShowIbar newpath 0 0 moveto 0 heightDRAW rlineto stroke newpath 0 height moveto 0 height rmoveto currentpoint translate ShowIbar newpath 0 0 moveto 0 heightDRAW neg rlineto currentpoint translate stroke grestore } bind def /ShowIbar { % make a horizontal bar gsave newpath charWidth4 neg 0 moveto charWidth4 0 lineto stroke grestore } bind def /ShowLeftEnd { gsave SetStringFont leftEndDeltaX leftEndDeltaY moveto showEnds (d) eq {(5) show ShowPrime} if showEnds (p) eq {(N) show} if grestore } bind def /ShowRightEnd { gsave SetStringFont rightEndDeltaX rightEndDeltaY moveto showEnds (d) eq {(3) show ShowPrime} if showEnds (p) eq {(C) show} if grestore } bind def /ShowPrime { gsave SetPrimeFont (\242) show grestore } bind def /SetColor{ % SetColor dup colorDict exch known { colorDict exch get aload pop setrgbcolor } { pop defaultColor aload pop setrgbcolor } ifelse } bind def % define fonts /SetTitleFont {/Times-Bold findfont titleFontsize scalefont setfont} bind def /SetLogoFont {/Helvetica-Narrow-Bold findfont charWidth scalefont setfont} bind def /SetStringFont{/Helvetica-Bold findfont fontsize scalefont setfont} bind def /SetPrimeFont {/Symbol findfont fontsize scalefont setfont} bind def /SetSmallFont {/Helvetica findfont smallFontsize scalefont setfont} bind def /SetNumberFont { /Helvetica-Bold findfont numberFontsize scalefont setfont } bind def %Take a single character and return the bounding box /CharBox { % CharBox gsave newpath 0 0 moveto % take the character off the stack and use it here: true charpath flattenpath pathbbox % compute bounding box of 1 pt. char => lx ly ux uy % the path is here, but toss it away ... grestore } bind def % The height of a characters bounding box /CharBoxHeight { % CharBoxHeight CharBox exch pop sub neg exch pop } bind def % The width of a characters bounding box /CharBoxWidth { % CharBoxHeight CharBox pop exch pop sub neg } bind def % Deprecated names /startstack {StartStack} bind def /endstack {EndStack} bind def /makenumber {MakeNumber} bind def /numchar { MakeSymbol } bind def %%EndProlog %%Page: 1 1 StartLogo StartLine % line number 1 (1) startstack 0.0127376219039173 (A) numchar 0.0409819139517338 (C) numchar 0.0498428683196763 (T) numchar 0.0625804902235935 (G) numchar endstack (2) startstack 0.0065592321492941 (A) numchar 1.96121041263894 (C) numchar endstack (3) startstack 0.0065592321492941 (A) numchar 1.96121041263894 (C) numchar endstack (4) startstack 0.0756273745914915 (T) numchar 0.190372356730306 (A) numchar 0.516352419624666 (G) numchar endstack (5) startstack 0.0124929658270198 (A) numchar 0.220709062944016 (C) numchar 1.01609455393094 (G) numchar endstack (6) startstack 0.0338313849395402 (T) numchar 0.0338313849395402 (A) numchar 0.0968277568959255 (G) numchar 0.185489317427134 (C) numchar endstack (7) startstack 0.0352585444881256 (A) numchar 0.043093776596598 (T) numchar 0.131240137816912 (C) numchar 0.378049949233791 (G) numchar endstack (8) startstack 0.0194654954185813 (T) numchar 0.0629766028248219 (G) numchar 0.0790070108165947 (C) numchar 0.182059633620849 (A) numchar endstack (9) startstack 0.0163902989525562 (C) numchar 0.0389976078526338 (A) numchar 0.0406931560201396 (G) numchar 0.073473753925252 (T) numchar endstack (10) startstack 0.0065592321492941 (A) numchar 1.96121041263894 (C) numchar endstack EndLine EndLogo %%EOF %%EndDocument @endspecial 2429 3076 a(7)g(8)2073 3231 y Fw(Figure)22 b(6.)g FH(Motif)c(patterns)g(detected)h(by)e Fv(LOGOS)e FH(in)i(the)g(re)o(gulatory)2073 3306 y(re)o(gions)i(of)e(9)f (Drosophila)j(genes.)2073 3527 y FJ(W)-7 b(e)28 b(apply)d FK(LOGOS)h FJ(\(which)f(is)i(set)g(to)f(identify)f(4)h(motifs)g(at)1974 3621 y(a)e(time\))g(to)h(the)f(Drosophila)f(dataset)h(and)g(Figure)f(6) h(gi)n(v)o(es)g(a)h(par)n(-)1974 3716 y(tial)30 b(list)h(of)e(the)h (top-scoring)e(\(data)h(lik)o(elihood)f(under)g(the)i FK(LO-)1974 3811 y(GOS)17 b FJ(model\))g(motif)g(patterns.)23 b(Note)18 b(that)g(the)g FL(lo)o(gos)f FJ(sho)n(wn)g(here)1974 3905 y(are)k(not)f(the)h(con)m(v)o(entional)d(sequence)i FL(lo)o(gos)h FJ(based)g(on)f(counts)g(of)1974 4000 y(aligned)27 b(nucleotides;)32 b(instead)c(we)h(use)g(the)f FL(lo)o(go)g FJ(visualization)1974 4095 y(softw)o(are)j(to)g(graphically)e(present)i (the)g FK(Bay)o(esian)h(estimate)e FJ(of)1974 4189 y(the)21 b(position-speci\002c)f(multinomial)f(parameters)h FC(\022)k FJ(of)d(each)g(mo-)1974 4284 y(tif,)e(so)h(the)o(y)e(are)h(not)f (necessarily)h(equal)f(to)h(the)g(usual)g(nt)g(frequen-)1974 4379 y(cies)f(of)g(aligned)f(sequences,)g(b)n(ut)h(represent)f(a)h (more)f(rob)n(ust)h(prob-)1974 4473 y(abilistic)23 b(model)e(of)h(the)g (motif)g(sequences.)30 b(A)22 b(visual)g(inspection)1974 4568 y(re)n(v)o(eals)j(that)h(patterns)f(1)h(and)f(5)h(correspond)d(to) j(the)f FL(hb)h FJ(and)f FL(cad)1974 4662 y FJ(binding)16 b(sites)k(\(as)f(con\002rmed)d(by)i(the)g(matching)f(of)h(the)h (locations)1974 4757 y(of)28 b(our)g(results)h(and)f(the)h(sequence)e (annotations\).)48 b(P)o(art)29 b(of)g(pat-)1974 4852 y(tern)d(2)h(agrees)f(with)g(the)h(re)n(v)o(erse)e(complement)g(of)h (the)g FL(kr)i FJ(motif)1974 4946 y(\(containing)22 b(-CCCxTT)-8 b(-\),)26 b(b)n(ut)f(this)h(motif)e(seem)h(to)g(be)g(actually)1974 5041 y(a)e(\223tw)o(o-block\224)e(motif)h(because)g(the)g(pattern)g(we) h(detected)f(under)1974 5136 y(a)27 b(longer)f(estimated)h(motif)f (length)h(contains)f(an)h(additional)f(co-)1974 5230 y(occurring)d(conserv)o(ed)f(pattern)i(a)i(fe)n(w)f(bases)g(upstream.) 38 b(P)o(art)25 b(of)1974 5325 y(pattern)k(7)g(is)i(close)f(to)f(the)h FL(bcd)f FJ(motif)g(\(containing)f(-AA)-9 b(TCC-\))p eop %%Page: 10 10 10 9 bop -182 83 a FJ(b)n(ut)21 b(also)h(contains)e(additional)g(sites) j(\(i.e.,)e(the)g(three)g(highly)f(con-)-182 178 y(serv)o(ed)27 b(C')-5 b(s)29 b(upstream\).)47 b(A)28 b(careful)f(e)o(xamination)f(of) i(pattern)f(6)-182 272 y(suggests)19 b(that)h(it)g(may)f(be)h(actually) f(deri)n(v)o(ed)f(from)g(putati)n(v)o(e)g(motif)-182 367 y(subsequences)23 b(that)i(correspond)d(to)k(the)e FL(kni)h FJ(binding)f(site.)40 b(This)-182 462 y(is)18 b(not)g(ob)o(vious)e(at)i(\002rst)g(because)f(it)i(appears)e(quite)g (dif)n(ferent)f(from)-182 556 y(the)g FL(kni)h(lo)o(go)g FJ(in)g(Figure)f(5.)24 b(But)17 b(after)f(seeing)h(an)g(e)o(xample)e FL(kni)i FJ(site)-182 651 y(in)k(stripe2/7:)26 b(5'agaaaactagatca3',)17 b(starting)j(at)i(position)e(35,)h(we)-182 746 y(realized)28 b(that)g(the)h(answer)f(might)g(be)h(plausible.)50 b(The)28 b(discrep-)-182 840 y(anc)o(y)22 b(is)j(lik)o(ely)e(due)h(to)f(the)h (artif)o(acts)g(in)g(the)f(original)g(generation)-182 935 y(of)i(the)h(alignment)f(data)h(supporting)e(the)i FL(kni)g(lo)o(go)p FJ(:)36 b(only)25 b(5)i(bio-)-182 1029 y(logically)e(identi\002ed)h(instances)h(were)f(used)h(and)f(the)o (y)g(are)g(quite)-182 1124 y(di)n(v)o(erse;)39 b(the)34 b(resulting)f(multiple)g(alignment)f(is)j(visually)e(sub-)-182 1219 y(optimal)18 b(in)i(that)g(homogeneous)c(sites)21 b(are)f(se)n(v)o(erely)e(interspersed)-182 1313 y(with)26 b(heterogeneous)c(sites.)43 b(P)o(atterns)26 b(3,)h(4,)g(and)e(8)h(are) f(putati)n(v)o(e)-182 1408 y(motifs)j(not)g(annotated)f(in)i(the)g (input)f(sequences.)49 b(W)-7 b(e)30 b(also)f(ran)-182 1503 y(the)19 b(same)g(dataset)g(through)e(MEME)i(and)f(the)h(output)f (\(not)h(sho)n(wn)-182 1597 y(here\))i(is)i(much)e(weak)o(er)g(and)g (harder)g(to)h(interpret.)29 b(Note)22 b(that)g(the)-182 1692 y(motif)i(logos)h(gi)n(v)o(en)f(in)h(Figure)f(5)h(are)g(based)g (on)g(the)g(nucleotide-)-182 1787 y(frequenc)o(y)20 b(pro\002les)j(of)g (biologically)f(identi\002ed)h(instances)g(from)-182 1881 y(man)o(y)29 b(sources.)56 b(Thus)31 b(it)g(is)h(not)e(surprising) g(that)h(some)f(of)h(the)-182 1976 y(patterns)20 b(we)i(found)e(are)h (similar)h(b)n(ut)f(do)g(not)g(match)g(the)h FL(lo)o(gos)f FJ(in)-182 2071 y(Figure)f(5)i(e)o(xactly)e(since)i(our)f(logos)g(are)g (deri)n(v)o(ed)f(from)g(Bayesian)-182 2165 y(estimates)j(of)g(the)g (motif)f(parameters)g(and)h(our)f(data)h(source)f(con-)-182 2260 y(sists)28 b(of)f(the)h(4)f(re)o(gulatory)e(re)o(gions)h(of)h(the) g FL(e)o(ven-skipped)e FJ(gene,)-182 2354 y(which)17 b(might)h(be)g(smaller)g(and)g(less)h(representati)n(v)o(e)e(compared)f (to)-182 2449 y(the)k(data)g(source)f(underlying)f(Figure)h(5)i(\(e)o (xcept)d(for)i FL(kni)p FJ(\).)-182 2665 y FM(5)99 b(Conclusions)-83 2864 y FJ(W)-7 b(e)27 b(ha)n(v)o(e)e(presented)g(a)h(principled)e (generati)n(v)o(e)f(probabilistic)-182 2959 y(frame)n(w)o(ork)k(for)i (modeling)e(motifs)j(in)f(biopolymer)e(sequences.)-182 3054 y(A)21 b(modular)f(architecture)f(is)j(proposed,)d(which)i (consists)h(of)f(a)g(lo-)-182 3148 y(cal)g(submodel)e(of)h(motif)g (alignment,)f(and)h(a)h(global)f(submodel)f(of)-182 3243 y(motif)g(distrib)n(ution.)-83 3337 y(W)-7 b(e)39 b(use)f(an)f(HMDM)h (model)f(for)g(local)g(motif)h(alignment,)-182 3432 y(which)27 b(captures)g(site)i(dependencies)d(inside)i(motifs)f(and)h(incor)n(-) -182 3527 y(porates)g(learnable)g(prior)g(kno)n(wledge)e(from)i(kno)n (wn)g(motifs)h(for)-182 3621 y(Bayesian)17 b(estimation)f(of)h(the)g (PWMs)h(of)f(no)o(v)o(el)f(motifs)h(in)g(unseen)-182 3716 y(sequences.)57 b(W)-7 b(e)32 b(use)g(an)f(HMM)g(model)f(for)h (the)g(global)f(motif)-182 3811 y(distrib)n(ution,)23 b(which)g(introduces)g(simple)h(dependencies)d(among)-182 3905 y(motif)34 b(instances)g(and)g(allo)n(ws)h(ef)n(\002cient)f(and)g (consistent)g(infer)n(-)-182 4000 y(ence)27 b(of)g(motif)g(locations.) 47 b(A)28 b(deterministic)e(algorithm,)i(v)n(aria-)-182 4095 y(tional)19 b(EM,)g(is)h(de)n(v)o(eloped)d(to)j(solv)o(e)f(the)h (comple)o(x)d(missing)j(v)n(alue)-182 4189 y(and)e(Bayesian)h(learning) e(problems)g(associated)i(with)g(our)f(model.)-182 4284 y(VEM)26 b(allo)n(ws)g(probabilistic)f(inference)f(in)i(the)g(local)g (alignment)-182 4379 y(and)f(the)h(global)f(distrib)n(ution)g(submodel) f(to)i(be)g(carried)f(out)g(vir)n(-)-182 4473 y(tually)d(separately)g (with)g(a)h(proper)e(Bayesian)i(interf)o(ace)f(connect-)-182 4568 y(ing)31 b(the)h(tw)o(o)h(processes.)60 b(This)32 b FL(divide)g(and)f(conquer)g FJ(strate)o(gy)-182 4662 y(mak)o(es)20 b(it)g(much)f(easier)i(to)f(de)n(v)o(elop)e(more)h (sophisticated)h(models)-182 4757 y(for)31 b(v)n(arious)h(aspects)h(of) f(motif)g(analysis)g(without)g(being)f(o)o(v)o(er)n(-)-182 4852 y(b)n(urdened)21 b(by)i(the)h(some)n(what)f(daunting)e(comple)o (xity)h(of)h(the)h(full)-182 4946 y(motif)19 b(problem.)-83 5041 y(As)32 b(discussed)e(at)i(length)e(in)h([22)n(],)j(the)d(HMDM)f (model)g(de-)-182 5136 y(scribes)44 b(a)h(rich)f(continuous)e(distrib)n (ution)i(of)g(PWMs)h(whose)-182 5230 y(position-speci\002c)26 b(parameters)h(follo)n(w)g(\002rst-order)f(Mark)o(o)o(v)g(de-)-182 5325 y(pendences,)e(and)g(which)h(are)f(not)h(captured)e(in)i(most)g (contempo-)1974 83 y(rary)i(motif)g(detection)g(algorithms.)46 b(Ne)n(v)o(ertheless,)29 b(although)c(it)1974 178 y(is)j(a)g(more)f(e)o (xpressi)n(v)o(e)f(model,)j(we)e(realize)h(that)g(the)f(actual)h(de-) 1974 272 y(pendencies)e(inside)h(the)h(motif)f(could)g(be)g(e)n(v)o(en) g(more)g(comple)o(x;)1974 367 y(further)17 b(in)m(v)o(estigations)f (into)i(these)h(properties)e(and)h(more)f(po)n(wer)n(-)1974 462 y(ful)26 b(models)f(are)h(needed.)41 b(Similarly)-5 b(,)27 b(the)f(HMM)g(global)f(model)1974 556 y(we)g(propose)d(is)k (only)d(a)i(\002rst)g(step)g(be)o(yond)d(the)j(con)m(v)o(entional)c(UI) 1974 651 y(model,)31 b(and)e(is)i(only)e(able)h(to)g(capture)f (dependencies)f(between)1974 746 y(motifs)34 b(and)g(motif)f(clusters)i (at)g(a)g(v)o(ery)e(limited)h(le)n(v)o(el)g(\(e.g.,)i(it)1974 840 y(can)19 b(not)h(model)e(higher)h(order)f(dependencies)f(such)j(as) g(hierarchi-)1974 935 y(cal)j(structures)f(and)h(long-distance)d (in\003uence)i(between)g(motifs\).)1974 1029 y(More)g(e)o(xpressi)n(v)o (e)f(models)h(are)g(needed)g(to)g(achie)n(v)o(e)g(these)h(goals.)1974 1124 y(Ne)n(v)o(ertheless,)35 b(under)d(the)h FK(LOGOS)g FJ(architecture,)h(e)o(xtensions)1974 1219 y(from)18 b(baseline)g(models)h(are)g(modular)e(and)h(the)h(probabilistic)f(cal-) 1974 1313 y(culations)37 b(in)m(v)n(olv)o(ed)g(can)h(also)g(be)g (handled)f(in)h(a)h FL(divide-and-)1974 1408 y(conquer)25 b FJ(f)o(ashion)g(via)h(generalized)f(v)n(ariational)g(inference.)41 b(W)-7 b(e)1974 1503 y(are)27 b(in)h(the)g(process)f(of)g(de)n(v)o (eloping)e(more)i(e)o(xpressi)n(v)o(e)f(v)o(ersions)1974 1597 y(of)18 b FK(LOGOS)p FJ(.)g(In)g(particular)m(,)f(recent)h(w)o (ork)g(by)g(Liu)g(et)h(al.)f([17)o(])h(and)1974 1692 y(Gupta)g(et)h(al.)g([9)o(])g(ha)n(v)o(e)f(moti)n(v)n(ated)g(us)h(to)f (pursue)g(combination)e(of)1974 1787 y(the)28 b(dictionary-based)e (models)h(with)i(our)f(approach)e(to)i(capture)1974 1881 y(richer)e(motif)g(properties)f(in)i(comple)o(x)e(sequences.)43 b(W)-7 b(e)28 b(are)f(op-)1974 1976 y(timistic)22 b(that)g FK(LOGOS)f FJ(can)g(serv)o(e)g(as)i(a)f(\003e)o(xible)e(frame)n(w)o (ork)g(for)1974 2071 y(motif)g(analysis)g(in)g(biopolymer)e(sequences.) 1974 2284 y FM(Ackno)o(wledgments)2073 2482 y FJ(W)-7 b(e)21 b(thank)d(Prof.)24 b(Michael)18 b(Eisen)i(for)e(helpful)g (discussions)h(on)1974 2577 y(motif)h(structures.)1974 2791 y FM(Refer)n(ences)2025 2981 y Fc([1])42 b(T)-6 b(.)14 b(L.)g(Baile)o(y)h(and)g(C.)f(Elkan.)19 b(Unsupervised)d (learning)g(of)e(multiple)2154 3067 y(motifs)h(in)h(biopolymers)h (using)f(EM.)k Fa(Mac)o(hine)c(Learning)p Fc(,)h(21:51\226)2154 3154 y(80,)i(1995.)2025 3230 y([2])42 b(B.)25 b(P)-8 b(.)26 b(Berman,)i(Y)-10 b(.)26 b(Nib)o(u,)i(B.)e(D.)f(Pfeif)n(fer)m(,) i(P)-8 b(.)26 b(T)-6 b(omancak,)29 b(S.)c(E.)2154 3317 y(Celnik)o(er)m(,)j(M.)f(Le)n(vine,)h(G.)e(M.)h(Rubin,)h(and)f(M.)g(B.) f(Eisen.)51 b(Ex-)2154 3404 y(ploiting)24 b(transcription)h(f)o(actor)f (binding)h(site)f(clustering)g(to)g(iden-)2154 3491 y(tify)c(cis-re)o (gulatory)h(modules)h(in)m(v)o(olv)o(ed)g(in)e(pattern)h(formation)g (in)2154 3577 y(the)15 b(Drosophila)g(genome.)k Fa(Pr)m(oc.)14 b(Natl.)g(Acad.)h(Sci.)g(USA)p Fc(,)f(99:757\226)2154 3664 y(762,)19 b(2002.)2025 3740 y([3])42 b(H.)20 b(Bussemak)o(er)m(,)i (H.)e(Li,)h(and)g(E.)f(Siggia.)33 b(Building)21 b(a)g(dictionary)2154 3827 y(for)i(genomes:)34 b(Identi\002cation)24 b(of)g(presumpti)n(v)o (e)g(re)o(gulatory)h(sites)2154 3914 y(by)18 b(statistical)f(analysis.) 25 b Fa(Pr)m(oc.)17 b(Natl.)g(Acad.)h(Sci.)f(USA)p Fc(,)g(97,)h(2000.) 2025 3990 y([4])42 b(E.)24 b(H.)g(Da)o(vidson.)47 b Fa(Genomic)25 b(Re)m(gulatory)h(Systems)p Fc(.)47 b(Academic)2154 4077 y(Press,)18 b(2001.)2025 4153 y([5])42 b(B.)26 b(Efron.)54 b(Empirical)27 b(Bayes)h(methods)g(for)f(combining)i(lik)o(eli-)2154 4240 y(hoods)f(\(with)e(discussion\).)53 b Fa(J)n(.)27 b(Amer)-8 b(.)25 b(Statist.)h(Assoc.)p Fc(,)j(91:538\226)2154 4326 y(565,)19 b(1996.)2025 4403 y([6])42 b(M.)20 b(Eisen.)30 b(Structural)19 b(properties)i(of)f(transcription)g(f)o(actor)o(-DN)m (A)2154 4489 y(interactions)j(and)h(the)f(inference)h(of)f(sequence)i (speci\002city)-5 b(.)40 b(sub-)2154 4576 y(mitted,)18 b(2003.)2025 4652 y([7])42 b(M.)27 b(C.)g(Frith,)h(U.)f(Hansen,)k(and)d (Z.)e(W)-6 b(eng.)55 b(Detection)28 b(of)f(cis)h(-)2154 4739 y(element)19 b(clusters)f(in)h(higher)g(eukaryotic)h(DN)m(A.)27 b Fa(Bioinformatics)p Fc(,)2154 4826 y(17:878\226889,)21 b(2001.)2025 4902 y([8])42 b(D.)18 b(GuhaThakurta)j(and)e(G.)g(D.)f (Stormo.)27 b(Identifying)20 b(tar)o(get)f(sites)2154 4989 y(for)k(cooperati)n(v)o(ely)h(binding)g(f)o(actors.)41 b Fa(Bioinform.)p Fc(,)23 b(17:608\226621,)2154 5075 y(2001.)2025 5151 y([9])42 b(M.)19 b(Gupta)h(and)g(J.)g(Liu.)28 b(Disco)o(v)o(ery)20 b(of)g(conserv)o(ed)h(sequence)g(pat-)2154 5238 y(terns)j(using)i(a)f(stochastic)g(dictionary)h(model.)46 b Fa(J)n(.)24 b(Amer)-8 b(.)24 b(Statist.)2154 5325 y(Assoc.)p Fc(,)18 b(98,)h(2003.)p eop %%Page: 11 11 11 10 bop -169 83 a Fc([10])42 b(J.)27 b(V)-10 b(.)27 b(Helden,)j(A.)c(Rios,)j(and)f(J.)f(Collado-V)l(ides.)53 b(Disco)o(v)o(ering)-3 170 y(re)o(gulatory)21 b(elements)g(in)e (non-coding)j(sequences)g(by)f(analysis)f(of)-3 257 y(spaced)g(dyads.) 28 b Fa(Nucleic)19 b(Acids)g(Res.)p Fc(,)f(28:1808\2261818,)k(2000.) -169 339 y([11])42 b(G.)18 b(Z.)f(Hertz)g(and)i(G.)e(D.)g(Stormo.)25 b(Identifying)18 b(DN)m(A)g(and)h(protein)-3 426 y(patterns)j(with)g (statistically)e(signi\002cant)i(alignments)h(of)e(multiple)-3 513 y(sequences.)29 b Fa(Bioinform.)p Fc(,)18 b(15:563\226577,)j(1999.) -169 595 y([12])42 b(J.)23 b(D.)g(Hughes,)h(P)-8 b(.)22 b(W)-7 b(.)23 b(Estep,)g(S.)f(T)-6 b(a)o(v)n(azoie,)24 b(and)g(G.)f(M.)g(Church.)-3 682 y(Computational)j(identi\002cation)f (of)f(cis-re)o(gulatory)h(elements)g(as-)-3 769 y(sociated)k(with)e (groups)i(of)f(functionally)g(related)g(genes)h(in)f(Sac-)-3 856 y(charomyces)20 b(cere)n(visiae.)26 b Fa(J)n(.)18 b(Mol.)g(Biol)p Fc(,)g(296\(5\):1205\22614,)j(2000.)-169 938 y([13])42 b(M.)18 b(I.)f(Jordan,)i(Z.)e(Ghahramani,)i(T)-6 b(.)18 b(S.)f(Jaakk)o(ola,)i(and)f(L.)f(K.)h(Saul.)-3 1025 y(An)e(introduction)g(to)f(v)n(ariational)g(methods)h(for)f (graphical)h(models.)-3 1112 y(In)k(M.)g(I.)f(Jordan,)i(editor)m(,)e Fa(Learning)i(in)f(Gr)o(aphical)g(Models)p Fc(.)g(MIT)-3 1198 y(Press,)f(Cambridge,)g(1999.)-169 1281 y([14])42 b(K.)24 b(K)n(echris,)h(E.)e(v)n(an)i(Zwet,)g(P)-8 b(.)22 b(Bick)o(el,)k(and)e(M.)g(Eisen.)43 b(Detect-)-3 1368 y(ing)16 b(DN)m(A)f(re)o(gulatory)i(motifs)e(by)h(incoporating)g (position-speci\002c)-3 1455 y(base)k(conserv)n(ation.)28 b Fa(submitted)p Fc(,)19 b(2003.)-169 1537 y([15])42 b(J.)21 b(Liu,)h(X.)f(Liu,)g(and)i(D.)e(Brutlag.)35 b(Bioprospector:)29 b(Disco)o(v)o(ering)-3 1624 y(conserv)o(ed)18 b(DN)m(A)d(motifs)g(in)h (upstream)g(re)o(gulatory)g(re)o(gions)g(of)g(co-)-3 1711 y(e)o(xpressed)21 b(genes.)27 b(In)19 b Fa(Pr)m(oc.of)g(PSB)p Fc(,)f(2001.)-169 1793 y([16])42 b(J.)30 b(Liu,)j(A.)c(Neuw)o(ald,)34 b(and)d(C.)f(La)o(wrence.)63 b(Bayesian)31 b(models)-3 1880 y(for)25 b(multiple)g(local)h(sequence)g(alignment)g(and)g(Gibbs)f (sampling)-3 1967 y(strate)o(gies.)i Fa(J)n(.)19 b(Amer)-8 b(.)18 b(Statist.)g(Assoc)p Fc(,)h(90:1156\2261169,)j(1995.)-169 2049 y([17])42 b(X.)26 b(S.)g(Liu,)i(D.)e(L.)g(Brutlag,)i(and)f(J.)g (S.)e(Liu.)51 b(An)27 b(algorithm)g(for)-3 2136 y(\002nding)17 b(protein-DN)m(A)g(binding)g(sites)e(with)h(applications)h(to)f(chro-) -3 2223 y(matin)34 b(immunoprecipitation)h(microarray)f(e)o (xperiments.)74 b Fa(Nat)-3 2310 y(Biotec)o(hnol)p Fc(,)19 b(20\(8\):835\2269,)i(2002.)-169 2392 y([18])42 b(L.)24 b(A.)f(Pennacchio)j(and)f(E.)e(M.)h(Rubin.)44 b(Genomic)25 b(strate)o(gies)f(to)-3 2479 y(identify)f(mammalian)h(re)o(gulatory)f (sequences.)40 b Fa(Natur)m(e)24 b(Re)o(vie)o(ws)-3 2566 y(Genetics)p Fc(,)19 b(2\(2\):100\226109,)i(2001.)-169 2648 y([19])42 b(T)-6 b(.)28 b(D.)e(Schneider)i(and)h(R.)d(M.)i (Stephens.)55 b(Sequence)28 b(logos:)41 b(A)-3 2735 y(ne)n(w)21 b(w)o(ay)g(to)f(display)h(consensus)i(sequences.)33 b Fa(Nucl.)20 b(Acids)g(Res.)p Fc(,)-3 2822 y(18:6097\2266100,)j(1990.) -169 2905 y([20])42 b(G.)21 b(D.)f(Stormo)h(and)h(D.)f(S.)f(Fields.)33 b(Speci\002city)-5 b(,)21 b(free)g(ener)o(gy)g(and)-3 2991 y(information)h(content)f(in)g(protein-DN)m(A)h(interactions.)33 b Fa(T)l(r)m(ends)21 b(in)-3 3078 y(Bioc)o(hemical)f(Sciences)p Fc(,)f(23:109\226113,)i(1998.)-169 3161 y([21])42 b(L.)23 b(Stryer)l(.)40 b Fa(Bioc)o(hemistry)23 b(\(4th.)g(edition\))p Fc(.)41 b(W)-7 b(.)22 b(H.)h(Freeman)g(and)-3 3247 y(Compan)o(y)-5 b(,)20 b(1995.)-169 3330 y([22])42 b(E.)21 b(P)-8 b(.)20 b(Xing,)i(M.)g(I.)f(Jordan,)h(R.)f(M.)h(Karp,)f(and)i(S.)d(Russell.)35 b(A)21 b(hi-)-3 3417 y(erarchical)d(Bayesian)g(Mark)o(o)o(vian)h(model) e(for)g(motifs)g(in)g(biopoly-)-3 3504 y(mer)j(sequences.)30 b(In)19 b Fa(Pr)m(oc.)g(of)g(Advances)h(in)g(Neur)o(al)f(Information)-3 3590 y(Pr)m(ocessing)h(Systems)f(16)p Fc(,)g(2003.)-169 3673 y([23])42 b(E.)17 b(P)-8 b(.)15 b(Xing,)i(M.)g(I.)g(Jordan,)h(and) f(S.)f(Russell.)23 b(A)16 b(generalized)j(mean)-3 3760 y(\002eld)h(algorithm)g(for)g(v)n(ariational)g(inference)g(in)g(e)o (xponential)h(f)o(am-)-3 3846 y(ilies.)28 b(In)20 b Fa(Pr)m(oceedings)g (of)g(the)f(19th)h(Annual)g(Confer)m(ence)h(on)f(Un-)-3 3933 y(certainty)g(in)f(AI)p Fc(,)e(2003.)p eop %%Trailer end userdict /end-hook known{end-hook}if %%EOF