/
pickleToIndividualGenePlots.py
53 lines (44 loc) · 1.95 KB
/
pickleToIndividualGenePlots.py
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import csv
import scipy
import numpy
import math
from _collections import defaultdict
import matplotlib
import matplotlib.pyplot
import sys
import pickle
import matplotlib.gridspec
pickleFilePathIP = sys.argv[1] #pickleFilePathIP = 'geneCoverages/SB1.pickle'
pickleFilePathInput = sys.argv[2] #pickleFilePathInput = 'geneCoverages/SB10.pickle'
flankingSize = int(sys.argv[3]) #flankingSize = 1000
plotDirectoryPath = sys.argv[4] #plotDirectoryPath = 'plots/'
geneSetFilePath = sys.argv[5] #geneSetFilePath = 'geneList2.txt'
geneSet = list(csv.reader(open(geneSetFilePath), delimiter='\t'))
geneSet = [gene[0] for gene in geneSet]
geneCoverages = pickle.load(open(pickleFilePathIP, 'rb'))
chromosomes = list(geneCoverages.keys())
IPgeneValues = {geneID: [] for geneID in geneSet}
for chromosome in chromosomes:
for gene in geneSet:
if gene in geneCoverages[chromosome].keys():
IPgeneValues[gene] = numpy.array(geneCoverages[chromosome][gene])
geneCoverages = pickle.load(open(pickleFilePathInput, 'rb'))
inputgeneValues = {geneID: [] for geneID in geneSet}
for chromosome in chromosomes:
for gene in geneSet:
if gene in geneCoverages[chromosome].keys():
inputgeneValues[gene] = numpy.array(geneCoverages[chromosome][gene])
normalisedGeneValues = {gene: IPgeneValues[gene] / inputgeneValues[gene] for gene in geneSet}
xlab = 'distance from TSS (bp)'
ylab = 'normalised ChIP-seq signal'
for gene in geneSet:
xVals = numpy.array(list(range(-flankingSize, len(normalisedGeneValues[gene]) - flankingSize)))
yVals = normalisedGeneValues[gene]
matplotlib.pyplot.figure(figsize=(12, 6))
matplotlib.pyplot.axvline(0, color='black')
matplotlib.pyplot.axvline(len(normalisedGeneValues[gene]) - flankingSize * 2 - 1, color='black')
matplotlib.pyplot.plot(xVals, yVals)
matplotlib.pyplot.xlabel(xlab)
matplotlib.pyplot.ylabel(ylab)
matplotlib.pyplot.savefig('plots/' + gene + '.pdf')
#matplotlib.pyplot.show()