From 2e8a3cdf693541e552919dffabe3cda12b82ca9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bertrand=20N=C3=A9ron?= <bneron@pasteur.fr> Date: Thu, 21 Jan 2016 15:28:16 +0100 Subject: [PATCH] SystemInfo is now mutable replace namedtuple SystemInfo by an object as we need to mutate it some information (system_status, and predicted_system are known after the creation of new system occurrence when the parser encounter a gene belonging a system not neighbor genes --- src/parser/parser.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/parser/parser.py b/src/parser/parser.py index 136486c..278aa55 100755 --- a/src/parser/parser.py +++ b/src/parser/parser.py @@ -63,7 +63,17 @@ def system_parser(system_data): """ system_db = {} - System_info = namedtuple('System_info', 'code, predicted_system, system_status, replicon, genes') + class System_info(object): + + def __init__(self, code, predicted_system, system_status, replicon, genes): + self.code = code + self.predicted_system = predicted_system + self.system_status = system_status + self.replicon = replicon + self.genes = genes + + #System_info = namedtuple('System_info', 'code, predicted_system, system_status, replicon, genes') + Gene = namedtuple('Gene', ('code', 'id', 'protein_length', 'strand', 'begin', 'end', 'match', 'score', 'i_evalue', 'coverage', 'match_begin', 'match_end', 'name', 'description') @@ -123,8 +133,13 @@ def system_parser(system_data): else: # append this gene to System_info genes system_db[system_id].genes[gene.code] = gene + if predicted_system is not None and system_db[system_id].predicted_system is None: + system_db[system_id].predicted_system = predicted_system + if system_status is not None and system_db[system_id].system_status is None: + system_db[system_id].system_status = system_status else: # create a new System_info entry + print("@@@ create new System_info",system_id, predicted_system, system_status, replicon_id) system_db[system_id] = System_info(system_id, predicted_system, system_status, replicon_id, genes={gene.code: gene}) -- GitLab