From d911d6bd206a424769a9dee54d63abd21f527811 Mon Sep 17 00:00:00 2001 From: Eric Coissac Date: Tue, 10 Mar 2009 08:49:11 +0000 Subject: [PATCH] git-svn-id: https://www.grenoble.prabi.fr/svn/LECASofts/ecoPrimers/branches/eric-test@185 60f365c0-8329-0410-b2a4-ec073aeeaa1d --- src/ecoPrimer | Bin 58176 -> 58176 bytes src/global.mk | 2 +- src/libecoprimer/aproxpattern.c | 4 ++-- src/libecoprimer/pairs.c | 18 ++++++++++++------ src/libecoprimer/pairtree.c | 7 ++++--- 5 files changed, 19 insertions(+), 12 deletions(-) diff --git a/src/ecoPrimer b/src/ecoPrimer index c3e5c3e4c4b3654c50902ef5f33e657ed2880a4d..96477a6a365c7c9b2a4801c5dda621252d32b3f3 100755 GIT binary patch delta 13320 zcmZX44P2DP_W!dBYr6_Ai>~4eu*fPe5-%zU0>bL9J`f@Z2)jBchn>@9S@y5sXttH3`aZudVs7ZB|WG_t}%b z`GcWRCpEudSfpo7#^IsS<&yN1qbSc4dhn*t=P2?G99l0)=5Wb3a7aD-$+&Io^%;^R zdn)Z^vf{Ltd7D(yI`L7U$~Urd0jw`Y|HL2B`J%e2~ z*}IM;F6FW}V+ITC8WtS`Zl`kg$lY+|Q>SwNh_6e`O-OzPo0JT@D(P}d-oG~&bzP$y zvuToHK*X47hIcS1D`EbT%#U>wpxZl<%C%H{Sng9^c)m3p=ug zxHEr+<^!P^^C6lXSJDmH-Oamp65C_$+4DQJ$;ycXep<74`XqMIYc zjGP1sccndB_UyIqLW}owI3eB8Qyp>NQ$_9%^8Q!`2X9n4Wp_G^uLl!`eT+>BlB@Pq ztL_g0J_fjQEU8s?uadlvkyNq0KM`n~%w_U`5+Zz9K@t}s;n{3&BunDd_Hi_5YP&yZ zZ!B8!l&@(j2NM&@7?f;)WoXxP>WI+kVK&1u(DXqmZ$HSwEq&SRmR>XGf&tTunN@8o z1cSp}5+ZDCo}!K?9jMctXP@t?J7ccv@Fz=EOWM(XfI?h#zjv@I?Fy;6)z!S#tg=0v zQpIe+v7>i_Q&x`Bki4fRQYWsE16?6mbE}(q^ifCJ@g?uc?uWlz4K`2aHqtvp(@ULs zcTQxU;J(H^G(u1ES@w2tLgWfg>;rephX?@7wzsc|7_2jR(_W_Q(IYP#THPf^$ngPT zvb;Z+fKQ#-9h3jhAbvuF+hxQUp7F11tyqnqaw?tf3VWRF34LJ-EAJ7aubjeG^stZK zw@Njp6#eHY7hOubQ|aJK>~XH-|BUeDk~*xD=OA;K1}?i3z0MMLrH57b8oSveu16Zz z_6yCCx=xcySV~W4)fbfnqVIV~&al-oJVb@=n| z)5?9SXsGBexqlq-CF7NVatKUMh- zRa~9v78%lqY5(-rU@~O4bt=i#91oI}wkgvbQ;)g*IvmRoMA*J-!AAXC=W+#SP_$$L zQcig%s!Pxiu6EzCilWYAb#T716IpSes9d#MWvbmPEA#E0a9FhRiFe(2Xsm0Mm1E{w z+UsQH;sILGK=aDzSF zH-BVmzNWmQ*lpPI3@D%Bc@$XNk(jNgmjUr47ekXvxiU`a#1d96@!7KFGhg3j>0gbz zr(z)_+9Bb#enE0IcXV=1n^bomUOxk%A{y|Fm^<6eqD zL=~GBI!G_&vAWQqVd;+m!;nmJ%!MiP5wG7d_&$R(K2gN}6&e=u3|Q1SrBL-)3wdKv z5eo<#GP4(_Qc$$?h3~x|+@Vld8G@Lrz!7Hsd4k&MAYz~c*SncB*ffTZIRhzbu@S>c zV(?hs=eW6uy%ILcv_hq<^CqxsVZ(DL=c-CK15~#(s|~f5bdt{h71GLg*wS*;vo;c} z|eYtG*}aWedXlqpTHpi8`}u9!du|Bb zHg7XK96sBWfOZHZ6|#6+q&ZF%xBeGP2H*#*+}1BbPnhyK&M}J0+gLa5Rpgr^oM~Gj z+iZ&nJPBN$>FN(LR>(fI_17;fU|w59xkz2k5fw`p5PLKW!J?@o3+8X%- zXYeP67m48&V(?g3aQqHiG3Y-J4F};hk7CoKQZhRi!U@O}Q!w{GB6htuNk9p`09-M2 zos0fzGCu?%Rg7{6-kw8y%koqi`HMU78ao#?%=8UkDjObQ-J?@7$@7}N8KiG4*O#d3 zn+|#C8zA&0=aar0n!ar4%VtNShh{b{xUc11==W~=NwumTxMFzc302Dq5M)*6R?u}m zP0L2MCOVrv6*DyJ*8KZg0!Yg@KdM^Vfh&eCT+4Y7QpE%W*3YxCL)Wz~AHzrYHTyDV zl<5?f6g<8thsDRHWM%(GV=>mMH;QYFRyF2A0Y=wX(-@ehYCNN9j8!#0#5KMxv+rV~ z9{ChYtOeV&{6byNNmyAeK{V3h5?T2fB1KMSN}Ou!7)@%e z-?0UWlTGV5v3_)OTjDlDS`3B>&R%Mf`BNs6#Ba$LQ-%;8cpU(mZ>mM+C)E5oHD?TI zelsOUr~8`S9GA6hS2K%DH&Uq8x?wo;W&UWq4L5=MC%Zi|wA&{{sJZcHY(UoR z;Yy4o{V1E`TJzkQtvE1nE20Zt9W>;)vv9$2+WTYv7J>~rQdCvRS;_2h*7L#PU`lFr zD%YLZbZbr+=~9;cOyI;};8m@)b{odN%q|`B&QMj_jRwbl1s*nG!uQ(B2CHmZc}aun#=*&T=7`dL0*i_d6@n|YtbvA+*X8MRQqU=Vw4 z)SyDwAPgwa9M_)bPObzqZl>iJkORu;vUZU2!W{QVr!vc4>9vCy1lo6?9k(5f1fvZE zEJH9F4V^4>bg1rdbNXn5E{G2HJY0+1qXOWKmnN_R=g-|X(K+kRDD%cgumab!0X;zD zjROpQ3fU*F_q#lTbIJQP+cf5GpUVkqTIS9TQTp4_Loq+Bo{C^^ja^{;Je~%e{0@th z2blJ9Vp{^sm!qm`IaLAqmj6)9t^Fr0PvkQm>m1%zMr~?5&f{%1wB_-(3~IYfa`|eT z6Jv9SHt@Y69gUdxsqO;YlhZN&belGQnvUe61gRe;8b-t7GH)2QdaOS_tQz}70yF1C znU1NHbw&cq%DHAb8>hAfKg@>ZCO-a0PF+ON@-*4dyA4;MO1l$Up5<*HP}@?p(l#`qB9G*0Yi zRpXydc+7!7@EGz{%=&S(I@}UaEqTG&@(2Z9EpGc65#PDIAu*juY9W!3+(DQIWhcXJ}2G z=qN&Z&}cqvcorKa?qay>IIRm%pRHJDyI6f;XoQ)o4kmeQKazLihY(d=Yl zwC*JPzOcXU91EB*P}kBtWWqw7u9>}3^oyzQK-H<~1KF#^L-f{B?9<{!ra##U41B`Q z#+StD7dhCfk{JE#J=pe=2z_l2_V*H7pEHr_7(S;$xvY*o>9g6V4Bs&SiH@<0c9P?3x+I$`bx1-l_)sFW#{tv=6JAOUJ z?KlBDuBmpsz`4$`!Dan)+t}E$n^lE4i)6e?!P;Z|*$_!ok*xe$Q3`AJ*wpSmLeTG1MmOi14&=<`%IonjJ7W1NmkqF}Qh?VR$d(Y#f;Fa`I-YHHH%gcGx#no9({Gqx z+S#RFyXtP3YXiZ9w=Ov1*HCbKlK)G^k#_%<2$+eqrvD*4OS`L(;+&wTi0(jf>ba6W zb0wWOhi9{wr`j!#;<)jhHrFO~p$>Q1FR+iNre+jdC3nvTrNEfu>52Swlre3X-!q3? zx(@{%;`R^0^|f3GdkjJtW0}q5X=AGVmK+AR!*|S;Hp6IM=YvBXHFtI9wI}G&!yUSh zPD4CY!Tkqt9P!5kdemLrjRtjtu8n`ey-$Wm$y+iWZprC+$}W2=N;uJrf_{{hEyg~0 zlpfRO_|%3f$(goS~JG1RFBDBEa14G#Bc<6wtz zuq!}TYVG?8aQVyWylP%M9-bE}(fk#f=|sGz+~TfU5?yy=X?NM}=a!@K3R`>Dk9tS1 zl;5RkdiDcNx>2(-0Bzl5cPx#TOv31BF-RMepFx%03`I4Os`vr5iE6fa<4IT2S8`g6 zdwBqGJK?k#9Og~OU3FhAH7mE2o0P=1$;yZLqXWYC7MiIqDiOp+h{*2u)sU5y^>+GG z3pt{b*x*z=lhtx2rKg>u9ZyY8BvL?wR92_mMns4pqU9=3WFYb3t&op_2n18Dokl@K zwl|%oSUDl{XUSCeSR<{NFVU~NB+>24fJ@2wx^daQqnYFbr6durPH>yjs=0AlSEwW| z1^lj56{hiZ7Za?OMif57S!8*KC7flaTyZq&f z^|Ct#A?Qx^?x*zBT@nOW1cC!^TBK%ij?#*o&ddqOpwij7@*Y)>!a3fz9-=83<~A%x zj_h>15)t=JFji?poLoc2scTI-Uvmo&-G;poFmF6co8KY-ATVx2ySZ)yJUZK4+WLdp zQfuE12F@l@4Lf4vg{QU>9wy~OHv1(D4+FTisfRfX_1^$Y92 z2qBY*yT2Weg4o2GR1pkDDYl33cs)w`j1VGq`(cWNCrw+P2px>|2XhcN%X9e)!LYa<9<$bO@2vJX$yPE0R(tmFJ0_SeV4 zCy_Th%CN^Or#mX~{DPqGNWghy;FhkkA!#|=i&jV+){V#7w>JiWFmvqR0#D$o^5T2c zQQmI?J*~qC1+3f5qx!?&H-9wqWt}dpdC}v2bvnQ1hS{Y${Ttu1FQ1qkUlk2!4P2vs zYt(O@`dz1f74_>@zaD&9`W(E7<1eNi$ig}jU&h0pC-jeK=&Wg_jlj^g0-9+^=USCD^yx;I=Q@zR)`X3y59m9CT4q}StbrtW= z>p6r6@%k3x_viI9RKK-F9le!!uJO8#>g~Kfj_MzyKJZc7z)24eT=4L~S+;@lh=Joq z3@mD%Kkw)6Y~{1A=0nd8(3$EzKJ{0}9P4^?$v`CC@-Y3%cwID0TA84q^E`WOWs1(m zUR*g`zkLHczjC6!wUNbEF4PsU7b}PBWOlAHT$jqO<0~`Esw{o|U)h9JV|0n^#Z}=D zY{55(UBp*nzpNUrU%r_QS)BrC?&`6S*t0qTU0qon1%0Nf;ix;R!ts5yDoWq<5^Jam z(>K1vc2=e6m%q%us2ZbhYhtn0`TC}s}+S@4>8 z=y$A%(l>5n^VWpvTeq=>HDNGg$C}|fBfElcHNHa)KVcQzqFR?Y?5~SoV-3%xm~Oqs zH6LaX&qcA$=ZyO5*V*mo7V6u#vw1c77+*`xBK_i>EVg!x-n)}6shzH0{suc=OWrco zmBJ^F)-59c)RAYd<6FioYlrKySD!vw2o&wj zZ1OrNZf0B8rRdxCvP&qu@3P?f6n*tRmRrBjRIs00_$Yg2Rd0RMes-xIa{Jls`h}!k zS)^|~#x5!G`ljQoYr`PZ1tj_Ot7W?NJq+qe#R?n3^?yFWmNbl^scN7JyVwu~dv)&N z`o$;N2zQvi`Xrl-qVXhK!KuHXK-&RMT|&`*lHGQPVN(075648NsozQK6ZCDTSi|}h z_~OWV%)@DRbv?#(nho*fqmMNn^2{sh_lRe>sQ_0r`lYD@TKpmF`+S(GT7b{d3_Shgy2Sj`k_l2L}Mgtcs0QyP>Vp@BUJ;M>|BLiz)g16_0{;`YFzutt`q@R4`f&0 zNU#VrSD>8(S;N-&;B0Kg#5_a5*@M`;mIRAHmui{^v98w)Cmb(r1B6%g% z4+ZjJH1$;tTilPsJq5hDAB)|w`T-|M4$k(9V3Qo|Lqz^!0l%k7J6HqYHUXa!aGQhW z?tD;bBc3J6q;cIvB*wF=JEuR;cQx)F#CA}yRj06dhya0}(S%dj&NtwcG|qfU!0lv2{DXiCMyQ7F7O)OaXEe9F0dI}BNMg!+3K&P>t^`Y>KtlzZ$U1gyi1>ZD6eRGT zwhJyC|8LG1^?NR93g_w)#5>k#8Yh;V)DK$<{fN%T2fOx&xAGr|mrgNz&k8l2{n*a8 z;)5l;aFFCWO?#+1tO5Zu0T-~Cw`V+{v%MD=z9qQYd$FBwKNzY(NRFwGNqABt*9G-f zgVHA8IRduzW;^#KXw1t5TEKSfP6%$pjf7OJ6=+)sySjVf0|u1~vwsq7<)Lie-UN$4 zrC{EFbtpTqC*EYkn-%Favpsuyv*m9@SOgFz_!7ft`C1CXIo~h=7qDmFNeJ$=anvQy zP8&P$&hrCy|87gL&E#yi1e{3`(LY`VX?4_p%;vS$iDk_(W)Fk7GOEoBqIp%oc2^R$(xU+5e!g8gsd_t%9pD zm+jpD;ONW8aW_pC0FSxQ3aUdsHk~sRjKy68Cp3pdi!<)38hOpR!@w!WF(!mGa z*(UlAzzU`@v=yk)(kbBH0`4r}hkBu~R>0YX>Y*;sB!M>JKZRlE6ljK~8R)wSmI+*g zOQ6yObpr_!aG`*MI86VChQgs-z_tmruV^}+6llQ&mWzy|O)ysqxNU-Jv#p5hsMmB9 zsk2lq;7tOqE@C^ezX)`PK%0uxW3-@{>v%`N1;y;@z67H{53=irdb86XL|95V+eyK; zxJ2EZf+lhpFB*rzcR0H$L*$Ow$R*slqyj<5gQk~gZO_gYbi2sYV4d2o#RFE5O4~#v zJSJ#uvCk2-w#pZBdX%J{bv{vb=3WUpV!)7!7 zY4c^kO_6AAT6+pw68ttnYhgw=OX6QF95_L|?f^HUcwxEv)S_`Q*PDe^w=>1zTXub_;9uSYOF?!{9uxxwGHNRL05~@uR^0m>Rm5rEy@3rptY;O>zuBVv^%#@~n2^w$>BrzKqd1+67azS@dLmWBuiLff|#!xBvv^(E=L2LJq&4Si0 zp*sYvow4r;T02~i30ljt+XSuUVwX8xC286EkAgwFs~EfRfoZqR?t<11st`eI`I%kN zi6Y|~A!sel%M-MgqD@h0ghI8*5}ptYjpBfuFKF$4y;{%(xX)q&rA>m?j@d05Ef&WP zjUSsZ@wW(COB_xSO`)Kr(Vqy0#o}i8m7uj-@C`w0Ilk^8?jbFi3>LJOC4>uFyWI~J nw3h6R1nr_w&@weyFlYyNsi3v2`f*Kx@W3)bOU*H-d-wZau^ntU delta 13428 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 diff --git a/src/global.mk b/src/global.mk index 7135690..94cf61d 100644 --- a/src/global.mk +++ b/src/global.mk @@ -3,7 +3,7 @@ LIBPATH= -Llibapat -LlibecoPCR -Llibecoprimer MAKEDEPEND = gcc -D$(MACHINE) -M $(CPPFLAGS) -o $*.d $< CC=gcc -CFLAGS= -W -Wall -O3 -m64 -fast -g +CFLAGS= -W -Wall -O5 -m64 -fast -g #CFLAGS= -W -Wall -O0 -m64 -g #CFLAGS= -W -Wall -O5 -fast -g diff --git a/src/libecoprimer/aproxpattern.c b/src/libecoprimer/aproxpattern.c index d924281..2dc13bf 100644 --- a/src/libecoprimer/aproxpattern.c +++ b/src/libecoprimer/aproxpattern.c @@ -61,7 +61,7 @@ void encodeSequence(ecoseq_t *seq) for (i=0;iSQ_length;i++,data++,cseq++) { - *data = encoder[(IS_UPPER(*cseq) ? *cseq - 'A' : 'Z')]; + *data = encoder[(IS_UPPER(*cseq) ? *cseq : 'Z') - 'A']; } } @@ -82,7 +82,7 @@ pprimercount_t lookforAproxPrimer(pecodnadb_t database, uint32_t seqdbsize,uint3 uint32_t inSequenceQuorum; uint32_t outSequenceQuorum; bool_t conserved = TRUE; - + //poslist_t ttt; diff --git a/src/libecoprimer/pairs.c b/src/libecoprimer/pairs.c index f01da82..0af6825 100644 --- a/src/libecoprimer/pairs.c +++ b/src/libecoprimer/pairs.c @@ -275,6 +275,7 @@ static void buildPrimerPairsForOneSeq(uint32_t seqid, pprimer_t wswp; bool_t bswp; size_t distance; + bool_t strand; for (i=0;i < primers->size; i++) { @@ -362,7 +363,8 @@ static void buildPrimerPairsForOneSeq(uint32_t seqid, // Standardize the pair - if (current.p2->word < current.p1->word) + strand = current.p2->word > current.p1->word; + if (!strand) { wswp = current.p1; current.p1=current.p2; @@ -384,7 +386,7 @@ static void buildPrimerPairsForOneSeq(uint32_t seqid, pcurrent->inexample++; pcurrent->sumd+=distance; - if (pcurrent->maxd=DMAX || distance > pcurrent->maxd) + if ((pcurrent->maxd==DMAX) || (distance > pcurrent->maxd)) pcurrent->maxd = distance; if (distance < pcurrent->mind) @@ -412,10 +414,14 @@ static void buildPrimerPairsForOneSeq(uint32_t seqid, } } - pcurrent->pcr.amplifias[pcr.ampcount].length=distance; - pcurrent->pcr.amplifias[pcr.ampcount].sequence=*(seqdb[seqid]); - // pcurrent->pcr.amplifias[pcr.ampcount].strand= ; - // pcurrent->pcr.amplifias[pcr.ampcount].amplifia= ; + pcurrent->pcr.amplifias[pcurrent->pcr.ampcount].length=distance; + pcurrent->pcr.amplifias[pcurrent->pcr.ampcount].sequence=seqdb[seqid]; + pcurrent->pcr.amplifias[pcurrent->pcr.ampcount].strand=strand; + + if (strand) + pcurrent->pcr.amplifias[pcurrent->pcr.ampcount].amplifia= seqdb[seqid]->SQ + matches[i].position + options->primer_length; + else + pcurrent->pcr.amplifias[pcurrent->pcr.ampcount].amplifia= seqdb[seqid]->SQ + matches[j].position - 1 ; pcurrent->pcr.ampcount++; diff --git a/src/libecoprimer/pairtree.c b/src/libecoprimer/pairtree.c index 53a38c3..d1c0895 100644 --- a/src/libecoprimer/pairtree.c +++ b/src/libecoprimer/pairtree.c @@ -39,6 +39,7 @@ static ppairlist_t newpairlist(ppairlist_t parent, size_t size) if (parent) parent->next=(void*)tmp; + return tmp; } @@ -103,7 +104,7 @@ ppair_t insertpair(pair_t key, if (list->last->paircount==list->last->pairslots) { - list->last->next=newpairlist(list,100); + list->last->next=newpairlist(list->last,100); list->last=list->last->next; } @@ -121,13 +122,13 @@ ppair_t insertpair(pair_t key, ppairtree_t initpairtree(ppairtree_t tree) { - fprintf(stderr,"coucou from initpairtree\n"); if (!tree) tree = ECOMALLOC(sizeof(pairtree_t),"Cannot allocate pair tree"); - tree->first=newpairlist(NULL,500); + tree->first=newpairlist(NULL,300); tree->last=tree->first; tree->tree=NULL; + return tree; }