annotate commons/pyRepetUnit/hmmer/hmmOutput/HmmOutputProcessing.py @ 18:94ab73e8a190

Uploaded
author m-zytnicki
date Mon, 29 Apr 2013 03:20:15 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
18
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
1 import os
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
2 from commons.pyRepetUnit.hmmer.hmmOutput.HmmOutput import HmmOutput
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
3
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
4 ##Concrete implementation for hmmscan and hmmpfam output methods
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
5 #
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
6 class HmmOutputProcessing (object):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
7
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
8 ## write a align file from a HmmOutput object
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
9 #
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
10 # @param fout handle of align file
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
11 # @param HmmOutput HmmOutput object in fact a list of hmmOutput containing datas required
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
12 #
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
13 def writeHmmOutputToAlignFile( self, pfamOutput, fout ):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
14 for item in pfamOutput.getList():
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
15 for i in item:
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
16 fout.write(i + "\t")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
17 fout.write("0\n")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
18
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
19 ## read an output file from hmm profiles search program and write the corresponding .align file
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
20 #
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
21 # @param inputFile file
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
22 # @param outputFile file
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
23 #
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
24 def readHmmOutputsAndWriteAlignFile( self, inputFile, outputFile ):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
25 if not os.path.exists(inputFile):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
26 print "Warning your input file " + inputFile + " does not exist!\n"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
27 return
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
28 file2parse = open( inputFile )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
29 pfamOutput = HmmOutput()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
30 if outputFile == "":
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
31 print "Warning have to specify an output name file!\n"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
32 return
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
33 fout = open(outputFile, "w")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
34 while pfamOutput != None:
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
35 pfamOutput = self.readHmmOutput(file2parse)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
36 if pfamOutput != None:
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
37 self.writeHmmOutputToAlignFile(pfamOutput, fout)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
38 fout.close()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
39 file2parse.close()