From 81008adddf14d254e6ccb93105f3bb0cdb80e394 Mon Sep 17 00:00:00 2001
From: Cosmin  SAVEANU <cosmin.saveanu@pasteur.fr>
Date: Tue, 15 Mar 2022 13:49:33 +0100
Subject: [PATCH] Upload New File

---
 PolysomeRider/movingaveragefilter.py | 40 ++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)
 create mode 100644 PolysomeRider/movingaveragefilter.py

diff --git a/PolysomeRider/movingaveragefilter.py b/PolysomeRider/movingaveragefilter.py
new file mode 100644
index 0000000..e724cb0
--- /dev/null
+++ b/PolysomeRider/movingaveragefilter.py
@@ -0,0 +1,40 @@
+"""
+filter data by averaging on a number of points
+input - text file with two tab delimited columns
+output - filtered text file
+parameter - size of the window
+"""
+import sys
+
+INTTRANSFORM = 1000
+if len(sys.argv) < 4:
+	print "Three arguments needed: input file name, output file name, window size"
+	sys.exit(0)
+else:
+	file_in_name = sys.argv[1]
+	file_out_name = sys.argv[2]
+	wsize = int(sys.argv[3])
+
+fin = open(file_in_name, "r")
+data = []
+for line in fin:
+	lst = line.strip('\r\n ').split('\t')
+	data.append([int(float(lst[0])), int(INTTRANSFORM*float(lst[1]))])
+fin.close()
+
+filtdata = []
+sum = 0
+prevsum = 0
+for i in range(int(wsize/2)):
+	filtdata.append([data[i][0], data[i][1]/INTTRANSFORM])
+	prevsum=prevsum+data[i][1]
+
+for i in range(int(wsize/2),len(data)-wsize/2-1):
+	sum = prevsum - data[i-wsize/2 -1][1] + data[i + wsize/2][1]
+	prevsum = sum
+	#print sum
+	filtdata.append([data[i][0], sum/float(wsize)/float(INTTRANSFORM)])
+	
+fout = open(file_out_name, "w")
+for line in filtdata:
+	fout.write('%d\t%.3f\n'%(line[0], line[1]))
\ No newline at end of file
-- 
GitLab