Add a new option -E to considere some example sequences as counterexamples
git-svn-id: https://www.grenoble.prabi.fr/svn/LECASofts/ecoPrimers/trunk@235 60f365c0-8329-0410-b2a4-ec073aeeaa1d
This commit is contained in:
@ -125,6 +125,7 @@ void initoptions(poptions_t options)
|
|||||||
options->primer_length=18; //**< minimal length of the primers
|
options->primer_length=18; //**< minimal length of the primers
|
||||||
options->restricted_taxid=NULL; //**< limit amplification below these taxid
|
options->restricted_taxid=NULL; //**< limit amplification below these taxid
|
||||||
options->ignored_taxid=NULL; //**< no amplification below these taxid
|
options->ignored_taxid=NULL; //**< no amplification below these taxid
|
||||||
|
options->exception_taxid=NULL; //**< no amplification below these taxid
|
||||||
options->prefix=NULL;
|
options->prefix=NULL;
|
||||||
options->reference=NULL;
|
options->reference=NULL;
|
||||||
options->refseq=NULL;
|
options->refseq=NULL;
|
||||||
@ -137,6 +138,7 @@ void initoptions(poptions_t options)
|
|||||||
options->strict_three_prime=0;
|
options->strict_three_prime=0;
|
||||||
options->r=0;
|
options->r=0;
|
||||||
options->g=0;
|
options->g=0;
|
||||||
|
options->e=0;
|
||||||
options->no_multi_match=FALSE;
|
options->no_multi_match=FALSE;
|
||||||
options->pnparm = NULL;
|
options->pnparm = NULL;
|
||||||
strcpy(options->taxonrank, DEFAULTTAXONRANK); /*taxon level for results, species by default*/
|
strcpy(options->taxonrank, DEFAULTTAXONRANK); /*taxon level for results, species by default*/
|
||||||
@ -525,7 +527,7 @@ int main(int argc, char **argv)
|
|||||||
|
|
||||||
initoptions(&options);
|
initoptions(&options);
|
||||||
|
|
||||||
while ((carg = getopt(argc, argv, "hAfvcUDSd:l:L:e:i:r:R:q:3:s:x:t:O:m:a:")) != -1) {
|
while ((carg = getopt(argc, argv, "hAfvcUDSE:d:l:L:e:i:r:R:q:3:s:x:t:O:m:a:")) != -1) {
|
||||||
|
|
||||||
switch (carg) {
|
switch (carg) {
|
||||||
/* ---------------------------- */
|
/* ---------------------------- */
|
||||||
@ -638,6 +640,15 @@ int main(int argc, char **argv)
|
|||||||
options.r++;
|
options.r++;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
/* ------------------------------------------ */
|
||||||
|
case 'E': /* stores the restricting search taxonomic id */
|
||||||
|
/* ------------------------------------------ */
|
||||||
|
options.exception_taxid = ECOREALLOC(options.exception_taxid,sizeof(int32_t)*(options.e+1),
|
||||||
|
"Error on exception_taxid reallocation");
|
||||||
|
sscanf(optarg,"%d",&(options.exception_taxid[options.e]));
|
||||||
|
options.e++;
|
||||||
|
break;
|
||||||
|
|
||||||
/* -------------------- */
|
/* -------------------- */
|
||||||
case 'R': /* reference sequence */
|
case 'R': /* reference sequence */
|
||||||
/* -------------------- */
|
/* -------------------- */
|
||||||
|
@ -256,6 +256,7 @@ typedef struct {
|
|||||||
uint32_t primer_length; //**< minimal length of the primers
|
uint32_t primer_length; //**< minimal length of the primers
|
||||||
int32_t *restricted_taxid; //**< limit amplification below these taxid
|
int32_t *restricted_taxid; //**< limit amplification below these taxid
|
||||||
int32_t *ignored_taxid; //**< no amplification below these taxid
|
int32_t *ignored_taxid; //**< no amplification below these taxid
|
||||||
|
int32_t *exception_taxid;
|
||||||
char *prefix;
|
char *prefix;
|
||||||
char *reference;
|
char *reference;
|
||||||
pecoseq_t refseq;
|
pecoseq_t refseq;
|
||||||
@ -269,6 +270,7 @@ typedef struct {
|
|||||||
uint32_t strict_three_prime;
|
uint32_t strict_three_prime;
|
||||||
int32_t r; //**< count of restrited taxa (restricted_taxid array size)
|
int32_t r; //**< count of restrited taxa (restricted_taxid array size)
|
||||||
int32_t g; //**< count of ignored taxa (ignored_taxid array size)
|
int32_t g; //**< count of ignored taxa (ignored_taxid array size)
|
||||||
|
int32_t e; //**< count of ignored taxa (ignored_taxid array size)
|
||||||
bool_t no_multi_match;
|
bool_t no_multi_match;
|
||||||
char taxonrank[20]; //TR to count ranks against a pair
|
char taxonrank[20]; //TR to count ranks against a pair
|
||||||
int32_t taxonrankidx; //TR to count ranks against a pair
|
int32_t taxonrankidx; //TR to count ranks against a pair
|
||||||
|
@ -17,9 +17,9 @@ int isGoodTaxon(ecotaxonomy_t *taxonomy,int32_t taxon,poptions_t options)
|
|||||||
options->r,
|
options->r,
|
||||||
taxonomy->taxons->taxon[taxon].taxid)
|
taxonomy->taxons->taxon[taxon].taxid)
|
||||||
)) &&
|
)) &&
|
||||||
((options->g == 0) || !(eco_is_taxid_included(taxonomy,
|
((options->e == 0) || !(eco_is_taxid_included(taxonomy,
|
||||||
options->ignored_taxid,
|
options->exception_taxid,
|
||||||
options->g,
|
options->e,
|
||||||
taxonomy->taxons->taxon[taxon].taxid)
|
taxonomy->taxons->taxon[taxon].taxid)
|
||||||
));
|
));
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user