| 
26
 | 
     1 #!/usr/bin/env python
 | 
| 
 | 
     2 # -*- coding: utf-8 -*-
 | 
| 
 | 
     3 import sys
 | 
| 
 | 
     4 from Bio import SeqIO
 | 
| 
 | 
     5 import math
 | 
| 
 | 
     6 from parse_dis_react import *
 | 
| 
 | 
     7 
 | 
| 
 | 
     8 def cap(a,value):
 | 
| 
 | 
     9     if a>=value:
 | 
| 
 | 
    10         return value
 | 
| 
 | 
    11     else:
 | 
| 
 | 
    12         return a
 | 
| 
 | 
    13 
 | 
| 
 | 
    14 def react_norm(react_file, result_file, capped_value):
 | 
| 
 | 
    15     print("Normalizing.....")
 | 
| 
 | 
    16     react1 = parse_dist(react_file)
 | 
| 
 | 
    17     react = react1[1]
 | 
| 
 | 
    18     h = file(result_file, 'w')
 | 
| 
 | 
    19 
 | 
| 
 | 
    20     capped = int(capped_value)
 | 
| 
 | 
    21 
 | 
| 
 | 
    22     all_react = []
 | 
| 
 | 
    23 
 | 
| 
 | 
    24 
 | 
| 
 | 
    25     for t in react:
 | 
| 
 | 
    26         if react[t]!='null':
 | 
| 
 | 
    27             for i in range(len(react[t])):
 | 
| 
 | 
    28                 if react[t][i]!='NA':                   
 | 
| 
 | 
    29                     all_react.append(float(react[t][i]))
 | 
| 
 | 
    30 
 | 
| 
 | 
    31 
 | 
| 
 | 
    32     all_react.sort(reverse = True)
 | 
| 
 | 
    33 
 | 
| 
 | 
    34 
 | 
| 
 | 
    35     eight = all_react[int(len(all_react)*0.02):int(len(all_react)*0.1)]
 | 
| 
 | 
    36     meight = sum(eight)/len(eight)
 | 
| 
 | 
    37 
 | 
| 
 | 
    38     for t in react:
 | 
| 
 | 
    39         h.write(t)
 | 
| 
 | 
    40         h.write('\n')
 | 
| 
 | 
    41         if react[t]!='null':
 | 
| 
 | 
    42             for i in range((len(react[t])-1)):
 | 
| 
 | 
    43                 if react[t][i]!='NA':
 | 
| 
 | 
    44                     h.write(str(cap((float(react[t][i])/meight),capped)))
 | 
| 
 | 
    45                 else:
 | 
| 
 | 
    46                     h.write('NA')
 | 
| 
 | 
    47                 h.write('\t')
 | 
| 
 | 
    48             if react[t][i+1]!='NA':
 | 
| 
 | 
    49                 h.write(str(cap((float(react[t][i+1])/meight),capped)))
 | 
| 
 | 
    50             else:
 | 
| 
 | 
    51                 h.write('NA')
 | 
| 
 | 
    52             h.write('\n')
 | 
| 
 | 
    53 
 | 
| 
 | 
    54     h.close()
 | 
| 
 | 
    55         
 | 
| 
 | 
    56 
 | 
| 
 | 
    57 
 | 
| 
 | 
    58 
 | 
| 
 | 
    59 
 | 
| 
 | 
    60 
 | 
| 
 | 
    61 
 | 
| 
 | 
    62 
 | 
| 
 | 
    63 
 | 
| 
 | 
    64 
 | 
| 
 | 
    65 
 | 
| 
 | 
    66 
 | 
| 
 | 
    67 
 | 
| 
 | 
    68 
 | 
| 
 | 
    69 
 | 
| 
 | 
    70 
 | 
| 
 | 
    71 
 | 
| 
 | 
    72 
 | 
| 
 | 
    73 
 | 
| 
 | 
    74 
 | 
| 
 | 
    75 
 | 
| 
 | 
    76 
 | 
| 
 | 
    77         
 | 
| 
 | 
    78 
 | 
| 
 | 
    79 
 | 
| 
 | 
    80 
 | 
| 
 | 
    81 
 | 
| 
 | 
    82 
 |