From e059f46e77f5106185c5ebd6be7c5c31c2fbd230 Mon Sep 17 00:00:00 2001 From: jprocter Date: Fri, 9 Feb 2007 18:02:18 +0000 Subject: [PATCH] This commit was manufactured by cvs2svn to create tag 'Release_2_1_1'. Sprout from master 2006-09-12 10:01:52 UTC andrew 'Copy consensus' Cherrypick from master 2007-02-09 18:02:17 UTC jprocter 'running jalview from the command line.': doc/AddingGroovySupport.html help/html/align.jpg help/html/colourSchemes/textcolour.gif help/html/colourSchemes/textcolour.html help/html/features/amendfeature.gif help/html/features/clarguments.html help/html/features/codingfeatures.html help/html/features/commandline.html help/html/features/creatinFeatures.html help/html/features/crnewfeature.gif help/html/features/das.gif help/html/features/editingFeatures.html help/html/features/multipleViews.html help/html/features/newkeystrokes.html help/html/features/seqmappings.html help/html/menus/alwformat.html help/html/menus/alwselect.html lib/vamsas-client.jar src/jalview/analysis/Finder.java src/jalview/appletgui/EditNameDialog.java src/jalview/commands/ChangeCaseCommand.java src/jalview/commands/CommandI.java src/jalview/commands/EditCommand.java src/jalview/commands/OrderCommand.java src/jalview/commands/RemoveGapColCommand.java src/jalview/commands/RemoveGapsCommand.java src/jalview/commands/TrimRegionCommand.java src/jalview/gui/EditNameDialog.java src/jalview/gui/TextColourChooser.java src/jalview/gui/UserQuestionnaireCheck.java src/jalview/gui/VamsasClient.java src/jalview/io/AMSAFile.java src/jalview/io/VamsasDatastore.java src/jalview/schemes/ScoreMatrix.java src/jalview/util/MapList.java src/jalview/ws/JPredThread.java --- doc/AddingGroovySupport.html | 122 ++ help/html/align.jpg | Bin 0 -> 14648 bytes help/html/colourSchemes/textcolour.gif | Bin 0 -> 21788 bytes help/html/colourSchemes/textcolour.html | 20 + help/html/features/amendfeature.gif | Bin 0 -> 28030 bytes help/html/features/clarguments.html | 82 ++ help/html/features/codingfeatures.html | 16 + help/html/features/commandline.html | 35 + help/html/features/creatinFeatures.html | 38 + help/html/features/crnewfeature.gif | Bin 0 -> 24348 bytes help/html/features/das.gif | Bin 0 -> 37535 bytes help/html/features/editingFeatures.html | 26 + help/html/features/multipleViews.html | 58 + help/html/features/newkeystrokes.html | 33 + help/html/features/seqmappings.html | 22 + help/html/menus/alwformat.html | 56 + help/html/menus/alwselect.html | 29 + lib/vamsas-client.jar | Bin 0 -> 422445 bytes src/jalview/analysis/Finder.java | 308 ++++ src/jalview/appletgui/EditNameDialog.java | 111 ++ src/jalview/commands/ChangeCaseCommand.java | 133 ++ src/jalview/commands/CommandI.java | 30 + src/jalview/commands/EditCommand.java | 650 +++++++++ src/jalview/commands/OrderCommand.java | 62 + src/jalview/commands/RemoveGapColCommand.java | 106 ++ src/jalview/commands/RemoveGapsCommand.java | 120 ++ src/jalview/commands/TrimRegionCommand.java | 178 +++ src/jalview/gui/EditNameDialog.java | 80 ++ src/jalview/gui/TextColourChooser.java | 213 +++ src/jalview/gui/UserQuestionnaireCheck.java | 140 ++ src/jalview/gui/VamsasClient.java | 275 ++++ src/jalview/io/AMSAFile.java | 96 ++ src/jalview/io/VamsasDatastore.java | 1900 +++++++++++++++++++++++++ src/jalview/schemes/ScoreMatrix.java | 67 + src/jalview/util/MapList.java | 395 +++++ src/jalview/ws/JPredThread.java | 634 +++++++++ 36 files changed, 6035 insertions(+) create mode 100644 doc/AddingGroovySupport.html create mode 100644 help/html/align.jpg create mode 100644 help/html/colourSchemes/textcolour.gif create mode 100644 help/html/colourSchemes/textcolour.html create mode 100644 help/html/features/amendfeature.gif create mode 100644 help/html/features/clarguments.html create mode 100644 help/html/features/codingfeatures.html create mode 100644 help/html/features/commandline.html create mode 100644 help/html/features/creatinFeatures.html create mode 100644 help/html/features/crnewfeature.gif create mode 100644 help/html/features/das.gif create mode 100644 help/html/features/editingFeatures.html create mode 100644 help/html/features/multipleViews.html create mode 100644 help/html/features/newkeystrokes.html create mode 100644 help/html/features/seqmappings.html create mode 100644 help/html/menus/alwformat.html create mode 100644 help/html/menus/alwselect.html create mode 100644 lib/vamsas-client.jar create mode 100644 src/jalview/analysis/Finder.java create mode 100644 src/jalview/appletgui/EditNameDialog.java create mode 100644 src/jalview/commands/ChangeCaseCommand.java create mode 100644 src/jalview/commands/CommandI.java create mode 100644 src/jalview/commands/EditCommand.java create mode 100644 src/jalview/commands/OrderCommand.java create mode 100644 src/jalview/commands/RemoveGapColCommand.java create mode 100644 src/jalview/commands/RemoveGapsCommand.java create mode 100644 src/jalview/commands/TrimRegionCommand.java create mode 100644 src/jalview/gui/EditNameDialog.java create mode 100644 src/jalview/gui/TextColourChooser.java create mode 100644 src/jalview/gui/UserQuestionnaireCheck.java create mode 100755 src/jalview/gui/VamsasClient.java create mode 100644 src/jalview/io/AMSAFile.java create mode 100755 src/jalview/io/VamsasDatastore.java create mode 100644 src/jalview/schemes/ScoreMatrix.java create mode 100644 src/jalview/util/MapList.java create mode 100644 src/jalview/ws/JPredThread.java diff --git a/doc/AddingGroovySupport.html b/doc/AddingGroovySupport.html new file mode 100644 index 0000000..6726612 --- /dev/null +++ b/doc/AddingGroovySupport.html @@ -0,0 +1,122 @@ + +Adding Groovy Support to Jalview + + +

+Adding Groovy Support to Jalview +

+

+There is currently no scripting language +extension within Jalview, in part because a +scripting API has not been developed. +

+

It is, however, really easy to embed scripting +engines within Jalview. We haven't done it +with the Bean Scripting Framework, but the +code snippets below show you how to get going +with groovy. +

+

Modifications

+

+For each class below, add the following objects and methods to their definitions. +

+ +

+Finally, compile and run with the groovy-all-*.jar (get the jar +from the embedded directory within the groovy distribution). +Then, you should be able to open the Groovy shell +window from the Desktop's Tools menu. To check things are working, +try a simple test script :
+

+  
+  print Jalview.getAlignframes()[0].getTitle();
+
+Executing this will print the title of the first alignment loaded into Jalview.

+ +

TODO

+

+Using Java class methods from Groovy is straightforward, but currently, there isn't a set of easy to use methods for the jalview objects. A Jalview Scripting API needs to be developed to make this easier.

+

Making it easier

+

jalview.bin.JalviewScript could be a top level jalview instance of a script execution thread, creating and maintaining the context for scripts operating on the jalview datamodel and interfacing with the Jalview GUI. +

+ + + diff --git a/help/html/align.jpg b/help/html/align.jpg new file mode 100644 index 0000000000000000000000000000000000000000..451ccaa82ae5c74c74c392d454f23243b8e8fd39 GIT binary patch literal 14648 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 literal 0 HcmV?d00001 diff --git a/help/html/colourSchemes/textcolour.gif b/help/html/colourSchemes/textcolour.gif new file mode 100644 index 0000000000000000000000000000000000000000..a6591567e95ab438723bc954f1f9aa669de56df2 GIT binary patch literal 21788 zcmV(>K-j-WNk%w1VR!+X0O$Vz009621ONsWR{|Ga02*o?9~=@Eg8(6W03&q+8n6H! zr4b#U1s%lzER6#ttq?4185Pe99?<|XmH;fm04}=#E6fBtbO12IGBYs`IE4T*-T*ht z4m_LyIn*>WXBjZq3^eEfKhgj_-vB<~4LIEZJ?IimfC)p-07d8kOwRyH+yF@N088Zn zN%9dy-~dkMCQXO{P~ibi@EcC608`}vRo^2|pa4|n09EGzRPG{Jh5%Oe09N<1DFgsn z>Ht~s7f-2h$Z09@?=Tl5TA>QYinGgX+ZF%SS?@d9D&0ATq5U;n}^03uW8 z5?S*AX75W{Wvw?F0A>9gT<8F5{{U_ESzTWQZ2lKz@D*hKu01cYJ|zHh{{VFT9cKC0 zHv|%I`Xg!XJ!iKxX~`9w8A58V*gq7}LmpFaiV=JM=RF5&Yi8d+7*=tHVQ+lSNGMEq zn{sbrRB@{nt`miOCC&pz}QkT9*h6sQ7mtKh2&H% z=T;-+R5oFQs#}7=DUkmoz8-*pde~c1OmLOHbC$Pym9FS+RAZI(ft93^l8R)nb3)5P=yX|_m4}R&nRK4WgqX^7pwxV! z!s&crgrB;EpUj(`nx&$Yn5C@hhi;XqxSW{&kF3Xut~CRuD0TxckP&g zp|iu1wC$a?&atzw=AwtVw5FN7+?BuQp1bU_!qcPDva7@IwZ+TxubQOC^2Woo!o|X` z%Hpic?Z3_2veWp~(8Be@w!PK#xY+j1%>K>R-oe@Nx7`29+3Vfc!rR!&>(tTN+}gq7 z|Kr`r?$^`d;Me5f(aY!m(dGWwgLze>;CBH-r(u+`QhH|>Dt@t|K{uN z>Fen2?Bnt6-stT7;_vxj_w@Mp?)m%p_Wb_& z|Ns8~{Qv*|A^sIZa%Ew3Wn>_CX>@2HRA^-&M@dak03rDV0SW;B04x9i004Lan*cxv z{s7zb^XIQkii0W=CZs{5$`FT3h7chlaiWon7&B_z$g!ixk03*e9BJf-$&)Bks$9vk zrOTHvW5y)ngQm@zIB)9A$#bXAoJd9w+0Qnc<<`X%XhEezJUJ<4orBk;lee9 z)R^m|vE#>(BTJr4xw7TUm?hiwad)m_x}Ou*4NZEqY0#%dqh77Lb!pbGU8jDnn4u6M zG-AYH7(+;Jf31oYyVa`rsZ*emgVJOv(w{V4;BDxTzySjhE@=Fqp~Qpt?-soN2k@X| zN%x0Uj65M|fIW`&{tOuL*Uvywe)Z?qU!R|#zmobH;6qY4B*h*PM!d(~eDT3&01@yF z#NLAR8Q>s<6gF5PgYvQW1AYeJ;GTOp;6OtTIXIZZ5B~7eqKoq3AYq6(kf>da@s*eZ z4mI*)ABZ@%=OYdvikRbw^_9ruiZ4LXqXA7mNo0I1=Ex#`E!KylKLrM9WP9=D0Ar9< zhUg&;N~Wpinryb|=9*5LxZ|920)gTSQTg+SCVVc}oQwW6GDshN5E958N%SKE2_HBR zK?yR@z=RT1C}BkwVu;~|re3V^g%_ZP>O~f$j!LQ+q+%+@rK+NO>Z|^$rYftem}aqQ zt*LIBDXpmTnrW%8W_l~Gss383sjiwTE2&mA>#Va`TnYvl(OxQTwa-G^EVkLE`fRk^ zHcM@`*@8i?vs7T4g}LW4dv3N=SdnhJ&C{T8gRyi`!Z zL=#)Q6Gs{l-x0^dcR-8=8ewD{h7(ixgF*`>TmS(HDyTJ1Iw+?zjyox%%yP>pk8`rh zG|wEf$~MCsvpYGbEVIr#pDZ-bF|X`1&@|WFv(P`|e6z|d&)l@qLKl7W(l#6YbJaRa z&9v4s%lz`wNOLXq(@me9bl779EjH3+Up+P4bk}Y7-Cc`qwEoXyuk1I<=Iy|q? z!2}LKpaBhIq|kQVMw^ojJCw5%Pdt>1(~UQK!<=>0gs**b)GuotbTZLMyX?BdEj-?y<34yg&qtrK^ng!qJ@nH* ze>d07?=ChufeZh4Ix=){fdUbHz_{Z)KTmWv(wuV-Km6QdKR)Lm&_Dx7@DmFH5;%Yj zs&Nl_l%pT=2uCt-(Ti=6&UQy5TI4?sm(BmgDas9!3V<; z(l8wW7#i7XI72AHaAz%S;miP_LzuNNWg|qH51R-?o`q3_ev_fmLfA5LaB&<*RAS0> z2uBGPQH(KTqZ4y?vg7GY1|p!q0@4?QE2Lm=Mq^z%h=Ge_Oye8n_y#z@AxTPtqa4tv zBsjFeNpMg@8_Yz>vmtncv)*j$?EJ4sXZ= zCNPl+Q^evIzlen?bh^#3=_wiox*ZP>4VEVM$|}N1R#_gGRL?D?{o-ID%A%Plahxh4@BX zLJ_D?92^@(7*i^S6s9RXBL`io#?^80j4=&s629~3H4k($ywVpDtK`yKFT z=MD!JbDP$5hxSreK0*3(3^kZp>D>7?WbQS1(9_;xQRdflbhM3uz2F5|R?XD`R%eX$ ztSWoyG|5^svc24!Iej-aR<16fwG;j(_Qb|nvdztBe>1JpUOT?XhE8xk_1oXHrpltV z4wuAp9Wqlp+g-L+wbE-}*I*}5KeqC9P-9(3iPzVBUe>RsVm_{1nqv5NVz3x9ODjN>&Q`WDwX>t=Va zioLASguyy;7|qAto$P6eS-q?B_sB@@?-|PmVgwIvmJOC|k?Z!~Cu25y0bWKu>``F} z=i|Z|4sm<4XJr9nSr78Yc9a~K4JY=bjOIos(t51K8}$&}XrS3x%sullI^3~o30C@g%$`Y=!Y8LINNlocfc5ip?TqlmzY3Ea3 zGufXb^gx3ax@QkmxGb$De2;c*XnQ-isq40I^(yXfCmU}EMx?9P&2F~!&bLDYCo)^W z&l&&oklh1vD^LAR^%hfiIs`0HKlb5| zd?-U17J#f}Ex-@2yS?gd&qvq8{`P&ez3pD7U)Alw4hyK+W{Ac(WcA%|rw0_+^rURV z!&_&83Os2t$F85lD__ayjc0{j0Ik=T^IfCT^MTJS@OTS!m&v!%>1MlLM=fIDwkz#bExM?98~{pLG=`O2RM^O;}a^+O;1zHdJCecyg|WP|&t{QTjU zeq*DZe)RtbUx>GVr`CV`=Rn)!OPn=;vS(~CGdANj0yVd1?1O;%c4LR8SiK{FJJ)lb z2Rxx?fFNgh|8{}3*K|C#PTS>I-34^Mq&i{42|8c_G+2W+c!M~YgF3i_Cg2GApbxf1 z4w*26J6ME9c!V_AgYKXY37BZ#l!C7%bF{~FvS&N^WN=ECd-G*@if4NrSb}_&GyfNG z1vp;(qcJw}H97KMcuSpOz_uZ4S+=X$ueHvyt70cdyvHE;qU-~zcA0xS>$x!3_N0E`_l0v&(?!bptBC;}ZY zjLbL!!HA5_2#my7jKPQ1aIH`=r_>48_k_*|6BN>i0S&a%QlLkow>v%r?Ko({Z7jF>-V{ip)5S3R@ zl~y?hV-N*exs_bmm0tOkU>TNTIhJHumS(AyT9B4%xt46%mTvi$a2c0!IhS-vmuGpG zc$t@axtDDj1zO;jRiFh*pad6z0~sL%X%Yl9paLO0uTD2{GbV^P#pBr51J4O&M^oBu@8fA2Y=87{Lldv zPyy&80w|CJN-!ySpafZf2jAfVct9$6;00O$27?I(3geng(4(%oqD;PBs_O z@u~^Ym<(~BFVL8Fp&Po9pa~kGETF3px~sq%p}#7uy858K>Z=c0tI1ldzY46r`m8MQ zppEIQ%bKjq>a4-~tPolix_YeL`mN8ptlXNQ-0H2`x~n-ruIH+**s887kgo6guIoCl z^J*1WVHH_X6uly>p5UTJ&U3rZ+Q-bixHTY-6*<^LG@dfJ7U!^@MJ=^t7NhX;eG4pjK&(6=|k; zwAEBy<3L_|#(5dHQQ064>|hTP;v)P|4Wv*BqyP)=V0Q$;59@Fa%Ww>u$TysLI$(r0 zud_#@mq#&^U{-Z>U(_{c0XW zN3(l0GkfH@j9YC#gha+AZ=jV`4~ItZwMW@hJP_wL)3Z;8MS(A9O~kMa;UEw201xUQ z59$C9<)9AbP!94C3kOgJv!D&fi@cBoNy`untp1<~B?nG{J77q+x^F`?y|p&e#x!#C zOJTS*5NE!`MO7cCfK<4N0##3{l{=~Uvjw(6uvA-WS71R4vx-QC^(BZ;hcn{iYy~EH z#WXdGr@+K?I_D-nndUPq-~tnfvd6_z(6bAu;0n5+4A1aMp7afLZ~z=I12(`6)G&3_ zpbWkM3zz^0N3aT>mVtisLNfG1a@13Ev_dvhQX`Z_Rs>TmWkVw5W0?!YCFDU;Q$rOL zI9%jL6$CvX1x0I=O(lg#kcUK8Ts^ZJSLxJ6KO{6S1ymn2yK^K)hs#5NqeAJFK~Z!? zLR7?fWK%gz#cR|uas@*|B|}7`M3MV5{#ItREn{Qv_G5_TOfVyBn|Euu1ion#JL7;1 zm=Fu2fCb0k4UqM7hzEkqRXdNRfkKACyJa(+C0nlsPP6n(;*@%d^jXTbZ7c;~h}c|K z(}&?pWK2VPfQP}$#cabxJIVA*$aPM=+&~y&LucVmtYY`fX0?en&m-EMO7{pQs+!nX?4!)%v5O=Mc8C%(}i?QTRoPiVBI#z zeoN1U+lWC2X;VuK!XOI-UC^K437l|c`!;$59M5W}dZD(=!ozxvS2rZq4;Y=%8okjR z-O(Q1V#ExyF=k#gmRO>^&&rklT_N~u)$>g&_=Sv{Ph-JO(%GVE**3)omq;Vic&_?HeJ~|byj_pGo%$@lSVhgRyUy=x=Bk6TgGMe zkPq|#W@6??qW#Q9H;8(>aD468w4Gus)(;2PIjtX9t<7i)!0WB7Jm*~Nl-C}aZ&i`vUz%}_cZg=arV7|Ol#(`gI!7fcT*-@fJBRmQ%EWBS&I$R zk(i3ZeQ29ZVE&($GkfcWE#p@xzE{!gK#rw*!!QhTw-5SY4~{N(`Ct!_ZVv!p4~-6C zl@0*;008<>+NW*llFnsw_vred48~vrUAuM=mJjIggK`G|=umc#z7HXV>9ua_nojFn z)aaGo>Gkk~71j>sfPW&cYqPh7p@>ZKMCe}#WTlr`ruK0n_gIpB$iSoLyQYQhl`}tM zI215zX&B-|<_=K!XwGbUTI+#;PUu-)-lm3Kp?86ez3x+Z?8*Lt(VTl0KnuCh4io0q z;nxnA^Y7wU@Kg=(0N>W)2k`XJ4zxfE_{TT8M-TCU4op4p3y<&@pYWIC)(BtmM{N$> zkah{E{&NNRa(^z(_pW$d_=))bg|1hJwfARiNISr$+*dPC>EPkLjZKAzi6Q87bXeS? zSlqwXbDOwb;U#o})ruat?EThsM}KN~)q16NJw^9q=G0^KoN6a7%d-`}gQMZ(RNdd} zZq_6`sm}5sm^Im}?XDN?k>~T5Xn-jm?|z7f!Cmjn+<<$iJ6wM<%{qG^fH650D7PbDWC*ma0Q+I zvIcpO2Y?{`hyVzPfC!X;{ndZ{+~57)|NY<}{^CFWfEiQfOqw-q-o%+x=gylrU{;9<^k-0_LyguD zinOTGqe-1EecBZ2RH-mS)(`@d2230@R0xrD&L6*h{>+};mzG~YfBhtFxUkScf(ao` z#2iv%NEBOKhAgrbQ81AuF>xH`cUbY_wTk;CUL0BSWW#l(jfM}FAsappLTlTHr3 zxpC*ot53I1U3>Pe#A(oQP9sJP@hViXc)?H8E%vQiodN|)lO{`+B1QVcD9)6A9VRev zfPo2IP$7ok@WA7hA$VDY3tOUi1rH)T@L&ldfV$8u1KPsD2OKoq&>sUlB+Y;i`!V1& z6g6z@LlF%y!b9TB`mHw~Ki0JM6+fT zQO+QHW04>5K>Y1AF!>>I&b5pz5wyd$dQ`ZsB!zU+NH4WC(@Hn3vO5ob5{ZTvMl~-z zOF%gVK265jClVU>=p&Fj?wEof5-O;`fe1Q~p@ttiVuC_phpo^9Jd~h9i64pp(E!ql z_<=10ei&<7YEis)S{D6*LP%;wB;to~fB4n_B8q^v+HA{JR>N=0HPV1~MQj&aZ`Hk5 z#B%rbmfU5@mGXyfMP#Baay2vyU~qphg4}}nS=Qit?G@2ocT4;MV{sy||n|Iz}W+;k=;)fiT zW;zETWbh}DNGzcbl(Ss*Cm%xi;DZn}lJI8)5j4=X1R2Ct!U_b56&67+yvQQ%EUcj0 zin;Bkd+xjGKFi3stV?!@!nyKXC%z}xQ7U3dL%(lcKj@Yq|o-E+DF?;P{LBi|kM)WO(-iY<-@ zgLo>8KfZY8mtX#P=A}2DiQ=2bK6>M)$G&^-zXv~j?z5+UdnTx8f(a&?XrdoC1_>lT zMi_~t5&O5^nh!R@=z*UWRsg{TB0vHe;NS;L_<<7smhgipSRo2o5Q7!OV7j|aaCFHd z9TlvgLDp@sZWufq={~1H5Yml=B^=%1R2RYwVo-!26rl%gM}_32@PaiYUFTHj!VGTD zhu0$?^BxC1=v_~HKLn!ljHtxzm9L0T)SeQ_$3!U_v5C>^o)5K%MJqlrdsif47{xe7 zGM3SdM5LY-n@5H9sc#EVXu=OR!78$lg>t`P5o=@ycIZImB(w4WxB`hb|N<@ysmx@eBFctne4tMl&k>glF2QHw12z-DBW2nI*gE`G~ z6!Vboux2%-NlkZ1bDN9|CN{AdPH|3CoW%rZHQgafbei*<;Cv@K%Slam29ub=6lFTA ziAZ@0lbrN4XF#=iPIHcvp4cSjIT6}UfBLhL>NKcA2};gx%Cn;OTqrs3`A~!=l%UrX zr$;3kQF@BBqbKcVLVbzSm8O)X#9U-YO*+zYvXi3Wyr(`_YEziDpaT?800cDf%oG^Z zqtrAdK#|H&r8ZTmIRz+G?YYl;Ce*3#09Ax(RO|_t-f4r zH>Wuc87PyP&YXxhODfrJn!_C8zz06^QI@upb}XS4hd79_4XVl&t2u=#WD#l4MFs$= zI5p}xw+dTn20*19?WJwATGhrfRhR)dr*N~HR^KwzqgI`4bopt}l0uZJ%7v{{rAtrY zLbtjRRjhWW+1;|17o)+nElkZj+}Wbnuy9R>a?uM`bvE^(vwdhx!O6~KQeXkiBx-Sy znvHXaV;!ow$8QWlfDC}+9Y`Pm0the)e#nC@_Xx*1Tyc!nPByLd4S;Wj>sv(HR>a3N zF=FEjQ*C;)xy7{YAxYfZ{&9r3#5Im>a93R7_=3~6)->^s(*b}Xk2k)<#3nh2OibT0 zxwbu4@^IY|V<(RT04Z*Ah-;iu5jS_XRwXhc!@T13;y3`q^zxC(kz!wpn4i6!=8}7? zT=@bZtz)+Bm7m<^8V8fec*e0i06^p*H}b_juCkVk$>Q5Cnw`Fsfe8Ey0TMiO2#=*F zIfx;RbKK(|@3;p%LVXW;Oye2qxQ8JOzyS#yg4E?G$2a6rj%fr#6dZ1EuD==LLHCx| zLtf;SZMZf>8}vtD_w1 zaJkFDQ4VM{;1KfohBm;l^PGR<8_)=bE(De$v z+SfJhy=1EQ)4u3asyEk^ulzw%T3N`K9IL_vId4z}M?eKvhy`Ep1!YhMW-tb0K)nXk zg;;PsN05Re=!9#qyK$nt^I|B1!?qIhEke7eChI0Tdn_X3H|07c6wJ47t1-6fF>1m- z_LDCXJhyZ6vOi<4g7dX6Yo{i&vhQ279;~+)Yc3|+!7^h%K&!YId@>uOvx1Ak9$PX& zEB>-JyTT#ks6(ql9K9hF<6eR)B?AFosmXf>3A%Yxpp>Iy~wtD_y(2=i4r6x~Qtcufa?N_x~*fHE%~a%ON_c>^1G@-#q9IAkHaZrDlVrRJ70pgr~0S7lPttyI^Bvc zUDP#|k}~nqzUk7dq}ryKa)%B4#IRztbXb8Am^A;}thwqc+(RU9s0ByBf@6@aoKi+_ zw5zkjsAI~zbjq%xBQE44Kg|-Qqw2=@3ao-!N9Q^^P;4!|lf|X0zID4MRgA>7{&Oi+ zG$u$yzWi#$uk))8lP-8PEb*Jfj|0Y}gT9BPE=+{1a|Aqse7}myD8SRINb@fM8-o-m zI<-PMw!1^B(k*ntzjW9@k6bEp+{b~!!-3)~7VAfOIz@BjIO#Gxr9#Bv(eL`wZ?FMoSDe?vH78#H|rOnoCvz~rfbvcKOG zsD4sB__`^nR6bm6cm%7G#EqmzqI@U*NOUcIYQK^^ zN~DrX#jCG-+6Bt7&D+Gy+`P?x*oA)BDRZ1Ba%ju`i_5~(HTudv$~-S+)XV)6uVAyd z=#rKQ5y}0^sI+@s0V$phtPZkzT#0F9jO#$Q5dDEAI1JrD3wte%?Eur#&HZL z0X5JrB~X5-P484I24$w98p)Ncyp^O$z{9`&T&QAd&h2DHVf)ZJtIh7>M^Rg=ZBZqHPQztDR6%7cT<`=laMouv13O64U!|y!;>g63C`c1`o!r-g^4ES%$@F8qP5Q8eeA9^Cthn+!=Tum9EH8snzJ#<{hulhnB3kDx+TjaJ zx?0+jJ-S1rN{3R~vm(2*%h`(6TI0ktlw8eH6@mVXfh$M>Sd~@lvMOOnvNkl?vV2O8 zjKrSxRcwvfw|Xyl&A+Fs%7)TPpS{fL^4szZsIEoIqP5wZZ7PLw%Bq!GS)@I~HCnx; z+PT_2IhDk9ir3#8Cyfmyt=mVEm8t}7fv^oK{>&oDcG|!XQ_DK6B=b@`wMD2`45qVO zs=EEv*jlgiQ%t;bE|v7wj%7xqyw9kby>oO}G!!S)#5>vxT{S&NUku*CV_Q6oskhZv zR{htleb~BlT*czqVt;pzX$;y+{wk%*53yvAZhp?AHC1E;a1Nj-AM`5+{1iP%;!=?afn>YSmda zt_)nH;k>M|O@U$E;Cmgs_2nn@En&)&q`XDOnANTc)9ni_y)q!PTi?dh@ z-7JgWcnr#Ui~%)^vLG$nOp6>@1|0~e4Ghn+WL?d&$>jpM!!uz3)hfWW@3hB^<)PNXsAafWHr=RqXS(uHA@+$WVAEet^(HCYh9N;NrQUH46R@W zcFGUyFF90XvTaUvcH|jeC%yjsX4nNeP^MS2iz&^@NO;{yLRCXhc2o1*Dp4K=U})6! zWKVS9hf}5phX#O#Ue5ri2WNBWjjjiJXip*~()OI_d06OQMn_Q=(v8*!0GJ1Rm0`EOj&|sI$Oe-RE3-Y@{~affJlVEw+ckt_jWpR~rBt?M;n_3c zpkAkK4%)aQQ<4+ePrhmf9_p9WP?SZx>*dGkBI}Z6*|QbP3q{%44cZC@<)F3zTF3=@ za8i1(>$}ctyXNZ@#p}G*>yDlWyDn0`#_Pe(1zPy!-y(-=uz-%<>%&gbc=+qemh8Wt z?8CO~$ad0shzE1{Y5w2+t$W2>_w}fH4pe>?Yq)0Lw?1mKE@8W#YCZ7=~^z;3$EZtPC% z?C$RF=I-s*?(z0+@)mC`CdP5_1`|MrZg6jJaPRo;25x}w`SynT?uPru@A=Me_oi?E zmhbq!?`t3i6X;lJs^qt2!{Oembw)eZcIyaVXXlP^wT8r(gx$E!Sx&y~rV8KE71=E1 zKoPgs6h`6OKJDYy&^k{tC}-=M)Zf?q?b7DT`_;rCe=}W7sd-F3crwV` zs=iGk^mlAVn4GHnDydA~DB2}Rv`ebhMCvK0N$Jk=ueRs^jc_POaC)rp^(F1=J!>t^ z>X0Q{;Z9%D26d!%aO8e%6uv03PVr7xUk*myaC%B$l4RO0*smi-=aVUhJSf<-+KzvSgx!mCPm>}pdtYkbCXYkhNfAoUT~TnQIsDc@s^#PwYl^VRlN4;$S? zPIHp}gzoI6^Wv(I@@VH~rH`{nV#~&1e1Acm3Cg{n(fN*{A*5XZ_X3eaqMV+~@t>_x;`n z{@)k=;3xj!H~!)We$3bW%fEa`p#0~5eo6oYL;!^82L#DqgDh}?3or|0IDr?a0gDj- zjJSd?_yRFFfAlwh^*8^wasT&+|M-{x`KSN-xBvUc|NMU&G2s9H_y7L~2r&W&5-e!& zAi{(S7cyMv1xyx*5+hQaXt5&3iyAX>+~~0*$d41Vd?6|3i8S+Ai4hb|q!^N-=#U{%hKv~#CCZp9Pp>qks$|KMmqfO5?f&ZZE7-7N z$C52;mMqP*YS*%D>-H_&xN_&pU2^s=-n@GEdVM*Bh}J4Zs`#i;ScniBG=#)Z;W)+# z#Ews#2tgsli47DeEErle#h4mOm5#9mb?MTiLqz*%O~c3Q*sy2Iu1)*4?cBI`>+a3_ zx9`|OjNmA4{5bOD%9k^5?)*9QCYP% zQUm*I9ExMm*o3atDNU9vMe5He5+i{W638BV{K1VR7f_JE0tpOtLJgs%wv;VgL}80+ zNfA*)4P4>y9*7@`7$S)ynph%=C#sktiz~X=;(OC&R|5?++E^ow{x|BFBab`!*dvfX z3K=AkKYqxed^jpbnb5X{3`H@F}I3ipuGzrILCoY(g++sdk@w`e}6i@S_|*{a4BFGCQrY)k`$#nx+kfv9M-sTqZ(uUu*How{IJR=x6Ja&{%Bk>4*k&ZaBRv# z{93}rvFh?Zu=x{ob}ToVGY+*<8fj}RZx`&tL@QggKU5!GovJ?bW59blUo9y=wHj6{ z$F0>MtIURRympw4%9?PnAd_tX&tVp3*xhF1Z8zV0`>i+NdAD|{VL=2jt_tL`fMz6c z%E`|@{P@>Tqk9Yz$esJtdoKeWbPxmH9^moHFwvO)$}4zy;K2~9Z}kHaJ}9j;4p4+` zzz-Z7;Ipoi8ZrCUKfpTa4>{nF!w<@Wiu>)#|Gxfp4hA$oY4b`yZ$R|Z>qYp%{%VCzp(bFx$Bw(`A_I>JpGp1Z)^DJ+v>jlyJHVUah|q6^zknT-&>fi zeuuyP4R3$cOQ8Mwfj#d@(0IkWAo4PZ!3}D#gB<*z2a#7C@*S^)ICuelSfD}{_#+aU zIE9?_v$k68p$|12#GUw2feu8#0Sp*{3tr%Zt0=((uZTwEqJcWqMWKjzP{I$Q=st)= z(H|1zpAq<{MdAssR#_xo7Ju-?{Yg=GTfAcKwzj+<@S`7;Yo8Tym&Wu3&wF*e;`i(* zNAmSViwayG?!X5|;*n2`y5plEA*e_M8vej`wi0Cjv?xU}M$rgdwB-J*cRMjEZFyNV zfUFYP$VutZl3V*D_|PcDLjHi2u3RN7qxec$#Q~)Q%gKOWlvibfeQKj)x#*)kA6<7pa1+6J6V=arP*_9MF1b! z$oPXIOtc6Eg@Pk>$H+$33ZsoeUJ)J&1p`8Cl<$0KqilClh(gSww%WlDnn2MaQTa4yygj)ko5CR^FZGS;$-wI&rF`%TS;_OVM~ zY-25p+Qow5w4HS<6>8O3Dokp&tzE5Zzd2jWLe>gPsH_qe8`{eHHng)v?Qcu_+Rv)C zx5BM#XoHJe*E;vOjODClzscIhN_Vrj1%q@uo80KK_P1bQ0(#TigeIgHy<1?yd(qnj zDzLY`?zJxz;tSvR#+SYR^@VSG^(){26ZpOc2C#h-tlkAHfxZ50!VY%ohC%!x63%F0 zTic3Ee-wiaYzRXS{Lumtlt8Z}V8IXSX@x9YK@47a@fyAm;}^RaC1S|JjUDUR9fM)V zRshwCd(2}Y``EIIpt``9Gwc*Tf)tdczo$Rj6~B|e5SkBhA374z1yPwp~AQmbVl zGg--4R&0;U9FZ;?*|SIHvYX%RMJ;2Y(1cB3V+u(~g1zr; z?;a$f2mbc=6tJ<07PP?AdzFC-js?4{L_rHtSi-{_o>(m?w$b(tr-C!Car9!my;Kv|Rk?f>{9l;AyuB}fuYY6S@|o+r<|zL;(1R}Yp(ohC zO^9g@mb!x+$Y2LDXnKSr40Rb0yaX#K0l`rKf@qR}1S+5m*uxI?6o|d-Wv$c#3SAvibwo7 z#zBt9FTV1Jr+nork9o#x-td{J=~f!&{ylu75r2U5|L!)1LK) zpSBxTL(I0vF8=n60k9_%6Kl}E3zVVqizx{FE z`oZ7gS>OAWALN~0`JvzSRp0ypVEW;o_2D1;Ip6`}U*sL&1Y+Lww~-U-yX^# zAr_z``X3~|-y=$5BobmF#-SkMVFLD^@*&{_QljE1A@?nS6GEZ%mEaA2q8nOa=eeQ& zVO|!Z;pxGj`jMXDVV?Vy-YTA+>6M`BsUYL!q64-d1%{ym(%=ZL-vYKD_JJV&GR7bT ze&P95p)|hV1g2mJT4M-4;|i+ZHD+T8h9fpc;02bWIF{oD3gI>q;0Ma!0#e@*X5SK$ zA_+X<_)(th>EiUMA{OrB=D}b4rQa@Uo+{d4Kb{~!=3g)BBP13d8oHkt%3&93VjprL zMdslc0w3(X;VteVEmmO|;^QIS;Y4O69VQ??`e8(_WFv-QOG=_kx+Eo9qacDI7ycnA z)}%l3BkmPo35dW1kfH|IBSWsCB#Hw&!~;Fx1LW*O}J;KMqcLpEH4KpN!_CLGM+(>o+^Un25u!U`XdE?CFl*KLb72$`l2hkpey#G^nL!N73!Z{reP7P z?5LBO0svdC%w_=m-#7#SSc;|M)#d}@q8d6LZ>rwr z)uu8Qry45c8s26;2Ec79;~Mhj;?-vFkwb0D;_ERd>NzClRi|LuW>!`nZtmtGqGckM zBo)dg-U^5S6MmmP3MMW}gJ13r|)IS|7xAZI?313w-hbpC?qY$jfH(q{J2W`2%n z`=Mx7(q@T{Xnw|MiDsUOrl^YECIAEg0B{~|hNp|(CX1rzeagbf_D0BuXi;5+RGHH?8Cyq`ji!v$ZVJVZAXmc`YbQ&p^5+|89 zr;Y08IAH0QZl!a!rv;owfKm!l} z5~#yHl*2vjLpg-QGKhjTv?fB<;s8>hkuoU&?5LEsX>(3sh(4Z+aw-1#C~e;6nto@B z=4hHiDRV|%h)QXUCLRFHDdYVrbBf{NVJDE%DUgod{;=jBbuy-trh~9TtE$GRc)BST zM&7R?-mg~cZ00DGuAhFUXa;txjzTMPLMw=_XMVP63A!nC{_2iuE4e}|c0#GHQmeU2 zDgMPPiH4$+%IZ}fC+fLF3G8VT)*}?!VD>$pG)Tia+(SRS!#%*m#NIk=5FF6ck(NUGM=15tLri6j#jJt z@g{ZxXLLd-lIm=;rfY3_D>>}wudbh|4r6}8U(fn0x>6?xX5Y)Qs^gg|dgkjbPU&;f zDAq#WjLu$orYX28UbfmSd*0`XE?%}8YyScMz}RYQ)MjA39x2n_UWslkx*F|{o@n+R zEqjvRZ=S23PCye5rT7hOLjIIEWF6wfEBCsy$-ER4^;QpDQ z|LG+G1|&qLU>jcF{av3oMy6N7VjBKBo+b`%Ip*UhZl(IAp;$g7a&qu0h9dhJ;TjGu z0CL_KHe(?|pfHMLTpFMcYA*otA4-C7B~IQoav&M9F#7%?S{`Kfp@0Z*Mg&}D;~uBt z;X*J}!~KFo>6Y&3mV+|P04<2_H)w+xgM&7N@iZg@Ea*WfXyZvCVS(#IxdN7riYHQ*&gEyYj3XJ?i<%J>>@CE67AK- z;%z@lb= zF%+{lJcBYMGb%^{Gj9VAOCJ@6>C(z3%;M^Z9_yT+pQfIGjX*^?Vje4nUE_JLLo|W2XRm191ucw)U>ro%;Q@@{1OX-)Q zXWC}<1m@^bM`w-}{^_{S98+Q8lyMV z0w%bEF8G2nFvBxE12y~t5|F_x(1I{CgE9C*EWpAgyulH4f;Y4-Rtlz(7Hf+3YP71Y zI=?fk;w`<#YPQNK*V1dLCT*#fs;v60B*tvb>TJ*A>U{$2x~6jxb7zV2bh&D4Zi6kh zf~PX>t!%F0Y;!fQ!tHO*>~Bx^vNA2JnyWV7=MBy_*CO|v=HK2Tv>AT$73QWZ6Q&6R zp$KZi8HP>seZtaUscWZYoy22lb@2FG9YtLSHjPk2=#_QRttpNe` z6bkF|YPDkZ%vPR?<0sMTtJ9t!-HPYbHmSNUEszRrxaR70H!FOCcaYcXOb4ssNjK2` zZN4tDIHPbYy7B;S10A}br~04_i+MVX7!$g$VJ9>idP6g;f+FaF9>75+n8Gg@gDJql z5wt-k9D_A@!)t0LmVadRmfm@4C1Wb`M}Bf_!m)(op~Bv&_2wn_da&(P=jGvIUY9Zu z=XL!haYF7VY);>73nmnsZtXq*-cZLVEKnm!esvTpxgDPK6W22k; z9(U&_!>+1~t}H%tsCTY& z{0-u`+xrf`W9|NR=k2GMe|%(0{VJMeDtCb57IqYZWaD!^+;2YAm;KRm{7HW2A$PMj zN-sRJ;rD9e9Hc|-&jC5y{y5ye?c4tD+rB&S{u~5 z)T`gw*S|Pha28&=;;k>A4k$pROGj>;yMp5cx)Yerok4-*8X{zf&>%U6+aS8z#{SS@ zM~M>;Dx??yKmd~^O{P?tvLwouCrP3tnQ|e+ISUbfoLG}*&xH;T`pjuiVY-kyeg4d8 z)M3q!L6r*BM~vz+s#I~!|z;K?D*$t_(@qP+-ua36VC{m~b0ku4)_i6$pTHXV0HOhZfyA0N=M| znI8SBR^rg7IFAk;I6HN1uwE&S3)$FULENZwLw2`JmaI?5k0+`l3Tj8Sz$N#V>@;F? zs7Zt04l0o^V8{vKLf++%e0lTd(Wh76Z&$y8Wj%ge;exPX8i^;OMteJB{%gq?8v>A` z$|i!yHlAYhY^4QNa%rZS9ONvf0Kh_M4xk>&%)89ga!V(N-1>_<)i@kTCyPb|3Pjov z^eHW3^2ui&dg6&^o@|hL#Ka7HvdFEox=JfDiZH8b!~K9P5w42T8Be_@pqMj7p~r=A;g>~pcqI{GuoNQbo3Cy&@#QX(g#>@-S#+7ooFfh?LYOT%iw z52T*NbdFL;iMmK3jfxtPtwIlSQ_fxGED5*Ma&sq}V^k^D*kh6YO;*`unQhkDXP-T^ zo@uAW@eydT%{JLpwAEIhc{FmX&P_cn_eoIQv&gyBbPJ3=ElIdfv4^;dRU+>u^T;v+ zX}y)P)*f=pAYFMactKxls#Cg7*wM!xdgiewpF|g(r=E5so_3y%IqrC4do1?Y<3%T) zc+qLw;n>EIH$Hh}mi0l|;*{r!2V#hc+2>nD?ZL;|mMuQ{;&~i~80CsN));A#A8wgu zj*A|-9hs^A*yxLwrl+2M#u3t;B^Tn<+_A|+ceV|EbjwsNHAr>dQO8Wt&#wC=>deXV z6jisf2sYU7nZBzNMR$-vhP-~x;|FoX%j4&8#`}ppa)167hn(`sDL)T#%rV!zbH+2j zT=etykycTytzG=^$1Tr%a?V2+9dpGmpWN})Wk3A(*ITcgc7OD7kEc4rCfj&_%!cU0 zLLXXtOShkk45Kn-^|K)+@y_=$K=jH_|&#?}1u+cl~+^wZC&UG~jazkT=L zXI_5z-zP?&m@SrZ*hlaOzx&xweZ9e7W7=iF04^|nfszRE1R}QMdCF`i5(#aJLJsF~ z2|w#w3*G)B9MfcPBh~Adx+nslqx21YyOPjOzLqA0{Dp>W3K$L9a>E*WjYp)~VGaEv zBqO1SR2ur>4so-LeDJRx`9Oy_j`4^iPLWMB1pZ=E(t<=J_V9>RqT&|Ov=az6X@X-j zn^_XrymvhhKVKSD2rYxX62{7IAq-U9yw}1Oa_A-?Qs4qt^~d;?Wp4~rAV?H=NI|kM zBIF>(CzMkMN!Gy(W&j`q3$;ktEHZxb0|_PpsTshGF)yVwWnTJ$sj*~mgEbh#5M*-^ z6pm>laZF(?wU@xxoDjt$ zu$fIkv;&#bEMio$=%PKT>zm>Prj;-?MqsXUHR^*5IS1mrcwHd{^_n9t`2|Bcs%v_= zw9GDr6B|$t^n8yI<{ZcY7ln>vp$%o|{#zdE(1t=(q71d@L@^psjVknO7xidEW2n&6 zRFtG2?I=bm`q7W3^d=>BsY+Y=7MZp*q2nsZ^>CU~o$i#UIt@z>xKc40!ROpK zvdaK*WRBVKO{D6jnzVh9s#W!xzV0P=$$riVa+ zCp*mwHx4NiuD?Xe-bTgBHGUvfQTUFmI>N8YfT>Ik5yq@;YQle(NQDG-Z2PzhrlY9P zE4@J=W&KmgLaMMS@B0oBEt{Lkj#jcaW$Pa~OWOQEMYN>d4Ix*XTG^_mAOM={K}6eA z-R^d$zF{j@$2uPhEC2#Sy+RcJ1~nkW^7DGQOwm#c>r{g#)0y3@tEK+>%UOo#t81~L zS1;wmopck2E3z(jsbiM&w#ZJ80dJ6IlU87MjWrp-KfYnZe5n9n0~pUfQmQ2U*U3@C51iu9w>|JEwh<_`p;G&YQRG$$NSaTkDLfG58h9Pg(3w?n#;J-BisYgkd!C`{p!}B~9DARfY1# z6b-{>Owkj|qAk_pJBfL<<;?DD2wPeGxKr4{nQoqdeL)u&sIZbE)tS+3t0v2>FLf@i zD_Mq9Qe1?`_C+O?Wl0cQsR4xm48J*DSP?&zBDMpc|d)Men&c zlAd%Wb12sq%uc@On>}%3O0pS;n?)c@>%@9Gs~QZsmIQ2MemXfovz9em8VTKS(J`^3 zYVBj8ym3GJ8#6P^u2|jS4NjO~8sBjIHyZy9Z9x9G_QCpn?1T1-lZG5PVc=T*L?8tEcdSM{ zBH`Ei)*Mn){{}DscP}3hPyhk&|MKA(n85_l zL?bMKJa~^E9B2115CZ|wac+kJ`GEkDCj>pP|2UBM1aJW9K?2p!dK#@>{AhZpgoK#N z{)Ub1!otUp4K477xwtJ~q{+SnVg*EC0u-RQMlS45Yy6VT_{L8BAZ+*m?pKzg3V);E z0*$^_Zf=MuKbC65n!+0_U>KeuM$GUG(NF=;(ErSk4cD*@(=Z?S0Rk;xUD81e)6fm$ zPyri|5A`q(0RRrwkRG~00^LpRuuagyF4oeI5oZnK(4w~LZ$&_;(b#H08pEiB1KaTa zh%ZWjK9111kc-#qrm5_1gq&;c;thmq2~vU(Pa25qj>B_a>Ja1baEX91M)rpou@N1v@fXoh8JkfV zfiW4a5gX^h9O_Woo(lW!t&yk)<4DNv^eGDQtX9Yh5?>?Gs6_4Lky4^htV|^o`--WW z%N8+Z`R-}f6jJ355mMr>`MiuRSdRSYuiLgzGw{zCj6q@|W?DdIAJAc1Vx}GdAY`;A z07&u}=|NHIfhC2}VkkyNgpnSAVHna8GRC1A%}`PDArOT|QAV;Pk8xU#5di)`rX`Ki zVv4dJR`Ow}g&wj&0vD0tXayB(FnVSs?GP&~d96ss4xqH>^n}O@x3KOO%nN5Ou{21i z?yR50kJg%sBT6wVaSFqdN*)Uc%F;_BCov(>PlS+7@VW-H+6Dh=GHCPx9p+(TlIC0H zVJJc7F(tDkza=q)W>G-qC@&KjV!;pt<_<03Td3t*=pg`j24Wu5XoS)+17IFdl4FLl zVvez8kft39k-^~7ATM&`0_{JxQX;7`F75B)e$crJ@=yBFxwwtm=FK5iU<3e66w4Bh z!jdlQPT2m6NVK#5Hc=h>ttOgE6ZP)&j_=)E@UMu-8Y}=9Xn`KwQ~qlf#Xai*ADB`; z>7g^+Q!?EX0Nm4wv<71Qvp#Qz7JeZerDGiM4?f?MWA3vhHpVktGe1l6K1pIm@G~_P z^gV4;D%;H>nMyqCW*zfN{zx(HRtYm0vGDM%2W?3_t?fW|A}E9`ItS82$CDt>1QP>G z*4(iwqs;~p5hvQQjy3`!-ctP-66NlaF2O1?}C#mr!qiP(T)riR+fjwg2LRskJX;*PxwiBl!q44{*MWP>>{tSB5EZ$@9tG> zDL4~VAMH&HpOhU`wH;KoRoj78RTUjr6;@-lRaf;^ZFN>*l~v2M?8re3Uo{@kp;d>K z9bR=+kJVUh)m3TrRc94hmz5o|;Tkw}Hs~mh00ao*(XjN6A5D(tK=eqHG?y}!9^nmd zhOI?PWytL8xJ=P3eRS=zD#3hIuolugH6tG34@Zeq&W2O4LiMcTCMO*M2K-$SOb7G4YPI^%T{`3x2QXGzH*F+Ku=T~Xz@T97)Quq|xq z5%-lMDT6zK(@1&r;_7HR2vy?rw3yQ2RcGX6T(TuSk}1h{Bok#~BqnXqkY~=YB_#$J zU9KS<<`-d7G!rFJfCg#y5Dps<7!$=|f~VwYE=LKgA8*jd?g?i7X;hW;X%}l|Zw*Q9 zW;H1BXeppDBGo+i^=@d^JgpM`Ky}}+C~El(FxL*3K6g}eG)7m&KR~Uwt_RdM$@!A) zU$&wxe!|a|5aCG7#Xjv48LYj|1d&KgR9yx8cGnTlRXMS>JeBI}f<;rG4MFhgXpK=j>`Kf| z_NH=ytX^_ZUlelN3bjQ|$lhcLQEwDDt&(Ra7b1HT5n0!=y3k!tWuBtor zw?y;G2{V;M{pE0P47e&QA$=CY^v&8bs4f?bNjU;1SE*7mCbKsYrp!jv-(kjk(btR(x8N^UFXGT9hZ&(mQlHK+?G~^ z57%BHMO?{_>_qf#28%r9tu}BgB7c}Mm?nKx2^~pNUB2STNZ~j7m{JB6EZ=fTK{sA~5IOS|3c(Qj zjJZJcBem{|e~GW_Vi(RLtV$X#hn5FWJdA>0F0Pd9e5W&lH<>K(X-_9|;ljCT$&Zok zm1uWuoV?;WCjegLg$8KA2XH{6U*H9B00?9t2V_77MEayhI;BY(rCC~~Wq<`zTBKLH zq(!=upV;ZT2x}=X<23p{#TVMs8+Nqlw zs;OG4ncAkE8mqBdtEbwlZQ2FAx~a4Jsi``vnHmMadaX;kt8JRBwVJ1u`ljU?rDvL? zjk*PD+NbAQsAbxvk(#diTCjUMsqI>@f0_k!+OU6`t*d$kj=BU!zyTJ30Vd!APJjX~ zV6!*-vM>7rKAW>edjd3Dv`rhdDS)&uyR=c8v^hJqU7NK{TeCkqwNKl%O`EiB8?{SY zwpAOnJ9`2`TeNB0vpGAqSsS-sn*v~4w^tjrFQB)9d$XB)w?TWjPy4uKo4JJ>xTX8L zyPLR6`?DP&x}Tdex?7vLZ~L>c`?ZxjyK_6cQ#-k5JGwiYx#1hSb6c}z`@Ykgy + +Background Dependent Text Colour + + +Background Dependent Text Colour +

The Colour→Text Colour menu entry opens +the "Adjust Foreground Text Colour Threshold" +dialog box, allowing the colour of symbols rendered on dark or light +backgrounds to be set for the current selection or the whole alignment. +

+

+

The dialog box contains a slider, and two colour icons showing +the text colour for dark backgrounds (left hand end of slider), and +light backgrounds (right hand end of slider). Drag the slider to change +the threshold for transitioning between dark and light background +colours, and select either of the colour boxes to open a colour chooser +to select a different text colour.

+ + diff --git a/help/html/features/amendfeature.gif b/help/html/features/amendfeature.gif new file mode 100644 index 0000000000000000000000000000000000000000..39cc53a77e44b7d30812238a9b7ae38712a9b73a GIT binary patch literal 28030 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�zBD$gV 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 RFeJ%|2SqBhc(GtW06TZ|?lk}a literal 0 HcmV?d00001 diff --git a/help/html/features/clarguments.html b/help/html/features/clarguments.html new file mode 100644 index 0000000..45dfab5 --- /dev/null +++ b/help/html/features/clarguments.html @@ -0,0 +1,82 @@ + +Jalview Command Line Arguments + + +

The Jalview Executable's Command Line + Arguments

+ See running Jalview from the command + line for more information.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
-nodisplay
Run Jalview without User Interface.
-props FILE
Use the given Jalview properties file instead + of users default.
-features FILE
+

Use the given file to add sequence features to an alignment. + See Features + File (Known as Groups file prior to 2.08) description.

+ +
-annotations FILE
Add precalculated annotations to the alignment. See Annotation + File description.
-fasta FILE
Create alignment file FILE in Fasta format.
-clustal FILE
Create alignment file FILE in Clustal format.
-msf FILE
Create alignment file FILE in MSF format.
-pileup FILE
Create alignment file FILE in Pileup format.
-pir FILE
Create alignment file FILE in PIR format.
-blc FILE
Create alignment file FILE in BLC format.
-jalview FILE
Create alignment file FILE in Jalview format.
-png FILE
Create PNG image FILE from alignment.
-imgMap FILE
Create HTML file FILE with image map of PNG + image.
-eps FILE
Create EPS file FILE from alignment.
+ + diff --git a/help/html/features/codingfeatures.html b/help/html/features/codingfeatures.html new file mode 100644 index 0000000..a828545 --- /dev/null +++ b/help/html/features/codingfeatures.html @@ -0,0 +1,16 @@ + + +DNA Sequence Coding Region Definition + + +

DNA Sequence Coding Region Definition

+

Jalview includes the standard DNA codon translation table in +order to be able to dynamically translate cDNA to its expressed +protein sequence. DNA Sequence Coding Regions are sequence +features that can be defined on any DNA sequence in order to +mark stretches of cDNA that will be concatenated to form the +series of codons that are translated by the " +Calculate→Translate cDNA" menu function. +

+ + \ No newline at end of file diff --git a/help/html/features/commandline.html b/help/html/features/commandline.html new file mode 100644 index 0000000..fadddce --- /dev/null +++ b/help/html/features/commandline.html @@ -0,0 +1,35 @@ + +Running Jalview from the command line + +

Running Jalview from the command line

+

Jalview is most easily run from the command line if you have built + it from source, or via the 'Jalview' executable created from the + InstallAnywhere jalview installation. Both of these mechanisms allow + true command line execution of jalview - allowing you to provide + additional options.

+The Java Webstart version of + jalview can be executed from the command line using something like + : +

javaws http://www.jalview.org/webstart/jalview.jnlp -open
+ yourFileName
+ But, this is not guaranteed to work on all versions of webstart on all + operating systems, and doesn't let you execute Jalview with any + additional parameters. +

Running jalview from the InstallAnywhere + installation

+

If you install with InstallAnywhere you can use several more commands. + However, if you call the application with the link provided by InstallAnywhere + any output from the application will be sent to output.txt, not standard + out.
+ The jalview application also requires a number of additional + libraries on the class path. The command line below adds the Jalview + installation's 'lib' directory to the list of directories that are + searched for jars to be added to the classpath:

+
java -Djava.ext.dirs=$INSTALL_DIR$/lib -cp $INSTALL_DIR$/jalview.jar jalview.bin.Jalview -open [FILE] 
+

Use '-help' to get more information on the command line arguments that Jalview + accepts.

+

 

+

 

+ + diff --git a/help/html/features/creatinFeatures.html b/help/html/features/creatinFeatures.html new file mode 100644 index 0000000..0ebb52f --- /dev/null +++ b/help/html/features/creatinFeatures.html @@ -0,0 +1,38 @@ + + +Creating Sequence Features + + +Creating Sequence Features +

Jalview can create sequence features from the matches of a regular expression search, or from the currently +selected area via the "selection→Create +sequence feature" entry in the selection area popup menu. In both +cases, the Create Features dialog box will then be +opened:

+

+

Select or enter the attributes for the features being created, +and then press OK to create the new features.

+

Each attribute is described below: +

    +
  • Sequence Feature Name +

    Either give the new features a new name or use the menu to + re-use an existing feature name.

    +
  • +
  • Feature group +

    Enter a new group name, or re-use an existing group from the + pull-down menu.

    +
  • +
  • Feature Colour +

    Keep the existing colour for this feature's name and group, or + select the colour box to open a colour chooser to pick a different one.

    +
  • +
  • Description +

    Enter a description for all the features being created. Each + feature defined on a sequence may have its own description that will be + displayed in the tooltip for the feature in that region.

    +
  • +
+

Sequence Feature Creation was introduced in Jalview Version 2.2

+ + \ No newline at end of file diff --git a/help/html/features/crnewfeature.gif b/help/html/features/crnewfeature.gif new file mode 100644 index 0000000000000000000000000000000000000000..5aa6edbb99cc347864c4623200a06d48d914c9dc GIT binary patch literal 24348 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 literal 0 HcmV?d00001 diff --git a/help/html/features/das.gif b/help/html/features/das.gif new file mode 100644 index 0000000000000000000000000000000000000000..1f884cb68eeded63927a05c30169f866d442a9af GIT binary patch literal 37535 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 literal 0 HcmV?d00001 diff --git a/help/html/features/editingFeatures.html b/help/html/features/editingFeatures.html new file mode 100644 index 0000000..ff4d5ca --- /dev/null +++ b/help/html/features/editingFeatures.html @@ -0,0 +1,26 @@ + + +Amending or Deleting Sequence Features + + +Amending or Deleting Sequence Features +

Double clicking a position in the alignment with one or more +displayed sequence features opens the "Amend/Delete +Features" dialog box.

+

+

The dialog box only allows one of the features at the +double-clicked position to be edited or deleted at a time, and it will +also be highlighted in black in the alignment window.

+
+

Select Amend to update the feature, Delete +to remove the selected feature, or Cancel to leave the +feature unchanged.

+

Sequence feature editing was implemented in Jalview 2.2

+ + diff --git a/help/html/features/multipleViews.html b/help/html/features/multipleViews.html new file mode 100644 index 0000000..da811d4 --- /dev/null +++ b/help/html/features/multipleViews.html @@ -0,0 +1,58 @@ + + +Multiple Alignment Views + + +

Multiple Alignment Views

+

Multiple alignment views allows the same alignment to be viewed +independently in many different ways simultaneously. Each view is an +independent visualization of the same alignment, so each may have a +different ordering, colouring, row and column hiding and seuqence +feature and annotation display setting, but alignment, feature and +annotation edits are common to all, since this affects the underlying +data.

+

Create a new view using the "View→New +View" menu item, or by pressing Control+T. A newly +created view will be identical to the view it was created from, but any +changes to the way the alignment is coloured or displayed will only +affect the new view.

+

A particular view may focus on some specific aspect of an +alignment - for example, hiding all but the region of an alignment +containing a particular domain. Right-clicking a view's +tab opens the View Name dialog box, allowing it to be renamed to +something more meaningful.

+

Viewing Multiple Views Simultaneously

+

Multiple views of an alignment are, by default, gathered together +as tabs within a single alignment window. They can be viewed +simultanously by pressing X (or via "View→Expand") +to expand each view into its own linked alignment window. Expanded views +are gathered back into into a single tabbed alignment window by pressing +G, or by selecting "View→Gather"). +

+

Hidden Sequence Representatives and Multiple +Views

+

There are some unexpected interactions between hidden sequence +representatives and their display in multiple views. See the +corresponding entry in the documentation +for hidden regions.

+

Structure and Analysis Viewers and Multiple +Views

+

A tree calculated on a particular view, or loaded onto it, is by +default associated with just that view. However, the Tree Viewer's "View→Associate +leaves" submenu allows a tree's view association to be changed to +to any or all other views.

+

The results of a PCA +calculation on a particular view may also be associated with other +views, using the PCA Viewer's "View→Associate +Nodes" submenu.

+

Currently, a PDB Structure Viewer +opened on a structure associated with a sequence in a particular view +will only be associated with the seuqence as displayed in that view.
+This will be resolved in a future release +

Multiple Views were introduced in Jalview 2.2

+ + diff --git a/help/html/features/newkeystrokes.html b/help/html/features/newkeystrokes.html new file mode 100644 index 0000000..12ea967 --- /dev/null +++ b/help/html/features/newkeystrokes.html @@ -0,0 +1,33 @@ + +New Key Strokes and Menus + +New Key Strokes and Menus +

Many new keyboard shortcuts have been +added in Jalview 2.2 to make editing, selecting and navigating an +alignment even easier. The selection commands in the Edit +menu, and the alignment formatting controls within the View +menu have also been moved into their own respective Select +and Format menus.

+

Some of the more important new keystrokes are shown below : +

    +
  • Page Up and Page Down + scrolls through the alignment view.
  • +
  • Control I inverts the currently selected + sequence set, and Control Alt I will invert the + currently selected set of columns. +
  • Control V will paste the contents of the + clipboard to the current alignment window, and Control + Shift V pastes the data to a new window.
  • +
  • Control O opens the file browser for loading + a new alignment or Jalview archive.
  • +
  • Control S saves the alignment with the + current filename and format, and Control Shift S opens + the Save As... dialog box.
  • +
  • Control T creates a new alignment view, and Control + W closes the current view, or if none remain, then the whole alignment.
  • +
  • Control E will remove gapped columns in the alignment.
  • +
  • Control D opens the Remove Redundancy dialog box.
  • +
+

+ + diff --git a/help/html/features/seqmappings.html b/help/html/features/seqmappings.html new file mode 100644 index 0000000..46fcd59 --- /dev/null +++ b/help/html/features/seqmappings.html @@ -0,0 +1,22 @@ + + +Mapping Between Different Sequences + + +

Mapping Between Different Sequences

+

A new feature in Jalview 2.8 is the ability to map +between sequences in different domains, based on alignment, +or by the use of explicit mappings provided by databases. +

+

The most familiar mapping is the one used to identify +the coordinates corresponding to a displayed sequence when +viewing a PDB file associated with a sequence (see +"Viewing PDB Files" +for more information.

+

The newest form of mapping supported by Jalview is the +correspondence between DNA and protein sequences. This mapping +can be imported directly from EMBL and EMBLCDS database records +retrieved by the Sequence Fetcher, +or by the definition of coding regions. + + \ No newline at end of file diff --git a/help/html/menus/alwformat.html b/help/html/menus/alwformat.html new file mode 100644 index 0000000..d7224b3 --- /dev/null +++ b/help/html/menus/alwformat.html @@ -0,0 +1,56 @@ + + +

Alignment Window Format Menu

+
    +
  • Font...
    + Opens the "Choose Font" dialog box, in order to change the font + of the display and enable or disable 'smooth fonts' (anti-aliasing) for faster + alignment rendering.
  • +
  • Wrap
    +
    When ticked, the alignment display is "wrapped" to the width of the alignment + window. This is useful if your alignment has only a few sequences to view + its full width at once.
    + Additional options for display of sequence numbering and scales are also visible + in wrapped layout mode:
    +
      +
    • Scale Left
      + Show the sequence position for the first aligned residue in each row + in the left column of the alignment.
    • +
    • Scale Right
      + Show the sequence position for the last aligned residue in each row + in the right-most column of the alignment.
    • +
    + +
  • Scale Above
    + Show the alignment column position scale.
  • +
  • Show Sequence Limits
    +
    If this box is selected the sequence name will have the start + and end position of the sequence appended to the name, in the format NAME/START-END
  • +
  • Right Align Sequence ID
    +
    If this box is selected then the sequence names displayed in + the sequence label area will be aligned against the left-hand edge of the + alignment display, rather than the left-hand edge of the alignment window.
  • +
  • Show Hidden Markers
    +
    When this box is selected, positions in the alignment where rows + and columns are hidden will be marked by blue arrows.
  • +
  • Boxes
    + If this is selected the background of a residue will be coloured using the + selected background colour. Useful if used in conjunction with "Colour + Text."
  • +
  • Text
    +
    If this is selected the residues will be displayed using the + standard 1 character amino acid alphabet.
  • +
  • Colour Text
    +
    If this is selected the residues will be coloured according to + the background colour associated with that residue. The colour is slightly + darker than background so the amino acid symbol remains visible.
  • +
  • Show Gaps
    +
    When this is selected, gap characters will be displayed as "." + or "-". If unselected, then gap characters will appear as blank + spaces.
    + You may set the default gap character in preferences.
  • +
+ + diff --git a/help/html/menus/alwselect.html b/help/html/menus/alwselect.html new file mode 100644 index 0000000..34438cd --- /dev/null +++ b/help/html/menus/alwselect.html @@ -0,0 +1,29 @@ + + +

Alignment Window Select Menu

+
    + +
  • Find... (Control F)
    + Opens the Find dialog box to search for residues, sequence name or residue + position within the alignment and create new sequence features from the queries. + +
  • Select All (Control A)
    +
    Selects all the sequences and residues in the alignment.
    + Use <CTRL> and A (<APPLE> and A on a MacOSX) to select all.
  • +
  • Deselect All (Escape)
    +
    Removes the current selection box (red dashed box) from the + alignment window. All selected sequences, residues and marked columns + will be deselected.
    + Use <ESCAPE> to deselect all.
  • +
  • Invert Sequence Selection (Control I)
    +
    Any sequence ids currently not selected will replace the + current selection.
  • +
  • Invert Column Selection (Control Alt I)
    +
    Any columns currently not selected will replace the current + column selection.
  • +
  • Undefine Groups (Control U)
    +
    The alignment will be reset with no defined groups.
    + WARNING: This cannot be undone.
  • +
+ + diff --git a/lib/vamsas-client.jar b/lib/vamsas-client.jar new file mode 100644 index 0000000000000000000000000000000000000000..e0c7d9564bcc31ac235375a2d15148b38ac1ecb1 GIT binary patch literal 422445 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

d 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
Kf3AT4-e^71!@)+hl;sgOL+Ge< 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ÐEyyW^WxiRt1 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

-rJg}z4 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

MIBK8Lns1WMVc5Txjr(W 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%0A2DrjC%4xQ7-S-<4nG8p{eSj8y{%OOPj9Z@q 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 swee%ge=3>b?X$E^8R&)Oe?Fb8d=A sequence.length()) + { + end = sequence.length(); + } + else + { + end = regions[r][1]; + } + + if (start > 0) + { + newSeq.append(sequence.substring(0, start)); + } + + if ( (caseChange == TO_UPPER && doCommand) + || (caseChange == TO_LOWER && !doCommand)) + { + newSeq.append(sequence.substring(start, end).toUpperCase()); + } + + else if ( (caseChange == TO_LOWER && doCommand) + || (caseChange == TO_UPPER && !doCommand)) + { + newSeq.append(sequence.substring(start, end).toLowerCase()); + } + + else //TOGGLE CASE + { + for (int c = start; c < end; c++) + { + nextChar = sequence.charAt(c); + if ('a' <= nextChar && nextChar <= 'z') + { + // TO UPPERCASE !!! + nextChar -= ('a' - 'A'); + } + else if ('A' <= nextChar && nextChar <= 'Z') + { + // TO LOWERCASE !!! + nextChar += ('a' - 'A'); + } + newSeq.append(nextChar); + } + } + + if (end < sequence.length()) + { + newSeq.append(sequence.substring(end)); + } + + seqs[s].setSequence(newSeq.toString()); + } + } + } + +} diff --git a/src/jalview/commands/CommandI.java b/src/jalview/commands/CommandI.java new file mode 100644 index 0000000..d97a6bb --- /dev/null +++ b/src/jalview/commands/CommandI.java @@ -0,0 +1,30 @@ +/* + * Jalview - A Sequence Alignment Editor and Viewer + * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ +package jalview.commands; + +public interface CommandI +{ + public void doCommand(); + + public void undoCommand(); + + public String getDescription(); + + public int getSize(); +} diff --git a/src/jalview/commands/EditCommand.java b/src/jalview/commands/EditCommand.java new file mode 100644 index 0000000..d0a2e03 --- /dev/null +++ b/src/jalview/commands/EditCommand.java @@ -0,0 +1,650 @@ +/* + * Jalview - A Sequence Alignment Editor and Viewer + * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ +package jalview.commands; + +import java.util.*; + +import jalview.datamodel.*; + +/** + * + *

Title: EditCommmand

+ * + *

Description: Essential information for performing + * undo and redo for cut/paste insert/delete gap + * which can be stored in the HistoryList

+ * + *

Copyright: Copyright (c) 2006

+ * + *

Company: Dundee University

+ * + * @author not attributable + * @version 1.0 + */ +public class EditCommand + implements CommandI +{ + public static final int INSERT_GAP = 0; + public static final int DELETE_GAP = 1; + public static final int CUT = 2; + public static final int PASTE = 3; + + Edit[] edits; + + String description; + + public EditCommand() + {} + + public EditCommand(String description) + { + this.description = description; + } + + public EditCommand(String description, + int command, + SequenceI[] seqs, + int position, + int number, + AlignmentI al) + { + this.description = description; + if (command == CUT || command == PASTE) + { + edits = new Edit[] + { + new Edit(command, seqs, position, number, al)}; + } + + performEdit(0); + } + + final public String getDescription() + { + return description; + } + + public int getSize() + { + return edits == null ? 0 : edits.length; + } + + final public AlignmentI getAlignment() + { + return edits[0].al; + } + + final public void appendEdit(int command, + SequenceI[] seqs, + int position, + int number, + AlignmentI al, + boolean performEdit) + { + Edit edit = new Edit(command, seqs, position, number, al.getGapCharacter()); + if (al.getHeight() == seqs.length) + { + edit.al = al; + edit.fullAlignmentHeight = true; + } + + if (edits != null) + { + Edit[] temp = new Edit[edits.length + 1]; + System.arraycopy(edits, 0, temp, 0, edits.length); + edits = temp; + edits[edits.length - 1] = edit; + } + else + { + edits = new Edit[] + { + edit}; + } + + if (performEdit) + { + performEdit(edits.length - 1); + } + } + + final void performEdit(int commandIndex) + { + int eSize = edits.length; + for (int e = commandIndex; e < eSize; e++) + { + if (edits[e].command == INSERT_GAP) + { + insertGap(edits[e]); + } + else if (edits[e].command == DELETE_GAP) + { + deleteGap(edits[e]); + } + else if (edits[e].command == CUT) + { + cut(edits[e]); + } + else if (edits[e].command == PASTE) + { + paste(edits[e]); + } + } + } + + final public void doCommand() + { + performEdit(0); + } + + final public void undoCommand() + { + int e = 0, eSize = edits.length; + for (e = eSize - 1; e > -1; e--) + { + if (edits[e].command == INSERT_GAP) + { + deleteGap(edits[e]); + } + else if (edits[e].command == DELETE_GAP) + { + insertGap(edits[e]); + } + else if (edits[e].command == CUT) + { + paste(edits[e]); + } + else if (edits[e].command == PASTE) + { + cut(edits[e]); + } + } + } + + final void insertGap(Edit command) + { + for (int s = 0; s < command.seqs.length; s++) + { + command.seqs[s].insertCharAt(command.position, + command.number, + command.gapChar); + } + + adjustAnnotations(command, true); + } + + final void deleteGap(Edit command) + { + for (int s = 0; s < command.seqs.length; s++) + { + command.seqs[s].deleteChars(command.position, + command.position + command.number); + } + + adjustAnnotations(command, false); + } + + void cut(Edit command) + { + command.string = new char[command.seqs.length][]; + + for (int i = 0; i < command.seqs.length; i++) + { + if (command.seqs[i].getLength() > command.position) + { + command.string[i] = command.seqs[i].getSequence(command.position, + command.position + command.number); + + if (command.seqs[i].getDatasetSequence() != null + || command.seqs[i].getSequenceFeatures() != null) + { + for (int s = command.position; s < command.position + command.number; + s++) + { + if (jalview.schemes.ResidueProperties + .aaIndex[command.seqs[i].getCharAt(s)] != 23) + { + adjustFeatures(command, i, + command.seqs[i].findPosition(command.position), + command.seqs[i].findPosition(command.position + + command.number), + false); + break; + } + } + } + command.seqs[i].deleteChars(command.position, + command.position + command.number); + } + + if (command.seqs[i].getLength() < 1) + { + command.al.deleteSequence(command.seqs[i]); + } + } + + adjustAnnotations(command, false); + } + + void paste(Edit command) + { + StringBuffer tmp; + boolean newDSNeeded; + int start = 0, end = 0; + + for (int i = 0; i < command.seqs.length; i++) + { + newDSNeeded = false; + if (command.seqs[i].getLength() < 1) + { + // ie this sequence was deleted, we need to + // read it to the alignment + if (command.alIndex[i] < command.al.getHeight()) + { + command.al.getSequences().insertElementAt(command.seqs[i], + command.alIndex[i]); + } + else + { + command.al.addSequence(command.seqs[i]); + } + } + tmp = new StringBuffer(); + tmp.append(command.seqs[i].getSequence()); + + if (command.string != null && command.string[i] != null) + { + if (command.position >= tmp.length()) + { + //This occurs if padding is on, and residues + //are removed from end of alignment + int length = command.position - tmp.length(); + while (length > 0) + { + tmp.append(command.gapChar); + length--; + } + } + tmp.insert(command.position, command.string[i]); + + for (int s = 0; s < command.string[i].length; s++) + { + if (jalview.schemes.ResidueProperties.aaIndex[command.string[i][s]] != + 23) + { + newDSNeeded = true; + start = command.seqs[i].findPosition(command.position); + end = command.seqs[i].findPosition(command.position + + command.number); + break; + } + } + command.string[i] = null; + } + + command.seqs[i].setSequence(tmp.toString()); + + if (newDSNeeded) + { + if (command.seqs[i].getDatasetSequence() != null) + { + Sequence ds = new Sequence(command.seqs[i].getName(), + jalview.analysis.AlignSeq.extractGaps( + jalview.util.Comparison.GapChars, + command.seqs[i].getSequenceAsString() + ), + command.seqs[i].getStart(), + command.seqs[i].getEnd()); + ds.setDescription(command.seqs[i].getDescription()); + command.seqs[i].setDatasetSequence(ds); + } + + adjustFeatures(command, i, start, end, true); + } + } + + adjustAnnotations(command, true); + + command.string = null; + } + + final void adjustAnnotations(Edit command, boolean insert) + { + + AlignmentAnnotation[] annotations = null; + + if (command.fullAlignmentHeight) + { + annotations = command.al.getAlignmentAnnotation(); + } + else + { + int aSize = 0; + AlignmentAnnotation[] tmp; + for (int s = 0; s < command.seqs.length; s++) + { + if (command.seqs[s].getAnnotation() == null) + { + continue; + } + + if (aSize == 0) + { + annotations = command.seqs[s].getAnnotation(); + } + else + { + tmp = new AlignmentAnnotation + [aSize + command.seqs[s].getAnnotation().length]; + + System.arraycopy(annotations, 0, tmp, 0, aSize); + + System.arraycopy(command.seqs[s].getAnnotation(), + 0, tmp, aSize, + command.seqs[s].getAnnotation().length); + + annotations = tmp; + } + + aSize = annotations.length; + } + } + + if (annotations == null) + { + return; + } + + if (!insert) + { + command.deletedAnnotations = new Hashtable(); + } + + int aSize; + Annotation[] temp; + for (int a = 0; a < annotations.length; a++) + { + if (annotations[a].autoCalculated) + { + continue; + } + + int tSize = 0; + + aSize = annotations[a].annotations.length; + if (insert) + { + temp = new Annotation[aSize + command.number]; + } + else + { + if (command.position < aSize) + { + if (command.position + command.number > aSize) + { + tSize = aSize; + } + else + { + tSize = aSize - command.number + command.position; + } + } + else + { + tSize = aSize; + } + + if (tSize < 0) + { + tSize = aSize; + } + temp = new Annotation[tSize]; + + } + + if (insert) + { + if (command.position < annotations[a].annotations.length) + { + System.arraycopy(annotations[a].annotations, + 0, temp, 0, command.position); + + if (command.deletedAnnotations != null + && + command.deletedAnnotations.containsKey(annotations[a]. + annotationId)) + { + Annotation[] restore = (Annotation[]) + command.deletedAnnotations.get(annotations[a].annotationId); + + System.arraycopy(restore, + 0, + temp, + command.position, + command.number); + + } + + System.arraycopy(annotations[a].annotations, + command.position, temp, + command.position + command.number, + aSize - command.position); + } + else + { + if (command.deletedAnnotations != null + && + command.deletedAnnotations.containsKey(annotations[a]. + annotationId)) + { + Annotation[] restore = (Annotation[]) + command.deletedAnnotations.get(annotations[a].annotationId); + + temp = new Annotation[annotations[a].annotations.length + + restore.length]; + System.arraycopy(annotations[a].annotations, + 0, temp, 0, + annotations[a].annotations.length); + System.arraycopy(restore, 0, temp, + annotations[a].annotations.length, restore.length); + } + else + { + temp = annotations[a].annotations; + } + } + } + else + { + if (tSize != aSize || command.position < 2) + { + System.arraycopy(annotations[a].annotations, + 0, temp, 0, command.position); + + Annotation[] deleted = new Annotation[command.number]; + System.arraycopy(annotations[a].annotations, + command.position, deleted, 0, command.number); + + command.deletedAnnotations.put(annotations[a].annotationId, + deleted); + + System.arraycopy(annotations[a].annotations, + command.position + command.number, + temp, command.position, + aSize - command.position - command.number); + } + else + { + int dSize = aSize - command.position; + + if (dSize > 0) + { + Annotation[] deleted = new Annotation[command.number]; + System.arraycopy(annotations[a].annotations, + command.position, deleted, 0, dSize); + + command.deletedAnnotations.put(annotations[a].annotationId, + deleted); + + tSize = Math.min(annotations[a].annotations.length, + command.position); + temp = new Annotation[tSize]; + System.arraycopy(annotations[a].annotations, + 0, temp, 0, tSize); + } + else + { + temp = annotations[a].annotations; + } + } + } + + annotations[a].annotations = temp; + } + } + + final void adjustFeatures(Edit command, int index, int i, int j, + boolean insert) + { + SequenceI seq = command.seqs[index]; + SequenceI sequence = seq.getDatasetSequence(); + if (sequence == null) + { + sequence = seq; + } + + if (insert) + { + if (command.editedFeatures != null + && command.editedFeatures.containsKey(seq)) + { + sequence.setSequenceFeatures( + (SequenceFeature[]) command.editedFeatures.get(seq) + ); + } + + return; + } + + SequenceFeature[] sf = sequence.getSequenceFeatures(); + + if (sf == null) + { + return; + } + + SequenceFeature[] oldsf = new SequenceFeature[sf.length]; + + int cSize = j - i; + + for (int s = 0; s < sf.length; s++) + { + SequenceFeature copy = new SequenceFeature(sf[s]); + + oldsf[s] = copy; + + if (sf[s].getEnd() < i) + { + continue; + } + + if (sf[s].getBegin() > j) + { + sf[s].setBegin(copy.getBegin() - cSize); + sf[s].setEnd(copy.getEnd() - cSize); + continue; + } + + if (sf[s].getBegin() >= i) + { + sf[s].setBegin(i); + } + + if (sf[s].getEnd() < j) + { + sf[s].setEnd(j - 1); + } + + sf[s].setEnd(sf[s].getEnd() - (cSize)); + + if (sf[s].getBegin() > sf[s].getEnd()) + { + sequence.deleteFeature(sf[s]); + } + } + + if (command.editedFeatures == null) + { + command.editedFeatures = new Hashtable(); + } + + command.editedFeatures.put(seq, oldsf); + + } + + class Edit + { + boolean fullAlignmentHeight = false; + Hashtable deletedAnnotations; + Hashtable editedFeatures; + AlignmentI al; + int command; + char[][] string; + SequenceI[] seqs; + int[] alIndex; + int position, number; + char gapChar; + + Edit(int command, + SequenceI[] seqs, + int position, + int number, + char gapChar) + { + this.command = command; + this.seqs = seqs; + this.position = position; + this.number = number; + this.gapChar = gapChar; + } + + Edit(int command, + SequenceI[] seqs, + int position, + int number, + AlignmentI al) + { + this.gapChar = al.getGapCharacter(); + this.command = command; + this.seqs = seqs; + this.position = position; + this.number = number; + this.al = al; + + alIndex = new int[seqs.length]; + for (int i = 0; i < seqs.length; i++) + { + alIndex[i] = al.findIndex(seqs[i]); + } + + fullAlignmentHeight = (al.getHeight() == seqs.length); + } + } + +} diff --git a/src/jalview/commands/OrderCommand.java b/src/jalview/commands/OrderCommand.java new file mode 100644 index 0000000..57097c0 --- /dev/null +++ b/src/jalview/commands/OrderCommand.java @@ -0,0 +1,62 @@ +/* + * Jalview - A Sequence Alignment Editor and Viewer + * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ +package jalview.commands; + +import jalview.analysis.*; +import jalview.datamodel.*; + +public class OrderCommand + implements CommandI +{ + String description; + SequenceI[] seqs; + SequenceI[] seqs2; + AlignmentI al; + + public OrderCommand(String description, + SequenceI[] seqs, + AlignmentI al) + { + this.description = description; + this.seqs = seqs; + this.seqs2 = al.getSequencesArray(); + this.al = al; + doCommand(); + } + + public String getDescription() + { + return description; + } + + public int getSize() + { + return 1; + } + + public void doCommand() + { + AlignmentSorter.setOrder(al, seqs2); + } + + public void undoCommand() + { + AlignmentSorter.setOrder(al, seqs); + } +} diff --git a/src/jalview/commands/RemoveGapColCommand.java b/src/jalview/commands/RemoveGapColCommand.java new file mode 100644 index 0000000..1e9b832 --- /dev/null +++ b/src/jalview/commands/RemoveGapColCommand.java @@ -0,0 +1,106 @@ +package jalview.commands; + +/* + * Jalview - A Sequence Alignment Editor and Viewer + * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + +import jalview.datamodel.*; + +public class RemoveGapColCommand + extends EditCommand +{ + int columnsDeleted; + public RemoveGapColCommand(String description, + SequenceI[] seqs, + int start, int end, AlignmentI al) + { + this.description = description; + + int j, jSize = seqs.length; + + int startCol = -1, endCol = -1; + columnsDeleted = 0; + + edits = new Edit[0]; + + boolean delete = true; + for (int i = start; i <= end; i++) + { + delete = true; + + for (j = 0; j < jSize; j++) + { + if (seqs[j].getLength() > i) + { + if (!jalview.util.Comparison.isGap(seqs[j].getCharAt(i))) + { + if (delete) + { + endCol = i; + } + + delete = false; + break; + } + } + } + + if (delete && startCol == -1) + { + startCol = i; + } + + if (!delete && startCol > -1) + { + this.appendEdit(DELETE_GAP, seqs, + startCol - columnsDeleted, + endCol - startCol, + al, + false); + + columnsDeleted += (endCol - startCol); + startCol = -1; + endCol = -1; + } + } + + if (delete && startCol > -1) + { + //This is for empty columns at the + //end of the alignment + + this.appendEdit(DELETE_GAP, seqs, + startCol - columnsDeleted, + end - startCol + 1, + al, + false); + + columnsDeleted += (end - startCol + 1); + } + + performEdit(0); + } + + public int getSize() + { + //We're interested in the number of columns deleted, + //Not the number of sequence edits. + return columnsDeleted; + } + +} diff --git a/src/jalview/commands/RemoveGapsCommand.java b/src/jalview/commands/RemoveGapsCommand.java new file mode 100644 index 0000000..ccc8008 --- /dev/null +++ b/src/jalview/commands/RemoveGapsCommand.java @@ -0,0 +1,120 @@ +package jalview.commands; + +/* + * Jalview - A Sequence Alignment Editor and Viewer + * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + +import jalview.datamodel.*; + +public class RemoveGapsCommand + extends EditCommand +{ + public RemoveGapsCommand(String description, + SequenceI[] seqs, AlignmentI al) + { + this.description = description; + int width = 0; + for (int i = 0; i < seqs.length; i++) + { + if (seqs[i].getLength() > width) + { + width = seqs[i].getLength(); + } + } + + findGaps(seqs, 0, width, al); + } + + public RemoveGapsCommand(String description, + SequenceI[] seqs, + int start, int end, AlignmentI al) + { + this.description = description; + findGaps(seqs, start, end, al); + } + + void findGaps(SequenceI[] seqs, int start, int end, AlignmentI al) + { + + int startCol = -1, endCol = -1; + int deletedCols = 0; + + int j, jSize; + + edits = new Edit[0]; + + boolean delete = true; + char[] sequence; + + for (int s = 0; s < seqs.length; s++) + { + deletedCols = 0; + startCol = -1; + endCol = -1; + sequence = seqs[s].getSequence(start, end + 1); + + jSize = sequence.length; + for (j = 0; j < jSize; j++) + { + delete = true; + + if (!jalview.util.Comparison.isGap(sequence[j])) + { + if (delete) + { + endCol = j; + } + + delete = false; + } + + if (delete && startCol == -1) + { + startCol = j; + } + + if (!delete && startCol > -1) + { + this.appendEdit(DELETE_GAP, new SequenceI[] + {seqs[s]}, + start + startCol - deletedCols, + endCol - startCol, + al, + false); + + deletedCols += (endCol - startCol); + startCol = -1; + endCol = -1; + } + } + if (delete && startCol > -1) + { + this.appendEdit(DELETE_GAP, new SequenceI[] + {seqs[s]}, + start + startCol - deletedCols, + jSize - startCol, + al, + false); + } + + } + + performEdit(0); + } + +} diff --git a/src/jalview/commands/TrimRegionCommand.java b/src/jalview/commands/TrimRegionCommand.java new file mode 100644 index 0000000..4c1dea0 --- /dev/null +++ b/src/jalview/commands/TrimRegionCommand.java @@ -0,0 +1,178 @@ +/* + * Jalview - A Sequence Alignment Editor and Viewer + * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ +package jalview.commands; + +import java.util.*; + +import jalview.datamodel.*; +import jalview.util.*; + +public class TrimRegionCommand + extends EditCommand +{ + public static String TRIM_LEFT = "TrimLeft"; + public static String TRIM_RIGHT = "TrimRight"; + + public ColumnSelection colSel = null; + + int[] start; + + ShiftList shiftList; + + SequenceGroup selectionGroup; + + Vector deletedHiddenColumns; + + int columnsDeleted; + + public TrimRegionCommand(String description, + String command, + SequenceI[] seqs, + int column, + AlignmentI al, + ColumnSelection colSel, + SequenceGroup selectedRegion) + { + this.description = description; + this.selectionGroup = selectedRegion; + this.colSel = colSel; + if (command.equalsIgnoreCase(TRIM_LEFT)) + { + if (column == 0) + { + return; + } + + columnsDeleted = column; + + edits = new Edit[] + { + new Edit(CUT, seqs, 0, column, al)}; + } + else if (command.equalsIgnoreCase(TRIM_RIGHT)) + { + int width = al.getWidth() - column - 1; + if (width < 2) + { + return; + } + + columnsDeleted = width - 1; + + edits = new Edit[] + { + new Edit(CUT, seqs, column + 1, width, al)}; + } + + //We need to keep a record of the sequence start + //in order to restore the state after a redo + int i, isize = edits[0].seqs.length; + start = new int[isize]; + for (i = 0; i < isize; i++) + { + start[i] = edits[0].seqs[i].getStart(); + } + + performEdit(0); + } + + void cut(Edit command) + { + int column, j, jSize = command.seqs.length; + for (j = 0; j < jSize; j++) + { + if (command.position == 0) + { + //This is a TRIM_LEFT command + column = command.seqs[j].findPosition(command.number); + command.seqs[j].setStart(column); + } + else + { + //This is a TRIM_RIGHT command + column = command.seqs[j].findPosition(command.position) - 1; + command.seqs[j].setEnd(column); + } + } + + super.cut(command); + + if (command.position == 0) + { + deletedHiddenColumns = colSel.compensateForEdit(0, command.number); + if (selectionGroup != null) + { + selectionGroup.adjustForRemoveLeft(command.number); + } + } + else + { + deletedHiddenColumns = colSel.compensateForEdit(command.position, + command.number); + if (selectionGroup != null) + { + selectionGroup.adjustForRemoveRight(command.position); + } + } + } + + void paste(Edit command) + { + super.paste(command); + int column, j, jSize = command.seqs.length; + for (j = 0; j < jSize; j++) + { + if (command.position == 0) + { + command.seqs[j].setStart(start[j]); + } + else + { + column = command.seqs[j] + .findPosition(command.number + command.position) - 1; + command.seqs[j].setEnd(column); + } + } + + if (command.position == 0) + { + colSel.compensateForEdit(0, -command.number); + if (selectionGroup != null) + { + selectionGroup.adjustForRemoveLeft( -command.number); + } + } + + if (deletedHiddenColumns != null) + { + int[] region; + for (int i = 0; i < deletedHiddenColumns.size(); i++) + { + region = (int[]) deletedHiddenColumns.elementAt(i); + colSel.hideColumns(region[0], region[1]); + } + } + } + + public int getSize() + { + return columnsDeleted; + } + +} diff --git a/src/jalview/gui/EditNameDialog.java b/src/jalview/gui/EditNameDialog.java new file mode 100644 index 0000000..b6cc5a5 --- /dev/null +++ b/src/jalview/gui/EditNameDialog.java @@ -0,0 +1,80 @@ +/* + * Jalview - A Sequence Alignment Editor and Viewer + * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + +package jalview.gui; + +import java.awt.*; +import javax.swing.*; + +public class EditNameDialog +{ + JTextField id, description; + JButton ok = new JButton("Accept"); + JButton cancel = new JButton("Cancel"); + boolean accept = false; + + public String getName() + { + return id.getText(); + } + + public String getDescription() + { + if (description.getText().length() < 1) + { + return null; + } + else + { + return description.getText(); + } + } + + public EditNameDialog(String name, + String desc, + String label1, + String label2, + String title) + { + JLabel idlabel = new JLabel(label1); + JLabel desclabel = new JLabel(label2); + idlabel.setFont(new Font("Courier", Font.PLAIN, 12)); + desclabel.setFont(new Font("Courier", Font.PLAIN, 12)); + id = new JTextField(name, 40); + description = new JTextField(desc, 40); + JPanel panel = new JPanel(new BorderLayout()); + JPanel panel2 = new JPanel(new BorderLayout()); + panel2.add(idlabel, BorderLayout.WEST); + panel2.add(id, BorderLayout.CENTER); + panel.add(panel2, BorderLayout.NORTH); + panel2 = new JPanel(new BorderLayout()); + panel2.add(desclabel, BorderLayout.WEST); + panel2.add(description, BorderLayout.CENTER); + panel.add(panel2, BorderLayout.SOUTH); + + int reply = JOptionPane.showInternalConfirmDialog(Desktop.desktop, + panel, title, + JOptionPane.OK_CANCEL_OPTION); + + if (reply == JOptionPane.OK_OPTION) + { + accept = true; + } + } +} diff --git a/src/jalview/gui/TextColourChooser.java b/src/jalview/gui/TextColourChooser.java new file mode 100644 index 0000000..504e1d5 --- /dev/null +++ b/src/jalview/gui/TextColourChooser.java @@ -0,0 +1,213 @@ +/* + * Jalview - A Sequence Alignment Editor and Viewer + * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + +package jalview.gui; + +import java.util.*; + +import java.awt.*; +import java.awt.event.*; +import javax.swing.*; +import javax.swing.event.*; + +import jalview.datamodel.*; + +public class TextColourChooser +{ + AlignmentPanel ap; + SequenceGroup sg; + + public void chooseColour(AlignmentPanel ap, SequenceGroup sg) + { + this.ap = ap; + this.sg = sg; + + int original1, original2, originalThreshold; + if (sg == null) + { + original1 = ap.av.textColour.getRGB(); + original2 = ap.av.textColour2.getRGB(); + originalThreshold = ap.av.thresholdTextColour; + } + else + { + original1 = sg.textColour.getRGB(); + original2 = sg.textColour2.getRGB(); + originalThreshold = sg.thresholdTextColour; + } + + final JSlider slider = new JSlider(0, 750, originalThreshold); + final JPanel col1 = new JPanel(); + col1.setPreferredSize(new Dimension(40, 20)); + col1.setBorder(BorderFactory.createEtchedBorder()); + col1.setToolTipText("Dark Colour"); + col1.setBackground(new Color(original1)); + final JPanel col2 = new JPanel(); + col2.setPreferredSize(new Dimension(40, 20)); + col2.setBorder(BorderFactory.createEtchedBorder()); + col2.setToolTipText("Light Colour"); + col2.setBackground(new Color(original2)); + final JPanel bigpanel = new JPanel(new BorderLayout()); + JPanel panel = new JPanel(); + bigpanel.add(panel, BorderLayout.CENTER); + bigpanel.add(new JLabel( + "Select a dark and light text colour, then set the threshold to" + + "
switch between colours, based on background colour
"), + BorderLayout.NORTH); + panel.add(col1); + panel.add(slider); + panel.add(col2); + + col1.addMouseListener(new MouseAdapter() + { + public void mousePressed(MouseEvent e) + { + Color col = JColorChooser.showDialog(bigpanel, + "Select Colour for Text", + col1.getBackground()); + if (col != null) + { + colour1Changed(col); + col1.setBackground(col); + } + } + }); + + col2.addMouseListener(new MouseAdapter() + { + public void mousePressed(MouseEvent e) + { + Color col = JColorChooser.showDialog(bigpanel, + "Select Colour for Text", + col2.getBackground()); + if (col != null) + { + colour2Changed(col); + col2.setBackground(col); + } + } + }); + + slider.addChangeListener(new ChangeListener() + { + public void stateChanged(ChangeEvent evt) + { + thresholdChanged(slider.getValue()); + } + }); + + int reply = JOptionPane.showInternalOptionDialog( + ap, + bigpanel, + "Adjust Foreground Text Colour Threshold", + JOptionPane.OK_CANCEL_OPTION, + JOptionPane.QUESTION_MESSAGE, + null, + null, null); + + if (reply == JOptionPane.CANCEL_OPTION) + { + if (sg == null) + { + ap.av.textColour = new Color(original1); + ap.av.textColour2 = new Color(original2); + ap.av.thresholdTextColour = originalThreshold; + } + else + { + sg.textColour = new Color(original1); + sg.textColour2 = new Color(original2); + sg.thresholdTextColour = originalThreshold; + } + } + } + + void colour1Changed(Color col) + { + if (sg == null) + { + ap.av.textColour = col; + if (ap.av.colourAppliesToAllGroups) + { + setGroupTextColour(); + } + } + else + { + sg.textColour = col; + } + + ap.repaint(); + } + + void colour2Changed(Color col) + { + if (sg == null) + { + ap.av.textColour2 = col; + if (ap.av.colourAppliesToAllGroups) + { + setGroupTextColour(); + } + } + else + { + sg.textColour2 = col; + } + + ap.repaint(); + } + + void thresholdChanged(int value) + { + if (sg == null) + { + ap.av.thresholdTextColour = value; + if (ap.av.colourAppliesToAllGroups) + { + setGroupTextColour(); + } + } + else + { + sg.thresholdTextColour = value; + } + + ap.repaint(); + } + + void setGroupTextColour() + { + if (ap.av.alignment.getGroups() == null) + { + return; + } + + Vector groups = ap.av.alignment.getGroups(); + + for (int i = 0; i < groups.size(); i++) + { + SequenceGroup sg = (SequenceGroup) groups.elementAt(i); + sg.textColour = ap.av.textColour; + sg.textColour2 = ap.av.textColour2; + sg.thresholdTextColour = ap.av.thresholdTextColour; + } + } + +} diff --git a/src/jalview/gui/UserQuestionnaireCheck.java b/src/jalview/gui/UserQuestionnaireCheck.java new file mode 100644 index 0000000..0accc9c --- /dev/null +++ b/src/jalview/gui/UserQuestionnaireCheck.java @@ -0,0 +1,140 @@ +package jalview.gui; + +import java.io.*; +import java.net.*; + +import javax.swing.*; + +public class UserQuestionnaireCheck + implements Runnable +{ + /** + * Implements the client side machinery for detecting a new questionnaire, + * checking if the user has responded to an existing one, + * and prompting the user for responding to a questionnaire. + * This is intended to work with the perl CGI scripts checkresponder.pl and + * questionnaire.pl + */ + String url = null; + UserQuestionnaireCheck(String url) + { + if (url.indexOf("questionnaire.pl") == -1) + { + jalview.bin.Cache.log.error("'" + url + + "' is an Invalid URL for the checkForQuestionnaire() method.\n" + + "This argument is only for questionnaires derived from jalview's questionnaire.pl cgi interface."); + } + else + { + this.url = url; + } + } + + String qid = null, rid = null; + private boolean checkresponse(URL qurl) + throws Exception + { + jalview.bin.Cache.log.debug("Checking Response for : " + qurl); + boolean prompt = false; + // see if we have already responsed to this questionnaire or get a new qid/rid pair + BufferedReader br = new BufferedReader(new InputStreamReader(qurl. + openStream())); + String qresp; + while ( (qresp = br.readLine()) != null) + { + if (qresp.indexOf("NOTYET:") == 0) + { + prompt = true; // not yet responded under that ID + } + else + { + if (qresp.indexOf("QUESTIONNAIRE:") == 0) + { + // QUESTIONNAIRE:qid:rid for the latest questionnaire. + int p = qresp.indexOf(':', 14); + if (p > -1) + { + rid = null; + qid = qresp.substring(14, p); + if (p < (qresp.length() - 1)) + { + rid = qresp.substring(p + 1); + prompt = true; // this is a new qid/rid pair + } + } + } + } + } + return prompt; + } + + public void run() + { + if (url == null) + { + return; + } + boolean prompt = false; + try + { + // First - check to see if wee have an old questionnaire/response id pair. + String lastq = jalview.bin.Cache.getProperty("QUESTIONNAIRE"); + if (lastq == null) + { + prompt = checkresponse(new URL(url + (url.indexOf('?') > -1 ? "&" : "?") + + "checkresponse=1")); + } + else + { + String qurl = url + (url.indexOf('?') > -1 ? "&" : "?") + + "checkresponse=1"; + // query the server with the old qid/id pair + String qqid = lastq.indexOf(':') > -1 ? + lastq.substring(0, lastq.indexOf(':')) : null; + if (qqid != null && qqid != "null" && qqid.length() > 0) + { + qurl += "&qid=" + qqid; + qid = qqid; + String qrid = lastq.substring(lastq.indexOf(':') + 1); // retrieve old rid + if (qrid != null && !qrid.equals("null")) + { + rid = qrid; + qurl += "&rid=" + qrid; + } + } + // see if we have already responsed to this questionnaire. + prompt = checkresponse(new URL(qurl)); + } + if (qid != null && rid != null) + { + // Update our local property cache with latest qid and rid + jalview.bin.Cache.setProperty("QUESTIONNAIRE", qid + ":" + rid); + } + if (prompt) + { + String qurl = url + (url.indexOf('?') > -1 ? "&" : "?") + "qid=" + qid + + "&rid=" + rid; + jalview.bin.Cache.log.info("Prompting user for questionnaire at " + + qurl); + int reply = JOptionPane.showInternalConfirmDialog(Desktop.desktop, + "There is a new Questionnaire available." + + "Would you like to complete it now ?\n", + "Jalview User Survey", + JOptionPane.YES_NO_OPTION, + JOptionPane.QUESTION_MESSAGE); + + if (reply == JOptionPane.YES_OPTION) + { + jalview.bin.Cache.log.debug("Opening " + qurl); + jalview.util.BrowserLauncher.openURL(qurl); + } + } + } + catch (Exception e) + { + jalview.bin.Cache.log.warn("When trying to access questionnaire URL " + + url, e); + } + } + +} diff --git a/src/jalview/gui/VamsasClient.java b/src/jalview/gui/VamsasClient.java new file mode 100755 index 0000000..7c37bd3 --- /dev/null +++ b/src/jalview/gui/VamsasClient.java @@ -0,0 +1,275 @@ +/** + * + */ +package jalview.gui; + +import java.io.File; +import java.io.OutputStreamWriter; +import java.io.PrintWriter; +import java.util.Hashtable; +import java.util.IdentityHashMap; +import java.util.Vector; +import java.util.jar.JarOutputStream; + +import javax.swing.JInternalFrame; + +import jalview.bin.Cache; +import jalview.io.VamsasDatastore; + +import org.vamsas.client.UserHandle; +import org.vamsas.client.simpleclient.FileWatcher; +import org.vamsas.client.simpleclient.VamsasArchive; +import org.vamsas.client.simpleclient.VamsasFile; +import org.vamsas.objects.core.Entry; +import org.vamsas.objects.core.VamsasDocument; +import org.vamsas.test.simpleclient.ArchiveClient; +import org.vamsas.test.simpleclient.ClientDoc; + +/** + * @author jimp + * + */ +public class VamsasClient + extends ArchiveClient +{ + // Cache.preferences for vamsas client session arena + // preferences for check for default session at startup. + // user and organisation stuff. + public VamsasClient(Desktop jdesktop, + File sessionPath) + { + super(System.getProperty("user.name"), System.getProperty("host.name"), + "jalview", "2.7", + sessionPath); + } + + public void initial_update() + { + Cache.log.info("Jalview loading the Vamsas Session."); + // load in the vamsas archive for the first time + ClientDoc cdoc = this.getUpdateable(); + updateJalview(cdoc); + JInternalFrame[] frames = Desktop.desktop.getAllFrames(); + + if (frames == null) + { + return; + } + + try + { + //REVERSE ORDER + for (int i = frames.length - 1; i > -1; i--) + { + if (frames[i] instanceof AlignFrame) + { + AlignFrame af = (AlignFrame) frames[i]; + af.alignPanel.alignmentChanged(); + } + } + } + catch (Exception e) + { + Cache.log.warn( + "Exception whilst refreshing jalview windows after a vamsas document update.", + e); + } + doUpdate(cdoc); + cdoc.closeDoc(); + } + + /** + * this will close all windows currently in Jalview. + * + + protected void closeWindows() { + JInternalFrame[] frames = Desktop.desktop.getAllFrames(); + + if (frames == null) + { + return; + } + + try + { + for (int i = frames.length - 1; i > -1; i--) { + frames[i].dispose(); + } + } catch (Exception e) { + Cache.log.error("Whilst closing windows",e); + } + + } + + public void get_update(VamsasArchive doc) { + // Close windows - load update. + Cache.log.info("Jalview updating from Vamsas Session."); + } + */ + VamsasClientWatcher watcher = null; + public void push_update() + { + watchForChange = false; + try + { + Thread.sleep(WATCH_SLEEP); + } + catch (Exception e) + { + + } + ; + ClientDoc cdoc = getUpdateable(); + updateVamsasDocument(cdoc); + doUpdate(cdoc); + cdoc.closeDoc(); + cdoc = null; + watchForChange = true; + if (watcher != null) + { + watcher.start(); + } + // collect all uncached alignments and put them into the vamsas dataset. + // store them. + Cache.log.info("Jalview updating the Vamsas Session."); + } + + public void end_session() + { + // stop any update/watcher thread. + watchForChange = false; // this makes any watch(long) loops return. + // we should also wait arount for this.WATCH_SLEEP to really make sure the watcher thread has stopped. + try + { + Thread.sleep(WATCH_SLEEP); + } + catch (Exception e) + { + + } + ; + Cache.log.info("Jalview disconnecting from the Vamsas Session."); + } + + public void updateJalview(ClientDoc cdoc) + { + ensureJvVamsas(); + VamsasDatastore vds = new VamsasDatastore(cdoc, vobj2jv, jv2vobj, + baseProvEntry()); + vds.updateToJalview(); + } + + private void ensureJvVamsas() + { + if (jv2vobj == null) + { + jv2vobj = new IdentityHashMap(); + vobj2jv = new Hashtable(); + } + } + + /** + * jalview object binding to VorbaIds + */ + IdentityHashMap jv2vobj = null; + Hashtable vobj2jv = null; + public void updateVamsasDocument(ClientDoc doc) + { + ensureJvVamsas(); + VamsasDatastore vds = new VamsasDatastore(doc, vobj2jv, jv2vobj, + baseProvEntry()); + // wander through frames + JInternalFrame[] frames = Desktop.desktop.getAllFrames(); + + if (frames == null) + { + return; + } + + try + { + //REVERSE ORDER + for (int i = frames.length - 1; i > -1; i--) + { + if (frames[i] instanceof AlignFrame) + { + AlignFrame af = (AlignFrame) frames[i]; + + // update alignment and root from frame. + vds.storeVAMSAS(af.getViewport(), af.getTitle()); + } + } + } + catch (Exception e) + { + Cache.log.error("Vamsas Document store exception", e); + } + } + + private Entry baseProvEntry() + { + org.vamsas.objects.core.Entry pentry = new org.vamsas.objects.core.Entry(); + pentry.setUser(this.getProvenanceUser()); + pentry.setApp(this.getClientHandle().getClientName()); + pentry.setDate(new org.exolab.castor.types.Date(new java.util.Date())); + pentry.setAction("created"); + return pentry; + } + + protected class VamsasClientWatcher + extends Thread + { + /* (non-Javadoc) + * @see java.lang.Thread#run() + */ + VamsasClient client = null; + VamsasClientWatcher(VamsasClient client) + { + this.client = client; + } + + boolean running = false; + public void run() + { + running = true; + while (client.watchForChange) + { + ClientDoc docio = client.watch(0); + if (docio != null) + { + client.disableGui(true); + Cache.log.debug("Updating jalview from changed vamsas document."); + client.updateJalview(docio); + Cache.log.debug("Finished updating from document change."); + docio.closeDoc(); + docio = null; + client.disableGui(false); + } + } + running = false; + + } + + } + + public void disableGui(boolean b) + { + Desktop.instance.setVamsasUpdate(b); + } + + public void startWatcher() + { + if (watcher == null) + { + watcher = new VamsasClientWatcher(this); + } + Thread thr = new Thread() + { + public void run() + { + watcher.start(); + } + }; + thr.start(); + } +} diff --git a/src/jalview/io/AMSAFile.java b/src/jalview/io/AMSAFile.java new file mode 100644 index 0000000..1f3fca0 --- /dev/null +++ b/src/jalview/io/AMSAFile.java @@ -0,0 +1,96 @@ +/* + * Jalview - A Sequence Alignment Editor and Viewer + * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ +package jalview.io; + +import jalview.datamodel.*; + +public class AMSAFile + extends jalview.io.FastaFile +{ + + AlignmentI al; + /** + * Creates a new AMSAFile object for output. + */ + public AMSAFile(AlignmentI al) + { + this.al = al; + } + + /** + * DOCUMENT ME! + * + * @return DOCUMENT ME! + */ + public String print() + { + super.print(getSeqsAsArray()); + + AlignmentAnnotation aa; + if (al.getAlignmentAnnotation() != null) + { + for (int i = 0; i < al.getAlignmentAnnotation().length; i++) + { + aa = al.getAlignmentAnnotation()[i]; + if (aa.autoCalculated || !aa.visible) + { + continue; + } + + out.append(">#_" + aa.label); + if (aa.description != null) + { + out.append(" " + aa.description); + } + + out.append("\n"); + + int nochunks = (aa.annotations.length / len) + 1; + + for (int j = 0; j < nochunks; j++) + { + int start = j * len; + int end = start + len; + if (end > aa.annotations.length) + { + end = aa.annotations.length; + } + + String ch; + for (int k = start; k < end; k++) + { + if (aa.annotations[k] == null) + { + ch = " "; + } + else + { + ch = aa.annotations[k].displayCharacter; + } + + out.append(ch); + + } + out.append("\n"); + } + } + } + return out.toString(); + } +} diff --git a/src/jalview/io/VamsasDatastore.java b/src/jalview/io/VamsasDatastore.java new file mode 100755 index 0000000..f1cba4f --- /dev/null +++ b/src/jalview/io/VamsasDatastore.java @@ -0,0 +1,1900 @@ +/* + * Jalview - A Sequence Alignment Editor and Viewer + * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + +package jalview.io; + +import jalview.bin.Cache; +import jalview.datamodel.AlignmentAnnotation; +import jalview.datamodel.AlignmentI; +import jalview.datamodel.AlignmentView; +import jalview.datamodel.DBRefEntry; +import jalview.datamodel.SequenceFeature; +import jalview.datamodel.SequenceI; +import jalview.gui.AlignFrame; +import jalview.gui.AlignViewport; +import jalview.gui.Desktop; +import jalview.gui.TreePanel; + +import java.util.HashMap; +import java.util.Hashtable; +import java.util.IdentityHashMap; +import java.util.Vector; + +import org.vamsas.client.Vobject; +import org.vamsas.client.VorbaId; +import org.vamsas.objects.core.Alignment; +import org.vamsas.objects.core.AlignmentSequence; +import org.vamsas.objects.core.AlignmentSequenceAnnotation; +import org.vamsas.objects.core.AnnotationElement; +import org.vamsas.objects.core.DataSet; +import org.vamsas.objects.core.DataSetAnnotations; +import org.vamsas.objects.core.DbRef; +import org.vamsas.objects.core.Entry; +import org.vamsas.objects.core.Glyph; +import org.vamsas.objects.core.Input; +import org.vamsas.objects.core.Link; +import org.vamsas.objects.core.Newick; +import org.vamsas.objects.core.Param; +import org.vamsas.objects.core.Property; +import org.vamsas.objects.core.Provenance; +import org.vamsas.objects.core.RangeAnnotation; +import org.vamsas.objects.core.RangeType; +import org.vamsas.objects.core.Seg; +import org.vamsas.objects.core.Sequence; +import org.vamsas.objects.core.Tree; +import org.vamsas.objects.core.VAMSAS; +import org.vamsas.test.simpleclient.ClientDoc; + +/* + * + * static { + * org.exolab.castor.util.LocalConfiguration.getInstance().getProperties().setProperty( + * "org.exolab.castor.serializer", "org.apache.xml.serialize.XMLSerilazizer"); } + * + */ + +public class VamsasDatastore +{ + Entry provEntry = null; + + // AlignViewport av; + + org.exolab.castor.types.Date date = new org.exolab.castor.types.Date( + new java.util.Date()); + + ClientDoc cdoc; + + Hashtable vobj2jv; + + IdentityHashMap jv2vobj; + + public VamsasDatastore(ClientDoc cdoc, Hashtable vobj2jv, + IdentityHashMap jv2vobj, Entry provEntry) + { + this.cdoc = cdoc; + this.vobj2jv = vobj2jv; + this.jv2vobj = jv2vobj; + this.provEntry = provEntry; + } + + /* + * public void storeJalview(String file, AlignFrame af) { try { // 1. Load the + * mapping information from the file Mapping map = new + * Mapping(getClass().getClassLoader()); java.net.URL url = + * getClass().getResource("/jalview_mapping.xml"); map.loadMapping(url); // 2. + * Unmarshal the data // Unmarshaller unmar = new Unmarshaller(); + * //unmar.setIgnoreExtraElements(true); //unmar.setMapping(map); // uni = + * (UniprotFile) unmar.unmarshal(new FileReader(file)); // 3. marshal the data + * with the total price back and print the XML in the console Marshaller + * marshaller = new Marshaller( new FileWriter(file) ); + * + * marshaller.setMapping(map); marshaller.marshal(af); } catch (Exception e) { + * e.printStackTrace(); } } + * + * + */ + /** + * @return the Vobject bound to Jalview datamodel object + */ + protected Vobject getjv2vObj(Object jvobj) + { + if (jv2vobj.containsKey(jvobj)) + { + return cdoc.getObject( (VorbaId) jv2vobj.get(jvobj)); + } + return null; + } + + /** + * + * @param vobj + * @return Jalview datamodel object bound to the vamsas document object + */ + protected Object getvObj2jv(org.vamsas.client.Vobject vobj) + { + VorbaId id = vobj.getVorbaId(); + if (id == null) + { + id = cdoc.registerObject(vobj); + Cache.log + .debug("Registering new object and returning null for getvObj2jv"); + return null; + } + if (vobj2jv.containsKey(vobj.getVorbaId())) + { + return vobj2jv.get(vobj.getVorbaId()); + } + return null; + } + + protected void bindjvvobj(Object jvobj, org.vamsas.client.Vobject vobj) + { + VorbaId id = vobj.getVorbaId(); + if (id == null) + { + id = cdoc.registerObject(vobj); + if (id == null || vobj.getVorbaId() == null) + { + Cache.log.error("Failed to get id for " + + (vobj.isRegisterable() ? "registerable" : + "unregisterable") + " object " + vobj); + } + } + + if (vobj2jv.containsKey(vobj.getVorbaId()) && + ! ( (VorbaId) vobj2jv.get(vobj.getVorbaId())).equals(jvobj)) + { + Cache.log.debug("Warning? Overwriting existing vamsas id binding for " + + vobj.getVorbaId(), + new Exception("Overwriting vamsas id binding.")); + } + else if (jv2vobj.containsKey(jvobj) && + ! ( (VorbaId) jv2vobj.get(jvobj)).equals(vobj.getVorbaId())) + { + Cache.log.debug( + "Warning? Overwriting existing jalview object binding for " + jvobj, + new Exception("Overwriting jalview object binding.")); + } + /* Cache.log.error("Attempt to make conflicting object binding! "+vobj+" id " +vobj.getVorbaId()+" already bound to "+getvObj2jv(vobj)+" and "+jvobj+" already bound to "+getjv2vObj(jvobj),new Exception("Excessive call to bindjvvobj")); + }*/ + // we just update the hash's regardless! + vobj2jv.put(vobj.getVorbaId(), jvobj); + // JBPNote - better implementing a hybrid invertible hash. + jv2vobj.put(jvobj, vobj.getVorbaId()); + } + + /** + * put the alignment viewed by AlignViewport into cdoc. + * + * @param av alignViewport to be stored + * @param aFtitle title for alignment + */ + public void storeVAMSAS(AlignViewport av, String aFtitle) + { + try + { + jalview.datamodel.AlignmentI jal = av.getAlignment(); + boolean nw = false; + VAMSAS root = null; // will be resolved based on Dataset Parent. + // ///////////////////////////////////////// + // SAVE THE DATASET + if (jal.getDataset() == null) + { + Cache.log.warn("Creating new dataset for an alignment."); + jal.setDataset(null); + } + DataSet dataset = (DataSet) getjv2vObj(jal.getDataset()); + if (dataset == null) + { + root = cdoc.getVamsasRoots()[0]; // default vamsas root for modifying. + dataset = new DataSet(); + root.addDataSet(dataset); + bindjvvobj(jal.getDataset(), dataset); + dataset.setProvenance(dummyProvenance()); + dataset.getProvenance().addEntry(provEntry); + nw = true; + } + else + { + root = (VAMSAS) dataset.getV_parent(); + } + // update dataset + Sequence sequence; + DbRef dbref; + // set new dataset and alignment sequences based on alignment Nucleotide + // flag. + // this *will* break when alignment contains both nucleotide and amino + // acid sequences. + String dict = jal.isNucleotide() ? + org.vamsas.objects.utils.SymbolDictionary.STANDARD_NA + : org.vamsas.objects.utils.SymbolDictionary.STANDARD_AA; + for (int i = 0; i < jal.getHeight(); i++) + { + SequenceI sq = jal.getSequenceAt(i).getDatasetSequence(); // only insert + // referenced + // sequences + // to dataset. + sequence = (Sequence) getjv2vObj(sq); + if (sequence == null) + { + sequence = new Sequence(); + bindjvvobj(sq, sequence); + sq.setVamsasId(sequence.getVorbaId().getId()); + sequence.setSequence(sq.getSequenceAsString()); + sequence.setDictionary(dict); + sequence.setName(jal.getDataset().getSequenceAt(i).getName()); + sequence.setStart(jal.getDataset().getSequenceAt(i).getStart()); + sequence.setEnd(jal.getDataset().getSequenceAt(i).getEnd()); + dataset.addSequence(sequence); + } + else + { + // verify principal attributes. and update any new + // features/references. + System.out.println("update dataset sequence object."); + } + if (sq.getSequenceFeatures() != null) + { + int sfSize = sq.getSequenceFeatures().length; + + for (int sf = 0; sf < sfSize; sf++) + { + jalview.datamodel.SequenceFeature feature = (jalview.datamodel. + SequenceFeature) sq + .getSequenceFeatures()[sf]; + + DataSetAnnotations dsa = (DataSetAnnotations) getjv2vObj(feature); + if (dsa == null) + { + dsa = (DataSetAnnotations) getDSAnnotationFromJalview( + new DataSetAnnotations(), feature); + if (dsa.getProvenance() == null) + { + dsa.setProvenance(new Provenance()); + } + addProvenance(dsa.getProvenance(), "created"); // JBPNote - need + // to update + dsa.setSeqRef(sequence); + bindjvvobj(feature, dsa); + dataset.addDataSetAnnotations(dsa); + } + else + { + // todo: verify and update dataset annotations for sequence + System.out.println("update dataset sequence annotations."); + } + } + } + + if (sq.getDBRef() != null) + { + DBRefEntry[] entries = sq.getDBRef(); + jalview.datamodel.DBRefEntry dbentry; + for (int db = 0; db < entries.length; db++) + { + dbentry = entries[db]; + dbref = (DbRef) getjv2vObj(dbentry); + if (dbref == null) + { + dbref = new DbRef(); + bindjvvobj(dbentry, dbref); + dbref.setAccessionId(dbentry.getAccessionId()); + dbref.setSource(dbentry.getSource()); + dbref.setVersion(dbentry.getVersion()); + /* + * TODO: Maps are not yet supported by Jalview. Map vMap = new + * Map(); vMap.set dbref.addMap(vMap); + */ + sequence.addDbRef(dbref); + } + else + { + // TODO: verify and update dbrefs in vamsas document + // there will be trouble when a dataset sequence is modified to + // contain more residues than were originally referenced - we must + // then make a number of dataset sequence entries + System.out + .println("update dataset sequence database references."); + } + } + + } + } + // dataset.setProvenance(getVamsasProvenance(jal.getDataset().getProvenance())); + // //////////////////////////////////////////// + + // //////////////////////////////////////////// + // Save the Alignments + + Alignment alignment = (Alignment) getjv2vObj(av); // this is so we can get the alignviewport back + if (alignment == null) + { + alignment = new Alignment(); + bindjvvobj(av, alignment); + if (alignment.getProvenance() == null) + { + alignment.setProvenance(new Provenance()); + } + addProvenance(alignment.getProvenance(), "added"); // TODO: insert some + // sensible source + // here + dataset.addAlignment(alignment); + { + Property title = new Property(); + title.setName("jalview:AlTitle"); + title.setType("string"); + title.setContent(aFtitle); + alignment.addProperty(title); + } + alignment.setGapChar(String.valueOf(av.getGapCharacter())); + AlignmentSequence alseq = null; + for (int i = 0; i < jal.getHeight(); i++) + { + alseq = new AlignmentSequence(); + // TODO: VAMSAS: translate lowercase symbols to annotation ? + alseq.setSequence(jal.getSequenceAt(i).getSequenceAsString()); + alseq.setName(jal.getSequenceAt(i).getName()); + alseq.setStart(jal.getSequenceAt(i).getStart()); + alseq.setEnd(jal.getSequenceAt(i).getEnd()); + alseq.setRefid(getjv2vObj(jal.getSequenceAt(i).getDatasetSequence())); + alignment.addAlignmentSequence(alseq); + bindjvvobj(jal.getSequenceAt(i), alseq); + } + } + else + { + // todo: verify and update mutable alignment props. + if (alignment.getModifiable()) + { + System.out.println("update alignment in document."); + } + else + { + System.out + .println("update edited alignment to new alignment in document."); + } + } + // //////////////////////////////////////////// + // SAVE Alignment Sequence Features + for (int i = 0, iSize = alignment.getAlignmentSequenceCount(); i < iSize; + i++) + { + AlignmentSequence valseq; + SequenceI alseq = (SequenceI) getvObj2jv(valseq = alignment + .getAlignmentSequence(i)); + if (alseq != null && alseq.getSequenceFeatures() != null) + { + jalview.datamodel.SequenceFeature[] features = alseq + .getSequenceFeatures(); + for (int f = 0; f < features.length; f++) + { + if (features[f] != null) + { + AlignmentSequenceAnnotation valseqf = ( + AlignmentSequenceAnnotation) getjv2vObj(features[i]); + if (valseqf == null) + { + + valseqf = (AlignmentSequenceAnnotation) + getDSAnnotationFromJalview( + new AlignmentSequenceAnnotation(), features[i]); + if (valseqf.getProvenance() == null) + { + valseqf.setProvenance(new Provenance()); + } + addProvenance(valseqf.getProvenance(), "created"); // JBPNote - + // need to + // update + bindjvvobj(features[i], valseqf); + valseq.addAlignmentSequenceAnnotation(valseqf); + } + } + + } + } + } + + // //////////////////////////////////////////// + // SAVE ANNOTATIONS + if (jal.getAlignmentAnnotation() != null) + { + jalview.datamodel.AlignmentAnnotation[] aa = jal + .getAlignmentAnnotation(); + java.util.HashMap AlSeqMaps = new HashMap(); // stores int maps from + // alignment columns to + // sequence positions. + for (int i = 0; i < aa.length; i++) + { + if (aa[i] == null || isJalviewOnly(aa[i])) + { + continue; + } + if (aa[i].sequenceRef != null) + { + org.vamsas.objects.core.AlignmentSequence alsref = (org.vamsas. + objects.core.AlignmentSequence) getjv2vObj(aa[i].sequenceRef); + org.vamsas.objects.core.AlignmentSequenceAnnotation an = (org. + vamsas.objects.core.AlignmentSequenceAnnotation) getjv2vObj(aa[ + i]); + int[] gapMap = null; + if (AlSeqMaps.containsKey(aa[i].sequenceRef)) + { + gapMap = (int[]) AlSeqMaps.get(aa[i].sequenceRef); + } + else + { + gapMap = new int[aa[i].sequenceRef.getLength()]; + // map from alignment position to sequence position. + int[] sgapMap = aa[i].sequenceRef.gapMap(); + for (int a = 0; a < sgapMap.length; a++) + { + gapMap[sgapMap[a]] = a; + } + } + if (an == null) + { + an = new org.vamsas.objects.core.AlignmentSequenceAnnotation(); + Seg vSeg = new Seg(); + vSeg.setStart(1); + vSeg.setInclusive(true); + vSeg.setEnd(gapMap.length); + an.addSeg(vSeg); + an.setType("jalview:SecondaryStructurePrediction"); // TODO: better fix this rough guess ;) + alsref.addAlignmentSequenceAnnotation(an); + bindjvvobj(aa[i], an); + // LATER: much of this is verbatim from the alignmentAnnotation + // method below. suggests refactoring to make rangeAnnotation the + // base class + an.setDescription(aa[i].description); + if (aa[i].graph > 0) + { + an.setGraph(true); // aa[i].graph); + } + else + { + an.setGraph(false); + } + an.setLabel(aa[i].label); + an.setProvenance(dummyProvenance()); // get provenance as user + // created, or jnet, or + // something else. + an.setGroup(Integer.toString(aa[i].graphGroup)); // // JBPNote - + // originally we + // were going to + // store + // graphGroup in + // the Jalview + // specific + // bits. + AnnotationElement ae; + for (int a = 0; a < aa[i].annotations.length; a++) + { + if (aa[i].annotations[a] == null) + { + continue; + } + + ae = new AnnotationElement(); + ae.setDescription(aa[i].annotations[a].description); + ae.addGlyph(new Glyph()); + ae.getGlyph(0) + .setContent(aa[i].annotations[a].displayCharacter); // assume + // jax-b + // takes + // care + // of + // utf8 + // translation + if (aa[i].graph != + jalview.datamodel.AlignmentAnnotation.NO_GRAPH) + { + ae.addValue(aa[i].annotations[a].value); + } + ae.setPosition(gapMap[a] + 1); // position w.r.t. AlignmentSequence + // symbols + if (aa[i].annotations[a].secondaryStructure != ' ') + { + // we only write an annotation where it really exists. + Glyph ss = new Glyph(); + ss + .setDict(org.vamsas.objects.utils.GlyphDictionary. + PROTEIN_SS_3STATE); + ss.setContent(String + .valueOf(aa[i].annotations[a]. + secondaryStructure)); + ae.addGlyph(ss); + } + an.addAnnotationElement(ae); + } + } + else + { + // update reference sequence Annotation + if (an.getModifiable()) + { + // verify existing alignment sequence annotation is up to date + System.out.println("update alignment sequence annotation."); + } + else + { + // verify existing alignment sequence annotation is up to date + System.out + .println( + "make new alignment sequence annotation if modification has happened."); + } + } + } + else + { + // add Alignment Annotation + org.vamsas.objects.core.AlignmentAnnotation an = (org.vamsas. + objects.core.AlignmentAnnotation) getjv2vObj(aa[i]); + if (an == null) + { + an = new org.vamsas.objects.core.AlignmentAnnotation(); + an.setType("jalview:AnnotationRow"); + an.setDescription(aa[i].description); + alignment.addAlignmentAnnotation(an); + Seg vSeg = new Seg(); + vSeg.setStart(1); + vSeg.setInclusive(true); + vSeg.setEnd(jal.getWidth()); + an.addSeg(vSeg); + if (aa[i].graph > 0) + { + an.setGraph(true); // aa[i].graph); + } + an.setLabel(aa[i].label); + an.setProvenance(dummyProvenance()); + if (aa[i].graph != aa[i].NO_GRAPH) + { + an.setGroup(Integer.toString(aa[i].graphGroup)); // // JBPNote - + // originally we + // were going to + // store + // graphGroup in + // the Jalview + // specific + // bits. + an.setGraph(true); + } + else + { + an.setGraph(false); + } + AnnotationElement ae; + + for (int a = 0; a < aa[i].annotations.length; a++) + { + if ( (aa[i] == null) || (aa[i].annotations[a] == null)) + { + continue; + } + + ae = new AnnotationElement(); + ae.setDescription(aa[i].annotations[a].description); + ae.addGlyph(new Glyph()); + ae.getGlyph(0) + .setContent(aa[i].annotations[a].displayCharacter); // assume + // jax-b + // takes + // care + // of + // utf8 + // translation + ae.addValue(aa[i].annotations[a].value); + ae.setPosition(a + 1); + if (aa[i].annotations[a].secondaryStructure != ' ') + { + Glyph ss = new Glyph(); + ss + .setDict(org.vamsas.objects.utils.GlyphDictionary. + PROTEIN_SS_3STATE); + ss.setContent(String + .valueOf(aa[i].annotations[a]. + secondaryStructure)); + ae.addGlyph(ss); + } + an.addAnnotationElement(ae); + } + if (aa[i].editable) + { + //an.addProperty(newProperty("jalview:editable", null, "true")); + an.setModifiable(true); + } + if (aa[i].graph != jalview.datamodel.AlignmentAnnotation.NO_GRAPH) + { + an.setGraph(true); + an.setGroup(Integer.toString(aa[i].graphGroup)); + an.addProperty(newProperty("jalview:graphType", null, + ( (aa[i].graph == + jalview.datamodel.AlignmentAnnotation. + BAR_GRAPH) ? "BAR_GRAPH" : + "LINE_GRAPH"))); + + /** and on and on.. + vProperty=new Property(); + vProperty.setName("jalview:graphThreshhold"); + vProperty.setContent(aa[i].threshold); + */ + + } + } + else + { + if (an.getModifiable()) + { + // verify annotation - update (perhaps) + Cache.log.info( + "update alignment sequence annotation. not yet implemented."); + } + else + { + // verify annotation - update (perhaps) + Cache.log.info("updated alignment sequence annotation added."); + } + } + } + } + } + // ///////////////////////////////////////////////////// + + // ////////////////////////////////////////////// + // /SAVE THE TREES + // ///////////////////////////////// + // FIND ANY ASSOCIATED TREES + if (Desktop.desktop != null) + { + javax.swing.JInternalFrame[] frames = Desktop.desktop.getAllFrames(); + + for (int t = 0; t < frames.length; t++) + { + if (frames[t] instanceof TreePanel) + { + TreePanel tp = (TreePanel) frames[t]; + + if (tp.getAlignment() == jal) + { + Tree tree = (Tree) getjv2vObj(tp); + if (tree == null) + { + tree = new Tree(); + bindjvvobj(tp, tree); + tree.setTitle(tp.getTitle()); + Newick newick = new Newick(); + // TODO: translate sequenceI to leaf mappings to vamsas + // references - see tree specification in schema. + newick.setContent(tp.getTree().toString()); + newick.setTitle(tp.getTitle()); + tree.addNewick(newick); + tree.setProvenance(makeTreeProvenance(jal, tp)); + alignment.addTree(tree); + } + else + { + if (tree.getModifiable()) + { + // verify any changes. + System.out.println("Update tree in document."); + } + else + { + System.out + .println("Add modified tree as new tree in document."); + } + } + } + } + } + } + // Store Jalview specific stuff in the Jalview appData + // not implemented in the SimpleDoc interface. + } + + catch (Exception ex) + { + ex.printStackTrace(); + } + + } + + private Property newProperty(String name, String type, String content) + { + Property vProperty = new Property(); + vProperty.setName(name); + if (type != null) + { + vProperty.setType(type); + } + else + { + vProperty.setType("String"); + } + vProperty.setContent(content); + return vProperty; + } + + /** + * correctly create a RangeAnnotation from a jalview sequence feature + * + * @param dsa + * (typically DataSetAnnotations or AlignmentSequenceAnnotation) + * @param feature + * (the feature to be mapped from) + * @return + */ + private RangeAnnotation getDSAnnotationFromJalview(RangeAnnotation dsa, + SequenceFeature feature) + { + dsa.setType(feature.getType()); + Seg vSeg = new Seg(); + vSeg.setStart(feature.getBegin()); + vSeg.setEnd(feature.getEnd()); + vSeg.setInclusive(true); + dsa.addSeg(vSeg); + dsa.setDescription(feature.getDescription()); + dsa.setStatus(feature.getStatus()); + if (feature.links != null && feature.links.size() > 0) + { + for (int i = 0, iSize = feature.links.size(); i < iSize; i++) + { + String link = (String) feature.links.elementAt(i); + int sep = link.indexOf('|'); + if (sep > -1) + { + Link vLink = new Link(); + if (sep > 0) + { + vLink.setContent(link.substring(0, sep - 1)); + } + else + { + vLink.setContent(""); + } + vLink.setHref(link.substring(sep + 1)); // TODO: validate href. + dsa.addLink(vLink); + } + } + } + dsa.setGroup(feature.getFeatureGroup()); + return dsa; + } + + /** + * correctly creates provenance for trees calculated on an alignment by + * jalview. + * + * @param jal + * @param tp + * @return + */ + private Provenance makeTreeProvenance(AlignmentI jal, TreePanel tp) + { + Provenance prov = new Provenance(); + prov.addEntry(new Entry()); + prov.getEntry(0).setAction("imported " + tp.getTitle()); + prov.getEntry(0).setUser(provEntry.getUser()); + prov.getEntry(0).setApp(provEntry.getApp()); + prov.getEntry(0).setDate(provEntry.getDate()); + if (tp.getTree().hasOriginalSequenceData()) + { + Input vInput = new Input(); + // LATER: check to see if tree input data is contained in this alignment - + // or just correctly resolve the tree's seqData to the correct alignment in + // the document. + // vInput.setObjRef(getjv2vObj(jal)); + vInput.setObjRef(getjv2vObj(tp.getViewPort())); + prov.getEntry(0).setAction("created " + tp.getTitle()); + prov.getEntry(0).addInput(vInput); + vInput.setName("jalview:seqdist"); + prov.getEntry(0).addParam(new Param()); + prov.getEntry(0).getParam(0).setName("treeType"); + prov.getEntry(0).getParam(0).setType("utf8"); + prov.getEntry(0).getParam(0).setContent("NJ"); + + int ranges[] = tp.getTree().seqData.getVisibleContigs(); + // VisibleContigs are with respect to alignment coordinates. Still need offsets + int start = tp.getTree().seqData.getAlignmentOrigin(); + for (int r = 0; r < ranges.length; r += 2) + { + Seg visSeg = new Seg(); + visSeg.setStart(1 + start + ranges[r]); + visSeg.setEnd(start + ranges[r + 1]); + visSeg.setInclusive(true); + vInput.addSeg(visSeg); + } + } + return prov; + } + + /** + * + * @param tp + * @return Object[] { AlignmentView, AlignmentI - reference alignment for + * input } + */ + private Object[] recoverInputData(Provenance tp) + { + for (int pe = 0; pe < tp.getEntryCount(); pe++) + { + if (tp.getEntry(pe).getInputCount() > 0) + { + if (tp.getEntry(pe).getInputCount() > 1) + { + Cache.log.warn("Ignoring additional input spec in provenance entry " + + tp.getEntry(pe).toString()); + } + // LATER: deal sensibly with multiple inputs. + Input vInput = tp.getEntry(pe).getInput(0); + if (vInput.getObjRef() instanceof org.vamsas.objects.core.Alignment) + { + // recover an AlignmentView for the input data + AlignViewport javport = (AlignViewport) getvObj2jv( (org.vamsas. + client.Vobject) vInput + .getObjRef()); + jalview.datamodel.AlignmentI jal = javport.getAlignment(); + jalview.datamodel.CigarArray view = javport.getAlignment(). + getCompactAlignment(); + int from = 1, to = jal.getWidth(); + int offset = 0; // deleteRange modifies its frame of reference + for (int r = 0, s = vInput.getSegCount(); r < s; r++) + { + Seg visSeg = vInput.getSeg(r); + int se[] = getSegRange(visSeg, true); // jalview doesn't do bidirection alignments yet. + if (to < se[1]) + { + Cache.log.warn("Ignoring invalid segment in InputData spec."); + } + else + { + if (se[0] > from) + { + view.deleteRange(offset + from - 1, offset + se[0] - 2); + offset -= se[0] - from; + } + from = se[1] + 1; + } + } + if (from < to) + { + view.deleteRange(offset + from - 1, offset + to - 1); // final deletion - TODO: check off by + // one for to + } + return new Object[] + { + new AlignmentView(view), jal}; + } + } + } + Cache.log.debug("Returning null for input data recovery from provenance."); + return null; + } + + /** + * get start 0) + { + DbRef[] dbref = vdseq.getDbRef(); + for (int db = 0; db < dbref.length; db++) + { + jalview.datamodel.DBRefEntry dbr = (jalview.datamodel.DBRefEntry) + getvObj2jv(dbref[db]); + if (dbr == null) + { + // add new dbref + dsseq.addDBRef(dbr = new jalview.datamodel.DBRefEntry + ( + dbref[db].getSource().toString(), + dbref[db].getVersion().toString(), + dbref[db].getAccessionId().toString())); + bindjvvobj(dbr, dbref[db]); + } + } + } + } + + if (newds) + { + SequenceI[] seqs = new SequenceI[dsseqs.size()]; + for (i = 0, iSize = dsseqs.size(); i < iSize; i++) + { + seqs[i] = (SequenceI) dsseqs.elementAt(i); + dsseqs.setElementAt(null, i); + } + jdataset = new jalview.datamodel.Alignment(seqs); + Cache.log.debug("New vamsas dataset imported into jalview."); + bindjvvobj(jdataset, dataset); + } + // //////// + // add any new dataset sequence feature annotations + if (dataset.getDataSetAnnotations() != null) + { + for (int dsa = 0; dsa < dataset.getDataSetAnnotationsCount(); dsa++) + { + DataSetAnnotations dseta = dataset.getDataSetAnnotations(dsa); + SequenceI dsSeq = (SequenceI) getvObj2jv( (Vobject) dseta.getSeqRef()); + if (dsSeq == null) + { + jalview.bin.Cache.log.warn( + "Couldn't resolve jalview sequenceI for dataset object reference " + + ( (Vobject) dataset.getDataSetAnnotations(dsa).getSeqRef()). + getVorbaId().getId()); + } + else + { + if (dseta.getAnnotationElementCount() == 0) + { + jalview.datamodel.SequenceFeature sf = (jalview.datamodel. + SequenceFeature) getvObj2jv(dseta); + if (sf == null) + { + dsSeq.addSequenceFeature(sf = getJalviewSeqFeature(dseta)); + bindjvvobj(sf, dseta); + } + } + else + { + // TODO: deal with alignmentAnnotation style annotation + // appearing on dataset sequences. + // JBPNote: we could just add them to all alignments but + // that may complicate cross references in the jalview + // datamodel + Cache.log.warn("Ignoring dataset annotation with annotationElements. Not yet supported in jalview."); + } + } + } + } + + if (dataset.getAlignmentCount() > 0) + { + // LOAD ALIGNMENTS from DATASET + + for (int al = 0, nal = dataset.getAlignmentCount(); al < nal; al++) + { + org.vamsas.objects.core.Alignment alignment = dataset.getAlignment( + al); + AlignViewport av = (AlignViewport) getvObj2jv(alignment); + jalview.datamodel.AlignmentI jal = null; + if (av != null) + { + jal = av.getAlignment(); + } + iSize = alignment.getAlignmentSequenceCount(); + boolean newal = (jal == null) ? true : false; + Vector newasAnnots = new Vector(); + char gapChar = ' '; // default for new alignments read in from the document + if (jal != null) + { + dsseqs = jal.getSequences(); // for merge/update + gapChar = jal.getGapCharacter(); + } + else + { + dsseqs = new Vector(); + } + char valGapchar = alignment.getGapChar().charAt(0); + for (i = 0; i < iSize; i++) + { + AlignmentSequence valseq = alignment.getAlignmentSequence(i); + jalview.datamodel.SequenceI alseq = (SequenceI) getvObj2jv(valseq); + if (alseq != null) + { + //TODO: upperCase/LowerCase situation here ? do we allow it ? + //if (!alseq.getSequence().equals(valseq.getSequence())) { + // throw new Error("Broken! - mismatch of dataset sequence and jalview internal dataset sequence."); + if (Cache.log.isDebugEnabled()) + { + Cache.log.debug("Updating apparently edited sequence " + + alseq.getName()); + } + // this might go *horribly* wrong + alseq.setSequence(new String(valseq.getSequence()).replace( + valGapchar, gapChar)); + jremain--; + } + else + { + alseq = new jalview.datamodel.Sequence( + valseq.getName(), + valseq.getSequence().replace(valGapchar, gapChar), + valseq.getStart(), + valseq.getEnd()); + + Vobject datsetseq = (Vobject) valseq.getRefid(); + if (datsetseq != null) + { + alseq.setDatasetSequence( (SequenceI) getvObj2jv(datsetseq)); // exceptions if AlignemntSequence reference isn't a simple SequenceI + } + else + { + Cache.log.error( + "Invalid dataset sequence id (null) for alignment sequence " + + valseq.getVorbaId()); + } + bindjvvobj(alseq, valseq); + alseq.setVamsasId(valseq.getVorbaId().getId()); + dsseqs.add(alseq); + } + if (valseq.getAlignmentSequenceAnnotationCount() > 0) + { + AlignmentSequenceAnnotation[] vasannot = valseq. + getAlignmentSequenceAnnotation(); + for (int a = 0; a < vasannot.length; a++) + { + jalview.datamodel.AlignmentAnnotation asa = (jalview. + datamodel.AlignmentAnnotation) getvObj2jv(vasannot[a]); // TODO: 1:many jalview alignment sequence annotations + if (asa == null) + { + int se[] = getBounds(vasannot[a]); + asa = getjAlignmentAnnotation(jal, vasannot[a]); + asa.sequenceRef = alseq; + asa.createSequenceMapping(alseq, alseq.getStart() + se[0], false); // TODO: verify that positions in alseqAnnotation correspond to ungapped residue positions. + bindjvvobj(asa, vasannot[a]); + newasAnnots.add(asa); + } + else + { + // update existing annotation - can do this in place + if (vasannot[a].getModifiable()) + { + Cache.log.info( + "UNIMPLEMENTED: not recovering user modifiable sequence alignment annotation"); + // TODO: should at least replace with new one - otherwise things will break + // basically do this: + // int se[] = getBounds(vasannot[a]); + // asa.update(getjAlignmentAnnotation(jal, vasannot[a])); // update from another annotation object in place. + // asa.createSequenceMapping(alseq, se[0], false); + + } + } + } + } + } + if (jal == null) + { + SequenceI[] seqs = new SequenceI[dsseqs.size()]; + for (i = 0, iSize = dsseqs.size(); i < iSize; i++) + { + seqs[i] = (SequenceI) dsseqs.elementAt(i); + dsseqs.setElementAt(null, i); + } + jal = new jalview.datamodel.Alignment(seqs); + Cache.log.debug("New vamsas alignment imported into jalview " + + alignment.getVorbaId().getId()); + jal.setDataset(jdataset); + } + if (newasAnnots != null && newasAnnots.size() > 0) + { + // Add the new sequence annotations in to the alignment. + for (int an = 0, anSize = newasAnnots.size(); an < anSize; an++) + { + jal.addAnnotation( (AlignmentAnnotation) newasAnnots.elementAt( + an)); + // TODO: check if anything has to be done - like calling adjustForAlignment or something. + newasAnnots.setElementAt(null, an); + } + newasAnnots = null; + } + // ////////////////////////////////////////// + // //LOAD ANNOTATIONS FOR THE ALIGNMENT + // //////////////////////////////////// + if (alignment.getAlignmentAnnotationCount() > 0) + { + org.vamsas.objects.core.AlignmentAnnotation[] an = alignment. + getAlignmentAnnotation(); + + for (int j = 0; j < an.length; j++) + { + jalview.datamodel.AlignmentAnnotation jan = (jalview.datamodel. + AlignmentAnnotation) getvObj2jv(an[j]); + if (jan != null) + { + // update or stay the same. + // TODO: should at least replace with a new one - otherwise things will break + // basically do this: + // jan.update(getjAlignmentAnnotation(jal, an[a])); // update from another annotation object in place. + + Cache.log.debug("update from vamsas alignment annotation to existing jalview alignment annotation."); + if (an[j].getModifiable()) + { + // TODO: user defined annotation is totally mutable... - so load it up or throw away if locally edited. + Cache.log.info( + "NOT IMPLEMENTED - Recovering user-modifiable annotation - yet..."); + } + // TODO: compare annotation element rows + // TODO: compare props. + } + else + { + jan = getjAlignmentAnnotation(jal, an[j]); + jal.addAnnotation(jan); + bindjvvobj(jan, an[j]); + } + } + } + AlignFrame alignFrame; + if (av == null) + { + Cache.log.debug("New alignframe for alignment " + + alignment.getVorbaId()); + // /////////////////////////////// + // construct alignment view + alignFrame = new AlignFrame(jal, AlignFrame.DEFAULT_WIDTH, + AlignFrame.DEFAULT_HEIGHT); + av = alignFrame.getViewport(); + String title = alignment.getProvenance().getEntry(alignment. + getProvenance().getEntryCount() - 1).getAction(); + if (alignment.getPropertyCount() > 0) + { + for (int p = 0, pe = alignment.getPropertyCount(); p < pe; p++) + { + if (alignment.getProperty(p).getName().equals( + "jalview:AlTitle")) + { + title = alignment.getProperty(p).getContent(); + } + } + } + // TODO: automatically create meaningful title for a vamsas alignment using its provenance. + jalview.gui.Desktop.addInternalFrame(alignFrame, + title + "(" + alignment.getVorbaId() + ")", + AlignFrame.DEFAULT_WIDTH, + AlignFrame.DEFAULT_HEIGHT); + bindjvvobj(av, alignment); + } + else + { + // find the alignFrame for jal. + // TODO: fix this so we retrieve the alignFrame handing av *directly* + alignFrame = getAlignFrameFor(av); + } + // LOAD TREES + // ///////////////////////////////////// + if (alignment.getTreeCount() > 0) + { + + for (int t = 0; t < alignment.getTreeCount(); t++) + { + Tree tree = alignment.getTree(t); + TreePanel tp = (TreePanel) getvObj2jv(tree); + if (tp != null) + { + Cache.log.info( + "Update from vamsas document to alignment associated tree not implemented yet."); + } + else + { + // make a new tree + Object[] idata = this.recoverInputData(tree.getProvenance()); + try + { + AlignmentView inputData = null; + if (idata != null && idata[0] != null) + { + inputData = (AlignmentView) idata[0]; + } + tp = alignFrame.ShowNewickTree( + new jalview.io.NewickFile(tree.getNewick(0).getContent()), + tree.getNewick(0).getTitle() + " (" + tree.getVorbaId() + + ")", inputData, + 600, 500, + t * 20 + 50, t * 20 + 50); + bindjvvobj(tp, tree); + } + catch (Exception e) + { + Cache.log.warn("Problems parsing treefile '" + + tree.getNewick(0).getContent() + "'", e); + } + } + } + } + + } + } + } + } + } + + // bitfields - should be a template in j1.5 + private static int HASSECSTR = 0; + private static int HASVALS = 1; + private static int HASHPHOB = 2; + private static int HASDC = 3; + private static int HASDESCSTR = 4; + private static int HASTWOSTATE = 5; // not used yet. + /** + * parses the AnnotationElements - if they exist - into jalview.datamodel.Annotation[] rows + * Two annotation rows are made if there are distinct annotation for both at 'pos' and 'after pos' at any particular site. + * @param annotation + * @return { boolean[static int constants ], int[ae.length] - map to annotated object frame, jalview.datamodel.Annotation[], jalview.datamodel.Annotation[] (after)} + */ + private Object[] parseRangeAnnotation(org.vamsas.objects.core.RangeAnnotation + annotation) + { + // set these attributes by looking in the annotation to decide what kind of alignment annotation rows will be made + // TODO: potentially we might make several annotation rows from one vamsas alignment annotation. the jv2Vobj binding mechanism + // may not quite cope with this (without binding an array of annotations to a vamsas alignment annotation) + // summary flags saying what we found over the set of annotation rows. + boolean[] AeContent = new boolean[] + { + false, false, false, false, false}; + int[] rangeMap = getMapping(annotation); + jalview.datamodel.Annotation[][] anot = new jalview.datamodel.Annotation[][] + { + new jalview.datamodel.Annotation[rangeMap.length], + new jalview.datamodel.Annotation[rangeMap.length] + }; + boolean mergeable = true; //false if 'after positions cant be placed on same annotation row as positions. + + if (annotation.getAnnotationElementCount() > 0) + { + AnnotationElement ae[] = annotation.getAnnotationElement(); + for (int aa = 0; aa < ae.length; aa++) + { + int pos = ae[aa].getPosition() - 1; // pos counts from 1 to (|seg.start-seg.end|+1) + if (pos >= 0 && pos < rangeMap.length) + { + int row = ae[aa].getAfter() ? 1 : 0; + if (anot[row][pos] != null) + { + // only time this should happen is if the After flag is set. + Cache.log.debug("Ignoring duplicate annotation site at " + pos); + continue; + } + if (anot[1 - row][pos] != null) + { + mergeable = false; + } + String desc = ""; + if (ae[aa].getDescription() != null) + { + desc = ae[aa].getDescription(); + if (desc.length() > 0) + { + // have imported valid description string + AeContent[HASDESCSTR] = true; + } + } + String dc = null; //ae[aa].getDisplayCharacter()==null ? "dc" : ae[aa].getDisplayCharacter(); + String ss = null; //ae[aa].getSecondaryStructure()==null ? "ss" : ae[aa].getSecondaryStructure(); + java.awt.Color colour = null; + if (ae[aa].getGlyphCount() > 0) + { + Glyph[] glyphs = ae[aa].getGlyph(); + for (int g = 0; g < glyphs.length; g++) + { + if (glyphs[g].getDict().equals(org.vamsas.objects.utils. + GlyphDictionary.PROTEIN_SS_3STATE)) + { + ss = glyphs[g].getContent(); + AeContent[HASSECSTR] = true; + } + else if (glyphs[g].getDict().equals(org.vamsas.objects.utils. + GlyphDictionary. + PROTEIN_HD_HYDRO)) + { + Cache.log.debug("ignoring hydrophobicity glyph marker."); + AeContent[HASHPHOB] = true; + char c = (dc = glyphs[g].getContent()).charAt(0); + // dc may get overwritten - but we still set the colour. + colour = new java.awt.Color(c == '+' ? 255 : 0, + c == '.' ? 255 : 0, + c == '-' ? 255 : 0); + + } + else if (glyphs[g].getDict().equals(org.vamsas.objects.utils. + GlyphDictionary.DEFAULT)) + { + dc = glyphs[g].getContent(); + AeContent[HASDC] = true; + } + else + { + Cache.log.debug("Ignoring unknown glyph type " + + glyphs[g].getDict()); + } + } + } + float val = 0; + if (ae[aa].getValueCount() > 0) + { + AeContent[HASVALS] = true; + if (ae[aa].getValueCount() > 1) + { + Cache.log.warn("ignoring additional " + + (ae[aa].getValueCount() - 1) + + "values in annotation element."); + } + val = ae[aa].getValue(0); + } + if (colour == null) + { + anot[row][pos] = new jalview.datamodel.Annotation( (dc != null) ? + dc : "", desc, (ss != null) ? ss.charAt(0) : ' ', val); + } + else + { + anot[row][pos] = new jalview.datamodel.Annotation( (dc != null) ? + dc : "", desc, (ss != null) ? ss.charAt(0) : ' ', val, colour); + } + } + else + { + Cache.log.warn("Ignoring out of bound annotation element " + aa + + " in " + annotation.getVorbaId().getId()); + } + } + // decide on how many annotation rows are needed. + if (mergeable) + { + for (int i = 0; i < anot[0].length; i++) + { + if (anot[1][i] != null) + { + anot[0][i] = anot[1][i]; + anot[0][i].description = anot[0][i].description + " (after)"; + AeContent[HASDESCSTR] = true; // we have valid description string data + anot[1][i] = null; + } + } + anot[1] = null; + } + else + { + for (int i = 0; i < anot[0].length; i++) + { + anot[1][i].description = anot[1][i].description + " (after)"; + } + } + return new Object[] + { + AeContent, rangeMap, anot[0], anot[1]}; + } + else + { + // no annotations to parse. Just return an empty annotationElement[] array. + return new Object[] + { + AeContent, rangeMap, anot[0], anot[1]}; + } + // return null; + } + + /** + * @param jal the jalview alignment to which the annotation will be attached (ideally - freshly updated from corresponding vamsas alignment) + * @param annotation + * @return unbound jalview alignment annotation object. + */ + private jalview.datamodel.AlignmentAnnotation getjAlignmentAnnotation(jalview. + datamodel.AlignmentI jal, + org.vamsas.objects.core.RangeAnnotation annotation) + { + jalview.datamodel.AlignmentAnnotation jan = null; + if (annotation == null) + { + return null; + } + // boolean hasSequenceRef=annotation.getClass().equals(org.vamsas.objects.core.AlignmentSequenceAnnotation.class); + //boolean hasProvenance=hasSequenceRef || (annotation.getClass().equals(org.vamsas.objects.core.AlignmentAnnotation.class)); + /*int se[] = getBounds(annotation); + if (se==null) + se=new int[] {0,jal.getWidth()-1}; + */ + Object[] parsedRangeAnnotation = parseRangeAnnotation(annotation); + String a_label = annotation.getLabel(); + String a_descr = annotation.getDescription(); + if (a_label == null || a_label.length() == 0) + { + a_label = annotation.getType(); + if (a_label.length() == 0) + { + a_label = "Unamed annotation"; + } + } + if (a_descr == null || a_descr.length() == 0) + { + a_descr = "Annotation of type '" + annotation.getType() + "'"; + } + if (parsedRangeAnnotation == null) + { + Cache.log.debug( + "Inserting empty annotation row elements for a whole-alignment annotation."); + + } + else + { + if (parsedRangeAnnotation[3] != null) + { + Cache.log.warn("Ignoring 'After' annotation row in " + + annotation.getVorbaId()); + } + jalview.datamodel.Annotation[] arow = (jalview.datamodel.Annotation[]) + parsedRangeAnnotation[2]; + boolean[] has = (boolean[]) parsedRangeAnnotation[0]; + // VAMSAS: getGraph is only on derived annotation for alignments - in this way its 'odd' - there is already an existing TODO about removing this flag as being redundant + /*if ((annotation.getClass().equals(org.vamsas.objects.core.AlignmentAnnotation.class) && ((org.vamsas.objects.core.AlignmentAnnotation)annotation).getGraph()) + || (hasSequenceRef=true && ((org.vamsas.objects.core.AlignmentSequenceAnnotation)annotation).getGraph())) { + */ + if (has[HASVALS]) + { + // make bounds and automatic description strings for jalview user's benefit (these shouldn't be written back to vamsas document) + boolean first = true; + float min = 0, max = 1; + int lastval = 0; + for (int i = 0; i < arow.length; i++) + { + if (arow[i] != null) + { + if (i - lastval > 1) + { + // do some interpolation *between* points + if (arow[lastval] != null) + { + float interval = arow[i].value - arow[lastval].value; + interval /= i - lastval; + float base = arow[lastval].value; + for (int ip = lastval + 1, np = 0; ip < i; np++, ip++) + { + arow[ip] = new jalview.datamodel.Annotation("", "", ' ', + interval * np + base); + // NB - Interpolated points don't get a tooltip and description. + } + } + } + lastval = i; + // check range - shouldn't we have a min and max property in the annotation object ? + if (first) + { + min = max = arow[i].value; + first = false; + } + else + { + if (arow[i].value < min) + { + min = arow[i].value; + } + else if (arow[i].value > max) + { + max = arow[i].value; + } + } + // make tooltip and display char value + if (!has[HASDESCSTR]) + { + arow[i].description = arow[i].value + ""; + } + if (!has[HASDC]) + { + arow[i].displayCharacter = arow[i].value + ""; + } + } + } + int type = jalview.datamodel.AlignmentAnnotation.LINE_GRAPH; + if (has[HASHPHOB]) + { + type = jalview.datamodel.AlignmentAnnotation.BAR_GRAPH; + } + jan = new jalview.datamodel.AlignmentAnnotation(a_label, a_descr, arow, + min, max, type); + } + else + { + jan = new jalview.datamodel.AlignmentAnnotation(a_label, a_descr, arow); + jan.setThreshold(null); + } + if (annotation.getLinkCount() > 0) + { + Cache.log.warn("Ignoring " + annotation.getLinkCount() + + "links added to AlignmentAnnotation."); + } + if (annotation.getModifiable()) + { + jan.editable = true; + } + + if (annotation.getPropertyCount() > 0) + { + // look for special jalview properties + org.vamsas.objects.core.Property[] props = annotation.getProperty(); + for (int p = 0; p < props.length; p++) + { + if (props[p].getName().equalsIgnoreCase("jalview:graphType")) + { + try + { + // probably a jalview annotation graph so recover the visualization hints. + jan.graph = jalview.datamodel.AlignmentAnnotation. + getGraphValueFromString(props[p].getContent()); + } + catch (Exception e) + { + Cache.log.debug( + "Invalid graph type value in jalview:graphType property."); + } + try + { + if (annotation.getGroup() != null && + annotation.getGroup().length() > 0) + { + jan.graphGroup = Integer.parseInt(annotation.getGroup()); + } + } + catch (Exception e) + { + Cache.log.info("UNIMPLEMENTED : Couldn't parse non-integer group value for setting graphGroup correctly."); + } + } + } + } + + return jan; + + } + + return null; + } + + private SequenceFeature getJalviewSeqFeature(RangeAnnotation dseta) + { + int[] se = getBounds(dseta); + SequenceFeature sf = new jalview.datamodel.SequenceFeature(dseta.getType(), + dseta.getDescription(), dseta.getStatus(), se[0], se[1], dseta + .getGroup()); + if (dseta.getLinkCount() > 0) + { + Link[] links = dseta.getLink(); + for (int i = 0; i < links.length; i++) + { + sf.addLink(links[i].getContent() + "|" + links[i].getHref()); + } + } + return sf; + } + + /** + * get real bounds of a RangeType's specification. start and end are an + * inclusive range within which all segments and positions lie. + * TODO: refactor to vamsas utils + * @param dseta + * @return int[] { start, end} + */ + private int[] getBounds(RangeType dseta) + { + if (dseta != null) + { + int[] se = null; + if (dseta.getSegCount() > 0 && dseta.getPosCount() > 0) + { + throw new Error("Invalid vamsas RangeType - cannot resolve both lists of Pos and Seg from choice!"); + } + if (dseta.getSegCount() > 0) + { + se = getSegRange(dseta.getSeg(0), true); + for (int s = 1, sSize = dseta.getSegCount(); s < sSize; s++) + { + int nse[] = getSegRange(dseta.getSeg(s), true); + if (se[0] > nse[0]) + { + se[0] = nse[0]; + } + if (se[1] < nse[1]) + { + se[1] = nse[1]; + } + } + } + if (dseta.getPosCount() > 0) + { + // could do a polarity for pos range too. and pass back indication of discontinuities. + int pos = dseta.getPos(0).getI(); + se = new int[] + { + pos, pos}; + for (int p = 0, pSize = dseta.getPosCount(); p < pSize; p++) + { + pos = dseta.getPos(p).getI(); + if (se[0] > pos) + { + se[0] = pos; + } + if (se[1] < pos) + { + se[1] = pos; + } + } + } + return se; + } + return null; + } + + /** + * map from a rangeType's internal frame to the referenced object's coordinate frame. + * @param dseta + * @return int [] { ref(pos)...} for all pos in rangeType's frame. + */ + private int[] getMapping(RangeType dseta) + { + Vector posList = new Vector(); + if (dseta != null) + { + int[] se = null; + if (dseta.getSegCount() > 0 && dseta.getPosCount() > 0) + { + throw new Error("Invalid vamsas RangeType - cannot resolve both lists of Pos and Seg from choice!"); + } + if (dseta.getSegCount() > 0) + { + for (int s = 0, sSize = dseta.getSegCount(); s < sSize; s++) + { + se = getSegRange(dseta.getSeg(s), false); + int se_end = se[1 - se[2]] + (se[2] == 0 ? 1 : -1); + for (int p = se[se[2]]; p != se_end; p += se[2] == 0 ? 1 : -1) + { + posList.add(new Integer(p)); + } + } + } + else if (dseta.getPosCount() > 0) + { + int pos = dseta.getPos(0).getI(); + + for (int p = 0, pSize = dseta.getPosCount(); p < pSize; p++) + { + pos = dseta.getPos(p).getI(); + posList.add(new Integer(pos)); + } + } + } + if (posList != null && posList.size() > 0) + { + int[] range = new int[posList.size()]; + for (int i = 0; i < range.length; i++) + { + range[i] = ( (Integer) posList.elementAt(i)).intValue(); + } + posList.clear(); + return range; + } + return null; + } + + /* not needed now. + * Provenance getVamsasProvenance(jalview.datamodel.Provenance jprov) { + jalview.datamodel.ProvenanceEntry[] entries = null; + // TODO: fix App and Action here. + Provenance prov = new Provenance(); + org.exolab.castor.types.Date date = new org.exolab.castor.types.Date( + new java.util.Date()); + Entry provEntry; + + if (jprov != null) + { + entries = jprov.getEntries(); + for (int i = 0; i < entries.length; i++) + { + provEntry = new Entry(); + try + { + date = new org.exolab.castor.types.Date(entries[i].getDate()); + } catch (Exception ex) + { + ex.printStackTrace(); + + date = new org.exolab.castor.types.Date(entries[i].getDate()); + } + provEntry.setDate(date); + provEntry.setUser(entries[i].getUser()); + provEntry.setAction(entries[i].getAction()); + prov.addEntry(provEntry); + } + } + else + { + provEntry = new Entry(); + provEntry.setDate(date); + provEntry.setUser(System.getProperty("user.name")); // TODO: ext string + provEntry.setApp("JVAPP"); // TODO: ext string + provEntry.setAction(action); + prov.addEntry(provEntry); + } + + return prov; + } + */ + jalview.datamodel.Provenance getJalviewProvenance(Provenance prov) + { + // TODO: fix App and Action entries and check use of provenance in jalview. + jalview.datamodel.Provenance jprov = new jalview.datamodel.Provenance(); + for (int i = 0; i < prov.getEntryCount(); i++) + { + jprov.addEntry(prov.getEntry(i).getUser(), prov.getEntry(i).getAction(), + prov.getEntry(i).getDate().toDate(), + prov.getEntry(i).getId()); + } + + return jprov; + } + + /** + * + * @return default initial provenance list for a Jalview created vamsas + * object. + */ + Provenance dummyProvenance() + { + return dummyProvenance(null); + } + + Entry dummyPEntry(String action) + { + Entry entry = new Entry(); + entry.setApp(this.provEntry.getApp()); + if (action != null) + { + entry.setAction(action); + } + else + { + entry.setAction("created."); + } + entry.setDate(new org.exolab.castor.types.Date(new java.util.Date())); + entry.setUser(this.provEntry.getUser()); + return entry; + } + + Provenance dummyProvenance(String action) + { + Provenance prov = new Provenance(); + prov.addEntry(dummyPEntry(action)); + return prov; + } + + void addProvenance(Provenance p, String action) + { + p.addEntry(dummyPEntry(action)); + } + +} diff --git a/src/jalview/schemes/ScoreMatrix.java b/src/jalview/schemes/ScoreMatrix.java new file mode 100644 index 0000000..69a0922 --- /dev/null +++ b/src/jalview/schemes/ScoreMatrix.java @@ -0,0 +1,67 @@ +package jalview.schemes; + +public class ScoreMatrix +{ + String name; + /** + * reference to integer score matrix + */ + int[][] matrix; + /** + * 0 for Protein Score matrix. 1 for dna score matrix + */ + int type; + ScoreMatrix(String name, int[][] matrix, int type) + { + this.matrix = matrix; + this.type = type; + } + + public boolean isDNA() + { + return type == 1; + } + + public boolean isProtein() + { + return type == 0; + } + + public int[][] getMatrix() + { + return matrix; + } + + /** + * + * @param A1 + * @param A2 + * @return score for substituting first char in A1 with first char in A2 + */ + public int getPairwiseScore(String A1, String A2) + { + return getPairwiseScore(A1.charAt(0), A2.charAt(0)); + } + + public int getPairwiseScore(char c, char d) + { + int pog = 0; + + try + { + int a = (type == 0) ? ResidueProperties.aaIndex[c] : + ResidueProperties.nucleotideIndex[c]; + int b = (type == 0) ? ResidueProperties.aaIndex[d] : + ResidueProperties.nucleotideIndex[d]; + + pog = matrix[a][b]; + } + catch (Exception e) + { + //System.out.println("Unknown residue in " + A1 + " " + A2); + } + + return pog; + } + +} diff --git a/src/jalview/util/MapList.java b/src/jalview/util/MapList.java new file mode 100644 index 0000000..215ece9 --- /dev/null +++ b/src/jalview/util/MapList.java @@ -0,0 +1,395 @@ +/* + * Jalview - A Sequence Alignment Editor and Viewer + * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ +package jalview.util; + +import java.util.*; + +/** + * MapList + * Simple way of bijectively mapping a non-contiguous linear range to another non-contiguous linear range + * Use at your own risk! + * TODO: efficient implementation of private posMap method + * TODO: test/ensure that sense of from and to ratio start position is conserved (codon start position recovery) + * TODO: optimize to use int[][] arrays rather than vectors. + */ +public class MapList +{ + public Vector fromShifts; + public Vector toShifts; + int fromRatio; // number of steps in fromShifts to one toRatio unit + int toRatio; // number of steps in toShifts to one fromRatio + public MapList(int from[], int to[], int fromRatio, int toRatio) + { + fromShifts = new Vector(); + for (int i = 0; i < from.length; i += 2) + { + fromShifts.add(new int[] + {from[i], from[i + 1]}); + } + toShifts = new Vector(); + for (int i = 0; i < to.length; i += 2) + { + toShifts.add(new int[] + {to[i], to[i + 1]}); + } + this.fromRatio = fromRatio; + this.toRatio = toRatio; + } + + /** + * get all mapped positions from 'from' to 'to' + * @return int[][] { int[] { fromStart, fromFinish, toStart, toFinish }, int [fromFinish-fromStart+2] { toStart..toFinish mappings}} + */ + public int[][] makeFromMap() + { + return posMap(fromShifts, fromRatio, toShifts, toRatio); + } + + /** + * get all mapped positions from 'to' to 'from' + * @return int[to position]=position mapped in from + */ + public int[][] makeToMap() + { + return posMap(toShifts, toRatio, fromShifts, fromRatio); + } + + /** + * construct an int map for intervals in intVals + * @param intVals + * @return int[] { from, to pos in range }, int[range.to-range.from+1] returning mapped position + */ + private int[][] posMap(Vector intVals, int ratio, Vector toIntVals, + int toRatio) + { + Iterator iv = intVals.iterator(); + if (!iv.hasNext()) + { + return null; + } + int[] intv = (int[]) iv.next(); + int from = intv[0], to = intv[1]; + if (from > to) + { + from = intv[1]; + to = intv[0]; + } + while (iv.hasNext()) + { + intv = (int[]) iv.next(); + if (intv[0] < from) + { + from = intv[0]; + } + if (intv[1] < from) + { + from = intv[1]; + } + if (intv[0] > to) + { + to = intv[0]; + } + if (intv[1] > to) + { + to = intv[1]; + } + } + int tF = 0, tT = 0; + int mp[][] = new int[to - from + 2][]; + for (int i = 0; i < mp.length; i++) + { + int[] m = shift(i + from, intVals, ratio, toIntVals, toRatio); + if (m != null) + { + if (i == 0) + { + tF = tT = m[0]; + } + else + { + if (m[0] < tF) + { + tF = m[0]; + } + if (m[0] > tT) + { + tT = m[0]; + } + } + } + mp[i] = m; + } + int[][] map = new int[][] + { + new int[] + { + from, to, tF, tT}, new int[to - from + 2]}; + + map[0][2] = tF; + map[0][3] = tT; + + for (int i = 0; i < mp.length; i++) + { + if (mp[i] != null) + { + map[1][i] = mp[i][0] - tF; + } + else + { + map[1][i] = -1; // indicates an out of range mapping + } + } + return map; + } + + /** + * addShift + * @param pos start position for shift (in original reference frame) + * @param shift length of shift + * + public void addShift(int pos, int shift) + { + int sidx = 0; + int[] rshift=null; + while (sidx= intv[0] && pos <= intv[1]) + { + return new int[] + { + count + pos - intv[0] + 1, +1}; + } + else + { + count += intv[1] - intv[0] + 1; + } + } + else + { + if (pos >= intv[1] && pos <= intv[0]) + { + return new int[] + { + count + intv[0] - pos + 1, -1}; + } + else + { + count += intv[0] - intv[1] + 1; + } + } + } + return null; + } + + /** + * count out pos positions into a series of intervals and return the position + * @param intVals + * @param pos + * @return position pos in interval set + */ + private int[] countToPos(Iterator intVals, int pos) + { + int count = 0, diff = 0, intv[] = + { + 0, 0}; + while (intVals.hasNext()) + { + intv = (int[]) intVals.next(); + diff = intv[1] - intv[0]; + if (diff >= 0) + { + if (pos <= count + 1 + diff) + { + return new int[] + { + pos - count - 1 + intv[0], +1}; + } + else + { + count += 1 + diff; + } + } + else + { + if (pos <= count + 1 - diff) + { + return new int[] + { + intv[0] - (pos - count - 1), -1}; + } + else + { + count += 1 - diff; + } + } + } + return null; //(diff<0) ? (intv[1]-1) : (intv[0]+1); + } + + public static void testMap(MapList ml, int fromS, int fromE) + { + for (int from = 1; from <= 25; from++) + { + int[] too = ml.shiftFrom(from); + System.out.print("ShiftFrom(" + from + ")=="); + if (too == null) + { + System.out.print("NaN\n"); + } + else + { + System.out.print(too[0] + " % " + too[1]); + System.out.print("\t+--+\t"); + int[] toofrom = ml.shiftTo(too[0]); + if (toofrom != null) + { + if (toofrom[0] != from) + { + System.err.println("Mapping not reflexive:" + from + " " + too[0] + + "->" + toofrom[0]); + } + System.out.println("ShiftTo(" + too[0] + ")==" + toofrom[0] + " % " + + toofrom[1]); + } + else + { + System.out.println("ShiftTo(" + too[0] + ")==" + + "NaN! - not Bijective Mapping!"); + } + } + } + int mmap[][] = ml.makeFromMap(); + System.out.println("FromMap : (" + mmap[0][0] + " " + mmap[0][1] + " " + + mmap[0][2] + " " + mmap[0][3] + " "); + for (int i = 1; i <= mmap[1].length; i++) + { + if (mmap[1][i - 1] == -1) + { + System.out.print(i + "=XXX"); + + } + else + { + System.out.print(i + "=" + (mmap[0][2] + mmap[1][i - 1])); + } + if (i % 20 == 0) + { + System.out.print("\n"); + } + else + { + System.out.print(","); + } + } + System.out.print("\n"); + } + + public static void main(String argv[]) + { + MapList ml = new MapList(new int[] + {1, 5, 10, 15, 25, 20}, + new int[] + {51, 1}, 1, 3); + MapList ml1 = new MapList(new int[] + {1, 3, 17, 4}, + new int[] + {51, 1}, 1, 3); + + // test internal consistency + int to[] = new int[51]; + MapList.testMap(ml, 1, 25); + /* + for (int from=1; from<=51; from++) { + int[] too=ml.shiftTo(from); + int[] toofrom=ml.shiftFrom(too[0]); + System.out.println("ShiftFrom("+from+")=="+too[0]+" % "+too[1]+"\t+-+\tShiftTo("+too[0]+")=="+toofrom[0]+" % "+toofrom[1]); + }*/ + System.out.print("Success?\n"); // if we get here - something must be working! + } +} diff --git a/src/jalview/ws/JPredThread.java b/src/jalview/ws/JPredThread.java new file mode 100644 index 0000000..0cac709 --- /dev/null +++ b/src/jalview/ws/JPredThread.java @@ -0,0 +1,634 @@ +package jalview.ws; + +import java.util.*; + +import jalview.analysis.*; +import jalview.bin.*; +import jalview.datamodel.*; +import jalview.datamodel.Alignment; +import jalview.gui.*; +import jalview.io.*; +import jalview.util.*; +import vamsas.objects.simple.JpredResult; + +class JPredThread + extends WSThread implements WSClientI +{ + // TODO: put mapping between JPredJob input and input data here - JNetAnnotation adding is done after result parsing. + class JPredJob + extends WSThread.WSJob + { + // TODO: make JPredJob deal only with what was sent to and received from a JNet service + int[] predMap = null; // mapping from sequence(i) to the original sequence(predMap[i]) being predicted on + vamsas.objects.simple.Sequence sequence; + vamsas.objects.simple.Msfalignment msa; + java.util.Hashtable SequenceInfo = null; + int msaIndex = 0; // the position of the original sequence in the array of Sequences in the input object that this job holds a prediction for + /** + * + * @return true if getResultSet will return a valid alignment and prediction result. + */ + public boolean hasResults() + { + if (subjobComplete && result != null && result.isFinished() + && ( (JpredResult) result).getPredfile() != null && + ( (JpredResult) result).getAligfile() != null) + { + return true; + } + return false; + } + + boolean hasValidInput() + { + if (sequence != null) + { + return true; + } + return false; + } + + /** + * + * @return null or Object[] { annotated alignment for this prediction, ColumnSelection for this prediction} or null if no results available. + * @throws Exception + */ + public Object[] getResultSet() + throws Exception + { + if (result == null || !result.isFinished()) + { + return null; + } + Alignment al = null; + ColumnSelection alcsel = null; + int FirstSeq = -1; // the position of the query sequence in Alignment al + + JpredResult result = (JpredResult)this.result; + + jalview.bin.Cache.log.debug("Parsing output from JNet job."); + // JPredFile prediction = new JPredFile("C:/JalviewX/files/jpred.txt", "File"); + jalview.io.JPredFile prediction = new jalview.io.JPredFile(result. + getPredfile(), + "Paste"); + SequenceI[] preds = prediction.getSeqsAsArray(); + jalview.bin.Cache.log.debug("Got prediction profile."); + + if ( (this.msa != null) && (result.getAligfile() != null)) + { + jalview.bin.Cache.log.debug("Getting associated alignment."); + // we ignore the returned alignment if we only predicted on a single sequence + String format = new jalview.io.IdentifyFile().Identify(result. + getAligfile(), + "Paste"); + + if (jalview.io.FormatAdapter.isValidFormat(format)) + { + SequenceI sqs[]; + if (predMap != null) + { + Object[] alandcolsel = input.getAlignmentAndColumnSelection( + alignFrame.getViewport().getGapCharacter()); + sqs = (SequenceI[]) alandcolsel[0]; + al = new Alignment(sqs); + alcsel = (ColumnSelection) alandcolsel[1]; + } + else + { + al = new FormatAdapter().readFile(result.getAligfile(), + "Paste", format); + sqs = new SequenceI[al.getHeight()]; + + for (int i = 0, j = al.getHeight(); i < j; i++) + { + sqs[i] = al.getSequenceAt(i); + } + if (!jalview.analysis.SeqsetUtils.deuniquify( (Hashtable) + SequenceInfo, sqs)) + { + throw (new Exception( + "Couldn't recover sequence properties for alignment.")); + } + } + FirstSeq = 0; + al.setDataset(null); + + jalview.io.JnetAnnotationMaker.add_annotation(prediction, al, + FirstSeq, + false, predMap); + + } + else + { + throw (new Exception( + "Unknown format " + format + " for file : \n" + + result.getAligfile())); + } + } + else + { + al = new Alignment(preds); + FirstSeq = prediction.getQuerySeqPosition(); + if (predMap != null) + { + char gc = alignFrame.getViewport().getGapCharacter(); + SequenceI[] sqs = (SequenceI[]) ( (java.lang.Object[]) input. + getAlignmentAndColumnSelection(gc))[ + 0]; + if (this.msaIndex >= sqs.length) + { + throw new Error("Implementation Error! Invalid msaIndex for JPredJob on parent MSA input object!"); + } + + ///// + //Uses RemoveGapsCommand + ///// + new jalview.commands.RemoveGapsCommand("Remove Gaps", + new SequenceI[] + {sqs[msaIndex]}, + alignFrame.getCurrentView(). + getAlignment()); + + SequenceI profileseq = al.getSequenceAt(FirstSeq); + profileseq.setSequence(sqs[msaIndex].getSequenceAsString()); + } + + if (!jalview.analysis.SeqsetUtils.SeqCharacterUnhash( + al.getSequenceAt(FirstSeq), SequenceInfo)) + { + throw (new Exception( + "Couldn't recover sequence properties for JNet Query sequence!")); + } + else + { + al.setDataset(null); + jalview.io.JnetAnnotationMaker.add_annotation(prediction, al, + FirstSeq, + true, predMap); + SequenceI profileseq = al.getSequenceAt(0); // this includes any gaps. + alignToProfileSeq(al, profileseq); + if (predMap != null) + { + // Adjust input view for gaps + // propagate insertions into profile + alcsel = propagateInsertions(profileseq, al, input); + } + } + } + return new Object[] + { + al, alcsel}; // , FirstSeq, noMsa}; + } + + /** + * Given an alignment where all other sequences except profileseq are aligned to the ungapped profileseq, insert gaps in the other sequences to realign them with the residues in profileseq + * @param al + * @param profileseq + */ + private void alignToProfileSeq(Alignment al, SequenceI profileseq) + { + char gc = al.getGapCharacter(); + int[] gapMap = profileseq.gapMap(); + // insert gaps into profile + for (int lp = 0, r = 0; r < gapMap.length; r++) + { + if (gapMap[r] - lp > 1) + { + StringBuffer sb = new StringBuffer(); + for (int s = 0, ns = gapMap[r] - lp; s < ns; s++) + { + sb.append(gc); + } + for (int s = 1, ns = al.getHeight(); s < ns; s++) + { + String sq = al.getSequenceAt(s).getSequenceAsString(); + int diff = gapMap[r] - sq.length(); + if (diff > 0) + { + // pad gaps + sq = sq + sb; + while ( (diff = gapMap[r] - sq.length()) > 0) + { + sq = sq + + ( (diff >= sb.length()) ? sb.toString() : + sb.substring(0, diff)); + } + al.getSequenceAt(s).setSequence(sq); + } + else + { + al.getSequenceAt(s).setSequence(sq.substring(0, gapMap[r]) + + sb.toString() + + sq.substring(gapMap[r])); + } + } + } + lp = gapMap[r]; + } + } + + /** + * Add gaps into the sequences aligned to profileseq under the given AlignmentView + * @param profileseq + * @param al + * @param input + */ + private ColumnSelection propagateInsertions(SequenceI profileseq, + Alignment al, + AlignmentView input) + { + char gc = al.getGapCharacter(); + Object[] alandcolsel = input.getAlignmentAndColumnSelection(gc); + ColumnSelection nview = (ColumnSelection) alandcolsel[1]; + SequenceI origseq; + nview.pruneDeletions(ShiftList.parseMap( (origseq = ( (SequenceI[]) + alandcolsel[0])[0]).gapMap())); // recover original prediction sequence's mapping to view. + int[] viscontigs = nview.getVisibleContigs(0, profileseq.getLength()); + int spos = 0; + int offset = 0; + // input.pruneDeletions(ShiftList.parseMap(((SequenceI[]) alandcolsel[0])[0].gapMap())) + // add profile to visible contigs + for (int v = 0; v < viscontigs.length; v += 2) + { + if (viscontigs[v] > spos) + { + StringBuffer sb = new StringBuffer(); + for (int s = 0, ns = viscontigs[v] - spos; s < ns; s++) + { + sb.append(gc); + } + for (int s = 0, ns = al.getHeight(); s < ns; s++) + { + SequenceI sqobj = al.getSequenceAt(s); + if (sqobj != profileseq) + { + String sq = al.getSequenceAt(s).getSequenceAsString(); + if (sq.length() <= spos + offset) + { + // pad sequence + int diff = spos + offset - sq.length() - 1; + if (diff > 0) + { + // pad gaps + sq = sq + sb; + while ( (diff = spos + offset - sq.length() - 1) > 0) + { + sq = sq + + ( (diff >= sb.length()) ? sb.toString() : + sb.substring(0, diff)); + } + } + sq += sb.toString(); + } + else + { + al.getSequenceAt(s).setSequence(sq.substring(0, spos + offset) + + sb.toString() + + sq.substring(spos + offset)); + } + } + } + //offset+=sb.length(); + } + spos = viscontigs[v + 1] + 1; + } + if ( (offset + spos) < profileseq.getLength()) + { + StringBuffer sb = new StringBuffer(); + for (int s = 0, ns = profileseq.getLength() - spos - offset; s < ns; s++) + { + sb.append(gc); + } + for (int s = 1, ns = al.getHeight(); s < ns; s++) + { + String sq = al.getSequenceAt(s).getSequenceAsString(); + // pad sequence + int diff = origseq.getLength() - sq.length(); + while (diff > 0) + { + sq = sq + + ( (diff >= sb.length()) ? sb.toString() : sb.substring(0, diff)); + diff = origseq.getLength() - sq.length(); + } + } + } + return nview; + } + + public JPredJob(Hashtable SequenceInfo, SequenceI seq, int[] delMap) + { + super(); + this.predMap = delMap; + String sq = AlignSeq.extractGaps(Comparison.GapChars, + seq.getSequenceAsString()); + if (sq.length() >= 20) + { + this.SequenceInfo = SequenceInfo; + sequence = new vamsas.objects.simple.Sequence(); + sequence.setId(seq.getName()); + sequence.setSeq(sq); + } + } + + public JPredJob(Hashtable SequenceInfo, SequenceI[] msf, int[] delMap) + { + this(SequenceInfo, msf[0], delMap); + if (sequence != null) + { + if (msf.length > 1) + { + msa = new vamsas.objects.simple.Msfalignment(); + jalview.io.PileUpfile pileup = new jalview.io.PileUpfile(); + msa.setMsf(pileup.print(msf)); + } + } + } + } + + ext.vamsas.Jpred server; + String altitle = ""; + JPredThread(WebserviceInfo wsinfo, String altitle, ext.vamsas.Jpred server, + String wsurl, AlignmentView alview, AlignFrame alframe) + { + super(); + this.altitle = altitle; + this.server = server; + this.wsInfo = wsinfo; + this.input = alview; + this.alignFrame = alframe; + WsUrl = wsurl; + } + + JPredThread(WebserviceInfo wsinfo, String altitle, ext.vamsas.Jpred server, + String wsurl, Hashtable SequenceInfo, SequenceI seq, int[] delMap, + AlignmentView alview, AlignFrame alframe) + { + this(wsinfo, altitle, server, wsurl, alview, alframe); + JPredJob job = new JPredJob(SequenceInfo, seq, delMap); + if (job.hasValidInput()) + { + OutputHeader = wsInfo.getProgressText(); + jobs = new WSJob[] + { + job}; + job.jobnum = 0; + } + } + + JPredThread(WebserviceInfo wsinfo, String altitle, ext.vamsas.Jpred server, + Hashtable SequenceInfo, SequenceI[] msf, int[] delMap, + AlignmentView alview, AlignFrame alframe, String wsurl) + { + this(wsinfo, altitle, server, wsurl, alview, alframe); + JPredJob job = new JPredJob(SequenceInfo, msf, delMap); + if (job.hasValidInput()) + { + jobs = new WSJob[] + { + job}; + OutputHeader = wsInfo.getProgressText(); + job.jobnum = 0; + } + } + + void StartJob(WSJob j) + { + if (! (j instanceof JPredJob)) + { + throw new Error("Implementation error - StartJob(JpredJob) called on " + + j.getClass()); + } + try + { + JPredJob job = (JPredJob) j; + if (job.msa != null) + { + job.jobId = server.predictOnMsa(job.msa); + } + else + if (job.sequence != null) + { + job.jobId = server.predict(job.sequence); // debug like : job.jobId = "/jobs/www-jpred/jp_Yatat29";// + } + + if (job.jobId != null) + { + if (job.jobId.startsWith("Broken")) + { + job.result = (vamsas.objects.simple.Result)new JpredResult(); + job.result.setInvalid(true); + job.result.setStatus("Submission " + job.jobId); + } + else + { + job.submitted = true; + job.subjobComplete = false; + Cache.log.info(WsUrl + " Job Id '" + job.jobId + "'"); + } + } + else + { + throw new Exception("Server timed out - try again later\n"); + } + } + catch (Exception e) + { + if (e.getMessage().indexOf("Exception") > -1) + { + wsInfo.setStatus(j.jobnum, WebserviceInfo.STATE_STOPPED_SERVERERROR); + wsInfo.setProgressText(j.jobnum, + "Failed to submit the prediction. (Just close the window)\n" + + + "It is most likely that there is a problem with the server.\n"); + System.err.println( + "JPredWS Client: Failed to submit the prediction. Quite possibly because of a server error - see below)\n" + + e.getMessage() + "\n"); + + jalview.bin.Cache.log.warn("Server Exception", e); + } + else + { + wsInfo.setStatus(j.jobnum, WebserviceInfo.STATE_STOPPED_ERROR); + // JBPNote - this could be a popup informing the user of the problem. + wsInfo.appendProgressText(j.jobnum, + "Failed to submit the prediction:\n" + + e.getMessage() + + wsInfo.getProgressText()); + + jalview.bin.Cache.log.debug("Failed Submission of job " + j.jobnum, e); + + } + j.allowedServerExceptions = -1; + j.subjobComplete = true; + } + } + + void parseResult() + { + int results = 0; // number of result sets received + JobStateSummary finalState = new JobStateSummary(); + try + { + for (int j = 0; j < jobs.length; j++) + { + finalState.updateJobPanelState(wsInfo, OutputHeader, jobs[j]); + if (jobs[j].submitted && jobs[j].subjobComplete && jobs[j].hasResults()) + { + results++; + } + } + } + catch (Exception ex) + { + + Cache.log.error("Unexpected exception when processing results for " + + altitle, ex); + wsInfo.setStatus(WebserviceInfo.STATE_STOPPED_ERROR); + } + if (results > 0) + { + wsInfo.showResultsNewFrame + .addActionListener(new java.awt.event.ActionListener() + { + public void actionPerformed( + java.awt.event.ActionEvent evt) + { + displayResults(true); + } + }); + wsInfo.mergeResults + .addActionListener(new java.awt.event.ActionListener() + { + public void actionPerformed( + java.awt.event.ActionEvent evt) + { + displayResults(false); + } + }); + wsInfo.setResultsReady(); + } + else + { + wsInfo.setFinishedNoResults(); + } + } + + void displayResults(boolean newWindow) + { + // TODO: cope with multiple subjobs. + if (jobs != null) + { + Object[] res = null; + boolean msa = false; + for (int jn = 0; jn < jobs.length; jn++) + { + Object[] jobres = null; + JPredJob j = (JPredJob) jobs[jn]; + + if (j.hasResults()) + { + // hack - we only deal with all single seuqence predictions or all profile predictions + msa = (j.msa != null) ? true : msa; + try + { + jalview.bin.Cache.log.debug("Parsing output of job " + jn); + jobres = j.getResultSet(); + jalview.bin.Cache.log.debug("Finished parsing output."); + if (jobs.length == 1) + { + res = jobres; + } + else + { + // do merge with other job results + throw new Error( + "Multiple JNet subjob merging not yet implemented."); + } + } + catch (Exception e) + { + jalview.bin.Cache.log.error( + "JNet Client: JPred Annotation Parse Error", + e); + wsInfo.setStatus(j.jobnum, WebserviceInfo.STATE_STOPPED_ERROR); + wsInfo.appendProgressText(j.jobnum, + OutputHeader + "\n" + + j.result.getStatus() + + "\nInvalid JNet job result data!\n" + + e.getMessage()); + j.result.setBroken(true); + } + } + } + + if (res != null) + { + if (newWindow) + { + AlignFrame af; + if (input == null) + { + if (res[1] != null) + { + af = new AlignFrame( (Alignment) res[0], (ColumnSelection) res[1], + AlignFrame.DEFAULT_WIDTH, + AlignFrame.DEFAULT_HEIGHT); + } + else + { + af = new AlignFrame( (Alignment) res[0], AlignFrame.DEFAULT_WIDTH, + AlignFrame.DEFAULT_HEIGHT); + } + } + else + { + /*java.lang.Object[] alandcolsel = input.getAlignmentAndColumnSelection(alignFrame.getViewport().getGapCharacter()); + if (((SequenceI[])alandcolsel[0])[0].getLength()!=res.getWidth()) { + if (msa) { + throw new Error("Implementation Error! ColumnSelection from input alignment will not map to result alignment!"); + } + } + if (!msa) { + // update hidden regions to account for loss of gaps in profile. - if any + // gapMap returns insert list, interpreted as delete list by pruneDeletions + //((ColumnSelection) alandcolsel[1]).pruneDeletions(ShiftList.parseMap(((SequenceI[]) alandcolsel[0])[0].gapMap())); + }*/ + + af = new AlignFrame( (Alignment) res[0], (ColumnSelection) res[1], + AlignFrame.DEFAULT_WIDTH, + AlignFrame.DEFAULT_HEIGHT); + } + Desktop.addInternalFrame(af, altitle, + AlignFrame.DEFAULT_WIDTH, + AlignFrame.DEFAULT_HEIGHT); + } + else + { + Cache.log.info("Append results onto existing alignment."); + } + } + } + } + + void pollJob(WSJob job) + throws Exception + { + job.result = server.getresult(job.jobId); + } + + public boolean isCancellable() + { + return false; + } + + public void cancelJob() + { + throw new Error("Implementation error!"); + } + + public boolean canMergeResults() + { + return false; + } + +} -- 1.7.10.2

Choose which feature is to be modified by selecting it from the Sequence +Feature Name pull down +menu. In addition to the Name, group, colour and description attributes +described for the new feature dialog +box, a feature's start and end position can be changed either by +entering a new position directly or by using the adjacent up and down +buttons.