GtDiscDistri *gt_condenseq_link_comp_dist(const GtCondenseq *condenseq) { GtUword idx; GtDiscDistri *res = gt_disc_distri_new(); for (idx = 0; idx < condenseq->ldb_nelems; idx++) { GtEditscript *es = condenseq->links[idx].editscript; GtUword vlen; size_t size; vlen = gt_editscript_get_target_len(es); size = gt_editscript_size(es); gt_disc_distri_add(res, (GtUword) ((double) size/(double) vlen * 100)); } return res; }
GtUword gt_condenseq_size(const GtCondenseq *condenseq, GtUword *uniques, GtUword *links, GtUword *editscripts, GtUword *descriptions, GtUword *separators) { GtUword idx; *uniques = condenseq->udb_nelems * sizeof (*condenseq->uniques); for (idx = 0; idx < condenseq->udb_nelems; idx++) { *uniques += condenseq->uniques[idx].links.allocateduint32_t * sizeof (*condenseq->uniques[idx].links.spaceuint32_t); } *links = condenseq->ldb_nelems * sizeof (*condenseq->links); *editscripts = 0; for (idx = 0; idx < condenseq->ldb_nelems; idx++) *editscripts += gt_editscript_size(condenseq->links[idx].editscript); *descriptions = condenseq->ids_total_len; *descriptions += gt_intset_size_of_struct(condenseq->sdstab); *descriptions += gt_intset_size_of_rep(condenseq->sdstab); *separators = gt_intset_size_of_struct(condenseq->ssptab); *separators = gt_intset_size_of_rep(condenseq->ssptab); return *uniques + *links + *editscripts + *descriptions + *separators; }