From 89576b96fadb555f6728a22945898c9f2318d9ec Mon Sep 17 00:00:00 2001 From: Eric Coissac Date: Mon, 9 Nov 2009 14:50:35 +0000 Subject: [PATCH] Patch taxon example/counterexample selection git-svn-id: https://www.grenoble.prabi.fr/svn/LECASofts/ecoPrimers/trunk@237 60f365c0-8329-0410-b2a4-ec073aeeaa1d --- src/ecoprimer.c | 2 +- src/libecoprimer/goodtaxon.c | 15 ++++++++++++--- src/libecoprimer/taxstats.c | 2 +- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/ecoprimer.c b/src/ecoprimer.c index deb6127..5715ad8 100644 --- a/src/ecoprimer.c +++ b/src/ecoprimer.c @@ -458,7 +458,7 @@ void updateseqparams (pecodnadb_t seqdb, uint32_t seqdbsize, ecotaxonomy_t *taxo for (i=0;iisexample=isGoodTaxon(taxonomy,seqdb[i]->taxid,options); + seqdb[i]->isexample=isExampleTaxon(taxonomy,seqdb[i]->taxid,options); if (seqdb[i]->isexample) (*insamples)++; else diff --git a/src/libecoprimer/goodtaxon.c b/src/libecoprimer/goodtaxon.c index 898b533..68f940c 100644 --- a/src/libecoprimer/goodtaxon.c +++ b/src/libecoprimer/goodtaxon.c @@ -12,7 +12,7 @@ int isGoodTaxon(ecotaxonomy_t *taxonomy,int32_t taxon,poptions_t options) { int result; - result=( (options->r == 0) || (eco_is_taxid_included(taxonomy, + result=((options->r == 0) || (eco_is_taxid_included(taxonomy, options->restricted_taxid, options->r, taxonomy->taxons->taxon[taxon].taxid) @@ -34,6 +34,11 @@ int isExampleTaxon(ecotaxonomy_t *taxonomy,int32_t taxon,poptions_t options) options->restricted_taxid, options->r, taxonomy->taxons->taxon[taxon].taxid) + )) && + ((options->e == 0) || !(eco_is_taxid_included(taxonomy, + options->exception_taxid, + options->e, + taxonomy->taxons->taxon[taxon].taxid) )); return result; @@ -47,8 +52,12 @@ int isCounterExampleTaxon(ecotaxonomy_t *taxonomy,int32_t taxon,poptions_t optio result=((options->g != 0) && (eco_is_taxid_included(taxonomy, options->ignored_taxid, options->g, - taxonomy->taxons->taxon[taxon].taxid) - )); + taxonomy->taxons->taxon[taxon].taxid)) + ) || ((options->e != 0) && (eco_is_taxid_included(taxonomy, + options->exception_taxid, + options->e, + taxonomy->taxons->taxon[taxon].taxid)) + ); return result; diff --git a/src/libecoprimer/taxstats.c b/src/libecoprimer/taxstats.c index a751d7d..da7de6f 100644 --- a/src/libecoprimer/taxstats.c +++ b/src/libecoprimer/taxstats.c @@ -64,7 +64,7 @@ int32_t getrankdbstats(pecodnadb_t seqdb, uint32_t seqdbsize, ecotaxonomy_t *tax for (i=0;itaxons->taxon[seqdb[i]->taxid]); - seqdb[i]->isexample=isGoodTaxon(taxonomy,seqdb[i]->taxid,options); + seqdb[i]->isexample=isExampleTaxon(taxonomy,seqdb[i]->taxid,options); tmptaxon = eco_findtaxonatrank(taxon, options->taxonrankidx);