|
a |
|
b/generate_dsb_histogram.py |
|
|
1 |
import cPickle as pickle |
|
|
2 |
import string |
|
|
3 |
import sys |
|
|
4 |
import time |
|
|
5 |
from itertools import izip |
|
|
6 |
import numpy as np |
|
|
7 |
from datetime import datetime, timedelta |
|
|
8 |
import utils |
|
|
9 |
import logger |
|
|
10 |
import buffering |
|
|
11 |
from configuration import config, set_configuration |
|
|
12 |
import pathfinder |
|
|
13 |
import utils_plots |
|
|
14 |
import data_iterators |
|
|
15 |
import data_transforms |
|
|
16 |
|
|
|
17 |
import matplotlib |
|
|
18 |
matplotlib.use('Agg') |
|
|
19 |
import matplotlib.pyplot as plt |
|
|
20 |
|
|
|
21 |
|
|
|
22 |
predictions_dir = utils.get_dir_path('analysis', pathfinder.METADATA_PATH) |
|
|
23 |
outputs_path = predictions_dir + 'dsb_scan_histograms' |
|
|
24 |
utils.auto_make_dir(outputs_path) |
|
|
25 |
|
|
|
26 |
train_valid_ids = utils.load_pkl(pathfinder.VALIDATION_SPLIT_PATH) |
|
|
27 |
train_pids, valid_pids, test_pids = train_valid_ids['training'], train_valid_ids['validation'], train_valid_ids['test'] |
|
|
28 |
print 'n train', len(train_pids) |
|
|
29 |
print 'n valid', len(valid_pids) |
|
|
30 |
print 'n test', len(test_pids) |
|
|
31 |
|
|
|
32 |
all_pids = train_pids + valid_pids + test_pids |
|
|
33 |
|
|
|
34 |
data_iterator = data_iterators.DSBDataGenerator(data_path=pathfinder.DATA_PATH, patient_pids=all_pids) |
|
|
35 |
|
|
|
36 |
histograms = {} |
|
|
37 |
bins = np.arange(-960,1700,40) |
|
|
38 |
# avg_histogram = np.zeros((bins.shape[0]-1), dtype=np.int64) |
|
|
39 |
# use buffering.buffered_gen_threaded() |
|
|
40 |
for idx, (x, pid) in enumerate(data_iterator.generate()): |
|
|
41 |
print idx, 'pid', pid |
|
|
42 |
histograms[pid]= data_transforms.get_rescale_params_hist_eq(x) |
|
|
43 |
|
|
|
44 |
|
|
|
45 |
|
|
|
46 |
pickle.dump(histograms, open( "dsb_rescale_params_hist_eq.pkl", "wb" ) ) |