File: parallelization-figure.py

package info (click to toggle)
vcfanno 0.3.2%2Bds-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 14,104 kB
  • sloc: python: 335; sh: 249; makefile: 39
file content (67 lines) | stat: -rw-r--r-- 2,106 bytes parent folder | download | duplicates (4)
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import toolshed as ts

lookup = {'ALL.wgs.phase3_shapeit2_mvncall_integrated_v5a.20130502.sites': '1000G',
          'ExAC.r0.3.sites.vep': 'ExAC'}

data = {'1000G': [], 'ExAC': []}

"""
method	procs	time	query
var	20	888.29 seconds	ALL.wgs.phase3_shapeit2_mvncall_integrated_v5a.20130502.sites
var	19	897.02 seconds	ALL.wgs.phase3_shapeit2_mvncall_integrated_v5a.20130502.sites
var	18	895.35 seconds	ALL.wgs.phase3_shapeit2_mvncall_integrated_v5a.20130502.sites
var	17	909.24 seconds	ALL.wgs.phase3_shapeit2_mvncall_integrated_v5a.20130502.sites
var	16	916.43 seconds	ALL.wgs.phase3_shapeit2_mvncall_integrated_v5a.20130502.sites
var	15	945.61 seconds	ALL.wgs.phase3_shapeit2_mvncall_integrated_v5a.20130502.sites
var	14	981.14 seconds	ALL.wgs.phase3_shapeit2_mvncall_integrated_v5a.20130502.sites
var	13	1051.26 seconds	ALL.wgs.phase3_shapeit2_mvncall_integrated_v5a.20130502.sites
var	12	1126.58 seconds	ALL.wgs.phase3_shapeit2_mvncall_integrated_v5a.20130502.sites
"""
for d in ts.reader(1):
    time = float(d['time'].split()[0])
    key = lookup[d['query']]
    data[key].append(time)


for k in data:
    data[k] = data[k][::-1]

from matplotlib import pyplot as plt
import seaborn as sns
sns.set_style('white')

from matplotlib import rcParams
rcParams['font.family'] = 'Arial'
rcParams['font.size'] = 18

N = len(data.values()[0])
N = 16

markers = 'os'
for j, k in enumerate(data):
    values = data[k]
    plt.plot(range(1, N + 1), [values[0] / values[i] for i in range(N)],
             markers[j] + "-", label=k)

plt.ylabel("Speed-up relative to 1 process")
plt.xlabel("Number of processes")
plt.plot(range(1, N + 1), [i for i in range(1, N + 1)], '--',
         c="0.78", lw=2)
plt.tight_layout()


plt.legend(loc="upper left")

ax = plt.gca()
for item in ([ax.title, ax.xaxis.label, ax.yaxis.label] +
              ax.get_xticklabels() + ax.get_yticklabels()):
        item.set_fontsize(16)
for item in ax.get_legend().get_texts():
    item.set_fontsize(13)

plt.xlim(xmin=1, xmax=N+0.16)
plt.ylim(ymin=1, ymax=8)
sns.despine(left=True, bottom=True)
plt.savefig('figure-4.pdf')
plt.show()