Mercurial > repos > yufei-luo > s_mart
comparison commons/pyRepetUnit/hmmer/hmmOutput/HmmscanOutputProcessing.py @ 18:94ab73e8a190
Uploaded
author | m-zytnicki |
---|---|
date | Mon, 29 Apr 2013 03:20:15 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
17:b0e8584489e6 | 18:94ab73e8a190 |
---|---|
1 import re | |
2 from commons.pyRepetUnit.hmmer.hmmOutput.HmmOutput import HmmOutput | |
3 from commons.pyRepetUnit.hmmer.hmmOutput.HmmOutputProcessing import HmmOutputProcessing | |
4 | |
5 ##Concrete implementation for hmmscan output specific methods | |
6 # | |
7 class HmmscanOutputProcessing (HmmOutputProcessing): | |
8 | |
9 ## read an hmmscan output from a file, return a array with results useful to build a .align file | |
10 # | |
11 # @param file handle of file generated by software searching hmm profiles | |
12 # | |
13 def readHmmOutput( self, hmmerOutputFile ): | |
14 #Tested with HMMER 3 on Linux | |
15 line = hmmerOutputFile.readline() | |
16 tabResult = None | |
17 if (line == ""): | |
18 tabResult = None | |
19 return tabResult | |
20 tabResult = HmmOutput() | |
21 | |
22 while line != "": | |
23 line = hmmerOutputFile.readline() | |
24 if not(re.match("^#.*$", line)) and line != "": | |
25 lLines = re.split("\s+", line) | |
26 seqName = lLines[3] | |
27 profilName = lLines[0] | |
28 iValue = lLines[12] | |
29 score = lLines[13] | |
30 queryCoordStart =lLines[17] | |
31 queryCoordEnd = lLines[18] | |
32 subjectCoordStart = lLines[15] | |
33 subjectCoordEnd = lLines[16] | |
34 tabResult.append([seqName, queryCoordStart, queryCoordEnd, profilName, subjectCoordStart, subjectCoordEnd, iValue, score]) | |
35 return tabResult | |
36 |