aboutsummaryrefslogtreecommitdiff
path: root/src/filter_melting_temperature.py
blob: 9e5477b16118e7b481772242c5f898fda3c7a819 (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
#!/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])


for line in sys.stdin:
	if min_melting_temp < Tm_staluc(line.split("\t")[0]) < max_melting_temp:
		sys.stdout.write(line)