ScalingFactor,
floatPSSM_Weight) {
149 for(
i=0;
i<(cdf->
sll.
n-1);
i++) {
151 if((qsq->
sac.
mn[
i] > 0) && (qsq->
sac.
mn[
i+1] > 0)) {
155dist = (
int) ((
double)dist * 1.5);
156 if(dist > cdf->
lll.
llmx[
i+1]) {
170 for(
i=0;
i<(cdf->
sll.
n-2);
i++) {
173 if((qsq->
sac.
mn[
i] > 0) && (qsq->
sac.
mn[
i+1] <= 0) && (qsq->
sac.
mn[
i+2] > 0)) {
179 if((dist - dist2) > cdf->
lll.
llmx[
i+1]) {
180cdf->
lll.
llmx[
i+1] = dist - dist2;
182 if((dist - dist2) > cdf->
lll.
llmx[
i+2]) {
183cdf->
lll.
llmx[
i+2] = dist - dist2;
201printf(
"nsc %d\n",nsc);
202printf(
"nmt %d\n",nmt);
203printf(
"nlp %d\n",nlp);
206printf(
"nrt %d\n",nrt);
207printf(
"ndi %d\n",ndi);
232printf(
"allocated threading data structures\n");
242sli->
no=(
int*)
calloc(nsc,
sizeof(
int));
243sli->
co=(
int*)
calloc(nsc,
sizeof(
int));
244sli->
lp=(
int*)
calloc(nsc+1,
sizeof(
int));
245sli->
cr=(
int*)
calloc(nmt,
sizeof(
int));
248printf(
"sli->nsc:%d nlp:%d nmt%d\n",sli->
nsc,sli->
nlp,sli->
nmt);
249 for(
i=0;
i<nsc;
i++) printf(
"%d ",sli->
no[
i]); printf(
"sli->no\n");
250 for(
i=0;
i<nsc;
i++) printf(
"%d ",sli->
co[
i]); printf(
"sli->co\n");
251 for(
i=0;
i<nlp;
i++) printf(
"%d ",sli->
lp[
i]); printf(
"sli->lp\n");
252 for(
i=0;
i<nmt;
i++) printf(
"%d ",sli->
cr[
i]); printf(
"sli->cr\n");
258sai->
al=(
int*)
calloc(nsc,
sizeof(
int));
259sai->
sq=(
int*)
calloc(nmt,
sizeof(
int));
260sai->
cf=(
int*)
calloc(nmt,
sizeof(
int));
263printf(
"sai->nsc:%d nmt%d\n",sai->
nsc,sai->
nmt);
264 for(
i=0;
i<nsc;
i++) printf(
"%d ",sai->
al[
i]); printf(
"sai->al\n");
265 for(
i=0;
i<nmt;
i++) printf(
"%d ",sai->
sq[
i]); printf(
"sai->sq\n");
271spe->
gss=
calloc(nsc,
sizeof(
int*));
272 for(
i=0;
i<nsc;
i++) spe->
gss[
i]=
calloc(nsc,
sizeof(
int));
273spe->
gs=
calloc(nsc,
sizeof(
int));
274spe->
ms=
calloc(nsc,
sizeof(
int));
275spe->
cs=
calloc(nsc,
sizeof(
int));
276spe->
ls=
calloc(nsc,
sizeof(
int));
277spe->
s0=
calloc(nsc,
sizeof(
int));
280 for(
i=0;
i<nsc;
i++) printf(
"%d ",spe->
gs[
i]); printf(
"spe->gs\n");
281 for(j=0; j<nsc; j++) {
282 for(
i=0;
i<nsc;
i++) printf(
"%d ",spe->
gss[j][
i]);
283printf(
"spe->gss[%d]\n",j); }
290spn->
nrr=
calloc(ndi,
sizeof(
int**));
291 for(
i=0;
i<ndi;
i++) spn->
nrr[
i]=
calloc(nsc,
sizeof(
int*));
292 for(
i=0;
i<ndi;
i++)
for(j=0; j<nsc; j++)
293spn->
nrr[
i][j]=
calloc(nsc,
sizeof(
int));
294spn->
srr=
calloc(ndi,
sizeof(
int));
295spn->
nrp=
calloc(ndi,
sizeof(
int**));
296 for(
i=0;
i<ndi;
i++) spn->
nrp[
i]=
calloc(nsc,
sizeof(
int*));
297 for(
i=0;
i<ndi;
i++)
for(j=0; j<nsc; j++)
298spn->
nrp[
i][j]=
calloc(nsc,
sizeof(
int));
299spn->
srp=
calloc(ndi,
sizeof(
int));
300spn->
nrf=
calloc(ndi,
sizeof(
int**));
301 for(
i=0;
i<ndi;
i++) spn->
nrf[
i]=
calloc(nsc,
sizeof(
int*));
302 for(
i=0;
i<ndi;
i++)
for(j=0; j<nsc; j++)
303spn->
nrf[
i][j]=
calloc(nrt,
sizeof(
int));
304spn->
frf=
calloc(ndi,
sizeof(
int*));
305 for(
i=0;
i<ndi;
i++) spn->
frf[
i]=
calloc(nrt,
sizeof(
int));
306spn->
srf=
calloc(ndi,
sizeof(
int));
309printf(
"spn->ndi:%d nsc:%d nrt%d\n",spn->
ndi,spn->
nsc,spn->
nrt);
310 for(k=0; k<ndi; k++)
for(j=0; j<nsc; j++) {
311 for(
i=0;
i<nsc;
i++) printf(
"%d ",spn->
nrr[k][j][
i]);
312printf(
"spn->nrr[%d][%d]\n",k,j); }
313 for(
i=0;
i<ndi;
i++) printf(
"%d ",spn->
srr[
i]); printf(
"spn->srr\n");
314 for(k=0; k<ndi; k++)
for(j=0; j<nsc; j++) {
315 for(
i=0;
i<nsc;
i++) printf(
"%d ",spn->
nrp[k][j][
i]);
316printf(
"spn->nrp[%d][%d]\n",k,j); }
317 for(
i=0;
i<ndi;
i++) printf(
"%d ",spn->
srp[
i]); printf(
"spn->srp\n");
318 for(k=0; k<ndi; k++)
for(j=0; j<nsc; j++) {
319 for(
i=0;
i<nrt;
i++) printf(
"%d ",spn->
nrf[k][j][
i]);
320printf(
"spn->nrf[%d][%d]\n",k,j); }
321 for(j=0; j<ndi; j++) {
322 for(
i=0;
i<nrt;
i++) printf(
"%d ",spn->
frf[j][
i]);
323printf(
"spn->frf[%d]\n",j); }
324 for(
i=0;
i<ndi;
i++) printf(
"%d ",spn->
srf[
i]); printf(
"spn->srf\n");
330spc->
srt=
calloc(nsc,
sizeof(
int*));
331 for(
i=0;
i<nsc;
i++) spc->
srt[
i]=
calloc(nrt,
sizeof(
int));
333spc->
lrt=
calloc(nlp,
sizeof(
int*));
334 for(
i=0;
i<nlp;
i++) spc->
lrt[
i]=
calloc(nrt,
sizeof(
int));
335spc->
rt=
calloc(nrt,
sizeof(
int));
336spc->
rto=
calloc(nrt,
sizeof(
int));
339printf(
"spc->nsc:%d nrt:%d nlp:%d\n",spc->
nsc,spc->
nrt,spc->
nlp);
340 for(j=0; j<nsc; j++) {
341 for(
i=0;
i<nrt;
i++) printf(
"%d ",spc->
srt[j][
i]);
342printf(
"spc->srt[%d]\n",j); }
343 for(j=0; j<nlp; j++) {
344 for(
i=0;
i<nrt;
i++) printf(
"%d ",spc->
lrt[j][
i]);
345printf(
"spc->lrt[%d]\n",j); }
346 for(
i=0;
i<nrt;
i++) printf(
"%d ",spc->
rt[
i]); printf(
"spc->rt\n");
347 for(
i=0;
i<nrt;
i++) printf(
"%d ",spc->
rto[
i]); printf(
"spc->rto\n");
353cxe->
rp=
calloc(nrt,
sizeof(
float));
354cxe->
rrp=
calloc(nrt,
sizeof(
float*));
355 for(
i=0;
i<nrt;
i++) cxe->
rrp[
i]=
calloc(
i+1,
sizeof(
float));
356cxe->
rre=
calloc(ndi,
sizeof(
float));
357cxe->
rpe=
calloc(ndi,
sizeof(
float));
358cxe->
rfe=
calloc(ndi,
sizeof(
float));
361printf(
"cxe->nrt:%d ndi:%d\n",cxe->
nrt,cxe->
ndi);
362 for(
i=0;
i<nrt;
i++) printf(
"%.4f ",cxe->
rp[
i]); printf(
"cxe->rp\n");
363 for(j=0; j<nrt; j++) {
364 for(
i=0;
i<nrt;
i++) printf(
"%.4f ",cxe->
rrp[j][
i]);
365printf(
"cxe->rrp[%d]\n",j); }
366 for(
i=0;
i<ndi;
i++) printf(
"%.4f ",cxe->
rre[
i]); printf(
"cxe->rre\n");
367 for(
i=0;
i<ndi;
i++) printf(
"%.4f ",cxe->
rpe[
i]); printf(
"cxe->rpe\n");
368 for(
i=0;
i<ndi;
i++) printf(
"%.4f ",cxe->
rfe[
i]); printf(
"cxe->rfe\n");
373sgo->
si=(
int*)
calloc(nsc,
sizeof(
int));
374sgo->
so=(
int*)
calloc(nsc,
sizeof(
int));
375sgo->
to=(
int*)
calloc(nsc,
sizeof(
int));
378printf(
"sgo->nsc:%d\n",sgo->
nsc);
379 for(
i=0;
i<nsc;
i++) printf(
"%d ",sgo->
si[
i]); printf(
"sgo->si\n");
380 for(
i=0;
i<nsc;
i++) printf(
"%d ",sgo->
so[
i]); printf(
"sgo->so\n");
381 for(
i=0;
i<nsc;
i++) printf(
"%d ",sgo->
to[
i]); printf(
"sgo->to\n");
387pvl->
p=(
float*)
calloc(qsq->
n,
sizeof(
float));
388pvl->
e=(
float*)
calloc(qsq->
n,
sizeof(
float));
389pvl->
sq=(
int*)
calloc(qsq->
n,
sizeof(
int));
390pvl->
aqi=(
int*)
calloc(qsq->
n,
sizeof(
int));
391pvl->
r=(
int*)
calloc(qsq->
n,
sizeof(
int));
392pvl->
o=(
int*)
calloc(qsq->
n,
sizeof(
int));
393pvl->
lsg=(
int*)
calloc(nsc+1,
sizeof(
int));
398tts->
bw=(
float*)
calloc(tts->
nw,
sizeof(
float));
399tts->
nb=0;
for(
i=0;
i<gsp->
nts;
i++) {
400 if(tts->
nb<gsp->
nti[
i]) tts->
nb=gsp->
nti[
i];
402printf(
"nts=%d nti=%d tts->nb=%d\n",
i,gsp->
nti[
i],tts->
nb);
405tts->
ib=(
float*)
calloc(tts->
nb,
sizeof(
float));
409 cprl(mtf,cdf,pmf,cpr,0);
412 for(
i=0;
i<nsc;
i++) {
414printf(
"rr:%d rp:%d rf:%d cpr[%d]\n",cr->
rr.
n,cr->
rp.
n,cr->
rf.
n,
i); }
419 for(
i=0;
i<nsc;
i++) {
429cr->
rf.
d=
calloc(cr->
rf.
n,
sizeof(
int)); } }
432 cprl(mtf,cdf,pmf,cpr,1);
435 for(
i=0;
i<nsc;
i++) {
437printf(
"rr:%d rp:%d rf:%d cpr[%d]\n",cr->
rr.
n,cr->
rp.
n,cr->
rf.
n,
i); }
441 for(
i=0;
i<nsc;
i++) {
442cl=cpl[
i]; cr=cpr[
i];
458 for(
i=0;
i<nsc;
i++) {
460 n=cpr[
i]->
rr.
n;
465ca->
r.r=
calloc(
n,
sizeof(
int));
466ca->
r.e=
calloc(
n,
sizeof(
int*));
467 for(j=0;j<
n;j++) ca->
r.e[j]=
calloc(nrt,
sizeof(
int));}
483printf(
"ttb->n: %d mx: %d mn: %d\n",ttb->
n,ttb->
mx,ttb->
mn);
484 for(
i=0;
i<ttb->
n;
i++) printf(
"i:%d tg:%.4f tf:%d pr:%d nx:%d\n",
485 i,ttb->
tg[
i],ttb->
tf[
i],ttb->
pr[
i],ttb->
nx[
i]);
492 for(nrs=0;nrs<gsp->
nrs;nrs++) {
494printf(
"nrs:%d\n",nrs);
500 for(
i=0;
i<nsc;
i++) { sli->
no[
i]=-1; sli->
co[
i]=-1; }
503 for(
i=0;
i<nmt;
i++) sli->
cr[
i]=-1;
506 for(
i=0;
i<nsc;
i++) printf(
"%d ",sli->
no[
i]); printf(
"sli->no\n");
507 for(
i=0;
i<nsc;
i++) printf(
"%d ",sli->
co[
i]); printf(
"sli->co\n");
508 for(
i=0;
i<nlp;
i++) printf(
"%d ",sli->
lp[
i]); printf(
"sli->lp\n");
509 for(
i=0;
i<nmt;
i++) printf(
"%d ",sli->
cr[
i]); printf(
"sli->cr\n");
517printf(
"gsp->iso: %d gsp->ito: %d\n",gsp->
iso,gsp->
ito);
518 for(
i=0;
i<nsc;
i++) printf(
"%d ",sgo->
si[
i]); printf(
"sgo->si\n");
519 for(
i=0;
i<nsc;
i++) printf(
"%d ",sgo->
so[
i]); printf(
"sgo->so\n");
520 for(
i=0;
i<nsc;
i++) printf(
"%d ",sgo->
to[
i]); printf(
"sgo->to\n");
524 for(
i=0;
i<nsc;
i++) {
532 switch(j) {
case0: {
ct=sgo->
to[cs];
534 case1: {
ct=(sgo->
to[cs]==0) ? 1:0;
540 if(!
slo0(mtf,cdf,qsq,sli,cs,
ct,&mn,&mx)) {
541printf(
"slo0 failed at nrs:%d cs:%d ct:%d\n",nrs,cs,
ct);
555 switch(gsp->
isl) {
573 for(k=0;k<pvl->
n;k++)
574pvl->
p[k]=1./pvl->
n;
575sli->
no[cs]=mn+
rsmp(pvl);
579 for(k=0;k<pvl->
n;k++)
580pvl->
p[k]=1./pvl->
n;
581sli->
co[cs]=mn+
rsmp(pvl);
618 for(
i=0;
i<nsc;
i++) {
621 for(j=mn; j<=mx; j++) sli->
cr[j]=
i;
627 for(
i=1;
i<nsc;
i++) {
630sli->
lp[
i]=mtf->
mll[mn][mx]; }
636 for(
i=0;
i<nsc;
i++) sai->
al[
i]=-1;
642 for(
i=0;
i<nsc;
i++) { cs=sgo->
si[
i];
648 if(!
sal0(cdf,qsq,sli,sai,cs,&mn,&mx)) {
649printf(
"failed sal0 nrs:%d cs:%d\n",nrs,cs);
663 for(j=0;j<pvl->
n;j++) pvl->
p[j]=1./pvl->
n;
664sai->
al[cs]=mn+
rsmp(pvl);
671 for(
i=0;
i<nsc;
i++) {
672mn=sai->
al[
i]-sli->
no[
i];
673mx=sai->
al[
i]+sli->
co[
i];
675 for(k=mn; k<=mx; k++) {
676sai->
sq[j]=qsq->
sq[k];
681 for(
i=0;
i<nsc;
i++)
spci(cdf,qsq,sli,sai,
i,spc);
696 for(
i=0;
i<nsc;
i++)
spni(cpr,sli,
i,spn);
718 cxei(spn,spc,pmf,sli,psm,cdf,cxe);
731 cpll(cdf,pmf,qsq,cpr,sai,cpl);
734 for(
i=0;
i<nsc;
i++)
spel(cpl,sai,sli,
i,spe,cdf,psm,spc);
742 dgri(spe,spn,cxe,tdg,psm,spc);
746 ttbi(sai,sli,tdg,ttb,nrs,gsp->
als);
749 if(gsp->
trg!=0) { trg[ngs]=tdg->
dg; ngs++; }
774 for(nts=0;nts<gsp->
nts;nts++) {
777 for(nti=0;nti<gsp->
nti[nts];nti++) {
782 if(gsp->
nac[nts]>0) {
785 cpal(pmf,cpr,sli,cpa);
788 for(
i=0;
i<nsc;
i++)
spea(cdf,cpa,sai,sli,
i,1,spe,psm,spc);
795 for(nac=0;nac<gsp->
nac[nts];nac++) {
802 for(
i=0;
i<nsc;
i++) { cs=sgo->
si[
i];
805 if(
salr(cdf,qsq,sli,sai,cs,&mn,&mx)==0) {
806printf(
"failed salr nrs:%d, nts:%d nti:%d cs:%d\n",
809 for(
i=0;
i<nsc;
i++) printf(
"%d ",sai->
al[
i]); printf(
"sai->al\n");
810 for(
i=0;
i<sai->
nmt;
i++) printf(
"%d ",sai->
sq[
i]); printf(
"sai->sq\n");
812 for(
i=0;
i<nsc;
i++) printf(
"%d ",sli->
no[
i]); printf(
"sli->no\n");
813 for(
i=0;
i<nsc;
i++) printf(
"%d ",sli->
co[
i]); printf(
"sli->co\n");
814 for(
i=0;
i<sli->
nlp;
i++) printf(
"%d ",sli->
lp[
i]); printf(
"sli->lp\n");
815 for(
i=0;
i<sli->
nmt;
i++) printf(
"%d ",sli->
cr[
i]); printf(
"sli->cr\n");
823 for(j=0; j<=mx-mn; j++) { al=mn+j;
826 salu(cdf,qsq,sli,cs,al,sai);
830 spea(cdf,cpa,sai,sli,cs,1,spe,psm,spc);
834spcd=
spci(cdf,qsq,sli,sai,cs,spc);
838 if(spcd!=0)
cxei(spn,spc,pmf,sli,psm,cdf,cxe);
841pvl->
e[j]=
dgri(spe,spn,cxe,tdg,psm,spc);
846al=mn+
algs(pvl,gsp->
tma[nts]);
849 salu(cdf,qsq,sli,cs,al,sai);
853 spea(cdf,cpa,sai,sli,cs,1,spe,psm,spc);
856spcd=
spci(cdf,qsq,sli,sai,cs,spc);
859 if(spcd)
cxei(spn,spc,pmf,sli,psm,cdf,cxe);
862 dgri(spe,spn,cxe,tdg,psm,spc);
867 ttbi(sai,sli,tdg,ttb,nrs,gsp->
als);
870 if(tdg->
dg>tts->
ib[nti]) tts->
ib[nti]=tdg->
dg;
873 if(gsp->
trg!=0) { trg[ngs]=tts->
ib[nti]; ngs++; }
929 if(gsp->
nlc[nts]>0) {
932 cpll(cdf,pmf,qsq,cpr,sai,cpl);
935 for(
i=0;
i<nsc;
i++)
spel(cpl,sai,sli,
i,spe,cdf,psm,spc);
942 for(nlc=0;nlc<gsp->
nlc[nts];nlc++) {
948 for(
i=0;
i<nsc;
i++) { cs=sgo->
si[
i];
953 switch(j) {
case0: {
ct=sgo->
to[cs];
955 case1: {
ct=(sgo->
to[cs]==0) ? 1:0;
960 if(
slor(mtf,cdf,qsq,sli,sai,cs,
ct,&mn,&mx)==0) {
961printf(
"failed slor nrs:%d nts:%d nti:%d cs:%d ct:%d\n",
962nrs,nts,nti,cs,
ct);
964 for(k=0;k<nsc;k++) printf(
"%d ",sai->
al[k]); printf(
"sai->al\n");
965 for(k=0;k<nmt;k++) printf(
"%d ",sai->
sq[k]); printf(
"sai->sq\n");
967 for(
i=0;
i<nsc;
i++) printf(
"%d ",sli->
no[
i]); printf(
"sli->no\n");
968 for(
i=0;
i<nsc;
i++) printf(
"%d ",sli->
co[
i]); printf(
"sli->co\n");
969 for(
i=0;
i<nlp;
i++) printf(
"%d ",sli->
lp[
i]); printf(
"sli->lp\n");
970 for(
i=0;
i<nmt;
i++) printf(
"%d ",sli->
cr[
i]); printf(
"sli->cr\n");
978 for(k=0; k<=mx-mn; k++) { of=mn+k;
981 slou(mtf,cdf,cs,
ct,of,sli,sai,qsq);
986 spel(cpl,sai,sli,cs,spe,cdf,psm,spc);
989 spci(cdf,qsq,sli,sai,cs,spc);
992 if(PSSM_Weight < 0.9999999) {
993 spni(cpl,sli,cs,spn);
997 cxei(spn,spc,pmf,sli,psm,cdf,cxe);
1000pvl->
e[k]=
dgri(spe,spn,cxe,tdg,psm,spc);
1004of=mn+
algs(pvl,gsp->
tml[nts]);
1007 slou(mtf,cdf,cs,
ct,of,sli,sai,qsq);
1012 spel(cpl,sai,sli,cs,spe,cdf,psm,spc);
1015 spci(cdf,qsq,sli,sai,cs,spc);
1018 if(PSSM_Weight < 0.9999999) {
1019 spni(cpl,sli,cs,spn);
1023 cxei(spn,spc,pmf,sli,psm,cdf,cxe);
1026 dgri(spe,spn,cxe,tdg,psm,spc); } }
1029 ttbi(sai,sli,tdg,ttb,nrs,gsp->
als);
1032 if(tdg->
dg>tts->
ib[nti]) {tts->
ib[nti]=tdg->
dg;
1041 if(gsp->
trg!=0) { trg[ngs]=tts->
ib[nti]; ngs++; }
1100 if(gsp->
lms[nts]>0 && (nti+1)>=gsp->
lms[nts]) {
1101tts->
gb=
BIGNEG;
for(
i=nti-gsp->
lmw[nts]+1;
i<=nti;
i++)
1102 if(tts->
gb<tts->
ib[
i]) tts->
gb=tts->
ib[
i];
1103 if(tts->
gb<(((
float)gsp->
lmf[nts])/100.)*ttb->
tg[ttb->
mx]) {
1105tts->
lm=1;
break; }}
1112 if(tts->
lm==1)
break;
1121 if(nrs>=gsp->
crs) {
1125 if(tts->
tf>=gsp->
cfm&& tts->
ts>=gsp->
csm)
break; }
1141 zsc(ttb,psm,qsq,cpr,cdf,pmf,spe,sai,pvl,ScalingFactor);
1146 for(
i=0;
i<ttb->
n;
i++) {
1148 zsc(ttb,psm,qsq,cpr,cdf,pmf,spe,sai,pvl,ScalingFactor);
1199 for(
i=0;
i<ndi;
i++)
1200 for(j=0; j<nsc; j++)
free(spn->
nrr[
i][j]);
1203 for(
i=0;
i<ndi;
i++)
1204 for(j=0; j<nsc; j++)
free(spn->
nrp[
i][j]);
1207 for(
i=0;
i<ndi;
i++)
1208 for(j=0; j<nsc; j++)
free(spn->
nrf[
i][j]);
1215 for(
i=0;
i<nsc;
i++) {
1226 for(
i=0;
i<nsc;
i++)
free(cpr[
i]);
1231 for(
i=0;
i<nsc;
i++) {
1245 for(
i=0;
i<nsc;
i++)
free(cpl[
i]);
1250 for(
i=0;
i<nsc;
i++) {
1257 for(j=0;j<
n;j++)
free(ca->
r.e[j]);
1259 for(
i=0;
i<nsc;
i++)
free(cpa[
i]);
1316cdfp->
sll.
rfpt= (
int*)
calloc(1,
sizeof(
int) * NumBlocks);
1317cdfp->
sll.
nomn= (
int*)
calloc(1,
sizeof(
int) * NumBlocks);
1318cdfp->
sll.
nomx= (
int*)
calloc(1,
sizeof(
int) * NumBlocks);
1319cdfp->
sll.
comn= (
int*)
calloc(1,
sizeof(
int) * NumBlocks);
1320cdfp->
sll.
comx= (
int*)
calloc(1,
sizeof(
int) * NumBlocks);
1321cdfp->
sll.
n= NumBlocks;
1322cdfp->
lll.
llmn= (
int*)
calloc(1,
sizeof(
int) * (NumBlocks+1));
1323cdfp->
lll.
llmx= (
int*)
calloc(1,
sizeof(
int) * (NumBlocks+1));
1324cdfp->
lll.
lrfs= (
int*)
calloc(1,
sizeof(
int) * (NumBlocks+1));
1325cdfp->
lll.
n= NumBlocks+1;
1354 if(FirstPass ==
FALSE)
return;
1357fprintf(pFile,
"Core Definition:\n");
1358fprintf(pFile,
"number of core segments: %4d\n", cdf->
sll.
n);
1359fprintf(pFile,
" nomx nomn rfpt comn comx\n");
1360 for(
i=0;
i<cdf->
sll.
n;
i++) {
1361fprintf(pFile,
" %6d %6d %6d %6d %6d\n",
1364fprintf(pFile,
"number of loops (one more than core segs): %4d\n", cdf->
lll.
n);
1365fprintf(pFile,
" llmn llmx lrfs\n");
1366 for(
i=0;
i<cdf->
lll.
n;
i++) {
1369fprintf(pFile,
"number of fixed segments: %4d\n", cdf->
fll.
n);
1370fprintf(pFile,
" nt ct sq\n");
1371 for(
i=0;
i<cdf->
fll.
n;
i++) {
1372fprintf(pFile,
" %6d %6d %6d\n", cdf->
fll.
nt[
i], cdf->
fll.
ct[
i], cdf->
fll.
sq[
i]);
1374fprintf(pFile,
"\n");
1386pssm->
n= NumResidues;
1388pssm->
ww= (
int**)
calloc(1,NumResidues *
sizeof(
int*));
1389pssm->
freqs= (
int**)
calloc(1,NumResidues *
sizeof(
int*));
1390 for(
i=0;
i<NumResidues;
i++) {
1391pssm->
ww[
i] = (
int*)
calloc(1,AlphabetSize *
sizeof(
int));
1392pssm->
freqs[
i] = (
int*)
calloc(1,AlphabetSize *
sizeof(
int));
1404 for(
i=0;
i<pssm->
n;
i++) {
1419 charOutputOrder[] =
"ARNDCQEGHILKMFPSTWYV";
1422fprintf(pFile,
"PSSM:\n");
1423fprintf(pFile,
"Number of residues: %4d\n", psm->
n);
1424fprintf(pFile,
"Weights:\n");
1425 for(
i=0;
i<strlen(OutputOrder);
i++) {
1426fprintf(pFile,
"%8c ", OutputOrder[
i]);
1428fprintf(pFile,
"\n");
1429 for(
i=0;
i<psm->
n;
i++) {
1430 for(j=0; j<strlen(OutputOrder); j++) {
1431fprintf(pFile,
"%8d ", psm->
ww[
i][j]);
1433fprintf(pFile,
"\n");
1435fprintf(pFile,
"Frequencies:\n");
1436 for(
i=0;
i<strlen(OutputOrder);
i++) {
1437fprintf(pFile,
"%8c ", OutputOrder[
i]);
1439fprintf(pFile,
"\n");
1440 for(
i=0;
i<psm->
n;
i++) {
1441 for(j=0; j<strlen(OutputOrder); j++) {
1442fprintf(pFile,
"%8d ", psm->
freqs[
i][j]);
1444fprintf(pFile,
"\n");
1446fprintf(pFile,
"\n");
1458qsqp->
n= NumResidues;
1459qsqp->
sq= (
int*)
calloc(1,
sizeof(
int) * NumResidues);
1460qsqp->
sac.
n= NumBlocks;
1461qsqp->
sac.
mn= (
int*)
calloc(1,
sizeof(
int) * NumBlocks);
1462qsqp->
sac.
mx= (
int*)
calloc(1,
sizeof(
int) * NumBlocks);
1465 for(
i=0;
i<NumBlocks;
i++) {
1466qsqp->
sac.
mn[
i] = -1;
1467qsqp->
sac.
mx[
i] = -1;
1490 charResLetters[32];
1493strcpy(ResLetters,
"ARNDCQEGHILKMFPSTWYV");
1495fprintf(pFile,
"Query Sequence:\n");
1496fprintf(pFile,
"number of residues: %4d\n", qsqp->
n);
1498 for(
i=0;
i<=qsqp->
n/30;
i++) {
1499 for(j=0; j<30; j++) {
1500fprintf(pFile,
"%c ", ResLetters[qsqp->
sq[
i*30 + j]]);
1502 if(Count == qsqp->
n) {
1503fprintf(pFile,
"\n");
1507fprintf(pFile,
"\n");
1511fprintf(pFile,
"number of constraints: %4d\n", qsqp->
sac.
n);
1512fprintf(pFile,
" mn mx\n");
1513 for(
i=0;
i<qsqp->
sac.
n;
i++) {
1514fprintf(pFile,
" %6d %6d\n", qsqp->
sac.
mn[
i], qsqp->
sac.
mx[
i]);
1516fprintf(pFile,
"\n");
1528pmf->
rre= (
int***)
calloc(1,NumDistances *
sizeof(
int**));
1529pmf->
rrt= (
int***)
calloc(1,NumDistances *
sizeof(
int**));
1530pmf->
re= (
int**)
calloc(1,NumDistances *
sizeof(
int*));
1531 for(
i=0;
i<NumDistances;
i++) {
1532pmf->
rre[
i] = (
int**)
calloc(1,NumResTypes *
sizeof(
int*));
1533pmf->
rrt[
i] = (
int**)
calloc(1,NumResTypes *
sizeof(
int*));
1534 for(j=0; j<NumResTypes; j++) {
1535pmf->
rre[
i][j] = (
int*)
calloc(1,NumResTypes *
sizeof(
int));
1536pmf->
rrt[
i][j] = (
int*)
calloc(1,NumResTypes *
sizeof(
int));
1538pmf->
re[
i] = (
int*)
calloc(1,NumResTypes *
sizeof(
int));
1540pmf->
nrt= NumResTypes;
1541pmf->
ndi= NumDistances;
1542pmf->
ppi= PeptideIndex;
1553 for(
i=0;
i<pmf->
ndi;
i++) {
1554 for(j=0; j<pmf->
nrt; j++) {
1577gsp->
nts= NumTempSteps;
1578gsp->
nti= (
int*)
calloc(1,NumTempSteps *
sizeof(
int));
1579gsp->
nac= (
int*)
calloc(1,NumTempSteps *
sizeof(
int));
1580gsp->
nlc= (
int*)
calloc(1,NumTempSteps *
sizeof(
int));
1581gsp->
tma= (
int*)
calloc(1,NumTempSteps *
sizeof(
int));
1582gsp->
tml= (
int*)
calloc(1,NumTempSteps *
sizeof(
int));
1583gsp->
lms= (
int*)
calloc(1,NumTempSteps *
sizeof(
int));
1584gsp->
lmw= (
int*)
calloc(1,NumTempSteps *
sizeof(
int));
1585gsp->
lmf= (
int*)
calloc(1,NumTempSteps *
sizeof(
int));
1615mtf->
n= NumResidues;
1616mtf->
rrc.
n= NumResResContacts;
1617mtf->
rrc.
r1= (
int*)
calloc(1,NumResResContacts *
sizeof(
int));
1618mtf->
rrc.
r2= (
int*)
calloc(1,NumResResContacts *
sizeof(
int));
1619mtf->
rrc.
d= (
int*)
calloc(1,NumResResContacts *
sizeof(
int));
1620mtf->
rpc.
n= NumResPepContacts;
1621mtf->
rpc.
r1= (
int*)
calloc(1,NumResPepContacts *
sizeof(
int));
1622mtf->
rpc.
p2= (
int*)
calloc(1,NumResPepContacts *
sizeof(
int));
1623mtf->
rpc.
d= (
int*)
calloc(1,NumResPepContacts *
sizeof(
int));
1624mtf->
mll= (
int**)
calloc(1,NumResidues *
sizeof(
int*));
1625 for(
i=0;
i<NumResidues;
i++) {
1626mtf->
mll[
i] = (
int*)
calloc(1,NumResidues *
sizeof(
int));
1644 for(
i=0;
i<mtf->
n;
i++) {
1659fprintf(pFile,
"Contact Lists, Loop Lengths:\n");
1660fprintf(pFile,
"Number of residues: %4d\n", mtf->
n);
1661fprintf(pFile,
"Number of residue-residue contacts: %6d\n", mtf->
rrc.
n);
1662fprintf(pFile,
"res index 1, res index 2, Distance interval\n");
1663 for(
i=0;
i<mtf->
rrc.
n;
i++) {
1664fprintf(pFile,
" %9d %12d %18d\n", mtf->
rrc.
r1[
i], mtf->
rrc.
r2[
i], mtf->
rrc.
d[
i]);
1666fprintf(pFile,
"Number of residue-peptide contacts: %6d\n", mtf->
rpc.
n);
1667fprintf(pFile,
"res index, peptide index, Distance interval\n");
1668 for(
i=0;
i<mtf->
rpc.
n;
i++) {
1669fprintf(pFile,
" %7d %14d %18d\n", mtf->
rpc.
r1[
i], mtf->
rpc.
p2[
i], mtf->
rpc.
d[
i]);
1671fprintf(pFile,
"Minimum loop lengths:\n");
1672 for(
i=0;
i<mtf->
n;
i++) {
1673 for(j=0; j<mtf->
n; j++) {
1674fprintf(pFile,
" %4d", mtf->
mll[
i][j]);
1676fprintf(pFile,
"\n");
1678fprintf(pFile,
"\n");
1690ttb->
n= NumResults;
1691ttb->
nsc= NumCoreElements;
1692ttb->
tg= (
float*)
calloc(1,NumResults *
sizeof(
float));
1693ttb->
ps= (
float*)
calloc(1,NumResults *
sizeof(
float));
1694ttb->
ms= (
float*)
calloc(1,NumResults *
sizeof(
float));
1695ttb->
cs= (
float*)
calloc(1,NumResults *
sizeof(
float));
1696ttb->
lps= (
float*)
calloc(1,NumResults *
sizeof(
float));
1697ttb->
zsc= (
float*)
calloc(1,NumResults *
sizeof(
float));
1698ttb->
g0= (
float*)
calloc(1,NumResults *
sizeof(
float));
1699ttb->
m0= (
float*)
calloc(1,NumResults *
sizeof(
float));
1700ttb->
errm= (
float*)
calloc(1,NumResults *
sizeof(
float));
1701ttb->
errp= (
float*)
calloc(1,NumResults *
sizeof(
float));
1702ttb->
tf= (
int*)
calloc(1,NumResults *
sizeof(
int));
1703ttb->
ts= (
int*)
calloc(1,NumResults *
sizeof(
int));
1704ttb->
ls= (
int*)
calloc(1,NumResults *
sizeof(
int));
1705ttb->
pr= (
int*)
calloc(1,NumResults *
sizeof(
int));
1706ttb->
nx= (
int*)
calloc(1,NumResults *
sizeof(
int));
1707ttb->
al= (
int**)
calloc(1,NumCoreElements *
sizeof(
int*));
1708ttb->
no= (
int**)
calloc(1,NumCoreElements *
sizeof(
int*));
1709ttb->
co= (
int**)
calloc(1,NumCoreElements *
sizeof(
int*));
1710 for(
i=0;
i<NumCoreElements;
i++) {
1711ttb->
al[
i] = (
int*)
calloc(1,NumResults *
sizeof(
int));
1712ttb->
no[
i] = (
int*)
calloc(1,NumResults *
sizeof(
int));
1713ttb->
co[
i] = (
int*)
calloc(1,NumResults *
sizeof(
int));
1740 for(
i=0;
i<ttb->
nsc;
i++) {
1759fprintf(pFile,
"Threading Results:\n");
1760fprintf(pFile,
"number of threads: %6d\n", ttb->
n);
1761fprintf(pFile,
"number of core segments: %6d\n", ttb->
nsc);
1762fprintf(pFile,
"index of lowest energy thread: %6d\n", ttb->
mn);
1763fprintf(pFile,
"index of highest energy thread: %6d\n", ttb->
mx);
1764fprintf(pFile,
"for each thread:\n");
1765fprintf(pFile,
" tg ps ms cs lps zsc\n");
1766 for(
i=0;
i<ttb->
n;
i++) {
1767fprintf(pFile,
" %12.5e %12.5e %12.5e %12.5e %12.5e %12.5e\n",
1768ttb->
tg[
i], ttb->
ps[
i], ttb->
ms[
i], ttb->
cs[
i], ttb->
lps[
i], ttb->
zsc[
i]);
1770fprintf(pFile,
" g0 m0 errm errp\n");
1771 for(
i=0;
i<ttb->
n;
i++) {
1772fprintf(pFile,
" %12.5e %12.5e %12.5e %12.5e\n",
1775fprintf(pFile,
" tf ts ls pr nx\n");
1776 for(
i=0;
i<ttb->
n;
i++) {
1777fprintf(pFile,
" %6d %6d %6d %6d %6d\n",
1778ttb->
tf[
i], ttb->
ts[
i], ttb->
ls[
i], ttb->
pr[
i], ttb->
nx[
i]);
1780fprintf(pFile,
"threading alignments: %6d\n",
i+1);
1781fprintf(pFile,
"Centers:\n");
1782 for(
i=0;
i<ttb->
n;
i++) {
1783 for(j=0; j<ttb->
nsc; j++) {
1784fprintf(pFile,
" %4d", ttb->
al[j][
i] + 1);
1786fprintf(pFile,
"\n");
1788fprintf(pFile,
"N offsets:\n");
1789 for(
i=0;
i<ttb->
n;
i++) {
1790 for(j=0; j<ttb->
nsc; j++) {
1791fprintf(pFile,
" %4d", ttb->
no[j][
i]);
1793fprintf(pFile,
"\n");
1795fprintf(pFile,
"C offsets:\n");
1796 for(
i=0;
i<ttb->
n;
i++) {
1797 for(j=0; j<ttb->
nsc; j++) {
1798fprintf(pFile,
" %4d", ttb->
co[j][
i]);
1800fprintf(pFile,
"\n");
1802fprintf(pFile,
"\n");
1812pToResults->
tg[to] = pFromResults->
tg[from];
1813pToResults->
ps[to] = pFromResults->
ps[from];
1814pToResults->
ms[to] = pFromResults->
ms[from];
1815pToResults->
cs[to] = pFromResults->
cs[from];
1816pToResults->
lps[to] = pFromResults->
lps[from];
1817pToResults->
zsc[to] = pFromResults->
zsc[from];
1818pToResults->
g0[to] = pFromResults->
g0[from];
1819pToResults->
m0[to] = pFromResults->
m0[from];
1820pToResults->
errm[to] = pFromResults->
errm[from];
1821pToResults->
errp[to] = pFromResults->
errp[from];
1822pToResults->
tf[to] = pFromResults->
tf[from];
1823pToResults->
ts[to] = pFromResults->
ts[from];
1824pToResults->
ls[to] = pFromResults->
ls[from];
1825pToResults->
pr[to] = pFromResults->
pr[from];
1826pToResults->
nx[to] = pFromResults->
nx[from];
1827 for(
i=0;
i<pFromResults->
nsc;
i++) {
1828pToResults->
al[
i][to] = pFromResults->
al[
i][from];
1829pToResults->
no[
i][to] = pFromResults->
no[
i][from];
1830pToResults->
co[
i][to] = pFromResults->
co[
i][from];
1844 int i, j, SaveIndex, Index;
1845 doubleHighestScore;
1849Order = (
int*)
calloc(1,
sizeof(
int) * pResults->
n);
1854 for(
i=0;
i<pResults->
n;
i++) {
1855HighestScore = -9999999999.0;
1858 for(j=0; j<pResults->
n; j++) {
1859 if(CheckList[j] ==
FALSE) {
1860 if(pResults->
tg[j] > HighestScore) {
1861HighestScore = pResults->
tg[j];
1867Order[
i] = SaveIndex;
1868CheckList[SaveIndex] =
TRUE;
1872pOrderedResults =
NewThdTbl(pResults->
n, pResults->
nsc);
1873 for(
i=0;
i<pResults->
n;
i++) {
1874 CopyResult(pResults, pOrderedResults, Order[
i],
i);
1876pOrderedResults->
mx= 0;
1877pOrderedResults->
mn= pResults->
n- 1;
1880 for(
i=0;
i<pResults->
n;
i++) {
1885 for(
i=0;
i<pResults->
n;
i++) {
1887pResults->
nx[
i] =
i+1 < pResults->
n?
i+1 : 0;
1889Index = pResults->
n-
i- 1;
1890pResults->
pr[Index] = Index-1 < 0 ? 0 : Index-1;
1894pResults->
mx= pOrderedResults->
mx;
1895pResults->
mn= pOrderedResults->
mn;
1913SF = (float) ScalingFactor;
1915 for(
i=0;
i<ttb->
n;
i++) {
1916ttb->
tg[
i] *= SF;
1917ttb->
ps[
i] *= SF;
1918ttb->
ms[
i] *= SF;
1919ttb->
cs[
i] *= SF;
1920ttb->
lps[
i] *= SF;
1921ttb->
zsc[
i] *= SF;
1922ttb->
g0[
i] *= SF;
1923ttb->
m0[
i] *= SF;
1924ttb->
errm[
i] *= SF;
1925ttb->
errp[
i] *= SF;
1935 return((
int)(Num + 0.5));
1938 return((
int)(Num - 0.5));
unsigned int
A callback function used to compare two keys in a database.
Uint1 Boolean
bool replacment for C
Gib_Scd * NewGibScd(int NumTempSteps)
Fld_Mtf * FreeFldMtf(Fld_Mtf *mtf)
Thd_Tbl * NewThdTbl(int NumResults, int NumCoreElements)
Rcx_Ptl * NewRcxPtl(int NumResTypes, int NumDistances, int PeptideIndex)
Rcx_Ptl * FreeRcxPtl(Rcx_Ptl *pmf)
Cor_Def * FreeCorDef(Cor_Def *cdfp)
Seq_Mtf * FreeSeqMtf(Seq_Mtf *pssm)
Seq_Mtf * NewSeqMtf(int NumResidues, int AlphabetSize)
void PrintCorDef(Cor_Def *cdf, FILE *pFile)
int atd(Fld_Mtf *mtf, Cor_Def *cdf, Qry_Seq *qsq, Rcx_Ptl *pmf, Gib_Scd *gsp, Thd_Tbl *ttb, Seq_Mtf *psm, float *trg, int zscs, double ScalingFactor, float PSSM_Weight)
void PrintThdTbl(Thd_Tbl *ttb, FILE *pFile)
int ThrdRound(double Num)
void ScaleThdTbl(Thd_Tbl *ttb, double ScalingFactor)
Qry_Seq * FreeQrySeq(Qry_Seq *qsqp)
Fld_Mtf * NewFldMtf(int NumResidues, int NumResResContacts, int NumResPepContacts)
void PrintFldMtf(Fld_Mtf *mtf, FILE *pFile)
void OrderThdTbl(Thd_Tbl *pResults)
void PrintQrySeq(Qry_Seq *qsqp, FILE *pFile)
Gib_Scd * FreeGibScd(Gib_Scd *gsp)
Thd_Tbl * FreeThdTbl(Thd_Tbl *ttb)
void PrintSeqMtf(Seq_Mtf *psm, FILE *pFile)
int CopyResult(Thd_Tbl *pFromResults, Thd_Tbl *pToResults, int from, int to)
Cor_Def * NewCorDef(int NumBlocks)
Qry_Seq * NewQrySeq(int NumResidues, int NumBlocks)
int algs(Rnd_Smp *pvl, int tm)
int slor(Fld_Mtf *mtf, Cor_Def *cdf, Qry_Seq *qsq, Cur_Loc *sli, Cur_Aln *sai, int cs, int ct, int *mn, int *mx)
void salu(Cor_Def *cdf, Qry_Seq *qsq, Cur_Loc *sli, int cs, int al, Cur_Aln *sai)
float dgri(Seg_Gsm *spe, Seg_Nsm *spn, Thd_Cxe *cxe, Thd_Gsm *tdg, Seq_Mtf *psm, Seg_Cmp *spc)
void spel(Cxl_Los **cpl, Cur_Aln *sai, Cur_Loc *sli, int cs, Seg_Gsm *spe, Cor_Def *cdf, Seq_Mtf *psm, Seg_Cmp *spc)
void slou(Fld_Mtf *mtf, Cor_Def *cdf, int cs, int ct, int of, Cur_Loc *sli, Cur_Aln *sai, Qry_Seq *qsq)
void cprl(Fld_Mtf *mtf, Cor_Def *cdf, Rcx_Ptl *pmf, Cxl_Los **cpr, int ct)
int slo0(Fld_Mtf *mtf, Cor_Def *cdf, Qry_Seq *qsq, Cur_Loc *sli, int cs, int ct, int *mn, int *mx)
void cpll(Cor_Def *cdf, Rcx_Ptl *pmf, Qry_Seq *qsq, Cxl_Los **cpr, Cur_Aln *sai, Cxl_Los **cpl)
int salr(Cor_Def *cdf, Qry_Seq *qsq, Cur_Loc *sli, Cur_Aln *sai, int cs, int *mn, int *mx)
void cpal(Rcx_Ptl *pmf, Cxl_Los **cpr, Cur_Loc *sli, Cxl_Als **cpa)
void spni(Cxl_Los **cpl, Cur_Loc *sli, int n, Seg_Nsm *spn)
int ttbi(Cur_Aln *sai, Cur_Loc *sli, Thd_Gsm *tdg, Thd_Tbl *ttb, int nrs, int o)
void spea(Cor_Def *cdf, Cxl_Als **cpa, Cur_Aln *sai, Cur_Loc *sli, int n, int h, Seg_Gsm *spe, Seq_Mtf *psm, Seg_Cmp *spc)
void sgoi(int is, int it, Rnd_Smp *pvl, Seg_Ord *sgo)
void cxei(Seg_Nsm *spn, Seg_Cmp *spc, Rcx_Ptl *pmf, Cur_Loc *sli, Seq_Mtf *psm, Cor_Def *cdf, Thd_Cxe *cxe)
int spci(Cor_Def *cdf, Qry_Seq *qsq, Cur_Loc *sli, Cur_Aln *sai, int n, Seg_Cmp *spc)
int sal0(Cor_Def *cdf, Qry_Seq *qsq, Cur_Loc *sli, Cur_Aln *sai, int cs, int *mn, int *mx)
void bwfi(Thd_Tbl *ttb, Gib_Scd *gsp, Thd_Tst *tts)
void zsc(Thd_Tbl *ttb, Seq_Mtf *psm, Qry_Seq *qsq, Cxl_Los **cpr, Cor_Def *cdf, Rcx_Ptl *pmf, Seg_Gsm *spe, Cur_Aln *sai, Rnd_Smp *pvl, double ScalingFactor)
voidp calloc(uInt items, uInt size)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4