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

1#!/usr/bin/python3 

2 

3""" 

4Parser for slr outfile 

5""" 

6 

7__author__ = "Francois-Jose Serra" 

8__email__ = "francois@barrabin.org" 

9__licence__ = "GPLv3" 

10__version__ = "0.0" 

11 

12from re import match 

13 

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}}