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