@@ -12,6 +12,7 @@ class GcdReader(Reader):
1212 priority = 5
1313
1414 _number_of_ch = 0
15+ _delimiter = ';'
1516
1617 def _parse_input (self ):
1718 current_header = '[NO HEADER]'
@@ -52,7 +53,7 @@ def get_tables(self):
5253 table ['header' ].append (header_key )
5354 for line in self .lines .get (header_key , []):
5455 table ['header' ].append (line )
55- key , value = [x .strip () for x in line .split (',' , 1 )]
56+ key , value = [x .strip () for x in line .split (self . _delimiter , 1 )]
5657 if datetime_re .match (value ) is not None :
5758 value = datetime .datetime .strptime (value , datetime_read_formate ).strftime (datetime_write_formate )
5859 if time_re .match (value ) is not None :
@@ -61,9 +62,9 @@ def get_tables(self):
6162 value = datetime .datetime .strptime (value , date_read_formate ).strftime (date_write_formate )
6263 if key in ['Detector ID' , 'Detector Name' , '# of Channels' ]:
6364 if key == '# of Channels' :
64- self ._number_of_ch = sum ([int (x ) for x in value .split (',' )])
65+ self ._number_of_ch = sum ([int (x ) for x in value .split (self . _delimiter )])
6566 table ['metadata' ][key ] = str (self ._number_of_ch )
66- for idx , val_item in enumerate (value .split (',' )):
67+ for idx , val_item in enumerate (value .split (self . _delimiter )):
6768 table ['metadata' ][f'{ header_key } .{ key } .{ idx + 1 } ' ] = val_item
6869 else :
6970 table ['metadata' ][f'{ header_key } .{ key } ' ] = value
@@ -73,16 +74,16 @@ def get_tables(self):
7374 table ['metadata' ]['rows' ] = str (len (table ['rows' ]))
7475 table ['metadata' ]['columns' ] = str (len (table ['columns' ]))
7576
76- def add_peak_table (header , lines = None ):
77+ def add_peak_table (header , lines = None , idx = 0 ):
7778 if lines is None : lines = self .lines [header ]
78- key , number_of_ids = [x .strip () for x in lines [0 ].split (',' , 1 )]
79+ key , number_of_ids = [x .strip () for x in lines [0 ].split (self . _delimiter , 1 )]
7980 table = self .append_table (tables )
8081 table ['header' ] += lines
8182 table ['metadata' ]['Header' ] = header
8283 table ['metadata' ][key ] = number_of_ids
83- col_names = [x .strip () for x in lines [1 ].split (',' )]
84+ col_names = [x .strip () for x in lines [1 ].split (self . _delimiter )]
8485 for line in lines [2 :]:
85- table_entries = line .split (',' )
86+ table_entries = line .split (self . _delimiter )
8687 table ['rows' ].append (table_entries )
8788 for idx_entry , entry in enumerate (table_entries ):
8889 table ['metadata' ][f"Ch{ idx + 1 } .Id { table_entries [0 ]} .{ col_names [idx_entry ]} " ] = entry
@@ -96,11 +97,11 @@ def add_peak_table(header, lines=None):
9697
9798 for idx in range (self ._number_of_ch ):
9899 header = f"[Compound Results(Ch{ idx + 1 } )]"
99- add_peak_table (header )
100+ add_peak_table (header , idx = idx )
100101 header = f"[Peak Table(Ch{ idx + 1 } )]"
101- data_lines = [x for x in self .lines [header ][2 :] if x .split (',' )[9 ].strip () != '' ]
102+ data_lines = [x for x in self .lines [header ][2 :] if x .split (self . _delimiter )[9 ].strip () != '' ]
102103 lines = self .lines [header ][:2 ] + data_lines
103- add_peak_table (header , lines )
104+ add_peak_table (header , lines = lines , idx = idx )
104105
105106
106107 def add_value_table (header ):
@@ -109,17 +110,17 @@ def add_value_table(header):
109110 table ['metadata' ]['Header' ] = header
110111
111112 metas = [x for x in lines if re .match ('^\d' , x ) is None ]
112- values = [[float (y ) for y in x .split (',' )] for x in lines if re .match ('^\d' , x ) is not None ]
113+ values = [[float (y ) for y in x .split (self . _delimiter )] for x in lines if re .match ('^\d' , x ) is not None ]
113114 for line in metas [:- 1 ]:
114- key , value = [x .strip () for x in line .split (',' , 1 )]
115+ key , value = [x .strip () for x in line .split (self . _delimiter , 1 )]
115116 table ['metadata' ][f"{ header } .{ key } " ] = value
116117 table ['rows' ] = values
117118
118119
119120 table ['columns' ] = [{
120121 'key' : str (idx ),
121122 'name' : value
122- } for idx , value in enumerate (metas [- 1 ].split (',' ))]
123+ } for idx , value in enumerate (metas [- 1 ].split (self . _delimiter ))]
123124
124125 table ['metadata' ]['rows' ] = str (len (table ['rows' ]))
125126 table ['metadata' ]['columns' ] = str (len (table ['columns' ]))
0 commit comments