From 8a10072d99069d683a41a4f64abe89f988649c65 Mon Sep 17 00:00:00 2001 From: Celine Mercier Date: Thu, 17 May 2018 14:51:18 +0200 Subject: [PATCH] obi annotate: fixed a bug with --with-taxon-at-rank option and minor improvements --- python/obitools3/commands/annotate.pyx | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/python/obitools3/commands/annotate.pyx b/python/obitools3/commands/annotate.pyx index 302829c..365165d 100644 --- a/python/obitools3/commands/annotate.pyx +++ b/python/obitools3/commands/annotate.pyx @@ -13,9 +13,18 @@ from obitools3.dms.capi.obiview cimport QUALITY_COLUMN import time import math +from obitools3.dms.capi.obiview cimport NUC_SEQUENCE_COLUMN, \ + ID_COLUMN, \ + DEFINITION_COLUMN, \ + QUALITY_COLUMN, \ + COUNT_COLUMN + __title__="Annotate views with new tags and edit existing annotations" + +SPECIAL_COLUMNS = [NUC_SEQUENCE_COLUMN, ID_COLUMN, DEFINITION_COLUMN, QUALITY_COLUMN] + def addOptions(parser): @@ -152,7 +161,7 @@ def sequenceTaggerGenerator(config, taxo=None): toSet[i][j] = tobytes(toSet[i][j]) annoteRank=[] - if 'taxon_at_rank' in config['annotate']: + if config['annotate']['taxon_at_rank']: if taxo is not None: annoteRank = config['annotate']['taxon_at_rank'] else: @@ -313,8 +322,9 @@ def run(config): keep = set(keep) if clear or keep: - for k in o_view.keys(): - if k not in keep: + keys = [k for k in o_view.keys()] + for k in keys: + if k not in keep and k not in SPECIAL_COLUMNS: o_view.delete_column(k) else: for k in toDelete: