0
|
1 import sys
|
|
2 # remove all read that have unmatch microsat
|
|
3 # check only one line at a time
|
|
4 def complement_base(read):
|
|
5 collect=''
|
|
6 for i in read:
|
|
7 if i.upper()=='A':
|
|
8 collect+='T'
|
|
9 elif i.upper()=='T':
|
|
10 collect+='A'
|
|
11 elif i.upper()=='C':
|
|
12 collect+='G'
|
|
13 elif i.upper()=='G':
|
|
14 collect+='C'
|
|
15 return collect
|
|
16
|
|
17 def makeallpossible(read):
|
|
18 collect=[]
|
|
19 for i in range(len(read)):
|
|
20 tmp= read[i:]+read[:i]
|
|
21 collect.append(tmp)
|
|
22 collect.append(complement_base(tmp))
|
|
23 return collect
|
|
24
|
|
25
|
|
26 fd=open(sys.argv[1])
|
|
27 lines=fd.xreadlines()
|
|
28 firstcolumn=int(sys.argv[2])-1 #4
|
|
29 secondcolumn=int(sys.argv[3])-1 # 10
|
|
30 for line in lines:
|
|
31 temp=line.strip().split('\t')
|
|
32 temp=filter(None,temp)
|
|
33 micro1=temp[firstcolumn]
|
|
34 micro2=temp[secondcolumn]
|
|
35 if micro1 in makeallpossible(micro2):
|
|
36 print line.strip() |