Mercurial > repos > tyty > structurefold
changeset 21:362993bbcf2b draft
Deleted selected files
author | tyty |
---|---|
date | Mon, 20 Oct 2014 14:31:51 -0400 |
parents | 13024d65eee7 |
children | ec9348a4c42f |
files | get_reads/reactivity_cal/.DS_Store get_reads/reactivity_cal/parse_dis_react.py get_reads/reactivity_cal/react_cal.py get_reads/reactivity_cal/react_norm_function.py get_reads/reactivity_cal/reactivity_calculation.xml get_reads/reactivity_cal/read_file.py get_reads/reactivity_cal/separate_rna.py get_reads/reactivity_cal/tool_dependencies.xml |
diffstat | 8 files changed, 0 insertions(+), 436 deletions(-) [+] |
line wrap: on
line diff
--- a/get_reads/reactivity_cal/parse_dis_react.py Mon Oct 20 14:31:27 2014 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -import sys - -def parse_dist(in_file): - result = [] - distribution = {} - name = [] - f = open(in_file) - flag = 0 - for aline in f.readlines(): - line = aline.strip() - dis = line.strip() - dist = dis.split('\t') - if len(dist) > 0: - if len(dist) == 1: - if dist[0].strip().find('coverage')==-1: - if flag == 0: - name.append(line) - flag = 1 - t_name = line - else: - distribution[t_name] = 'null' - name.append(line) - flag = 1 - t_name = line - else: - distri = [] - for i in range(0, len(dist)): - distri.append(dist[i].strip()) - distribution[t_name] = distri - flag = 0 - result.append(name) - result.append(distribution) - f.close() - return result - - - - - - - - - - - - - - -
--- a/get_reads/reactivity_cal/react_cal.py Mon Oct 20 14:31:27 2014 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,151 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -import sys -from Bio import SeqIO -import math -from parse_dis_react import * -from react_norm_function import * -import os - - -dist_file1 = sys.argv[1] #plus library -dist_file2 = sys.argv[2] #minus library -seq_file = sys.argv[3] -nt_spec = sys.argv[4] -flag_in = sys.argv[5] -threshold = sys.argv[6] -output_file = sys.argv[7] - - -distri_p = parse_dist(dist_file1) -distri_m = parse_dist(dist_file2) -threshold = float(threshold) - -print(flag_in) - -ospath = os.path.realpath(sys.argv[0]) -ost = ospath.split('/') -syspath = "" -for i in range(len(ost)-1): - syspath = syspath+ost[i].strip() - syspath = syspath+'/' - -h = file(syspath+"react.txt",'w') -flag_in = int(flag_in) - -seqs = SeqIO.parse(open(seq_file),'fasta'); -nt_s = set() -for i in range(len(nt_spec)): - nt_s.add(nt_spec[i]) - -flag = 0 -trans = [] -distri_p = distri_p[1] -distri_m = distri_m[1] - -#thres = int(threshold) - - -transcripts = {} -for seq in seqs: - n = seq.id - trans.append(n) - transcripts[n] = seq.seq.tostring() - - -#print(distri_p) - - -for i in range(0, len(trans)): - h.write(trans[i]) - h.write('\n') - if (trans[i].find('AT1G29930')==-1) and (trans[i].find('At1g29930')==-1): - for j in range(len(distri_p[trans[i]])): - distri_p[trans[i]][j] = math.log((int(distri_p[trans[i]][j])+1),math.e) - for j in range(len(distri_m[trans[i]])): - distri_m[trans[i]][j] = math.log((int(distri_m[trans[i]][j])+1),math.e) - s_p = sum(distri_p[trans[i]]) - s_m = sum(distri_m[trans[i]]) - length = len(distri_p[trans[i]]) - if s_p!= 0 and s_m!= 0: - r = [] - for j in range(0, len(distri_p[trans[i]])): - f_p = (float(distri_p[trans[i]][j]))/float(s_p)*length - f_m = (float(distri_m[trans[i]][j]))/float(s_m)*length - raw_react = f_p-f_m - r.append(max(0, raw_react)) - else: - for j in range(len(distri_p[trans[i]])): - distri_p[trans[i]][j] = int(distri_p[trans[i]][j]) - for j in range(len(distri_m[trans[i]])): - distri_m[trans[i]][j] = int(distri_m[trans[i]][j]) - s_p = sum(distri_p[trans[i]]) - s_m = sum(distri_m[trans[i]]) - if s_p!= 0 and s_m!= 0: - r = [] - for j in range(0, len(distri_p[trans[i]])): - f_p = float(distri_p[trans[i]][j])/float(s_p) - f_m = float(distri_m[trans[i]][j])/float(s_m) - r.append((max(0,(f_p-f_m)))*100) - - if s_p!= 0 and s_m!= 0: - for k in range(1,(len(r)-1)): - if transcripts[trans[i]][k-1] in nt_s: - h.write(str(r[k])) - h.write('\t') - else: - h.write('NA') - h.write('\t') - k = k+1 - if transcripts[trans[i]][k-1] in nt_s: - h.write(str(r[k])) - h.write('\n') - else: - h.write('NA') - h.write('\n') - - -h.close() - -if flag_in: - react_norm((syspath+"react.txt"),output_file, threshold) -else: - h_o = file(output_file, 'w') - f_i = open(syspath+"react.txt") - for aline in f_i.readlines(): - h_o.write(aline.strip()) - h_o.write('\n') -os.system("rm -f "+syspath+"react.txt") - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
--- a/get_reads/reactivity_cal/react_norm_function.py Mon Oct 20 14:31:27 2014 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,114 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -import sys -from Bio import SeqIO -import math -from parse_dis_react import * - -def cap(a,value): - if a>=value: - return value - else: - return a - -def react_norm(react_file, result_file, capped_value): - print("Normalizing.....") - react1 = parse_dist(react_file) - react = react1[1] - h = file(result_file, 'w') - - capped = int(capped_value) - - all_react = [] - - - for t in react: - if react[t]!='null': - for i in range(len(react[t])): - if react[t][i]!='NA': - all_react.append(float(react[t][i])) -# except: -# print(react[t][i]) -# print(t) -# print(i) - - all_react.sort(reverse = True) - #print((all_react)) - #print(all_react[int(len(all_react)*0.02)]) - #print(all_react[int(len(all_react)*0.03)]) - #print(all_react[int(len(all_react)*0.025)]) - #print(all_react[int(len(all_react)*0.04)]) - #print(all_react[int(len(all_react)*0.05)]) - ''' - mean = sum(all_react)/len(all_react) - print(mean) - temp = 0 - - for i in range(len(all_react)): - temp = temp+all_react[i]*all_react[i] - temp = temp/len(all_react) - sd = math.sqrt(temp-mean*mean) - ''' - eight = all_react[int(len(all_react)*0.02):int(len(all_react)*0.1)] - meight = sum(eight)/len(eight) - - for t in react: - h.write(t) - h.write('\n') - if react[t]!='null': - if (t.find('AT1G29930')==-1) and (t.find('At1g29930')==-1): - for i in range((len(react[t])-1)): - if react[t][i]!='NA': - h.write(str(cap((float(react[t][i])/meight),capped))) - else: - h.write('NA') - h.write('\t') - if react[t][i+1]!='NA': - h.write(str(cap((float(react[t][i+1])/meight),capped))) - else: - h.write('NA') - h.write('\n') - else: - for i in range((len(react[t])-1)): - if react[t][i]!='NA': - h.write(str(float(react[t][i])*2.6)) - else: - h.write('NA') - h.write('\t') - if react[t][i+1]!='NA': - h.write(str(float(react[t][i])*2.6)) - else: - h.write('NA') - h.write('\n') - - - - h.close() - - - - - - - - - - - - - - - - - - - - - - - - - - - -
--- a/get_reads/reactivity_cal/reactivity_calculation.xml Mon Oct 20 14:31:27 2014 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -<tool id="react_cal_pipeline" name="Reactivity calculation" version="1.0"> - <description></description> - <command interpreter="python">react_cal.py $dist_file1 $dist_file2 $seq_file $nt_spec $flag_in $threshold $output </command> - <requirements> - <requirement type="package" version="1.61">biopython</requirement> - <requirement type="package" version="1.7">numpy</requirement> - </requirements> - <inputs> - <param name="dist_file1" type="data" format="txt" label="RTSC file for (+) library"/> - <param name="dist_file2" type="data" format="txt" label="RTSC file for (-) library"/> - <param name="seq_file" type="data" format="fasta" label="Reference library"/> - <param name="nt_spec" type="select" label="Nucleotide specificity"> - <option value="AC">AC</option> - <option value="ATCG">AUCG</option> - </param> - <param name="flag_in" type="boolean" checked="true" truevalue = "1" falsevalue = "0" label="Normalization is performed if checked"/> - <param name="threshold" type="float" value = "7" optional = "true" label="Value to cap the reactivities"/> - </inputs> - <outputs> - <data name="output" format="txt"/> - </outputs> - - <help> - - -**TIPS**: - ------ - -**Input**: - -* 1. RTSC files (Output of II) for (+) and (-) library -* 2. Reference file (fasta) used to map the reads -* 3. Nucleotide Specificity (Type of nucleotide to have reactivity, e.g. AC for DMS and ACTG for SHAPE) -* [Optional]: -* 1. A threshold to cap the structural reactivities. {Default: 7} -* 2. Flag that determines whether to perform 2%-8% normalization {Default: yes} - ------ - -**Output**: - -A text file with structural reactivity for each nucleotide (Reactivity file) - - - - </help> -</tool>
--- a/get_reads/reactivity_cal/read_file.py Mon Oct 20 14:31:27 2014 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,21 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -import sys - - - -def read_t_file(in_file): - f = open(in_file); - result = []; - for aline in f.readlines(): - temp = []; - tline = aline.strip(); - tl = tline.split('\t'); - for i in range(0, len(tl)): - temp.append(tl[i].strip()); - result.append(temp); - f.close(); - return result; - -
--- a/get_reads/reactivity_cal/separate_rna.py Mon Oct 20 14:31:27 2014 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,42 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -import sys -from parse_dis_pac import * - - -dist_file = sys.argv[1] -cdna_file = sys.argv[2] -rrna_file = sys.argv[3] - -dist = parse_dist(dist_file) -dist = dist[1] -hc = file(cdna_file, 'w') -hr = file(rrna_file, 'w') - -for t in dist: - if t.find('AT') != -1: - hc.write(t) - hc.write('\n') - for i in range(len(dist[t])-1): - hc.write(dist[t][i]) - hc.write('\t') - i = i+1 - hc.write(dist[t][i]) - hc.write('\n') - else: - hr.write(t) - hr.write('\n') - for i in range(len(dist[t])-1): - hr.write(dist[t][i]) - hr.write('\t') - i = i+1 - hr.write(dist[t][i]) - hr.write('\n') - -hc.close() -hr.close() - - - -
--- a/get_reads/reactivity_cal/tool_dependencies.xml Mon Oct 20 14:31:27 2014 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,9 +0,0 @@ -<?xml version="1.0"?> -<tool_dependency> - <package name="biopython" version="1.61"> - <repository changeset_revision="ae9dda584395" name="package_biopython_1_61" owner="biopython" prior_installation_required="True" toolshed="http://toolshed.g2.bx.psu.edu" /> - </package> - <package name="numpy" version="1.7"> - <repository changeset_revision="ef12a3a11d5b" name="package_numpy_1_7" owner="iuc" prior_installation_required="False" toolshed="http://toolshed.g2.bx.psu.edu" /> - </package> -</tool_dependency>