blob: e91e77714c7f72a2a318b1f00f3179091c129d6e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
#!/usr/bin/env python
import sys
from Bio.SeqUtils.MeltingTemp import Tm_staluc
# naiive
def in_temp_range(kmer):
A = kmer.count('A')
C = kmer.count('C')
G = kmer.count('G')
T = kmer.count('T')
melt_temp = 0.0;
if len(kmer) < 13:
melt_temp = ((A+T) * 2) + ((C+G) * 4)
else:
melt_temp = 64.9 + 41*(G+C-16.4)/(A+T+G+C)
return min_melting_temp < melt_temp < max_melting_temp
min_melting_temp = float(sys.argv[1])
max_melting_temp = float(sys.argv[2])
output = []
for line in sys.stdin:
if min_melting_temp < Tm_staluc(line.split("\t")[0]) < max_melting_temp:
sys.stdout.write(line)
|