with full coverage statistic

git-svn-id: https://www.grenoble.prabi.fr/svn/LECASofts/ecoPrimers/branches/eric-test@189 60f365c0-8329-0410-b2a4-ec073aeeaa1d
This commit is contained in:
2009-03-15 21:52:57 +00:00
parent 5d212d5753
commit 29820c1e26

View File

@ -106,13 +106,20 @@ void printapair(int32_t index,ppair_t pair, poptions_t options)
else
printf("%s",ecoUnhashWord(pair->p2->word,options->primer_length));
printf("\t%c%c", "bG"[(int)pair->p1->good],"bG"[(int)pair->p2->good]);
printf("\t%d", pair->inexample);
printf("\t%d", pair->outexample);
printf("\t%4.3f", pair->yule);
printf("\t%d", pair->intaxa);
printf("\t%d", pair->outtaxa);
printf("\t%4.3f", (float)pair->intaxa/options->intaxa);
printf("\t%d", pair->mind);
printf("\t%d", pair->maxd);
printf("\t%3.2f\t", (float)pair->sumd/pair->inexample);
printf("\t%4.3f\n", pair->yule);
printf("\t%3.2f\n", (float)pair->sumd/pair->inexample);
}
@ -143,7 +150,10 @@ uint32_t filterandsortpairs(ppair_t* sortedpairs,uint32_t count, poptions_t opti
if (q > options->sensitivity_quorum &&
qfp < options->false_positive_quorum)
{
(void)taxonomycoverage(sortedpairs[j],options);
j++;
}
}
return j;
@ -154,7 +164,7 @@ void printpairs (ppairtree_t pairs, poptions_t options)
ppair_t* sortedpairs;
ppair_t* index;
ppairlist_t pl;
int32_t i,j;
size_t i,j;
int32_t count;
fprintf(stderr,"Total pair count : %d\n",pairs->count);
@ -264,45 +274,6 @@ void setresulttaxonrank (ecotaxonomy_t *taxonomy, poptions_t options)
}
}
/* to get db stats, totals of species, genus etc....*/
int32_t getrankdbstats(pecodnadb_t seqdb, uint32_t seqdbsize, ecotaxonomy_t *taxonomy,
poptions_t options)
{
uint32_t i;
uint32_t j;
uint32_t nameslots = 500;
uint32_t namesindex = 0;
int32_t *ranktaxonids = ECOMALLOC(nameslots * sizeof(int32_t), "Error in taxon rank allocation");
int32_t taxid;
ecotx_t *tmptaxon;
for (i=0;i<seqdbsize;i++)
{
taxid = taxonomy->taxons->taxon[seqdb[i]->taxid].taxid;
tmptaxon = eco_findtaxonbytaxid(taxonomy, taxid);
if (tmptaxon)
tmptaxon = eco_findtaxonatrank(tmptaxon, options->taxonrankidx);
if (tmptaxon)
{
for (j = 0; j < namesindex; j++)
{
if (tmptaxon->taxid == ranktaxonids[j]) break;
}
if (j < namesindex) continue; /* name is already in list, so no need to add it*/
if (namesindex == nameslots)
{
nameslots += 500;
ranktaxonids = ECOREALLOC(ranktaxonids, nameslots * sizeof(int32_t), "Cannot allocate pair rank taxon table");
}
ranktaxonids[namesindex] = tmptaxon->taxid;
namesindex++;
}
}
ECOFREE(ranktaxonids, "free rank taxon table");
return namesindex;
}
#ifdef MASKEDCODE
@ -513,8 +484,10 @@ int main(int argc, char **argv)
rankdbstats = getrankdbstats(seqdb, seqdbsize, taxonomy, &options);
fprintf(stderr,"Database is constituted of %5d examples\n",insamples);
fprintf(stderr," and %5d counterexamples\n",outsamples);
fprintf(stderr,"Database is constituted of %5d examples corresponding to %5d %s\n",insamples,
options.intaxa,options.taxonrank);
fprintf(stderr," and %5d counterexamples corresponding to %5d %s\n",outsamples,
options.outtaxa,options.taxonrank);
fprintf(stderr,"Total distinct %s count %d\n",options.taxonrank, rankdbstats);
fprintf(stderr,"\nIndexing words in sequences\n");