Coverage for /home/deng/Projects/ete4/hackathon/ete4/ete4/evol/parser/slrparser.py: 16%
43 statements
« prev ^ index » next coverage.py v7.2.7, created at 2024-03-21 09:19 +0100
« prev ^ index » next coverage.py v7.2.7, created at 2024-03-21 09:19 +0100
1#!/usr/bin/python3
3"""
4Parser for slr outfile
5"""
7__author__ = "Francois-Jose Serra"
8__email__ = "francois@barrabin.org"
9__licence__ = "GPLv3"
10__version__ = "0.0"
12from re import match
14def parse_slr (slrout):
15 SLR = {'pv':[],'w':[],'se':[], 'class':[],'note':[]}
16 w = ''
17 apv = ''
18 seP = ''
19 seN = ''
20 res = ''
21 note= ''
22 for line in open (slrout):
23 if line.startswith('#'):
24 w = line.strip().split().index('Omega')-1
25 apv = line.strip().split().index('Adj.Pval')-1
26 res = line.strip().split().index('Result')-1
27 note= line.strip().split().index('Note')-1
28 try:
29 seP = line.strip().split().index('upper')-1
30 seN = line.strip().split().index('lower')-1
31 except:
32 continue
33 continue
34 SLR['pv' ].append(1-float (line.split()[apv]))
35 SLR['w' ].append(line.split()[w])
36 corr = 0
37 try:
38 if not match('[-+]',line.split()[res]) is None:
39 SLR['class' ].append (5 - line.split()[res].count ('-') + line.split()[res].count ('+'))
40 else:
41 SLR['class' ].append(5)
42 corr = 1
43 except IndexError:
44 SLR['class' ].append(5)
45 try:
46 SLR['note' ].append(line.split()[note-corr])
47 except IndexError:
48 SLR['note' ].append('')
49 if not seN == '':
50 SLR['se'].append ([float (SLR['w'][-1]) - float (line.split()[seN]),
51 float (line.split()[seP]) - float (SLR['w'][-1])])
52 return {'sites': {'SLR': SLR},
53 'n_classes': {'SLR': 8}}