diff --git a/src/libecoPCR/ecoPCR.h b/src/libecoPCR/ecoPCR.h index 737cd76..08a325f 100644 --- a/src/libecoPCR/ecoPCR.h +++ b/src/libecoPCR/ecoPCR.h @@ -56,11 +56,11 @@ typedef struct { } ecotxformat_t; -typedef struct { - int32_t taxid; - int32_t rank; - int32_t parent; - char *name; +typedef struct ecotxnode { + int32_t taxid; + int32_t rank; + struct ecotxnode *parent; + char *name; } ecotx_t; typedef struct { @@ -191,6 +191,9 @@ ecotxidx_t *read_taxonomyidx(const char *filename); ecotaxonomy_t *read_taxonomy(const char *prefix); +ecotx_t *eco_findtaxonbytaxid(ecotaxonomy_t *taxonomy, int32_t taxid); + +int eco_isundertaxon(ecotx_t *taxon, int other_taxid); ecoseq_t *ecoseq_iterator(const char *prefix); @@ -227,4 +230,7 @@ ecotx_t *eco_getfamily(ecotx_t *taxon,ecotaxonomy_t *taxonomy); ecotx_t *eco_getkingdom(ecotx_t *taxon,ecotaxonomy_t *taxonomy); ecotx_t *eco_getsuperkingdom(ecotx_t *taxon,ecotaxonomy_t *taxonomy); +int eco_is_taxid_ignored(int *ignored_taxid, int tab_len, int taxid); +int eco_is_taxid_included(ecotaxonomy_t *taxonomy, int *included_taxid, int tab_len, int taxid); + #endif /*ECOPCR_H_*/