annotate kmersvm/scripts/kmersvm_classify.py @ 0:7fe1103032f7 draft

Uploaded
author cafletezbrant
date Mon, 20 Aug 2012 18:07:22 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
1 #!/usr/bin/python
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
2 """
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
3 kmersvm_classify.py; classify sequences using SVM
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
4 Copyright (C) 2011 Dongwon Lee
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
5
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
6 This program is free software: you can redistribute it and/or modify
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
7 it under the terms of the GNU General Public License as published by
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
8 the Free Software Foundation, either version 3 of the License, or
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
9 (at your option) any later version.
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
10
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
11 This program is distributed in the hope that it will be useful,
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
14 GNU General Public License for more details.
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
15
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
16 You should have received a copy of the GNU General Public License
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
17 along with this program. If not, see <http://www.gnu.org/licenses/>.
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
18 """
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
19
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
20 import sys
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
21 import numpy
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
22 import optparse
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
23
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
24 from libkmersvm import *
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
25
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
26 """
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
27 global variables
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
28 """
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
29 g_kmer2id = {}
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
30
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
31
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
32 class Parameters:
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
33 def __init__(self, kernel=None, kmerlen=None, kmerlen2=None, bias=None, A=None, B=None):
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
34 self.kernel = kernel
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
35 self.kmerlen = kmerlen
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
36 self.kmerlen2 = kmerlen2
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
37 self.bias = bias
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
38 self.A = A
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
39 self.B = B
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
40
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
41
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
42 def read_svmwfile_wsk(filename):
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
43 """read SVM weight file generated by kmersvm_train.py
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
44
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
45 Arguments:
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
46 filename -- string, name of the SVM weight file
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
47
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
48 Return:
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
49 list of SVM weights
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
50 an object of Parameters class
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
51 """
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
52
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
53 try:
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
54 f = open(filename, 'r')
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
55 lines = f.readlines()
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
56 f.close()
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
57
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
58 except IOError, (errno, strerror):
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
59 print "I/O error(%d): %s" % (errno, strerror)
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
60 sys.exit(0)
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
61
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
62 kmer_svmw_dict = {}
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
63 params = Parameters()
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
64
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
65 for line in lines:
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
66 #header lines
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
67 if line[0] == '#':
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
68 #if this line contains '=', that should be evaluated as a parameter
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
69 if line.find('=') > 0:
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
70 name, value = line[1:].split('=')
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
71 vars(params)[name] = value
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
72 else:
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
73 s = line.split()
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
74 kmerlen = len(s[0])
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
75 if kmerlen not in kmer_svmw_dict:
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
76 kmer_svmw_dict[kmerlen] = {}
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
77
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
78 kmer_svmw_dict[kmerlen][s[0]] = float(s[2])
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
79
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
80 #type casting of parameters
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
81 params.kernel = int(params.kernel)
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
82 params.kmerlen = int(params.kmerlen)
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
83 if params.kernel == 1:
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
84 params.kmerlen2 = params.kmerlen
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
85 else:
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
86 params.kmerlen2 = int(params.kmerlen2)
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
87 params.bias = float(params.bias)
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
88 params.A = float(params.A)
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
89 params.B = float(params.B)
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
90
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
91 #set global variable
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
92 global g_kmer2id
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
93 for k in range(params.kmerlen, params.kmerlen2+1):
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
94 kmers = generate_kmers(k)
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
95 rcmap = generate_rcmap_table(k, kmers)
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
96 for i in xrange(len(kmers)):
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
97 g_kmer2id[kmers[i]] = rcmap[i]
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
98
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
99 #create numpy arrays of svm weights
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
100 svmw_list = []
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
101 for k in range(params.kmerlen, params.kmerlen2+1):
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
102 svmw = [0]*(2**(2*k))
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
103
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
104 for kmer in kmer_svmw_dict[k].keys():
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
105 svmw[g_kmer2id[kmer]] = kmer_svmw_dict[k][kmer]
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
106
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
107 svmw_list.append(numpy.array(svmw, numpy.double))
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
108
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
109 return svmw_list, params
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
110
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
111
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
112 def score_seq(s, svmw, kmerlen):
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
113 """calculate SVM score of given sequence using single set of svm weights
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
114
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
115 Arguments:
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
116 s -- string, DNA sequence
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
117 svmw -- numpy array, SVM weights
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
118 kmerlen -- integer, length of k-mer of SVM weight
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
119
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
120 Return:
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
121 SVM score
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
122 """
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
123 kmer2id = g_kmer2id
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
124 x = [0]*(2**(2*kmerlen))
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
125 for j in xrange(len(s)-kmerlen+1):
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
126 x[ kmer2id[s[j:j+kmerlen]] ] += 1
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
127
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
128 x = numpy.array(x, numpy.double)
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
129 score_norm = numpy.dot(svmw, x)/numpy.sqrt(numpy.sum(x**2))
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
130
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
131 return score_norm
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
132
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
133
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
134 def score_seq_wsk(s, svmwlist, kmerlen_start, kmerlen_end):
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
135 """calculate svm score of given sequence with multiple sets of svm weights
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
136
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
137 Arguments:
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
138 svmwlist -- list, SVM weights
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
139 kmerlen_start -- integer, minimum length of k-mer in the list of svm weights
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
140 kmerlen_end -- integer, maximum length of k-mer in the list of sv weights
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
141
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
142 Return:
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
143 SVM score
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
144 """
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
145 kmerlens = range(kmerlen_start, kmerlen_end+1)
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
146 nkmerlens = len(kmerlens)
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
147
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
148 score_norm_sum = 0
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
149
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
150 for i in range(nkmerlens):
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
151 score_norm = score_seq(s, svmwlist[i], kmerlens[i])
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
152 score_norm_sum += score_norm
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
153
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
154 return score_norm_sum
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
155
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
156
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
157 def main(argv = sys.argv):
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
158 usage = "Usage: %prog [options] SVM_WEIGHTS TEST_SEQ"
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
159 desc = "1. take two files(one is in FASTA format to score, the other is SVM weight file generated from kmersvm_train.py) as input, 2. score each sequence in the given file"
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
160 parser = optparse.OptionParser(usage=usage, description=desc)
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
161 parser.add_option("-o", dest="output", default="kmersvm_scores.out", \
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
162 help="set the name of output score file (default=kmersvm_scores.out)")
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
163
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
164 parser.add_option("-q", dest="quiet", default=False, action="store_true", \
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
165 help="supress messages (default=false)")
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
166
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
167 (options, args) = parser.parse_args()
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
168
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
169 if len(args) == 0:
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
170 parser.print_help()
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
171 sys.exit(0)
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
172
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
173 if len(args) != 2:
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
174 parser.error("incorrect number of arguments")
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
175 sys.exit(0)
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
176
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
177 ktype_str = ["", "Spectrum", "Weighted Spectrums"]
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
178
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
179 svmwf = args[0]
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
180 seqf = args[1]
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
181
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
182 seqs, sids = read_fastafile(seqf)
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
183 svmwlist, params = read_svmwfile_wsk(svmwf)
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
184
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
185 if options.quiet == False:
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
186 sys.stderr.write('Options:\n')
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
187 sys.stderr.write(' kernel-type: ' + str(params.kernel) + "." + ktype_str[params.kernel] + '\n')
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
188 sys.stderr.write(' kmerlen: ' + str(params.kmerlen) + '\n')
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
189 if params.kernel == 2:
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
190 sys.stderr.write(' kmerlen2: ' + str(params.kmerlen2) + '\n')
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
191 sys.stderr.write(' output: ' + options.output + '\n')
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
192 sys.stderr.write('\n')
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
193
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
194 sys.stderr.write('Input args:\n')
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
195 sys.stderr.write(' SVM weights file: ' + svmwf + '\n')
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
196 sys.stderr.write(' sequence file: ' + seqf + '\n')
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
197 sys.stderr.write('\n')
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
198
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
199 sys.stderr.write('numer of sequences to score: ' + str(len(seqs)) + '\n')
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
200 sys.stderr.write('posteriorp A: ' + str(params.A) + '\n')
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
201 sys.stderr.write('posteriorp B: ' + str(params.B) + '\n')
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
202 sys.stderr.write('\n')
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
203
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
204 f = open(options.output, 'w')
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
205 f.write("\t".join(["#seq_id", "posterior_prob", "svm_score\n"]))
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
206
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
207 kmerlen = params.kmerlen
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
208 kmerlen2 = params.kmerlen2
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
209 bias = params.bias
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
210 A = params.A
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
211 B = params.B
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
212 for sidx in xrange(len(seqs)):
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
213 s = seqs[sidx]
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
214 score = score_seq_wsk(s, svmwlist, kmerlen, kmerlen2) + bias
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
215 pp = 1/(1+numpy.exp(score*A+B))
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
216
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
217 f.write("\t".join([ sids[sidx], str(pp), str(score)]) + "\n")
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
218
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
219 f.close()
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
220
7fe1103032f7 Uploaded
cafletezbrant
parents:
diff changeset
221 if __name__=='__main__': main()